Thông báo

Collapse
No announcement yet.

[ý tưởng] : Analog simulator

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • [ý tưởng] : Analog simulator

    Xin chào các bạn,

    Mình có 1 ý tưởng thế này : thông thường để mô phỏng 1 hệ thống ta hay dùng các phần mềm chuyên dùng, vd như Matlab/Simulink, Psim,... Các phần mềm này tính toán các phuơng trình vi tích phân ở bước rời rạc rất nhỏ nên ta xem nó như liên tục. Nếu mà hệ thống phức tạp 1 tẹo thì chạy rất lâu. Thêm nữa chúng là mô phỏng thời gian máy, ko phải real time nên chưa gần với thực tế lắm.

    Analog simulation là 1 bước trung gian giữa mô phỏng và thực tế. Nó chưa phải là hệ thống thực, nhưng nó có đặc tính vào/ra là hình ảnh của hệ thực và nó hoạt động trong thời gian thực, vd 1 hàm truyền bậc 1 trong Matlab được xây dựng từ 1 mạch RC và Opamp. Mình đã từng làm với cái này.

    Ý tưởng của mình là làm 1 cái board thật tổng quát, sao cho người dùng có thể dễ dàng cấu hình như là Simulink vậy.

    Khó khăn của vấn đề là : để người dùng có thể thay đổi cấu hình thì mình nghĩ nên dùng các chuyển mạch, muốn thay đổi thông số thì phải dùng các linh kiện có giá trị biến thiên được (biến trở, biến tụ,...).

    Một hưỡng nữa là các hàm truyền được thay bằng các FIR, tính toán bởi FPGA

    Mình chưa có nhiều kinh nghiệm với FPGA, nên xin hỏi các bạn 1 số câu :
    1. dùng FPGA để điều khiển đóng cắt các khóa để chuyển mạch khi cần thay đổi cấu hình board có tiện không ? (có thể có tới hàng trăm, nghìn khóa cần được điều khiển).
    2. dùng FPGA để tính toán các FIR thay cho hàm truyền thì có đủ nhanh ko, vì mình thấy chip của PC hoạt động ở Mấy GHz mà Matlab tính vẫn chậm, ko biết FPGA có đủ khả năng ko ?
    3. dùng FPGA làm trung tâm phần cứng, nhưng phải có 1 phần mềm đi kèm kiểu như mua KIT của Altera thì có cái control panel đi kèm để người dùng cấu hình board. Vậy thì dùng gì để làm ra cá control panel này ?

    Cám ơn các bạn

  • #2
    Chào bạn Klong19,

    Lâu lắm rồi không vào 4rum, vừa mới vào thấy bài của bạn cũng hay hay nên tớ góp ý với bạn một chút. Phải nói là những ý tưởng mới, sáng tạo luôn là điều tốt. Cho dù những ý tưởng có không khả thi, các bạn cũng sẽ học được bài học từ nó. Theo đánh giá của tớ thì ý tưởng của bạn không khả thi lắm.

    1. Không biết bạn Klong19 có kinh nghiệm làm việc với FPGA prototype, và các phần mềm mô phỏng số như NCsim chưa. Nếu như bạn đã từng sử dụng thì sẽ nhận ra các FPGA prototype debug khó hơn rất nhiều vì tạo break point, kiểm tra tín hiệu trung gian... vất vả hơn dùng phần mêm mô phỏng nhiều. Ưu điểm lớn nhất của FPGA prototype là chạy rất nhanh, và đúng thật hơn dùng phần mềm. Về các phần mềm mô phỏng mạch tương tự, nói chung tớ thấy độ chính xác nói chung là tốt, nếu như bạn cung cấp model chính xác. Như vậy ý tưởng analog emulator của bạn chỉ là giúp giảm thời gian chạy mô phỏng, và hi vọng là giá trị đo đạt chính xác hơn so với chạy mô phỏng.

    2. Về hi vọng rằng mạch của bạn chạy chính xác hơn so với mạch mô phỏng, nói thật tớ không có mấy tin tưởng. Nếu bạn đã từng thiết kế các mạch RF sẽ thấy chỉ cần những thông số ký sinh ảnh hưởng tới tần số cộng hưởng, phẩm chất Q... thì băng thông, độ khuếch đại cũng đã thay đổi rất nhiều. Ảnh hưởng của điện áp nguồn... cũng tạo ra jitter trong mạch giao động ví dụ như PLL, thậm chí ngay đến những mạch khuếch đại thông thường, nếu bạn quan tâm đến vấn đề nhiễu (noise figure) thì kích thước các linh kiện và tham số ký sinh cũng là vấn đề. Nếu được bạn có thể giải thích rõ hơn làm thế nào mạch của bạn có thể mô phỏng chính xác những mạch này.

    3. Về vấn đề emulator chạy nhanh hơn phần mềm mô phỏng thì tớ cũng thấy có vấn đề. Thực ra các phần mềm mô phỏng bây giờ chạy cũng rất nhanh. Nếu như chạy quá lâu là do có quá nhiều linh kiện trong mạch tương tác với nhau, ví dụ như bạn chạy mô phỏng một mạch ALU sau khi post layout extracted. Vì thế tớ coi như ứng dụng của bạn là những mạch cần đến hàng nghìn linh kiện. Đối với FPGA prototype, người ta sử dụng các RAM dùng như một bảng tra (lookup table) để mô phỏng các cổng logic. Tuy nhiên trên FPGA có tới hàng trăm nghìn, hàng triệu LUT. Như vậy ý tưởng analog emulator của bạn chắc cũng phải có hàng chục, hàng trăm nghìn linh kiện và chúng có thể được nối với nhau bằng các switch và network. Với số lượng hàng chục nghìn linh kiện này thì bạn phải dùng công nghệ ASIC để chế tạo. Tớ không tin rằng bạn sẽ dùng hàng trăm nghìn linh kiên rời rạc để nói với nhau bằng các switch chuyển mạch. Nhưng ASIC lại luôn có sai số. Bạn không có khả năng chế tạo các linh kiện analog bằng asic mà không có sai số.

    4. Vấn đề cuối cùng là tiền. Tất cả mọi ý tưởng dù hay đến đâu muốn trở thành thực tế thì phải nghĩ đến tiền. Loại analog emulator này bạn muốn bán cho khách hàng nào. Đây hẳn là loại dùng để mô phỏng các mạch analog lớn (vì mạch nhỏ người ta dùng phần mềm rồi), như vậy chắc chỉ các hãng lớn về điện tử mới mua. Ngoài ra đây hẳn là các hãng về ASIC, vì nếu hãng làm về mạch thường thì người ta làm luôn cái prototype của người ta chứ không cần đến mạch của bạn làm gì. Nói tóm lại là số lượng khách hàng khá nhỏ bé. Bạn dự định dùng ASIC để chế tạo hàng loạt các linh kiện này hay sẽ dùng loại rời rạc. Giá thành loại này sau khi làm ra bạn tin có thể cạnh tranh nổi với các phần mềm mô phỏng hay không?

    Comment


    • #3
      Cảm ơn bạn Rommel.de nhiều vì giúp mình phân tích vấn đề 1 cách rất thực tế, mình xin bàn về số 4 trước

      4. vấn đề khách hàng : mình ko định nhắm đến các hãng điện tử mà nhắm đến các lab, công ty công nghiệp về điện tự động. Các nơi này thường hay làm các đề tài về mô phỏng và điều khiển các hệ thống công nghiệp, vd như các máy điện, lưới điện, điện gió, mặt trời,... cụ thể trường hợp của mình là đang làm hệ đốt nóng kim loại dùng từ trường. Trong ngành điện tự động, để mô phỏng cho các hệ này thì công cụ phổ biến nhất là Simulink (đuơng nhiên là sau khi đã qua bước nghiên cứu vật lý để tìm ra các phương trình mô tả hệ). Cho nên, cái board mình định làm sẽ cho phép họ thay thế vai trò của Simulink, và hơn nữa là real time, như vậy sẽ dễ test hơn với các module khác, vd như các embedded system, sensor hay các driver. Nếu là mô hình trên Simulink thì ko tuơng tác được với các module này.

      như vậy có khả quan hơn nhận định bên trên của bạn ko ? cảm ơn bạn

      Comment


      • #4
        Chào bạn Klong19,

        Nếu như bạn dự định làm một cái mạch nào đó để mô phỏng hệ đốt nóng kim loại dùng từ trường thì tớ nghĩ tớ có thể trả lời bạn một cách tương đối chính xác. Thật ra thì cũng chẳng có gì vì cái này đã được các nhà khoa học trên thế giới áp dụng cả hàng trăm năm nay rồi. Để nghiên cứu hoạt động của một thiết bị mới ví dụ như một cái tầu ngầm chẳng hạn, người ta trước hết sẽ chế tạo một prototype, thường là một mô hình thu nhỏ để dễ chế tạo, lại rẻ tiền dễ kiểm tra. Sau khi kiểm tra tốt mô hình rồi thì người ta mới chế tạo một thiết bị với kích thước thật để kiểm tra. Sau khi mọi thứ tốt rồi thì sẽ đi vào sản xuất hàng loạt. Ngày nay các công cụ thiết kế và mô phỏng bằng máy tính phát triển thì người ta thường mô phỏng trước bằng máy tính rồi mới làm prototype. Ý tưởng của bạn thực chất là làm một prototype mô hình thu nhỏ để kiểm tra các số liệu hoạt động... Cụ thể cái prototype này giống hệ thống của bạn đến đâu... rất khó nói và phụ thuộc rất nhiều vào hệ thống của bạn, nhưng tớ nghĩ rất khó để có thể thành một cái gọi là analog emulator được vì mạch analog phức tạp lắm bạn ạ.

        Nói chuyện này lại làm tớ nghĩ đến mấy người ở VN làm tầu ngầm. Nói chung có ý tưởng là tốt, làm sai thì cũng rút được kinh nghiệm từ đó, nhưng tớ thật sự thấy buồn cười khi báo chí tâng bốc tung hô một thứ nhảm nhí như vậy. Khi những người có kiến thức phản biện chỉ ra những sự vô lý, nhảm nhí, thì tớ thấy rất nhiều người xông vào ném đá, nói mấy ông giáo sư, tiến sỹ chỉ biết nói, chẳng làm được cái gì. Công bằng mà nói thì giáo sư tiến sỹ ở các trường đại học hay viện nghiên cứu đúng là thường chỉ biết nói và kinh nghiệm thực tế không nhiều. Nhưng những lời nói của mấy vị đó cũng không phải toàn bỏ đi hết, cũng đáng để suy nghĩ đấy. Ở VN tiến sỹ giấy chắc cũng nhiều, nhưng người giỏi thì ở đâu cũng có và chắc ở VN cũng chẳng ít. Tại sao hầu hết giáo sư tiến sỹ giỏi ở VN lại chẳng làm được gì. Cái này chẳng phải là lỗi của họ nữa rồi mà phải xem lại đảng và chính phủ đã làm gì để họ không phát huy khả năng.

        Comment


        • #5
          cảm ơn bạn Romemel.de,

          ý tưởng mình nói ko phải là 1 prototype cho 1 hệ cụ thể, mà là cho phép người dùng cấu hình để mô phỏng 1 hệ bất kỳ, nó có tính tổng quát hơn mô hình 1 cái tàu ngầm hay 1 cái lò từ trường nhỏ.

          Bạn có thể quay lại giúp mình 3 câu hỏi mà mình đặt ra ban đầu ko, vì nó liên quan tới FPGA, nếu mình biết câu trả lời cho 3 câu hỏi này mình sẽ có thể tự phân tích những ý tưởng khác của mình. cảm ơn bạn

          Comment


          • #6
            Nguyên văn bởi klong19 Xem bài viết
            Xin chào các bạn,

            Mình có 1 ý tưởng thế này : thông thường để mô phỏng 1 hệ thống ta hay dùng các phần mềm chuyên dùng, vd như Matlab/Simulink, Psim,... Các phần mềm này tính toán các phuơng trình vi tích phân ở bước rời rạc rất nhỏ nên ta xem nó như liên tục. Nếu mà hệ thống phức tạp 1 tẹo thì chạy rất lâu. Thêm nữa chúng là mô phỏng thời gian máy, ko phải real time nên chưa gần với thực tế lắm.

            Analog simulation là 1 bước trung gian giữa mô phỏng và thực tế. Nó chưa phải là hệ thống thực, nhưng nó có đặc tính vào/ra là hình ảnh của hệ thực và nó hoạt động trong thời gian thực, vd 1 hàm truyền bậc 1 trong Matlab được xây dựng từ 1 mạch RC và Opamp. Mình đã từng làm với cái này.

            Ý tưởng của mình là làm 1 cái board thật tổng quát, sao cho người dùng có thể dễ dàng cấu hình như là Simulink vậy.

            Khó khăn của vấn đề là : để người dùng có thể thay đổi cấu hình thì mình nghĩ nên dùng các chuyển mạch, muốn thay đổi thông số thì phải dùng các linh kiện có giá trị biến thiên được (biến trở, biến tụ,...).

            Một hưỡng nữa là các hàm truyền được thay bằng các FIR, tính toán bởi FPGA

            Mình chưa có nhiều kinh nghiệm với FPGA, nên xin hỏi các bạn 1 số câu :
            1. dùng FPGA để điều khiển đóng cắt các khóa để chuyển mạch khi cần thay đổi cấu hình board có tiện không ? (có thể có tới hàng trăm, nghìn khóa cần được điều khiển).
            2. dùng FPGA để tính toán các FIR thay cho hàm truyền thì có đủ nhanh ko, vì mình thấy chip của PC hoạt động ở Mấy GHz mà Matlab tính vẫn chậm, ko biết FPGA có đủ khả năng ko ?
            3. dùng FPGA làm trung tâm phần cứng, nhưng phải có 1 phần mềm đi kèm kiểu như mua KIT của Altera thì có cái control panel đi kèm để người dùng cấu hình board. Vậy thì dùng gì để làm ra cá control panel này ?

            Cám ơn các bạn
            1. Không vấn đề gì.
            2. Không hiểu bạn nói tinh toán càc FIR thay cho các hàm truyền là ntn? Hàm truyền là ý bạn là transfer function?
            3. Cái software thì mình nghĩ bạn có thể dùng Qt để viết GUI. Còn cách thức communication vời FPGA thì có thể có từ đơn gian đến phức tạp: RS232, USB, Ethernet, PCIe ...

            Nếu lấy đơn giản mô phỏng mạch Rờ lờ cờ (RLC) thì mình thấy không vấn đề gì, transfer function ở miền thời gian của các thành phần này dơn giản. Không rành về analog nên không biết simulate mạch gồm mấy con transistor đó như thế nào.

            Nều làm simulator thì mình nghĩ bạn có thể:
            - Vẽ mạch trên máy tính
            - Viết chương trính tự động sinh ra code HDL tư mảch analog của bạn
            - Compile rồi chạy trên FPGA.

            Mình không nghĩ làm sãn mạch trên FPGA rổi cấu hình lại các connection giũa các components là khả thi vì có quá nhiều trường hợp.

            Comment


            • #7
              Cám ơn anh Jeffieu
              2. Hàm truyền ý em đúng là transfer function
              3. Em ko biết là Quartus có thể cho phép viết GUI giống như cái control panel đi kèm với KIT DE đó. Cám ơn anh nha, để em tìm hiểu thêm

              Comment


              • #8
                Nguyên văn bởi klong19 Xem bài viết
                Cám ơn anh Jeffieu
                3. Em ko biết là Quartus có thể cho phép viết GUI giống như cái control panel đi kèm với KIT DE đó. Cám ơn anh nha, để em tìm hiểu thêm
                Hi Klong19,

                Qt mà bạn Jefflieu nói không phải Quartus mà là một cross-platform framework có thể hỗ trợ cho bạn thiết kế GUI (bằng cách sử dụng widget)

                https://qt-project.org/

                Bạn đừng đâm đầu vào nghiên cứu viết GUI bằng Quartus mà mất thời gian (Quartus các bản sau cũng được viết bằng Qt đấy)

                Về project của bạn, bạn đã ước lượng được khối lượng công việc và các khó khăn chưa? Nếu bạn làm với tinh thần để nâng cao kinh nghiệm thì OK, nhưng nếu là sản phẩm thương mại thì bạn nên cân nhắc kỹ hơn.

                Thân

                Comment

                Về tác giả

                Collapse

                klong19 Tìm hiểu thêm về klong19

                Bài viết mới nhất

                Collapse

                Đang tải...
                X