|
Tài trợ cho PIC Vietnam |
Điều khiển Lý thuyết điều khiển và ứng dụng lý thuyết điều khiển trong những trường hợp thực tế |
|
Ðiều Chỉnh | Xếp Bài |
11-09-2009, 11:00 PM | #1 |
Trưởng lão PIC bang
Tham gia ngày: Dec 2005
Bài gửi: 315
: |
Các vấn đề thiết kế hệ thống điều khiển trong thực tế
Mecha mở ra topic này để anh em thảo luận về xu hướng thiết kế và thực thi các hệ thống điều khiển (real-time) trong thực tế. Topic có thể liên quan đến nhiều khía cạnh, chẳng hạn như:
- Control software design mothods - Control system structure mothods - Advanced controller design - … Tuy nhiên, các vấn đề hoàn toàn có thể được mở rộng ra ngoài những vấn đề trên. Ở phần đầu này, Mecha bàn đến một vấn đề nhỏ hơn, đó là: Design control systems: automated code generation v.s. hand-coded Khi thiết kế các hệ thống điều khiển, thông thường người thiết kế sẽ phải làm việc với các hệ thống lai (hybrid) giữa continuous-time systems và discrete-event systems. Nói một cách nôm na thì: - Continuous-time systems được đặc trưng bởi các thuật toán điều khiển; - Discrete-event systems thì là tập hợp của các điều kiện và tác động chuyển đổi trạng thái, cho phép switching giữa các continuous-time systems. Hiện tại, có 2 cách để triển khai một hệ thống điều khiển lai nói trên, đó là: 1. Sử dụng các công cụ (tool chain) có chức năng: thiết kế, mô phỏng, sinh mã bộ điều khiển tự động (automated code generation) cho phần cứng. Một số ví dụ điển hình như: - Matlab, Simulink, StateFlow, Real-Time Workshop Embedded Coder toolchain. - 20-sim, gCSP, CTC++ and ForSee (4C) toolchain. - Scilab/Scicos, Scicos-RTAI, Scicos-FLEX toolchain. Ở gói phần mềm Matlab: - Continuous-time systems sẽ được thiết kế trong Simulink. Vì vậy mã được phát ra từ Simulink thường là các thuật toán điều khiển. Hay nói một cách khác thì nó đảm trách phần data-flow của một hệ thống điều khiển. - Discrete-event systems sẽ được thiết kế trong StateFlow. Vì vậy mã được phát ra thường là các sự kiện/tác động chuyển đổi trạng thái. Ví dụ như là switching từ một khối Simulink “Start-up Operation” sang một khối Simulink “Normal Operation”. Hay nói một cách khác thì nó đảm trách phần control-flow bên trong một hệ thống điều khiển. - Real-Time Workshop Embedded Coder để hỗ trợ tự động sinh mã và phối hợp mã phát ra từ Simulink và StateFlow. Ở gói phần mềm 20-sim cũng có cách tiếp cận gần giống với Matlab, cụ thể là: - Dùng 20-sim cho continuous-time systems. - Dùng gCSP cho discrete-event systems. - CTC++ and ForSee (4C) có cùng chức năng với RealTime Workshop. Trong cả hai trường hợp này thì StateFlow và gCSP có vai trò gần tương đương với supervisor component/object. 2. Phát triển bộ điều khiển trực tiếp (hand-coded controller), có hai xu hướng là: - Lập trình trực tiếp bằng C/C++ hoặc một ngôn ngữ lập trình khác. Để có real-time behaviour, người thiết kế sẽ sử dụng các hàm API của một RTOS nào đó chẳng hạn như RTAI/Xenomai. - Sử dụng các framework/software cấp cao như Orocos RTT, ROS để phát triển các ứng dụng điều khiển real-time. Mecha tạm dừng ở đây đã, sẽ tiếp tục trao đổi sau.
__________________
Sống là động nhưng lòng luôn bất động, Sống là thương nhưng lòng chẳng vấn vương, Sống yên vui danh lợi vẫn coi thường, Tâm bất biến giữa dòng đời vạn biến. Chú ý: đề nghị các thành viên đọc luồng dưới đây trước khi post bài: http://www.picvietnam.com/forum//showthread.php?t=1263 |
|
|