Luận án Nghiên cứu xây dựng thuật toán điều khiển dự báo theo mô hình cho đối tượng phi tuyến liên tục
Điều khiển dự báo dựa trên mô hình (Model Predictive Control -
MPC), hay còn thường được gọi ngắn gọn là điều khiển dự báo, ra đời vào
cuối thập niên 70 và đầu thập niên 80 của thế kỉ trước, là một xu hướng điều
khiển được ưa chuộng. Trong hai thập kỷ trở lại đây, điều khiển dự báo đã có
những bước phát triển rất đáng kể, đóng góp khá nhiều các phương pháp về
mặt học thuật cũng như đẩy mạnh khả năng ứng dụng của MPC trong thực tế,
điều đó được thể hiện trong các tài liệu [13], [14], [15], [27], [68] với hơn
3000 ứng dụng vào điều khiển quá trình, điều khiển các hệ cơ, điều khiển
robot, điều khiển các hệ bay. Bản chất của điều khiển dự báo là sử dụng mô
hình tường minh của đối tượng để tính toán tối ưu các biến được điều khiển
thông qua các phương pháp tối ưu hóa. Để thiết kế, cài đặt bộ điều khiển dự
báo cho một đối tượng cụ thể, cần thực hiện 3 công việc chính đó là:
Xây dựng mô hình dự báo;
Xác định hàm mục tiêu và các điều kiện ràng buộc;
Giải bài toán tối ưu.
Tóm tắt nội dung tài liệu: Luận án Nghiên cứu xây dựng thuật toán điều khiển dự báo theo mô hình cho đối tượng phi tuyến liên tục
BỘ GIÁO DỤC VÀ ðÀO TẠO ðẠI HỌC THÁI NGUYÊN NGUYỄN THỊ MAI HƯƠNG NGHIÊN CỨU XÂY DỰNG THUẬT TOÁN ðIỀU KHIỂN DỰ BÁO THEO MÔ HÌNH CHO ðỐI TƯỢNG PHI TUYẾN LIÊN TỤC LUẬN ÁN TIẾN SĨ KỸ THUẬT THÁI NGUYÊN – NĂM 2016 BỘ GIÁO DỤC VÀ ðÀO TẠO ðẠI HỌC THÁI NGUYÊN NGUYỄN THỊ MAI HƯƠNG NGHIÊN CỨU XÂY DỰNG THUẬT TOÁN ðIỀU KHIỂN DỰ BÁO THEO MÔ HÌNH CHO ðỐI TƯỢNG PHI TUYẾN LIÊN TỤC Chuyên ngành: Kỹ thuật ñiều khiển và Tự ñộng hóa Mã số: 62 52 02 16 LUẬN ÁN TIẾN SĨ KỸ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Lại Khắc Lãi THÁI NGUYÊN – NĂM 2016 ii LỜI CẢM ƠN Trong quá trình làm luận án, tôi ñã nhận ñược rất nhiều góp ý về chuyên môn cũng như sự ủng hộ về các công tác tổ chức của tập thể cán bộ hướng dẫn, của các nhà khoa học, của các bạn ñồng nghiệp. Tôi xin ñược gửi tới họ lời cảm ơn sâu sắc. Tôi xin bày tỏ lòng cảm ơn ñến tập thể cán bộ hướng dẫn ñã tâm huyết hướng dẫn tôi trong suốt thời gian qua. Tôi cũng xin chân thành cảm ơn các ñồng nghiệp, tập thể các nhà khoa học trường ðại học Kỹ thuật Công nghiệp, của bộ môn ðiều khiển tự ñộng trường ðại học Bách khoa Hà Nội, ñã có những ý kiến ñóng góp quý báu, các Phòng ban của Trường ðại học Kỹ thuật Công nghiệp ñã tạo ñiều kiện thuận lợi cho tôi trong suốt quá trình thực hiện ñề tài luận án. Thái Nguyên, ngày tháng 01 năm 2016 Tác giả luận án Nguyễn Thị Mai Hương iii MỤC LỤC LỜI CAM ðOAN i LỜI CẢM ƠN ii MỤC LỤC iii MỞ ðẦU 1 1. Giới thiệu ....................................................................................................... 1 2. Tính cấp thiết của luận án ............................................................................... 2 3. Mục tiêu của luận án ...................................................................................... 4 4. ðối tượng, phạm vi và phương pháp nghiên cứu ............................................ 4 5. Ý nghĩa khoa học và thực tiễn ........................................................................ 5 5.1. Ý nghĩa khoa học ................................................................................. 5 5.2. Ý nghĩa thực tiễn ................................................................................. 5 6. Bố cục luận án ................................................................................................ 6 CHƯƠNG 1 8 TỔNG QUAN VỀ ðIỀU KHIỂN DỰ BÁO CHO HỆ PHI TUYẾN 8 1.1. Tổng quan các công trình nghiên cứu về ñiều khiển dự báo hệ phi tuyến trên thế giới ....................................................................................... 9 1.2. Các phương pháp quy hoạch phi tuyến ...................................................... 18 1.2.2. Bài toán tối ưu hóa phi tuyến bị ràng buộc gồm: Kỹ thuật hàm phạt và hàm chặn, Phương pháp SQP [3], [5[ và GA [2] ........... 19 1.3. Các phương pháp ñiều khiển tối ưu ........................................................... 19 1.4. Các công trình nghiên cứu về ñiều khiển dự báo hệ phi tuyến trong nước ................................................................................................ 20 1.5. Những vấn ñề cần tiếp tục nghiên cứu về ñiều khiển dự báo cho hệ phi tuyến và hướng nghiên cứu của luận án ......................................... 21 1.6. Kết luận chương 1 ..................................................................................... 23 iv CHƯƠNG 2 24 ðIỀU KHIỂN DỰ BÁO HỆ PHI TUYẾN TRÊN NỀN CÁC PHƯƠNG PHÁP QUY HOẠCH PHI TUYẾN 24 2.1. Nguyên lý làm việc của ñiều khiển dự báo phi tuyến ................................. 24 2.1.1. Cấu trúc bộ ñiều khiển dự báo ........................................................ 26 2.1.2. Kỹ thuật cài ñặt bộ ñiều khiển dự báo trên nền các phương pháp quy hoạch phi tuyến ................................................................. 29 2.2. Áp dụng vào ñiều khiển dự báo lớp hệ song tuyến..................................... 31 2.2.1. Thuật toán ñiều khiển dự báo phi tuyến cho hệ song tuyến ............. 32 2.2.2. ðKDB trên nền tối ưu hóa theo sai lệch tín hiệu ñiều khiển ............ 36 2.3. Kết luận chương 2 ..................................................................................... 42 CHƯƠNG 3 43 ðỀ XUẤT MỘT PHƯƠNG PHÁP MỚI ðỂ ðIỀU KHIỂN DỰ BÁO HỆ PHI TUYẾN LIÊN TỤC TRÊN NỀN BIẾN PHÂN 43 3.1. Nội dung cơ bản của phương pháp biến phân ............................................ 44 3.1.1. Nguyên lý biến phân ....................................................................... 45 3.1.2. Bộ ñiều khiển LQR (Linear Quadratic Regulator) .......................... 46 3.1.3. ðiều kiện ñủ cho tính ổn ñịnh của hệ LQR ..................................... 46 3.1.4. Áp dụng nguyên tắc ñiều khiển LQR ñể ñiều khiển tối ưu hệ tuyến tính bám ổn ñịnh theo giá trị ñầu ra cho trước ......................... 47 3.2. Phương pháp ñề xuất ñể ñiều khiển dự báo với cửa sổ dự báo vô hạn cho hệ song tuyến liên tục không dừng, bám theo ñược giá trị ñầu ra cho trước ........................................................................................ 49 3.2.1. Tư tưởng chính của phương pháp ................................................... 49 3.2.2. Xây dựng thuật toán ñiều khiển ...................................................... 51 3.2.3. Khả năng xử lý ñiều kiện ràng buộc ................................................ 53 3.2.4. Chứng minh tính bám ổn ñịnh của phương pháp ñược ñề xuất ....... 54 3.2.5. Khả năng áp dụng cho hệ phi tuyến affine không dừng................... 56 v CHƯƠNG 4 58 THỰC NGHIỆM KIỂM CHỨNG CHẤT LƯỢNG PHƯƠNG PHÁP ðà ðỀ XUẤT TRÊN ðỐI TƯỢNG TRMS 58 4.1. Mô hình toán của hệ TRMS ....................................................................... 58 4.1.1. Mô tả vật lý hệ TRMS .................................................................... 58 4.1.2. Mô hình tựa Newton ....................................................................... 59 4.2. Thiết kế bộ ñiều khiển dự báo trên nền quy hoạch phi tuyến ..................... 64 4.2.1. Thiết kế và cài ñặt bộ ñiều khiển dự báo cho hệ TRMS .................. 64 4.2.2. Mô phỏng trên MatLab ................................................................... 65 4.3. Thiết kế bộ ñiều khiển dự báo trên nền biến phân (phương pháp ñiều khiển ñược luận án ñề xuất) .............................................................. 69 4.3.1. Thiết kế và cài ñặt bộ ñiều khiển .................................................... 69 4.3.2. Mô phỏng trên MatLab và so sánh, ñánh giá chất lượng ................. 70 4.4. Thí nghiệm trên mô hình vật lý của hệ TRMS ........................................... 74 4.4.1. Cài ñặt bộ quan sát Kalman ............................................................ 75 4.4.2. Các kết quả thực nghiệm ................................................................. 82 4.5. Kết luận chương 4 .................................................................................... 90 DANH MỤC CÔNG TRÌNH ðà CÔNG BỐ LIÊN QUAN ðẾN ðỀ TÀI ........................................................................................................... 92 TÀI LIỆU THAM KHẢO 93 Tiếng Việt ................................................................................................ 93 Tiếng Anh ................................................................................................ 93 PHỤ LỤC ...................................................................................................... 102 vi DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Các kí hiệu: Ký hiệu Diễn giải nội dung ñầy ñủ pN Miền (phạm vi) dự báo cN Miền (phạm vi) ñiều khiển ( )tl m Chiều dài của phần ñuôi của cánh tay ñòn (m ) ( )ml m Chiều dài của phần chính của cánh tay ñòn (m ) ( )bl m Chiều dài cánh tay ñòn ñối trọng (m ) ( )cbl m Khoảng giữa cánh tay ñòn ñối trọng và khớp (bộ nối) (m ) / s ( )ms tr m Bán kính của hộp bảo vệ cánh quạt chính/ñuôi ( )trm kg Khối lượng của ñộng cơ một chiều ñuôi (kg ) ( )mrm kg Khối lượng của ñộng cơ một chiều chính (kg ) ( )cbm kg Khối lượng của ñối trọng (kg ) ( )tm kg Khối lượng của phần ñuôi của cánh tay ñòn (kg ) ( )mm kg Khối lượng phần chính của cánh tay ñòn (kg ) ( )bm kg Khối lượng của cánh tay ñòn ñối trọng (kg ) ( )tsm kg Khối lượng của lưới chắn ñuôi (kg ) ( )msm kg Khối lượng của lưới chắn chính (kg ) gk Hệ số con quay vii / ( )av hR Ω ðiện trở phần ứng của ðCMC cánh quạt chính/ñuôi (Ω ) / ( )av hL mH ðiện cảm phần ứng của ðCMC cánh quạt chính/ñuôi (H ) ( )ak Nm Aϕ Từ thông 2 / ( )mr trJ gcm Mômen quán tính của ðCMC chính/ñuôi ( 2kgm s ) 2 / ( )mr trB kgm s Hệ số ma sát nhớt của ðCMC chính và ðCMC ñuôi ( 2kgm s ) v hF Hàm phi tuyến của lực khí ñộng học từ cánh quạt chính và cánh quạt ñuôi (N ) g Gia tốc trọng trường ( 2m s ) vJ Mômen quán tính của trục ngang (trục hoành) ( 2kgm ) , , /fric v fric hM M Mômen của lực ma sát trong mặt phẳng thẳng ñứng/ mặt phẳng ngang , , , , , , , ah v fhp fhn fvp fvn th v v m k k k k k k k k Các hệ số dương (Nm AWb ) v hω Vận tốc góc của cánh quạt chính và cánh quạt ñuôi (rad s ) /h vΩ Vận tốc góc của cánh tay ñòn TRMS trong mặt phẳng ngang/ mặt phẳng thẳng ñứng (rad s ) v hU ðiện áp ðCMC cánh quạt chính/ñuôi (V ) av hE Sức ñiện ñộng của ðCMC cánh quạt chính/ñuôi (V ) viii av hi Dòng ñiện phần ứng của ðCMC cánh quạt chính/ñuôi (A ) v hϕ Từ thông của ðCMC cánh quạt chính/ñuôi (Wb ) ev hM Mômen ñiện từ của ðCMC cánh quạt chính/ñuôi (Nm ) lv hM Mômen tải của ðCMC cánh quạt chính/ñuôi (Nm ) ,γ γm t Các hệ số biến dạng của chiều dài cánh tay ñòn chính và ñuôi vS Vận tốc góc của cánh tay ñòn TRMS trong mặt phẳng thẳng ñứng mà không bị ảnh hưởng bởi cánh quạt ñuôi (rad s ) hS Vận tốc góc của cánh tay ñòn TRMS trong mặt phẳng ngang mà không bị ảnh hưởng bởi cánh quạt chính (rad s ) ˆ ( )k i k+y ðầu ra dự báo ở thời ñiểm thứ k i+ so với thời ñiểm thứ k ( )k i k+u Tín hiệu ñiều khiển ở thời ñiểm thứ k i+ so với thời ñiểm thứ k refy Tín hiệu ñặt hoặc ñầu ra quá trình kx Vector của n giá trị trạng thái của hệ tính tại thời ñiểm t kT= ku Vector của m n≤ giá trị tín hiệu ñiều khiển (tín hiệu ñầu vào) ky Vector của r m≤ giá trị tín hiệu ñáp ứng (tín hiệu ñầu ra) ix k i+e Sai lệch T Chu kỳ trích mẫu tín hiệu ( )J U Hàm mục tiêu * U Nghiệm của bài toán tối ưu iq Trọng số sai lệch jr Trọng số ñiều khiển Q Ma trận trọng số sai lệch R Ma trận trọng số ñiều khiển k∆u Sai lệch tín hiệu ñiều khiển Θ Ma trận có tất cả các phần tử ñều bằng 0 I Ma trận ñơn vị δ Sai lệch giữa tham số trạng thái hiện thời và tham số trạng thái xác lập ρ Sai lệch giữa tín hiệu ñiều khiển hiện thời và tín hiệu ñiều khiển xác lập ( )s U Hàm phạt x Các chữ viết tắt: ANFIS Adaptive Neural Fuzzy Inference System BB Branch and Bound BFO Bacterial Foraging Optimization ðCMC ðộng cơ một chiều ðKDB ðiều khiển dự báo DMC Dynamical Matrix Control EKF Extended Kalman Filter FSMC Fuzzy Sliding Mode Control GA Genetic Algorithm GPC Generalized Predictive Control IIO Increment Input Output models IO Direct Input Output models IOM Input Output Models LP Linear programming LQG Linear Quadratic Gausian LQR Linear Quadratic Regulator LRPC Long-Range Predictive Control LTI Linear time - invariant xi MIMO Multiple Input Multiple Output MPC Model Prediction Control MPCS Thuật toán MPC NMPC Nonlinear Model Prediction Control NNs Neural Networks PIDAFC PID Active force control QP Quadratic Programing RHC Receding horizon control SISO Single Input Single Output SQP Sequential Quadratic Programing TRMS Twin rotor MIMO system UKF Unscented Kalman Filter xii DANH MỤC CÁC HÌNH ẢNH, ðỒ THỊ Hình 2.1. Cấu trúc cơ bản của một hệ thống ñiều khiển dự báo 37 Hình 2.2. Sơ ñồ khối của MPC ñể ñiều khiển hệ song tuyến 44 Hình 3.1: Hệ kín với bộ ñiều khiển phản hồi trạng thái tối ưu LQR 60 Hình 3.2: Mô tả tư tưởng của phương pháp 63 Hình 3.3. ðiều khiển dự báo hệ phi tuyến liên tục với cửa sổ dự báo vô hạn 68 Hình 4.1. Cấu hình vật lý của hệ TRMS 72 Hình 4.2. Cấu trúc bộ ðKDB áp dụng cho thuật toán SQP 79 Hình 4.3. ðáp ứng của góc chao dọc khi tín hiệu ñặt là xung vuông 79 Hình 4.4. ðáp ứng của góc ñảo lái khi tín hiệu ñặt là xung vuông 80 Hình 4.5. ðáp ứng của góc chao dọc khi tín hiệu ñặt là substep 80 Hình 4.6. ðáp ứng của góc ñảo lái khi tín hiệu ñặt là substep 81 Hình 4.7. Sơ ñồ cấu trúc bộ ðKDB phản hồi trạng thái ñể tín hiệu ra bám theo tín hiệu ñầu ra mẫu cho hệ TRMS 83 Hình 4.8. ðáp ứng ñầu ra góc ñảo lái khi tín hiệu ñặt là xung vuông 84 Hình 4.9. ðáp ứng ñầu ra góc chao dọc khi tín hiệu ñặt là xung vuông 84 Hình 4.10. ðáp ứng ñầu ra góc ñảo lái khi tín hiệu ñặt là substep 84 Hình 4.11. ðáp ứng ñầu ra góc chao dọc khi tín hiệu ñặt là substep 85 Hình 4.12. Lưu ñồ của phương pháp quan sát Kalman mở rộng 89 Hình 4.13. Sơ ñồ mô phỏng kiểm tra bộ quan sát trạng thái 92 xiii Hình 4.14. ðáp ứng ñầu ra bộ quan sát trạng thái so với ñáp ứng ñầu ra của mô hình của biến trạng thái thứ nhất ( h Ω ) 92 Hình 4.15. ðáp ứng ñầu ra bộ quan sát trạng thái so với ñáp ứng ñầu ra của mô hình của biến trạng thái thứ hai ( h S ) 93 Hình 4.16. ðáp ứng ñầu ra bộ quan sát trạng thái so với ñáp ứng ñầu ra của mô hình của biến trạng thái thứ ba ( h α ) 93 Hình 4.17. ðáp ứng ñầu ra bộ quan sát trạng thái so với ñáp ứng ñầu ra của mô hình của biến trạng thái thứ tư ( vΩ ) 94 Hình 4.18. ðáp ứng ñầu ra bộ quan sát trạng thái so với ñáp ứng ñầu ra của mô hình của biến trạng thái thứ tư năm ( vS ) 94 Hình 4.19. ðáp ứng ñầu ra bộ quan sát trạng thái so với ñáp ứng ñầu ra của mô hình của biến trạng thái thứ tư sáu ( vα ) 95 Hình 4.20. Hình ảnh thí nghiệm ñiều khiển hệ thống TRMS 96 Hình 4.21. Bộ ñiều khiển dSPACE1103 98 Hình 4.22. Phần mềm giám sát và ñiều khiển ControlDesk 99 Hình 4.23. ðáp ứng ñầu ra của góc chao dọc khi sử dụng bộ ñiều khiển dự báo tối ưu hóa trên nền qui hoạch phi tuyến 101 Hình 4.24. ðáp ứng ñầu ra của góc ñảo lái khi sử dụng bộ ñiều khiển dự báo tối ưu hóa trên nền qui hoạch phi tuyến 101 Hình 4.25. ðáp ứng ñầu ra của góc chao dọc khi sử dụng bộ ñiều khiển dự báo bám ổn ñịnh theo tín hiệu mẫu ở ñầu ra 102 Hình 4.26. ðáp ứng ñầu ra của góc ñảo lái khi sử dụng bộ ñiều khiển dự báo bám ổn ñịnh theo tín hiệu mẫu ở ñầu ra 102 1 MỞ ðẦU 1. Giới thiệu ðiều khiển dự báo dựa trên mô hình (Model Predictive Control - MPC), hay còn thường ñược gọi ngắn gọn là ñiều khiển dự báo, ra ñời vào cuối thập niên 70 và ñầu thập niên 80 của thế kỉ trước, là một xu hướng ñiều khiển ñược ưa chuộng. Trong hai thập kỷ trở lại ñây, ñiều khiển dự báo ñã có những bước phát triển rất ñáng kể, ñóng góp khá nhiều các phương pháp về mặt học thuật cũng như ñẩy mạnh khả năng ứng dụng của MPC trong thực tế, ... +av0))- 0.5*dah^2*H*sin(2*(av+av0)))/Jv; end sys=[dwh;dSh;dah;dwv;dSv;dav]; function sys = mdlOutputs(t,x,u) sys = x; 3. Code chương trình EKF cài ñặt bộ ñiều khiển dự báo cho ñối tượng TRMS chạy thực nghiệm. function Xe=mdlKalman(Uhp,Uvp,ah,av) %================= Cac hang so ================= lt=2.82e-1; % Chieu dai cua phan canh tay don duoi lm=2.46e-1; % Chieu dai cua phan canh tay don chinh Jv=5.26e-2; % Mo men quan tinh cua truc ngang D=5.52877e-2; E=5.85764e-3; F=5.85077e-3; 123 g=9.81; % Gia toc trong truong A=9.82347e-2; B=1.135659e-1; C=2.21788e-2; H=4.94734e-2; Jtr=3.1432e-5; % Mo men quan tinh cua dong co duoi/tai Rah=8; kthp=5e-8; % Th=kthp*sign(wh)*(wh)^2 kthn=4.41e-8; % Th=kthn*sign(wh)*(wh)^2 Btr=2.3e-5; % He so ma sat nhot cua rotor duoi Jmr=2.0098e-4; % Mo men quan tinh cua dong co chinh/tai Rav=8; ktvp=5.6e-7; % Th=ktvp*sign(wv)*(wv)^2 ktvn=5.1e-7; % Th=ktvn*sign(wv)*(wv)^2 Bmr=2.97e-5; % He so ma sat nhot cua rotor chinh av0=-6.048e-1; % Goc chao doc ban dau kfhp=2.1377e-6; % Fh(wh)=kfhp*sign(wh)*(wh)^2 kfhn=1.9056e-6; % Fh(wh)=kfhn*sign(wh)*(wh)^2 kfvp=1.9506e-5; % Fv(wv)=kfvp*sign(wv)*(wv)^2 kfvn=1.1012e-5; % Fv(wv)=kfvn*sign(wv)*(wv)^2 kvfh=4.91e-3; % Ma sat nhot theo phuong ngang kvfv=5.47e-3; % Ma sat nhot theo phuong thang dung kcfh=3.96e-5; kcfv=1.5e-4; kchp=5.60e-3; % He so ma sat (cable force coefficient) kchn=5.60e-3; % He so ma sat (cable force coefficient) km=0.00023; % Anh huong cua rotor chinh len goc theo phuong ngang kt=0.000026; % Anh huong cua rotor duoi len goc theo phuong thang dung TC=0.0202; % He so mo men xoan (mo men xoan khong doi) 124 k1=8.5; % He so giao dien theo phuong thang dung (doc) k2=6.5; % He so giao dien ngang kg=0.2; Ts=0.2; nx=6; nu=2; ny=2; %================= Cac bien so ================ persistent Xp Pk if isempty(Xp) Xp=zeros(nx,1); end if isempty(Pk) Pk=zeros(nx,nx); end ahp=Xp(3,1); avp=Xp(6,1); whp=Xp(1,1); Shp=Xp(2,1); wvp=Xp(4,1); Svp=Xp(5,1); Q=eye(nx,nx)*0.01; R=eye(ny,ny)*0.01; As=zeros(nx,nx); Bs=zeros(nx,nu); Cs=[0 0 1 0 0 0;0 0 0 0 0 1]; if whp>=0 whn=whp+Ts*(TC*(k2*Uhp-TC*whp)/Rah-Btr*whp-kthp*whp^2)/Jtr; Shn=Shp+Ts*(lt*kfhp*whp^2*cos(avp+av0)-kvfh*Shp-... 125 kchp*ahp)/(D*(cos(avp+av0))^2+E*(sin(avp+av0))^2+F)-... Ts*kvfh*km*wvp*cos(avp+av0)/(D*(cos(avp+av0))^2+E*... (sin(avp+av0))^2+F)^2; else whn=whp+Ts*(TC*(k2*Uhp-TC*whp)/Rah-Btr*whp+kthn*whp^2)/Jtr; Shn=Shp+Ts*(-lt*kfhn*whp^2*cos(avp+av0)-kvfh*Shp-... kchp*ahp)/(D*(cos(avp+av0))^2+E*(sin(avp+av0))^2+F)-... Ts*kvfh*km*wvp*cos(avp+av0)/(D*(cos(avp+av0))^2+E*... (sin(avp+av0))^2+F)^2; end if wvp>=0 wvn=wvp+Ts*(TC*(k1*Uvp-TC*wvp)/Rav-Bmr*wvp- ktvp*wvp^2)/Jmr; Svn=Svp+Ts*(lm*kfvp*wvp^2-kvfv*Svp-kvfv*kt*whp/Jv+... g*((A-B)*cos(avp+av0)-C*sin(avp+av0)))/Jv; else wvn=wvp+Ts*(TC*(k1*Uvp-TC*wvp)/Rav- Bmr*wvp+ktvn*wvp^2)/Jmr; Svn=Svp+Ts*(-lm*kfvn*wvp^2-kvfv*Svp-kvfv*kt*whp/Jv+... g*((A-B)*cos(avp+av0)-C*sin(avp+av0)))/Jv; end ahn=ahp+Ts*Shp+Ts*km*wvp*cos(avp+av0)/... (D*(cos(avp+av0))^2+E*(sin(avp+av0))^2+F); avn=avp+Ts*Svp+Ts*kt*whp/Jv; DEN=D*(cos(avp+av0))^2+E*(sin(avp+av0))^2+F; if whp>=0 As(1,1)=1-Ts*(Btr+kthp*whp+TC^2/Rah)/Jtr; As(2,1)=Ts*lt*kfhp*whp*cos(avp+av0)/DEN; else As(1,1)=1-Ts*(Btr-kthn*whp+TC^2/Rah)/Jtr; 126 As(2,1)=-Ts*lt*kfhn*whp*cos(avp+av0)/DEN; end As(2,2)=1-Ts*kvfh/DEN; if ahp>=0 As(2,3)=-Ts*kchp/DEN; else As(2,3)=-Ts*kchn/DEN; end As(2,4)=-Ts*kvfh*km*cos(avp+av0)/DEN^2; As(3,2)=Ts; As(3,3)=1; As(3,4)=Ts*km*cos(avp+av0)/DEN; if wvp>=0 As(4,4)=1-Ts*(Bmr+ktvp*wvp+TC^2/Rav)/Jmr; As(5,4)=Ts*lm*kfvp*wvp/Jv; else As(4,4)=1-Ts*(Btr-ktvn*wvp+TC^2/Rav)/Jmr; As(5,4)=-Ts*lm*kfvn*wvp/Jv; end As(5,1)=-Ts*kvfv*kt/(Jv^2); As(5,5)=1-Ts*kvfv/Jv; if avp==0 As(5,6)=Ts*g*((A-B)*cos(avp+av0)-C*sin(avp+av0))/Jv; else As(5,6)=Ts*g*((A-B)*cos(avp+av0)-C*sin(avp+av0))/(Jv*avp); end As(6,1)=Ts*kt/Jv; As(6,5)=Ts; As(6,6)=1; 127 Bs(1,1)=Ts*TC*k2/(Jtr*Rah); Bs(4,2)=Ts*TC*k1/(Jmr*Rav); % ============Buoc du bao Xp(3,1)=ahn; Xp(6,1)=avn; Xp(1,1)=whn; Xp(2,1)=Shn; Xp(4,1)=wvn; Xp(5,1)=Svn; Pk=As*Pk*As'+Q; % ================== Buoc cap nhap Lk=Pk*Cs'*inv(Cs*Pk*Cs'+R); Xp=Xp+Lk*([ah;av]-Cs*Xp); Pk=(eye(nx,nx)-Lk*Cs)*Pk; Xe=Xp; function OUTU =UKF(INU) Uhp=INU(1); %Dau vao doi tuong (bien duoc dieu khien) Uvp=INU(2); %Dau vao doi tuong (bien duoc dieu khien) ah=INU(3); %Dau ra doi tuong (bien duoc dieu khien) av=INU(4); %Dau ra doi tuong (bien duoc dieu khien) ahp=INU(5); %Dau ra doi tuong truoc do avp=INU(6); %Dau ra doi tuong truoc do whp=INU(7); %Trang thai duoc uoc luong truoc do Shp=INU(8); %Trang thai duoc uoc luong truoc do wvp=INU(9); %Trang thai duoc uoc luong truoc do Svp=INU(10); %Trang thai duoc uoc luong truoc do nx=6; %So bien trang thai ny=2; %So bien dau vao ny=2; %So bien dau ra 128 Pkpv=INU(13:12+nx*nx); %Dang vector cua P(k-1|k-1) Pkp=zeros(nx,nx); %Dang matran cua P(k-1|k-1) for i=1:nx Pkp(:,i)=Pkvp([1:nx]+(i-1)*nx,1); end % Cac tham so TRMS lts=2.82e-1; % Chieu dai cua phan canh tay don duoi lm=2.46e-1; % Chieu dai cua phan canh tay don chinh Jv=5.26e-2; % Mo men quan tinh cua truc ngang D=5.52877e-2; E=5.85764e-3; F=5.85077e-3; g=9.81 % Gia toc trong truong A=9.82347e-2; B=1.135659e-1; C=2.21788e-2; H=4.94734e-2; Jtr=3.1432e-5; % Mo men quan tinh cua dong co duoi/tai Rah=8; % Dien tro phan ung Lah=8.6e-4; % Dien cam phan ung kthp=5e-8; % Th=kthp*sign(wh)*(wh)^2 kthn=4.41e-8; % Th=kthn*sign(wh)*(wh)^2 Btr=2.3e-5; % He so ma sat nhot cua rotor duoi Jmr=2.0098e-4; % Mo men quan tinh cua dong co chinh/tai Rav=8; % Dien tro phan ung Lav=8.6e-4; % Dien cam phan ung ktvp=5.6e-7; % Th=ktvp*sign(wv)*(wv)^2 ktvn=5.1e-7; % Th=ktvn*sign(wv)*(wv)^2 Bmr=2.97e-5; % He so ma sat nhot cua rotor chinh 129 av0=-6.048e-1; % Goc chao doc ban dau kfhp=2.1377e-6; % Fh(wh)=kfhp*sign(wh)*(wh)^2 kfhn=1.9056e-6; % Fh(wh)=kfhn*sign(wh)*(wh)^2 kfvp=1.9506e-5; % Fv(wv)=kfvp*sign(wv)*(wv)^2 kfvn=1.1012e-5; % Fv(wv)=kfvn*sign(wv)*(wv)^2 kvfh=4.91e-3; % Ma sat nhot theo phuong ngang kvfv=5.48e-3; % Ma sat nhot theo phuong thang dung kchp=5.60e-3; % He so ma sat (cable force coefficient) km=0.00023; % Anh huong cua rotor chinh len goc theo phuong ngang kt=0.000026; % Anh huong cua rotor duoi len goc theo phuong thang dung TC=0.0202; % He so mo men xoan (mo men xoan khong doi) k1=8.5; % He so giao dien theo phuong thang dung (doc) k2=6.5; % He so giao dien ngang Ts=0.2; % Thoi gian lay mau % Gia tri trung binh va hiep phuong sai Ew=[1 0.1 0.032 1 0.1 0.032] % Vector trung binh cua nhieu qua trinh Ev=ones(ny,1)*0.032; % Vector trung binh cua nhieu do duoc Q=eye(nx,nx)*0.4; % Ma tran hiep phuong sai cua nhieu qua trinh R=eye(ny,ny)*0.4; % Ma tran hiep phuong sai cua nhieu do duoc % Cac tham so UKF a1=0.001; % Tham so alpha cua UKF bet=2; % Tham so beta cua UKF kai=0; % Tham so kai cua UKF lam=a1^2*(2*nx+kai)-2*nx; %Tham so lamda cua UKF % Trang thai tang (trang thai duoc bo sung) va hiep phuong sai Xkp=[whp;Shp;ahp;wvp;Svp;avp]; % x(k-1|k-1) Xkpa=zeros(2*nx,1); % xa(k-1|k-1) Xkpa(1:nx,1)=Xkp; Xkpa(nx+1:2*nx)=Ew; 130 Pkpa=zeros(2*nx,2*nx); % Pa(k-1|k-1) Pkpa(1+nx:2*nx,1+nx:2*nx)=Q; % Dang 4*nx+1 diem sigma Ksip=zeros(2*nx,4*nx+1); % Xi(k-1|k-1) Ksip(:,1)=Xkpa; % Tim can bac hai cua ma tran Pkpa bang viec cheo hoa gia tri rieng va vec to rieng VPkp=zeros(nx,nx); DPkp=zeros(nx,nx); [VPkp,DPkp]=myeig(Pkp); DPkpsqrt=sqrt(abs(DPkp)); YPkp=VPkp*DPkpsqrt*inv(VPkp); YPkpa=[YPkp zeros(nx,nx); zeros(nx,nx) sqrt(Q)]; %====================================================== ============== Pkpasqr=sqrt(2*nx+lam)*YPkpa; for i=1:2*nx Ksip(:,i+1)=Xkpa+Pkpasqr(:,i); Ksip(:,i+2*nx+1)=Xkpa-Pkpasqr(:,i); end % Su lan truyen diem sigma thong qua cac phuong trinh khong gian trang thai % roi rac phi tuyen cua TRMS Ksi=zeros(nx,4*nx+1); for i=4*nx+1 whp=Ksip(1,i); Shp=Ksip(2,i); ahp=Ksip(3,i); wvp=Ksip(4,i); Svp=Ksip(5,i); avp=Ksip(6,i); 131 if whp>=0 whn=whp+Ts*(TC*(k2*Uhp-TC*whp)/Rah-Btr*whp-kthp*whp^2)/Jtr; Shn=Shp+Ts*(lts*kfhp*whp^2*cos(avp+av0)-kvfh*Shp-kchp*... ahp)/(D*(cos(avp+av0))^2+E*(sin(avp+av0))^2+F)-... Ts*kvfh*km*wvp*cos(avp+av0)/(D*(cos(avp+av0))^2+... E*(sin(avp+av0))^2+F)^2; else whn=whp+Ts*(TC*(k2*Uhp-TC*whp)/Rah-Btr*whp+kthn*whp^2)/Jtr; Shn=Shp+Ts*(-lts*kfhn*whp^2*cos(avp+av0)-kvfh*Shp-kchp*... ahp)/(D*(cos(avp+av0))^2+E*(sin(avp+av0))^2+F)-... Ts*kvfh*km*wvp*cos(avp+av0)/(D*(cos(avp+av0))^2+... E*(sin(avp+av0))^2+F)^2; end if wvp>=0 wvn=wvp+Ts*(TC*(k1*Uvp-TC*wvp)/Rav-Bmr*wvp-ktvp*wvp^2)/Jmr; Svn=Svp+Ts*(lm*kfvp*wvp^2-kvfv*Svp-kvfv*kt*whp/Jv+... g*((A-B)*cos(avp+av0)-C*sin(avp+av0)))/Jv; else wvn=wvp+Ts*(TC*(k1*Uvp-TC*wvp)/Rav-Bmr*wvp+ktvn*wvp^2)/Jmr; Svn=Svp+Ts*(-lm*kfvp*wvp^2-kvfv*Svp-kvfv*kt*whp/Jv+... g*((A-B)*cos(avp+av0)-C*sin(avp+av0)))/Jv; end ahn=ahp+Ts*Shp+Ts*km*wvp*cos(avp+av0)/(D*(cos(avp+av0))^2+... E*(sin(avp+av0))^2+F); avn=avp+Ts*Svp+Ts*kt*whp/Jv; Ksi(:,i)=[whn;Shn;ahn;wvn;Svn;avn]+Ksip(nx+1:2*nx,i); % Xi(k|k-1) end % Trong so cac diem sigma duoc su dung cau truc trang thai du bao va hiep % phuong sai 132 Ws0=lam/(2*nx+lam); % Trong so cua trang thai du bao Wc0=lam/(2*nx+lam)+(1-a1^2+bet); % Trong so cua hiep phuong sai duoc DB Wi=1/(2*(2*nx+lam)); % Trong so cua ca hai Xk=Ws0*Ksi(:,1)+Wi*sum(Ksi(:,2:4*nx+1),2); % x(k|k-1) Pk=zeros(nx,nx); for i=1:4*nx Pk=Pk+Wi*((Ksi(:,i+1)-Xk)*(Ksi(:,i+1)-Xk)'); end Pk=Pk+Wc0*(Ksi(:,1)-Xk)*(Ksi(:,1)-Xk)'; % Giai doan Cap nhat cua EKF lam=a1^2*(nx+ny+kai)-nx-ny; % Tham so lamda cua UKF % Trang thai tang (trang thai duoc bo sung) va hiep phuong sai Xka=zeros(nx+ny,1); % xa(k|k-1) Xka(1:nx,1)=Xk; Xka(nx+1:nx+ny)=Ev; Pka=zeros(nx+ny,nx+ny); % Pa(k|k-1) Pka(1:nx,1:nx)=Pk; Pka(1+nx:nx+ny,1+nx:nx+ny)=R; % Dang 4*nx+1 diem sigma Ksiy=zeros(nx+ny,2*(nx+ny)+1); % Xi(k|k-1) Ksiy(:,1)=Xka; % Tim can bac hai cua ma tran Pkpa bang viec cheo hoa gia tri rieng va vec to rieng VPk=zeros(nx,nx); DPk=zeros(nx,nx); [VPk,DPk]=myeig(Pk); DPksqrt=sqrt(abs(DPk)); YPk=VPk*DPksqrt*inv(VPk); YPka=[YPk zeros(nx,ny);zeros(ny,nx) sqrt(R)]; 133 %====================================================== ============ Pkasqr=sqrt(nx+ny+lam)*YPka; for i=1:(nx+ny) Ksiy(:,i+1)=Xka+Pkasqr(:,i); Ksiy(:,i+nx+ny+1)=Xka-Pkasqr(:,i); end Cs=[0 0 1 0 0 0;0 0 0 0 0 1]; gam=zeros(ny,2*(nx+ny)+1); % Gama(k) for i=1:2*(nx+ny)+1 gam(:,i)=Cs*Ksiy(1:nx,i)+Ksiy(nx+1:nx+ny,i); end % Trong so cac diem sigma duoc su dung cau truc trang thai du bao va hiep phuong sai Ws0=lam/(nx+ny+lam); % Trong so cua trang thai du bao Wc0=lam/(nx+ny+lam)+(1-a1^2+bet);% Trong so cua hiep phuong sai duoc du bao Wi=1/(2*(nx+ny+lam)); % Trong so cua ca hai Yh=Ws0*gam(:,1)+Wi*sum(gam(:,2:2*(nx+ny)+1),2); % yhat(k) Pzz=zeros(ny,ny); Pxz=zeros(nx,ny); for i=1:2*(nx+ny) Pzz=Pzz+Wi*(gam(:,i+1)-yh)*(gam(:,i+1)-yh)'; Pxz=Pxz+Wi*(Ksiy(1:nx,i+1)-Xk)*(gam(:,i+1)-yh)'; end Pzz=Pzz+Wc0*(gam(:,1)-yh)*(gam(:,1)-yh)'; Pxz=Pxz+Wc0*(Ksiy(1:nx,1)-Xk)*(gam(:,1)-yh)'; Lk=Pxz*inv(Pzz); Xkn=Xk+Lk*([ah;av]-yh); Pkn=Pk-Lk*Pzz*Lk'; 134 % Thay doi ma tran duong cheo Pkn ben trong dang vector (Pknv) Pknv=zeros(nx*nx,1); for i=1:nx Pknv([1:nx]+(i-1)*nx,1)=Pkn(:,i); end OUTU=[Xkn;Pknv]; function [V,D]=myeig(A) L=length(A); Q=zeros(L,L); V=eye(V,V); for i=1:L^3 [Q,R]=QRdec(A); A=R*Q; V=V*Q; end D=zeros(L,L); for i=1:L D(i,i)=A(i,i); end function [Q,R]=QRdec(A) L=length(A); U=zeros(L,L); Q=zeros(L,L); if mynorm(A(:,1))~=0 Q(:,1)=A(:,1)/mynorm(A(:,1)); end for i=1:L for j=1:i-1 135 if mynorm(Q(:,j))~=0 U(:,i)=U(:,i)-Q(:,j)'*A(:,i)/(Q(:,j)'*Q(:,j))*Q(:,j); end end U(:,i)=U(:,i)+A(:,i); if mynorm(U(:,i))~=0 Q(:,i)=U(:,i)/mynorm(U(:,i)); end end R=Q'*A; function [Y]=mynorm(X) Y=sqrt(sum(X.^2)); #define S_FUNCTION_NAME TRMS_Estimation_sf #define S_FUNCTION_LEVEL 2 #include "simstruc.h" #include "math.h" #include "codegen\lib\mdlKalman\mdlKalman.h" static void mdlInitializeSizes(SimStruct *S) {ssSetNumSFcnParams(S, 0); if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) { return; /* Parameter mismatch will be reported by Simulink */} ssSetNumContStates(S, 0); ssSetNumDiscStates(S, 6); if (!ssSetNumInputPorts(S, 4)) return; ssSetInputPortWidth(S, 0, 1); ssSetInputPortWidth(S, 1, 1); ssSetInputPortWidth(S, 2, 1); ssSetInputPortWidth(S, 3, 1); 136 ssSetInputPortSampleTime(S, 0,CONTINUOUS_SAMPLE_TIME); ssSetInputPortSampleTime(S, 1,CONTINUOUS_SAMPLE_TIME); ssSetInputPortSampleTime(S, 2,CONTINUOUS_SAMPLE_TIME); ssSetInputPortSampleTime(S, 3,CONTINUOUS_SAMPLE_TIME); ssSetInputPortOffsetTime(S, 0, 0.0); ssSetInputPortOffsetTime(S, 1, 0.0); ssSetInputPortOffsetTime(S, 2, 0.0); ssSetInputPortOffsetTime(S, 3, 0.0); ssSetInputPortDirectFeedThrough(S, 0,0); ssSetInputPortDirectFeedThrough(S, 1,0); ssSetInputPortDirectFeedThrough(S, 2,0); ssSetInputPortDirectFeedThrough(S, 3,0); if (!ssSetNumOutputPorts(S,1)) return; ssSetOutputPortWidth(S, 0, 6); ssSetOutputPortSampleTime(S, 0,CONTINUOUS_SAMPLE_TIME); ssSetOutputPortOffsetTime(S, 0,0.0); ssSetNumSampleTimes(S, 2); ssSetSimStateCompliance(S, USE_DEFAULT_SIM_STATE); ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE|SS_OPTION_PORT_SAMPLE_ TIMES_ASSIGNED); static void mdlInitializeSampleTimes(SimStruct *S) { ssSetSampleTime(S, 0, CONTINUOUS_SAMPLE_TIME); ssSetOffsetTime(S, 0, 0.0); ssSetSampleTime(S, 1,0.2); ssSetOffsetTime(S, 1, 0.0); ssSetModelReferenceSampleTimeDefaultInheritance(S); } #define MDL_INITIALIZE_CONDITIONS static void mdlInitializeConditions(SimStruct *S) { int i; 137 real_T *xdisc = ssGetRealDiscStates(S); for (i = 0; i < 6; i++) { *xdisc++ = 0.0; } } #define MDL_UPDATE void mdlUpdate(SimStruct *S, int_T tid) { real_T *Xe = ssGetRealDiscStates(S); InputRealPtrsType uPtrs1 = ssGetInputPortRealSignalPtrs(S,0); InputRealPtrsType uPtrs2 = ssGetInputPortRealSignalPtrs(S,1); InputRealPtrsType uPtrs3 = ssGetInputPortRealSignalPtrs(S,2); InputRealPtrsType uPtrs4 = ssGetInputPortRealSignalPtrs(S,3); if (ssIsSampleHit(S, 1, tid)) mdlKalman((*uPtrs1[0]),(*uPtrs2[0]),(*uPtrs3[0]),(*uPtrs4[0]),Xe);} static void mdlOutputs(SimStruct *S, int_T tid) { int i; real_T *Out = ssGetOutputPortRealSignal(S,0); real_T *Xe = ssGetRealDiscStates(S); for ( i=0;i<6;i++) { *Out++= *Xe++; } static void mdlTerminate(SimStruct *S)
File đính kèm:
- luan_an_nghien_cuu_xay_dung_thuat_toan_dieu_khien_du_bao_the.pdf
- NCS. Nguyen Thi Mai Huong 02-2016.jpg
- Thong tin LA NCS Nguyen Thi Mai Huong 02-2016 DHTN Jun.doc
- Tom tat Tieng Anh NCS Nguyen Thi Mai Huong 02-2016.pdf
- Tom tat Tieng Viet NCS Nguyen Thi Mai Huong 02-2016 DHTN.pdf