Đề tài Về một phương pháp tổng hợp hệ điều khiển mờ dùng mạng nơron ứng dụng trong công nghiệp

MỞ ĐẦU Vấn đề điều khiển ổn định các hệ động học phi tuyến có phương trình động học chuyển được về dạng tuyến tính hóa phản hồi trạng thái (state feedback linearizable) hoặc tuyến tính hóa phản hồi vào-ra (input-output feedback linearizable) có chứa các thành phần không rõ nhằm bám theo tín hiệu mẫu cho trước với sai số bị chặn là mục tiêu giải quyết của luận án. Đây là vấn đề phức tạp do đặc tính phi tuyến của động học cũng như của các thành phần chưa biết trong phương trình động học của đối tượng. Các công trình nghiên cứu hiện nay chủ yếu tìm cách giải quyết các vấn đề về điều khiển ổn định và bền vững hệ phi tuyến có các thành phần bất định dựa trên điều khiển thích nghi, tuy nhiên các phương pháp còn khá phức tạp và chưa chỉ rõ khả năng và mô hình áp dụng trên các hệ thống điều khiển công nghiệp. Nhằm đóng góp, đưa ra một phương pháp tổng hợp có khả năng áp dụng trên các hệ thống điều khiển tự động tiên tiến hoạt động trong các phân cấp mạng công nghiệp, tác giả trình bày một phương pháp tổng hợp mới dựa trên ý tưởng thay thế ước lượng (không cần gần đúng như các phương pháp hiện nay) các hàm trạng thái chưa biết bằng các hàm số đã biết, từ đó tìm cách xấp xỉ sai lệch chung do phép thay thế ước lượng gây nên và thiết kế thành phần bù liên tục nhằm triệt tiêu tác động này. Đặc điểm của phương pháp là sử dụng bộ xấp xỉ vạn năng mờ nơron (xấp xỉ sai lệch nêu trên) làm thành phần bù trong luật điều khiển phản hồi. Để xây dựng được một cơ sở toán học chứng minh cho phương pháp đề xuất, luận án lần lượt phát triển phương pháp cho các trường hợp bù tĩnh (luật điều khiển phản hồi tĩnh) và trường hợp bù động (luật điều khiển thích nghi). Ngoài ra luận án còn phân tích và giải quyết một số vấn đề khác liên quan đến các điều kiện giới hạn của quỹ đạo trạng thái và đầu vào của hệ phi tuyến cũng như mở rộng phương pháp trong trường hợp hệ khả tuyến tính hóa phản hồi chặt (strict-feedback linearizable system). Ngoài cơ sở lý thuyết được chứng minh, luận án cũng phân tích và chỉ ra khả năng áp dụng phương pháp trên các hệ thống điều khiển công nghiệp (PLC, IPC) thông qua thử nghiệm trên một mô hình phần mềm ứng dụng được xây dựng cho hệ thống SIMATIC S7 của hãng Siemens. - ii - Bố cục của luận án Luận án chia thành 4 chương. Chương 1 trình bày tổng quan các vấn đề trong điều khiển các hệ phi tuyến và ứng dụng, từ đó đưa ra mục tiêu và nội dung nghiên cứu của luận án giới hạn vào các hệ khả tuyến tính hóa phản hồi có chứa các thành phần không rõ trong bài toán bám theo tín hiệu mẫu bị chặn cho trước. Chương 2 trình bày chi tiết vấn đề cần giải quyết cũng như tổng quan các nghiên cứu và các kết quả đã đạt được đến nay. Dựa trên phương pháp thiết kế định nghĩa hệ sai số thỏa mãn giả thiết ban đầu, luận án xây dựng một số cơ sở toán học (các định lý và bổ đề) để hình thành phương pháp mới theo hướng đơn giản và có khả năng ứng dụng – được gọi là phương pháp thay thế ước lượng hàm trạng thái – làm tiền đề phát triển các bộ điều khiển ổn định tĩnh và động trong các chương tiếp theo. Trong Chương 3, tác giả giới thiệu một số cơ sở toán học nhằm đưa ra luật điều khiển tĩnh dùng bộ xấp xỉ vạn năng mờ nơron làm thành phần bù liên tục để nghiệm của hệ sai số vòng kín bị chặn tới hạn đều (uniformly ultimately bounded) cũng như trình bày phương pháp tính toán, xác định tham số điều khiển và các điều kiện cần trong phương pháp để quỹ đạo trạng thái và tín hiệu điều khiển bị chặn theo thiết kế. Ngoài ra Chương 3 còn tiếp tục mở rộng phương pháp cho thiết kế bộ điều khiển ổn định tĩnh các hệ chuyển động hỗn loạn (chaotic systems) có phương trình động học ở dạng tuyến tính hóa phản hồi chặt. Chương 4 tập trung vào giải quyết vấn đề bù động dựa trên luật điều khiển tĩnh và sử dụng bộ xấp xỉ mờ nơron để xây dựng được bộ điều khiển thích nghi ổn định cũng như trình bày mô hình phần mềm ứng dụng. Nhằm chứng minh tính khả thi của phương pháp trong phát triển bộ điều khiển với thành phần bù động, luận án sử dụng điều khiển thích nghi trực tiếp áp dụng phương pháp chỉnh định để chỉnh định tham số của bộ xấp xỉ mờ nơron trong các trường hợp bộ xấp xỉ tuyến tính và phi tuyến đối với tham số. Tác giả cũng đưa ra mô hình phần mềm ứng dụng cho phép áp dụng các kiểu điều khiển tĩnh và động trên các hệ thống điều khiển công nghiệp và phân tích khả năng ứng dụng trên hệ thống tự động hóa SIMATIC S7 của hãng Siemens. Phần cuối là kết luận và kiến nghị của luận án, tiếp theo sau là Phụ lục bao gồm một số chứng minh và thiết kế. - iii - MỤC LỤC CHưƠNG 1: TỔNG QUAN . 1 1.1. Đặt vấn đề . 1 1.2. Mục tiêu và nhiệm vụ nghiên cứu 9 CHưƠNG 2: ĐIỀU KHIỂN ỔN ĐỊNH CÁC HỆ THỐNG KHẢ TUYẾN TÍNH HÓA PHẢN HỒI BẰNG PHưƠNG PHÁP THAY THẾ ưỚC LưỢNG HÀM TRẠNG THÁI . . 11 2.1. Giới thiệu chung . 11 2.1.1. Đặt vấn đề . 11 2.1.2. Biểu diễn các hệ thống khả tuyến tính hóa phản hồi 12 2.1.3. Vấn đề trong điều khiển ổn định các hệ khả tuyến tính hóa phản hồi trạng thái . 15 2.2. Điều khiển ổn định các hệ thống khả tuyến tính hóa phản hồi trạng thái bằng phương pháp thay thế ước lượng hàm trạng thái . 21 2.2.1. Cơ sở toán học của phương pháp . 21 2.2.2. Tính bền vững của hệ vòng kín trong phương pháp . 31 2.3. Điều khiển ổn định các hệ thống khả tuyến tính hóa phản hồi vào- ra bằng phương pháp thay thế ước lượng hàm trạng thái 44 2.3.1. Bài toán điều khiển và cơ sở toán học 44 2.3.2. Điều khiển ổn định bằng phương pháp thay thế ước lượng hàm trạng thái . 47 2.3.3. Tính bền vững của hệ vòng kín đối với thành phần không rõ trong phương trình động học 51 2.4. Tổng hợp thiết kế bộ điều khiển tĩnh ổn định . 55 2.5. Kết luận . 56 CHưƠNG 3: PHưƠNG PHÁP THAY THẾ ưỚC LưỢNG HÀM TRẠNG THÁI DÙNG BỘ XẤP XỈ MỜ NƠRON 58 3.1. Đặt vấn đề và cơ sở lý thuyết xây dựng phương pháp . 58 3.1.1. Giới thiệu chung 58 3.1.2. Bộ xấp xỉ vạn năng 59 3.1.3. Cơ sở toán học xây dựng các bộ xấp xỉ dùng hệ mờ và mạng nơron . 60 3.2. Thay thế ước lượng hàm trạng thái . 69 3.2.1. Cơ sở toán học của phương pháp . 69 3.2.2. Xác định tham số bộ điều khiển 74 3.2.3. Mô phỏng điều khiển tay rôbốt . 79 3.3. Thay thế ước lượng hàm trạng thái mở rộng trong điều khiển ổn định các hệ khả tuyến tính hóa phản hồi chặt . 84 - iv - 3.3.1. Phương pháp cuốn chiếu 84 3.3.2. Phương pháp thay thế ước lượng hàm trạng thái khi hệ chứa các thành phần không rõ 85 3.4. Tổng hợp và kết luận . 93 CHưƠNG 4: ĐIỀU KHIỂN THÍCH NGHI TRỰC TIẾP DÙNG HỆ MỜ NƠRON TRONG PHưƠNG PHÁP THAY THẾ ưỚC LưỢNG HÀM TRẠNG THÁI . 96 4.1. Giới thiệu chung . 96 4.1.1. Sự cần thiết phát triển bộ điều khiển thích nghi . 96 4.1.2. Vấn đề và cơ sở toán học xây dựng bộ điều khiển thích nghi trực tiếp . 98 4.2. Điều khiển mờ nơron thích nghi trực tiếp các hệ thống khả tuyến tính hóa phản hồi . 101 4.2.1. Hệ khả tuyến tính hóa phản hồi trạng thái . 101 4.2.2. Hệ khả tuyến tính hóa phản hồi vào-ra 108 4.3. Tổng hợp thiết kế bộ điều khiển thích nghi trực tiếp ổn định . 110 4.4. Mô hình điều khiển thích nghi trên hệ thống điều khiển công nghiệp 111 4.4.1. Giới thiệu chung 111 4.4.2. Mô hình phần mềm ứng dụng và khả năng áp dụng trên hệ thống điều khiển công nghiệp . 113 4.5. Kết luận . 121 KẾT LUẬN VÀ KIẾN NGHỊ . 122 CÁC CÔNG TRÌNH CÔNG BỐ LIÊN QUAN CỦA TÁC GIẢ . 124 TÀI LIỆU THAM KHẢO . 125 PHỤ LỤC 134 5.1. Một số thuật ngữ tiếng Anh 134 5.2. Bổ đề 1 trang 23 136 5.3. Bổ đề 3 trang 40 và kết quả (2-64) . 139 5.4. Tuyến tính hóa phương trình động lực học (3-23) . 143 5.5. Chương trình mô phỏng ví dụ điều khiển tay rôbốt trang 79 . 145 5.6. Bổ đề 6 trang 100 152 5.7. Một số môđun phần mềm trong mô hình phần mềm ứng dụng 155

doc205 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2966 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Về một phương pháp tổng hợp hệ điều khiển mờ dùng mạng nơron ứng dụng trong công nghiệp, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
on”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ II về Tự động hóa, tr.220– 229. Huỳnh Thái Hoàng, Nguyễn Thị Phương Hà, Nguyễn Thúc Loan (2002), “Nhận dạng hệ hệ phi tuyến dùng logic mờ”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ V về Tự động hóa, tr.137–143. Huỳnh Thái Hoàng, Nguyễn Thúc Loan, Nguyễn Phương Hà (2005), “Điều khiển mờ thích nghi trực tiếp hệ phi tuyến MIMO có đặc tính động học không”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ VI về Tự động hóa, tr.239–244. - 126 - [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24]  Nguyễn Duy Hưng (chủ nhiệm đề tài) và các cộng sự (2001), Nghiên cứu, thiết kế hệ điều khiển mờ xây dựng trên cơ sở PLC ứng dụng trong công nghiệp, Báo cáo kỹ thuật Đề tài cấp bộ (Bộ công nghiệp), Hà Nội. Nguyễn Duy Hưng, Phạm Hùng Cường, Nguyễn Nam Hải (2002), “Hệ thống điều khiển thời gian thực trên nền máy tính PC và triển vọng ứng dụng”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ V về Tự động hóa, tr.157–162. Nguyễn Duy Hưng (chủ nhiệm đề tài) và các cộng sự (2004), Nghiên cứu, xây dựng hệ điều khiển Neurofuzzy trên cơ sở PLC cho các ứng dụng công nghiệp, Báo cáo tổng kết khoa học và kỹ thuật Đề tài cấp bộ (Bộ công nghiệp), Hà Nội. Chu Văn Hỷ (1998), “Điều khiển thích nghi phi tuyến trên cơ sở mạng nơron RBF”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ III về Tự động hóa, tr.238–241. Cao Tiến Huỳnh (1998), “Về một phương pháp tổng hợp các hệ điều khiển có chất lượng cao”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ III về Tự động hóa, tr.226–232. Cao Tiến Huỳnh (2000), “Điều khiển trượt trên các mặt trượt mờ”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ IV về Tự động hóa, tr.237– 242. Cao Tiến Huỳnh (2005), “Tổng hợp hệ điều khiển trượt thích nghi cho các đối tượng có trễ”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ VI về Tự động hóa, tr.288–293. Lê Hùng Lân (1996), “Xác định mô hình bất định đối tượng nhận dạng trong điều khiển robust”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ II về Tự động hóa, tr.314–322. Phan Xuân Minh, Nguyễn Tiến Hiếu (2005), “Điều khiển thích nghi tay máy trên cơ sở hệ mờ”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ VI về Tự động hóa, tr.370–375. Phan Xuân Minh, Nguyễn Doãn Phước (1997), Lý thuyết điều khiển mờ, Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội. Lê Văn Ngự (1996), “Giới hạn chuyển động của người máy công nghiệp theo quỹ đạo hình học cho trước”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ II về Tự động hóa, tr.386–390. Trần Quang Oánh, Nguyễn Văn Tiềm, Lê Hùng Lân (2002), “Điều khiển thích nghi gián tiếp chuyển động trên cơ sở các bộ xấp xỉ mờ”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ V về Tự động hóa, tr.289–294. Phân viện Tự động hóa, Viện Công nghệ thông tin (1997), Các báo cáo về nghiên cứu hệ điều khiển Fuzzy, Báo cáo Đề tài cấp nhà nước mã số KHCN 04- 09-04. - 127 - [25] [26] [27] [28] [29] [30] [31]  Nguyễn Doãn Phước, Phan Xuân Minh (2000), Điều khiển tối ưu và bền vững, Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội. Nguyễn Doãn Phước (2005), “Một phương pháp thiết kế bộ điều khiển thích nghi ổn định tiệm cận toàn cục cho bài toán điều khiển thích nghi kháng nhiễu”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ VI về Tự động hóa, tr.414–419. Nguyễn Doãn Phước (2005), “Thiết kế bộ điều khiển tuyến tính hóa chính xác bằng phương pháp cuốn chiếu (backstepping)”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ VI về Tự động hóa, tr.420–425. Nguyễn Hoàng Phương, Bùi Công Cường, Nguyễn Doãn Phước, Phan Xuân Minh, Chu Văn Hỷ (1998), Hệ mờ và ứng dụng, Nhà xuất bản khoa học và kỹ thuật, Hà Nội. Thái Quang Vinh (2002), “Điều khiển bền vững theo chế độ trượt mờ cho các hệ phức hợp nhiều thành phần”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ V về Tự động hóa, tr.456–461. Nguyễn Xuân Quỳnh, Lưu Hoàng Long (1996), “Hệ thống điều khiển số trong tự động lái tàu thủy”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ II về Tự động hóa, tr.479–485. Thái Quang Vinh (2002), “Điều khiển bền vững theo chế độ trượt mờ cho các hệ phức hợp nhiều thành phần”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần thứ V về Tự động hóa, tr.456–461. v Tiếng Anh [32] [33] [34] [35] [36] [37] Alberto Isidori, Maria Domenica Di Benedetto (1996), “Feedback Linearization of Nonlinear Systems”, The Control Handbook, Editor William S. Levine, CRC Press and IEEE Press, pp.909–917. Alberto Isidori, Christopher I. Byrnes (1996), “Nonlinear Zero Dynamics”, The Control Handbook, Editor William S. Levine, CRC Press and IEEE Press, pp.917–923. Bart Kosko (1997), Fuzzy Engineering, Prentice Hall, USA. Bong-Jun Yang (2004), Adaptive Output Feedback Control of Flexible Systems, Ph.D. Thesis, Georgia Institute of Technology. Bui Trong Tuyen, Pham Thuong Cat (2004), “An ANN-based method to control Hand-eye Robot for tracking of moving objects”, The 8th International Conference on Mechatronics Technology, Hanoi, pp.195–199. C.Wang, S.S. Ge (2001), “Adaptive Backstepping Control of Uncertain Lorenz System”, International Journal of Bifurcation and Chaos, Vol. 11, No. 4, pp.1115–1119. - 128 - [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52]  Carl D. Meyer (2000), Matrix Analysis and Applied Linear Algebra, SIAM, Philadelphia, USA. Chen Gang, Ye Dong, Che Rensheng (2007), "Developing Trend of Industrial Fieldbus Control System”, The 8th IEEE International Conference on Electronic Measurement and Instruments, ICEMI '07, pp.1-765–1-768. Dong-Ling Tsay, Hung-Yuan Chung, and Ching-Jung Lee (1999), “The Adaptive Control of Nonlinear Systems Using the Sugeno-Type of Fuzzy Logic", IEEE Transactions on Fuzzy Systems, Vol. 7, No. 2, pp.225–229. F. Abdollahi and K. Khorasani (2006), “Stable Robust Adaptive Controller for a Class of Nonlinear Systems”, The 2006 IEEE International Conference on Control Applications, Germany, pp. 1825–1830. F.C. Chen, C.C. Liu (1994), “Adaptively controlling nonlinear continuous-time systems using multilayer neural networks”, IEEE Transactions on Automatic Control, Vol. 39, pp. 1306–1310. Feryâl Alayont (2005), Project on the Stone-Weierstrass Theorem, Integration Workshop. F.L. Lewis, J. Camos, R. Selmic (2002), Neuro-Fuzzy Control of Industrial Systems with Actuator Nonlinearities, Society for Industrial and Applied Mathematics (SIAM), Philadelphia, USA. G. Conte, C.H. Moog, A.M. Perdon (1999), Nonlinear Control Systems: An Algebraic Setting, Springer-Verlag, London, Great Britain. Gang Tao, Petar V. Kokotović (1996), Adaptive Control of Systems with Actuator and Sensor Nonlinearities, John Wiley & Sons, Inc., New York, USA. George J. Klir, Ute St. Clair, Bo Yuan (1997), Fuzzy Set Theory: Foundations and Applications, Prentice Hall, New Jersey, USA. George J. Pappasy, John Lygeros and Datta N. Godbole (1995), Stabilization and Tracking of Feedback Linearizable Systems under Input Constraints, The 34th CDC Report, Intelligent Machines and Robotics Laboratory, University of California at Berkeley. Graebe Stefan, Salgado Mario, Graham C. Goodwin, Mario Salgado, Stefan Greabe (2000), Control System Design, Prentice Hall, New Jersey, USA. Hassan K. Khalil (2001), Nonlinear Systems, 3rd Edition, Prentice Hall, USA. Horacio J. Marquez (2003), Nonlinear Control Systems: Analysis and Design, Wiley Interscience, USA. Hugang Han, Chun-Yi Su, and Yury Stepanenko (2001), “Adaptive Control of a Class of Nonlinear Systems with Nonlinearly Parameterized Fuzzy Approximators", IEEE Transactions on Fuzzy Systems, Vol. 9, No. 2, pp.315– 323. - 129 - [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64]  Indrani Kar and Laxmidhar Behera (2008), “Direct Adaptive Neural Control Scheme for Discrete Time Affine Nonlinear Systems”, ISIC 2008 – IEEE International Symposium on Intelligent Control, pp. 1097–1102. Jang-Hyun Park, Seong-Hwan Kim, Chae-Joo Moon (2006), “Adaptive Fuzzy Controller for the Nonlinear System with Unknown Sign of the Input Gain", International Journal of Control, Automation, and Systems, Vol. 4, No. 2, pp. 178–186. Jan Jantzen (2003), Neural and Neurofuzzy Control, Tech. report no 99-H 999, Technical University of Denmark. Jeffrey T. Spooner, K.M. Passino (1996), “Stable adaptive control using fuzzy systems and neural networks”, IEEE Transations on Fuzzy Systems, Vol. 4, pp.339–359. Jeffrey T. Spooner, Mangredi Maggiore, Raúl Ordónez, Kelvin M. Passino (2002), Stable Adaptive Control and Estimation for Nonlinear Systems: Neural and Fuzzy Approximator Techniques, Wiley Interscience, USA. José C. Principe, Neil R. Euliano, W. Curt Lefebvre (2000), Neural and Adaptive Systems: Fundamentals Through Simulations, John Wiley & Sons, Inc., USA. Indrani Kar and Laxmidhar Behera (2006), “Neural Network Based Direct Adaptive Control for a Class of Affine Nonlinear Systems”, The 2006 IEEE International Symposium on Intelligent Control, Munich, Germany, pp.2030– 2035. Jun Nakanishi, Jay A. Farrell, and Stefan Schaal (2002), “A Locally Weighted Learning Composite Adaptive Controller with Structure Adaptation”, IEEE/RSJ International Conference on Intelligent Robots and Systems, pp.882– 889. Jun Nakanishi, Jay A. Farrell, and Stefan Schaal (2004), “Learning Composite Adaptive Control for a Class of Nonlinear Systems”, The 2004 IEEE International Conference on Robotics & Automation, New Orleans, LA, pp.2647–2652. Jun Nakanishi, Jay A. Farrell, and Stefan Schaal (2005), “Composite adaptive control with locally weighted statistical learning”, Elsevier Neural Networks, vol. 18 (1), pp.71–90. Jun Nakanishi, Stefan Schaal (2004), “Feedback Error Learning and Nonlinear Adaptive Control”, Elsevier Neural Networks, vol. 17 (10), pp.1453–1465. Jyh-Shing Roger Jang (1993), “Adaptive-Network-Based Fuzzy Inference System”, IEEE Transactions on Systems, Man and Cybernetics, vol. 23(3), pp.665–685. - 130 - [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78]  Jyh-Shing Roger Jang, Chuen-Tsai Sun (1995), “Neuro-Fuzzy Modeling and Control”, The Proceedings of the IEEE, vol. 83(3), pp.378–406. Jyh-Shing Roger Jang, Chuen-Tsai Sun, Eiji Mizutani (1996), Neuro-Fuzzy and Soft Computing: A Computational Approach to Learning and Machine Intelligence, Prentice Hall, USA. Jyh-Shing Roger Jang, Mizutani E. (1996), “Levenberg-Marquardt method for ANFIS learning”, Fuzzy Information Processing Society, NAFIPS 1996 Biennial Conference of the North American, pp.87-91. Karl J. Åström, Björn Wittenmark (1995), Adaptive Control, 2nd Edition, Addison-Wesley Publishing, USA. Karl J. Åström, Tore Hagglund (1995), PID Controllers: Theory, Design, and Tuning, 2nd Edition, Instrument Society of America, USA. Katsuhiko Ogata (1995), Modern Control Engineering, 2nd Edition, Prentice Hall, USA. Li Tieshan, Zou Zaojian, and Zhou Xiaoming (2008), “Adaptive NN Control for a Class of Strict-feedback Nonlinear Systems”, American Control Conference, Washington, USA, pp.81–86. Marios M. Polycarpou, Petros A. Ioannou (1991), Identification and Control of Nonlinear Systems using Neural Network Models: Design and Stability Analysis, Report 91-09-01. Marios M. Polycarpou, Petros A. Ioannou (1992), “Modeling, Identification and Stable Adaptive Control of Continuous-time Nonlinear Dynamical System using Neural Networks”, American Control Conference, Chicago, IL, pp. 36– 40. Matt Young (2006), The Stone-Weierstrass Theorem, MATH 328 Notes, Queen's University at Kingston, Winter Term. Mehrdad Hojati and Saeed Gazor (2002), “Hybrid Adaptive Fuzzy Identification and Control of Nonlinear Systems", IEEE Transactions on Fuzzy Systems, Vol. 10, No. 2, pp.198–210. Michael A. Arbib (2003), The Handbook of Brain Theory and Neural Networks, The MIT Press, USA. N.G.Nath and Nguyen N. San (1996), “On a New Approach to Parameter Estimation of a Control System: Input-Error Approach”, The second Vietnam Conference on Automation, pp.373–378. Nguyen Phung Quang (2004), “Nonlinear Control Structures: New Application Perspective in Three-Phase AC Drives”, The 8th International Conference on Mechatronics Technology, Hanoi, pp.213–219. - 131 - [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92]  Nguyen Xuan Quynh, Do Khac Duc (1998), “A method to Design Robust Adaptive Controller of Nonlinear First Order Systems”, The third Vietnam Conference on Automation, pp.669–677. Nguyen Xuan Quynh, Do Khac Duc (1998), “Adaptive Control Law for a Class of Uncertain Nonlinear Systems with Input Time Delay”, The third Vietnam Conference on Automation, pp.73–84. Nguyen Xuan Quynh, Do Khac Duc (2000), “An Adaptive Controller for a Class of Nonlinear Systems with Unknown Parameters Appearing Nonlinearly”, The fourth Vietnam Conference on Automation, pp.384–389. Nguyen Xuan Quynh, Do Khac Duc (2000), “N-term Adaptive Control of a Class of Uncertain Nonlinear Systems”, The fourth Vietnam Conference on Automation, pp.390–395. Nguyen Xuan Quynh, Do Khac Duc, F.G. De Boer (2000), “Indirect Optimal Adaptive Control of Nonlinear Systems”, The fourth Vietnam Conference on Automation, pp.396–401. Richard Zurawski (2005), The Industrial Communication Technology Handbook, CRC Press. R.M. Corless, G.H. Gonnet, D.E.G. Hare, D.J. Jeffrey (1996), “On the Lambert's W Function”, Technical Report, Advances in Computational Mathematics, Vol 5, pp.329–359. Robert Fullér (1995), Neural Fuzzy Systems, Ǻbo Akademi University. Saverio Mascolo, Giuseppe Grassi (1999), “Controlling Chaotic Dynamics Using Backstepping Design With Application to the Lorenz System and Chua’s Circuit”, International Journal of Bifurcation and Chaos, Vol. 9, No. 7, pp.1425–1434. Siemens-AG (2003), FuzzyControl++, Version 5.0, User’s Manual. Siemens-AG (1998), NeuroSystems, User’s Manual, Version 1.0. Siemens-AG (1999), Recipes for Easy Applications of Neural Networks, NeuroSystems-Cookbook. Simon Haykin (1999), Neural Networks A Comprehensive Foundation, 2nd Edition, Prentice Hall, USA. Shouling He, Konrad Reif, Rolf Unbehauen (1998), “A Neural Approach for Control of Nonlinear Systems with Feedback Linearization”, Transactions on Neural Networks, Vol. 9, No. 6, pp.1409–1421. IEEE [93] S.P. Moustakidis, G.A. Rovithakis, and J.B. Theocharis (2006), “An Adaptive Neuro-Fuzzy Control Approach for Nonlinear Systems via Lyapunov Function Derivative Estimation”, The 2006 IEEE International Symposium on Intelligent Control, Munich, Germany, pp.1602–1607. - 132 - [94] [95] [96] [97] [98] [99]  S. Seshagiri and H. K. Khalil (2000), “Output feedback control of nonlinear systems using RBF neural networks”, IEEE Transactions on Neural Networks, Vol. 11, No. 1, pp. 69–79. S.S. Ge, C. C. Hang, Tao Zhang (1999), “Adaptive Neural Network Control of Nonlinear Systems by State and Output Feedback", IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics, Vol. 29, No. 6. S.S. Ge, C.Wang, T.H.Lee (2000), “Adaptive Backstepping Control of a Class of Chaotic Systems”, International Journal of Bifurcation and Chaos, Vol. 10, No. 5, pp.1149–1156. Tianping Zhang and Shuzhi Sam Ge (2006), “Robust Adaptive Neural Control of SISO Nonlinear Systems with Unknown Nonlinear Dead-Zone and Completely Unknown Control Gain”, The 2006 IEEE International Symposium on Intelligent Control, Munich, Germany, pp.88–93. T. John Koo (2001), “Stable Model Reference Adaptive Fuzzy Control of a Class of Nonlinear Systems", IEEE Transactions on Fuzzy Systems, Vol. 9, No. 4, pp.624–636. Tomohisa Hayakawa (2003), Direct Adaptive Control for Nonlinear Uncertain Dynamical Systems, Ph.D. Thesis, Georgia Institute of Technology. [100] Tomohisa Hayakawa (2005), “A New Characterization on the Approximation of Nonlinear Functions via Neural Networks: An Adaptive Control Perspective”, The 44th IEEE Conference on Decision and Control, and the European Control Conference, Spain, pp.4117–4122. [101] Tomohisa Hayakawa, Wassim M. Haddad, James M. Bailey, Naira Hovakimyan (2005), “Passivity-Based Neural Network Adaptive Output Feedback Control for Nonlinear Nonnegative Dynamical Systems", IEEE Transactions on Neural Networks, Vol. 16, No. 2, pp.387–398. [102] Tomohisa Hayakawa, Wassim M. Haddad, Naira Hovakimyan, VijaySekhar Chellaboina (2005), “Neural Network Adaptive Control for Nonlinear Nonnegative Dynamical Systems", IEEE Transactions on Neural Networks, Vol. 16, No. 2, pp.399–413. [103] Tomohisa Hayakawa, Wassim M. Haddad, and Naira Hovakimyan (2008), “Neural Network Adaptive Control for a Class of Nonlinear Uncertain Dynamical Systems with Asymptotic Stability Guarantees", IEEE Transactions on Neural Networks, Vol. 19, No. 1, pp.80–89. [104] T. Zhang, S. S. Ge, C. C. Hang (2000), “Stable Adaptive Control for a Class of Nonlinear Systems using a Modified Lyapunov Function", IEEE Transactions on Automatic Control, Vol. 45, No. 1, pp.129–132. - 133 - [105] Wenjie Dong, Yuanyuan Zhao, Jay A. Farrell (2008), “Tracking Control of Nonaffine Systems: A Self-organizing Approximation Approach”, American Control Conference, Washington, USA, pp. 69–74. [106] Won Kee Son, Jin Young Choi, and Oh Kyu Kwon (2002), “Robust Predictive Control of Uncertain Nonlinear System With Constrained Input", Transactions on Control, Automation and Systems Engineering, Vol. 4, No. 4, pp.289–295. [107] Yansheng Yang, Changjiu Zhou (2005), “Robust Adaptive Fuzzy Tracking Control for a Class of Perturbed Strict-feedback Nonlinear Systems via Small- gain Approach”, Elsevier Information Sciences, Vol. 170, pp.211–234. [108] Yixin Diao, Kelvin M. Passino (2004), “Stable Adaptive Control of Feedback Linearizable Time-varying Non-linear Systems with Application to Fault- tolerant Engine Control”, International Journal of Control, Vol. 77, No. 17, pp.1463–1480. - 134 - PHỤ LỤC 5.1.  Một số thuật ngữ tiếng Anh class K (hàm lớp K): g ( E ) Î K nếu g : D ® Â+ đồng biến chặt trên D = [0, r) với r Î Â+ và g (0) = 0 . class K¥ (hàm thuộc lớp K¥): g ( E ) Î K¥ nếu g Î K với D = [0, ¥) và lim g ( E ) = ¥ . E ®¥ n + b (x, t) Î K với mỗi t không đổi và giảm dần đối với t khi x không đổi và b (x, t) Î K khi t ® ¥ . compact set/space (tập compac): Tập compac Wx Ì Ân là tập con đóng (closed) và bị chặn. + + n tồn tại hàm γ Î K định nghĩa trên [0, r) với r > 0 định nghĩa trên [0, ¥) sao cho V (t, x) £ γ( x ) với "t ³ 0 và x Î Bh , h > 0 (hoặc x Î Ân ). Ngoài ra V (t, x) giảm dần khi và chỉ khi tồn tại hàm xác định dương trên Bh (hoặc trên Ân ) để V (t, x) £ w(x) với mọi x Î Bh (hoặc x Î Ân ) và t ³ 0 n gọi là vi (đồng) phôi nếu tồn tại phép biến đổi ngược T-1 với T , T-1 là các hàm trơn (smooth). globally uniformly asymtotically stable (ổn định tiệm cận đều toàn cục): Gốc của hệ (2-68) xe = 0 là ổn định tiệm cận đều (hoặc đơn trị) toàn cục nếu là ổn định đều toàn cục và với mọi e > 0 và t0 ³ 0 luôn tồn tại d0 > 0 không phụ thuộc vào t0 , x t ³ t0 + T (e ) khi x0 - xe < d (e ) .class KL (hàm thuộc lớp KL ): Hàm liên tục b :  ´  ® Â+ thuộc lớp KL nếu decrescent function (hàm giảm dần): Hàm liên tục V (t, x) :  ´ Bh ®  , { } Bh = x Î Ân : x < h (hoặc V (t, x) :  ´  ®  ) được gọi là giảm dần nếu diffeomorphism (phép biến đổi vi đồng phôi): Phép biến đổi T : W Î Â ® Ân được và e , T (e ) > 0 không phụ thuộc vào t0 để cho x(t, t0 0 ) - xe £ e với mọi - 135 - Lambert w function (hàm Lambert w): ([84]) Hàm Lambert w( x) là nghiệm của phương trình w( x)ew( x) = x . Trong MATLAB hàm được gọi như sau Y = lambertw( X ) . + n là không bị chặn theo tia nếu V (t, 0) = 0 với t ³ 0 và tồn tại hàm γ Î K ¥ để n Rayleigh-Ritz (bất đẳng thức Rayleigh-Ritz): Nếu P : n ´ n là ma trận đối xứng và T T T relative degree (bậc tương đối): ([50], [51]) Hệ (2-1) có bậc tương đối n tại ξ0 nếu h(ξ) = L L h(ξ) = L = L L ξ ξ ξ ξ ξ L ξ ξ ξ n + d n + d ξ  ¶h(ξ) ¶ξ  k h(ξ) = L ξ ξ  è ξ ø k ³ 2 . Ý nghĩa của bậc tương đối là số lần phải lấy đạo hàm của đầu ra theo quỹ đạo động học của hệ để đầu vào xuất hiện rõ hay để ánh xạ đầu vào-đầu ra là tuyến tính. state feedback linearization (tuyến tính hóa phản hồi trạng thái): ([50], [51]) Hệ (2-1) là khả tuyến tính hóa phản hồi trạng thái nếu tồn tại phép biến đổi x = T(ξ) xác định trên U (chứa gốc tọa độ) và T(0) = 0 để chuyển hệ sang dạng thức x& = Ax + b( f (x) + g(x)u) với (A, b) là cặp điều khiển được ([49]). , x đơn trị nếu với mỗi a > 0 và t0 ³ 0 luôn tồn tại b (a ) > 0 (không phụ thuộc vào , x , x chặn tới hạn đều nếu tồn tại B > 0 và với mỗi a > 0 , t0 ³ 0 luôn tồn tại T (a ) > 0 , x unitary matrix (ma trận unita): U là ma trận unita nếu U -1 = U* với ký hiệu U* là chuyển vị liên hợp phức của U. Trường hợp ma trận số thực thì U -1 = UT .radially unbounded (không bị chặn tia): Hàm liên tục V (t, E) :  ´  ®  được gọi V (t, E) ³ γ( E ) với "t ³ 0 và E Î Â . x Î Ân thì lmin max (P)x x . (P)x x £ x Px £ l Lg g f g fn - 2h(ξ) = 0 với "ξ trong lân cận của ξ0 và Lg fn - 1h(ξ0 ) ¹ 0 , trong đó ký hiệu Lf h(ξ) là đạo hàm Lie – hay còn gọi là đạo hàm của h(ξ) : D Ì Â ®  theo fξ (ξ) : D Ì Â ® Ân + d – và được định nghĩa như sau: Lf h(ξ) = fξ (ξ) , Lf f æ k - 1 ö ç Lf h(ξ) ÷ với uniformly bounded (tính bị chặn đều) x(t, t0 0 ) được gọi là bị chặn đều hay bị chặn t0 ) để x0 t0 ³ 0 . uniformly ultimately bounded (bị chặn tới hạn đều): Nghiệm x(t, t0 0 ) được gọi là bị (không phụ thuộc vào t0 ) để x0 < a thì x(t, t0 0 ) < B với mọi t ³ t0 + T (a ) . - 136 - 5.2.  Bổ đề 1 trang 23 Để chứng minh hệ sai số (2-16) thỏa mãn Giả thiết 1 ta cần chỉ ra hàm số + + với E Î Â+ khi t không đổi để x £y x (t, E ) với mọi t . Từ định nghĩa hệ sai số (2-16): E(t, x) = k Ed E + ( xn - r (n-1) ) với k TE = [k1,K, kn-1] và d E = é x1 - r, x2 - r,K, xn-1 - r ( n-2) û Ô  ta có: é x2 - r ù é x2 - r ù é0ù M M ( n-2) ( n-2) ( n-1) T é 0 ù é0ù I ê 0 ú ê0ú ê ú ê ú  ë1û  T  ) Đặt Ak =  I é 0 ù é0ù ê 0 ú ê0ú ê ú ê ú ë1û học đối với d E như sau: d& E = Akd E + bE với Ak là Hurwitz do s n-1 + kn-1s n-2 + K + k1 là Hurwitz. Biết nghiệm của phương trình vi phân tuyến tính (5-1) là:  (5-1) d E (t ) = e  Akt  t d E (0) + ò e Ak (t -t )bE(t )dt  (5-2) 0 Do Ak là Hurwitz nên luôn tìm được các số dương p1 và p2 để eAkt £ p1e-p2t bằng phương pháp sau: T ë & ù ê ú ê ú ê ú M ( d& E = êê úú = êê úú + ê ú k E E n - r ( n-1) d + x ê0ú xn-1 - r xn-1 - r ê ú ê ú ê ú êë xn - r úû êë -k E E úû ë û 1 d ê M ê M ú ú = ê ú d E + ê ú E ë-k1 2 L -kn-1 û -k & & ê M ê M ú ú ê ú ê ú và b = Î Ân-1 dẫn đến phương trình động ë-k1 2 L -kn-1 û -k - 137 - Phương trình trạng thái (5-1) khi E = 0 có nghiệm là d E (t ) = eAktd E (0) . Đặt V (t ) = dTE Pd E với  P là ma trận đối xứng xác định dương thỏa mãn T 2 Áp dụng bất đẳng thức Rayleigh-Ritz với lmin (P), lmax (P) tương ứng là các giá trị riêng nhỏ nhất và lớn nhất của P : -  T T T lmin (P) lmax (P) Û- V lmin (P) £ V& £ - V lmax (P) Giải bất phương trình vế phải V& £ - thay vào bất đẳng thức vế trái sẽ có:  V lmax (P)  ta được V £ V (0)e-t /lmax (P) , mặt khác 2  V lmin (P)  £  V (0) lmin (P)  e-t /lmax ( P ) Þ d E £  e Do vậy nếu chọn p1 =  dTE (0)Pd E (0) lmin (P)  và p2 =  1 2lmax (P)  thì eAkt £ p1e-p2t . Từ kết quả trên và (5-2) suy ra: d E (t ) £ p1e  -p2t  t d E (0) + ò p1e-p2 (t -t ) E(t ) dt = y dE (t, E )  (5-3) 0 Mặt khác từ định nghĩa hệ sai số có thể viết: é d E ù é d E ù é d E ù x - r = ê ( n-1) ú = ê ú Û x = r + ê ú T T Do r £ r và từ (5-3) nên ta xác định được hàm y x cần tìm để x £y x (t, E ) như sau:(PAk kT P) = -I thì V& = d& TE (PAk kT P)d E E E E . + A = -d d = - d + A d E E Pd d E E Pd £ -d E E £ - d d E £ d E (0)Pd E (0) -t /( 2lmax ( P ) ) ë xn - r ë E - k E E û ë E - k E E û û d d - 138 - x £ r +  d E E - k TEd E T T  (5-4) £ r + E + (1 + k TE )  d E n-1 è i=1 ø Rõ ràng là y x (t, E ) tìm được trong (5-4) thỏa mãn tính chất là hàm số bị chặn khi E bị chặn và không giảm dần đối với E Î Â+ khi t không đổi nên Bổ đề 1 đã được chứng minh.£ r + d E + E - k Ed E £ r + d E + E + k Ed E æ ö £ r + E + ç1 + å ki ÷ y d E (t, E ) = y x (t, E ) - 139 - 5.3.  Bổ đề 3 trang 40 và kết quả (2-64) Do μ E (r,k , E) = E ( r - sign(E) bsig(k , E)) với 0 < r £ 1 là hàm chẵn nên ta chỉ cần xét hàm μ E+ (r,k , E) = E ( r - bsig(k , E)) với E ³ 0 hay: μ E + ( r ,k , E ) = r - 1 + ( r + 1)e-k E 1 + e-k E  E Tính đạo hàm của μ E + (r ,k , E) theo E thu được: d dE  μ E + =  -k E ë û 2 é r - 1 + (r + 1)e-k E ù Ek e-k E 2 = + = =  [-(r + 1)k E + (r + 1) + (r + 1)k E ] e-2k E - E 2 [-(r + 1)k E + (r + 1) + (r - 1) + (r - 1)k E ] e-k E + r - 1 - E 2 (r + 1) e-2k E + 2(r - k E ) e-k E + r - 1 2 f (r , x) - x 2 trong đó ký hiệu f (r, x) = (r +1)e-2 x + 2(r - x)e- x + r -1 và x = k E . Để tìm cực trị của μ E + cần thiết giải phương trình: f (r, x) = 0  (5-5) với 0 < r £ 1 . Phương pháp khảo sát hàm số f (r, x) dưới đây chứng minh rằng phương trình (5-5) trên luôn có nghiệm duy nhất. Từ đạo hàm:é-k (r + 1)e E + r - 1 + (r + 1)e-k E ù (1 + e-k E ) ( ) 1 + e-k E + ë û ( ) 1 + e-k E (1 + e k ) (1 + e k ) ( ) 1 + e-k E (1 + e ) - 140 - d dx  ë  -e- x - (r - x)e- x cho thấy  d dx  f ( r , x) = 0 khi và chỉ khi x là nghiệm của phương trình: -x + (r + 1) = -(r + 1)e- x  (5-6) Để giải phương trình (5-6), ta sử dụng kết quả của Bổ đề 8 dưới đây: Bổ đề 8: Nghiệm của phương trình x + b = ae x với a ¹ 0 là x = -b - w(-ae-b ) với w( x) là hàm Lambert. Chứng minh Bổ đề 8 từ biến đổi x + b = ae x Þ (trang 34) như sau:  x b a a -b/ a x b b a a log(ea ) a a Þ x = -b - w ( -ae-b ). )  (5-7) ▲ Thay a = -(r + 1) , b = r +1 dẫn đến nghiệm của phương trình (5-6) là: Þ x0 = r + 1 + w ( (r + 1)e-( r +1) ) = r + 1 + w(p) - x = - x0 = -(r + 1) - w ( ( r + 1)e-( r +1) )  (5-8) trong đó ký hiệu p = (r + 1)e-( r +1) . Do  d p d r  = - r (2 + r )e-( r +1) < 0 nên p luôn giảm 2 ë Khi đó f (r, x) chỉ có một điểm cực trị duy nhất (kết quả phân tích dưới đây cho thấy đó là điểm cực tiểu) tại ( x0 , f0 ) với x0 xác định theo (5-8) và:f (r , x) = -2(r + 1)e-2 x + 2 éë ûù = 2e x - (r + 1) - (r + 1)e- x ùû - x é + = (ea ) x / a và áp dụng Bổ đề 2 w ( -(ea ) log(ea )) w ( -ae-b =- - =- - dần đối với r Î ( 0,1] và p(1) £ p(r ) < p(0) hay p Î é2 e ,1 e) . - 141 - f0 = f ( r , x0 ) = (r + 1)e-2 x0 + 2( r - x0 )e- x0 + r - 1 = (r + 1)e  è e ø 2  -( r +1)  e  1 w(p)  + r - 1 = (r + 1)e  -2( r +1) é w(p) ù ê -( r +1) ú  û 2  - 2 (1 + w(p)) e-( r +1)  w(p) ( r + 1)e-( r +1)  + r - 1 2 2 + r - 1 = r + 1 r + 1 r + 1 = r 2 - ( w(p) + 1) r + 1 2  . Do hàm Lambert là đồng biến chặt trên [-1 e, ¥) nên w(2 e2 ) £ w(p) < w(1 e) , suy ra x0 > 1 và f0 0 , f (r, ¥) = r -1 £ 0 nên f (r, x) luôn cắt trục hoành chỉ tại một điểm xm nằm trong khoảng ( 0, x0 ) và f0 là giá trị cực tiểu của hàm số f (r, x) . Lưu ý là d f (r , x) dE - x 2  nên kết quả trên cũng cho phép suy ra tại Em =  xm k  , μ E + đạt giá trị lớn nhất bằng μ E _ max (r,k ) = μ E+ (r,k , Em ) , ngoài ra do μ E+ (r,k ,0) = 0 < μ E+ (r,k , Em ) = μ E _ max (r,k ) nên giá trị lớn nhất là dương. Để tính giá trị lớn nhất này ta có thể sử dụng phương pháp giải trên MATLAB. Dưới đây là mã code chương trình viết trên m-file để tạo ra đồ thị μ E (r ,k , E) trong các trường hợp k = 5 , k = 10 và giá trị r được chọn trong mỗi trường hợp là 1, 0.9 và 0.5 (Hình 4 trang 41): % mu_E_max; VIELINA–NDH, 2006 function mu_E_max() clear all global xm ym step=0.01; xmax=2; a=0; rho1=1; rho2=0.9; rho3=0.5; kappa=5; subplot(1,2,1); plot_mu(xmax, step, a, rho1, rho2, rho3, kappa); kappa=10; subplot(1,2,2); plot_mu(xmax, step, a, rho1, rho2, rho3, kappa); function Y=bsig(K,A,E) Y=(2/(1+exp(-K*(E-A))) - 1);-2( r +1) æ 1 ö ç w(p) ÷ + 2[ r - ( r + 1) - w(p)] e ë (r + 1)e - w (p) - 2 w(p) - 1 + r 2 w (p) w(p) = - 2 (1 + w(p)) μ E + = ( ) 1 + e - 142 - function Y=f_mu(K,A,B,E) Y=abs(E)*(B-sign(E)*bsig(K,A,E)); function Y=f_mu_em(K,B) str=sprintf('(%4.2f+1)*exp(-2*x)+2*(%4.2f-x)*exp(-x)+%4.2f-1=0',B,B,B); Y=solve(str)/K; function plotf_mu(kappa, a, rho, w, color) global xm ym em=double(f_mu_em(kappa,rho)); %E_m fe=f_mu(kappa,a,rho,em); %mu_E_max s=sprintf('\\fontsize{10}\\it%5.4f',fe); text(xm(1)-0.03,fe,s, 'Color', color, 'HorizontalAlignment', 'Right'); line([xm(1),em],[fe,fe], 'LineStyle', '-.', 'Color', color); sprintf('mu(%f,%i,%5.4f)\t= %5.4f',rho,kappa,em,fe) % prints mu_E_max function plot_mu(xmax, step, a, rho1, rho2, rho3, kappa) global xm ym x=[-xmax:step:xmax]'; for i=1:size(x,1) y1(i)=f_mu(kappa,a,rho1,x(i)); y2(i)=f_mu(kappa,a,rho2,x(i)); y3(i)=f_mu(kappa,a,rho3,x(i)); end; handle=plot(x,y1,'-r',x,y2,'-b',x,y3,'-k','LineWidth',1); xlabel('\fontsize{10}\it\bfE'); ylabel('\fontsize{15}\bf\mu\fontsize{10}_{E}'); grid on; if kappa==5 xlim([-1 1]); ylim([-0.04 0.12]); set(gca,'XTick',[-1:0.5:1]); x1=0.52; x2=0.56; x3=0.25; title('\fontsize{15}\bf\it\kappa\fontsize{10}\rm\bf = 5'); else if kappa==10 xlim([-0.5 0.5]); ylim([-0.02 0.06]); set(gca,'XTick',[-0.5:0.25:0.5]); x1=0.26; x2=0.28; x3=0.125; title('\fontsize{15}\bf\it\kappa\fontsize{10}\rm\bf = 10'); end end text(x1,f_mu(kappa,a,rho1,x1),'\fontsize{10}\leftarrow \it\rho\rm\fontsize{9} = 1', 'Color','r'); text(x2,f_mu(kappa,a,rho2,x2),'\fontsize{10}\leftarrow \it\rho\rm\fontsize{9} = 0.9', 'Color','b'); text(x3,f_mu(kappa,a,rho3,x3),'\fontsize{10}\leftarrow \it\rho\rm\fontsize{9} = 0.5', 'Color','k'); e=exp(1); w=1+lambertw(1/e); xm=xlim; ym=ylim; plotf_mu(kappa, a, rho1, w, 'r') plotf_mu(kappa, a, rho2, w, 'b') plotf_mu(kappa, a, rho3, w, 'k') - 143 - 5.4.  Tuyến tính hóa phƣơng trình động lực học (3-23) Đặt ξT = [x1,..,x 4 ] = [q1, q&1, q2 , q& 2 ] , khi đó phương trình động lực học (3-23) và đầu ra có thể viết dưới dạng: x1 = x 2 x&2 = -a sin x1 - b(x1 - x3 ) x3 = x 4 x&4 = c(x1 - x3 ) + du y = x1 (5-9) với a =  MgL I  , b =  k I  , c =  k J  và d =  1 J  hoặc: ξ = fξ (ξ) + gξ (ξ)u y = h(ξ)  (5-10) với fξ (ξ) = é x2 ù é 0 ù 1 1 3  ê ú ê ú ë û ëd û Hệ (5-10) có điểm cân bằng tại ξ = 0 và có bậc đầy đủ n = 4 do từ: Lfξ h(ξ) = ¶h(ξ) ¶ξ  fξ = [1,0,0,0]fξ = x 2 Lf2ξ h(ξ) = ¶Lfξ h(ξ) ¶ξ  fξ = [0,1,0,0]fξ = -a sin x1 - b(x1 - x3 ) Lf3ξ h(ξ) Lf4ξ h(ξ)  = = ¶Lf2ξ h(ξ) ¶ξ ¶Lf3ξ h(ξ) ¶ξ  fξ = [-a cos x1 - b,0, b,0]fξ = -ax 2 cos x1 - b(x 2 - x 4 ) fξ = [ax 2 sin x1, -a cos x1 - b,0, b]fξ 2 ta có:& & & ê-a sin x - b(x - x )ú ê 0 ú ê ú , g ξ (ξ) = ê ú và h(ξ) = x1 . ê x4 ú ê 0 ú c(x1 3 ) - x = ax 2 sin x1 + ( a cos x1 + b) ( a sin x1 + b(x1 - x3 )) + bc(x1 - x3 ) - 144 - Lgξ h(ξ) =  ¶h(ξ) ¶ξ  gξ = [1,0,0,0] gξ = 0 L ¶Lfξ h(ξ) ¶ξ  gξ = [0,1,0,0] gξ = 0 L L  = = ¶Lf2ξ h(ξ) ¶ξ ¶Lf3ξ h(ξ) ¶ξ  gξ = [-a cos x1 - b,0, b,0] gξ = 0 gξ = [ax 2 sin x1, -a cos x1 - b,0, b] gξ = bd ¹ 0 T -1 é h(ξ) ù fξ ê ú 2 2 2 ê ú ê ú ê ú ë x4 û ëT4 û f (x) = L4fî h(î) = ax22 sin x1 + ( a cos x1 + b) ( a sin x1 + b(x1 - x3 )) + bc(x1 - x3 ) 2 æ 1 ö è b ø 2 g (x) = Lgî Lf3î h(î) = bd và biểu diễn hệ ở dạng tuyến tính hóa phản hồi trạng thái chuẩn tắc: x1 = x2 x2 = x3 x3 = x4  x4 = a( x2 - c) sin x1 - ( a cos x1 + b + c ) x3 + bdu (5-11) y = x1 Kết quả trên cho thấy nếu giả thiết ξ là véctơ trạng thái đo được thì x cũng tính được qua phép biến đổi x = T(ξ ) nêu trên.Lgξ ξf h(ξ) = Lgξ ξ2f h(ξ) Lgξ ξ3f h(ξ) Như vậy có thể sử dụng phép biến đổi vi đồng phôi T(ξ) = [T1 4 (ξ)] với (ξ),K,T ξ = T ( x) để xác định: é x1 ù é T1 ù é ù ê L h(ξ)ú ê x ú êT ú ê ú x = = = ê 2 ú = ê ú ê ú ê ú ê x3 ú êT3 ú ê Lfξ h(ξ)ú ê -a sin x1 - b(x1 - x3 ) ú ê 3 ú ë-ax2 1 2 4 )û cos x - b(x - x êë Lfξ h(ξ)úû sin x - ( a cos x + b) x = ax2 1 1 3 + bc ç x1 3 1 1) ÷ - ( x + a sin x + bx = a( x2 - c) sin x1 - ( a cos x1 + b + c ) x3 & & & & - 145 - 5.5.  Chƣơng trình mô phỏng ví dụ điều khiển tay rôbốt trang 79 % Robot Link Control Simulation; VIELINA–NDH, 2006 %function RobotSim1() clear all; global T_min T_step T_max fig a b c d a2 b2 c2 d2 nlStateFeedback_siso = ... struct('Name','Nonlinear State-feedback Linearizable SISO Model', ... 'N', 0, 'CTRMode', '', ... % Control Mode 'fx', [], 'gx', [], 'hx', [], ... % Plant Model parameters 'fxa', [], 'gxa', [], 'hxa', [], ... % Plant Model Approximation 'FX', [], 'X',[],'W', [], 'Dg',[], 'Df', [], ... % Neural Network Approximator 'Fdxn', [], ... % Neural Network Approximator 'SatLim', 1, 'uLow', -1, 'uHigh', 1, ... % Saturation limiter 'RateLim', 1, 'duLow', -1, 'duHigh', 1, ... % Rate limiter 'K', [], 'eta', 1, 'ETA', [], 'kappa', [], ... 'alpha', 0, 'rho', 0, 'theta', 0, ... % Control parameters 'tempData', [], 'tempData2', []); % Testing data templates % Nonlinear state-feedback linearizable SISO plant model: % % % % % % where % dx1/dt = x2 dx2/dt = x3 dx[N-1] = xN dxN/dt = f(x) + g(x)*u y = h(x) x = [x1; x2; ...; xN] (state vector) u: plant input; y: plant output % Parameters: % N: Number of continuous states % fx, gx, hx: f(x), g(x), h(x) respectively % fxa, gxa, hxa: known functions for replacement of f(x), g(x), h(x) respectively RefModel_siso = struct( 'Name','SISO Reference Model','Formula', ''); % Simulation Settings -------------------------------------------------- T_min=0; T_max=50; T_step=0.01; T=T_min:T_step:T_max; % Simulation time interval, fix step T_Ref=[T_min:T_step/5:T_max]; % Reference signal's sampling time interval flag=''; options = odeset('RelTol',1e-3,'AbsTol',1e-4); % Plant Model Definition ----------------------------------------------- nlPlant=nlStateFeedback_siso; % Defines Plant Model nlPlant.N=4; % Number of states (x) nlPlant.fx='(a*(x(:,2).^2-c).*sin(x(:,1))-a*(cos(x(:,1))+b+c).*x(:,3))'; nlPlant.gx='b*d'; nlPlant.hx='x(:,1)'; - 146 - nlPlant.K=poly([-0.5 -0.8 -1]); nlPlant.eta=200; nlPlant.ETA(1)=nlPlant.eta*nlPlant.K(1); for i=2:nlPlant.N nlPlant.ETA(i)=nlPlant.K(i-1)+nlPlant.eta*nlPlant.K(i); end nlPlant.kappa=0; % static feedback control law applies I=0.04; J=0.04; k=0.8; L=0.1; M=6; g=9.8; a=M*g*L/I; b=k/I; c=k/J; d=1/J; % Reference Signal Definition ------------------------------------------------------- RefSignal='FORMULA'; % Defines Reference Signal Type fig=0; RefModel=RefModel_siso; RefModel.Formula='pi*sin(0.5*t).*cos(0.1*t)/3'; % Reference signal Ref=fRefGen(RefModel.Formula, T_Ref'); % Ref=[t Ref(t)] s=sprintf('r(t)=%s',RefModel.Formula); dr = fDeriv(Ref(:,1:2), nlPlant.N+1); % Reference data & its derrivatives r = [Ref(1:size(dr,1),1:2) dr(:,2:nlPlant.N+1)]; % R = [t r(t) dr(t)/dt..d^(N)r(t)/dt^N] rt=fxt(r,0,'approx'); % rt=[t r dr/dt ...] X0=[0 0 0 0]; % Trains approximator --------------------------------------------------------------- nlPlant.u='5.15*sin(0.25*t)-0.95*sin(t)'; % u for testing (maybe varies) nlPlant.fxa='(-a2*c2.*sin(x(:,1))-a2*(b2+c2).*x(:,3))'; nlPlant.gxa='b2*d2'; nlPlant.hxa=nlPlant.hx; nlPlant.X='[x uxa]'; a2=a; b2=b*0.9; c2=1.1*c; d2=1.3*d; T1=T; nlPlant = fStateFeedback2(T1, X0, options, 'train', nlPlant, r); nlPlant.W save data; % Tests the trained controller ------------------------------------------------------- %function RobotSim2() clear all; load data; T2=T; - 147 - nlPlant.kappa=1; nlPlant.rho=1; % 0<rho<=1 nlPlant = fStateFeedback2(T2, X0, options, 'approx', nlPlant, r); Error=[nlPlant.W; nlPlant.Df; nlPlant.Dg] pause nlPlant.kappa=1; nlPlant.rho=0.8; % 0<rho<=1 nlPlant = fStateFeedback2(T2, X0, options, 'approx', nlPlant, r); Error=[nlPlant.W; nlPlant.Df; nlPlant.Dg] % ----- Backstepping ---------------------------------------------------------------- function [y]= fStateFeedback2(T, X0, options, flag, Plant, r) % flag={'exact','approx','learn'} global T_min T_step T_max fig a b c d a2 b2 c2 d2 stime='\fontsize{12}\itt\rm [s]'; sk=sprintf('\\fontsize{15}\\it\\kappa\\rm\\fontsize{12} = %.0f',Plant.kappa); if Plant.kappa~=0 sk=sprintf('%s, \\fontsize{15}\\it\\rho\\rm\\fontsize{12} = %.1f',sk,Plant.rho); end N=Plant.N; s=''; t=[]; x=[]; y=[]; z=[]; [t,x] = ode45(@fdx_statefb2, T, X0(1:N), options, {flag, 'deriv'}, Plant, r); % x=[x1..xN] for i=1:length(t) y(i,:) = feval(@fdx_statefb2, t(i), x(i,:), {flag, 'output'}, Plant, r); % y=[h(x) ufb E e1..eN] if strcmp(flag,'train') z(i,:) = feval(@fdx_statefb2, t(i), x(i,:), {flag, 'trndata'}, Plant, r); end end Plant.tempData=[t y(:,1) y(:,2) x]; % Saves data for later testing [t h(x) ufb x] ufb=y(:,2); fig=fig+1; figure(fig); clf; plot(t,y(:,3),'-r', t,y(:,4),'-b') % Plots E, e1 if N>1 hold on; plot(t,y(:,5),'-g') % Plots e2 hold off; end %s=sprintf('\\fontsize{12}Error system - \\bf%s\\rm mode', flag); title(sk); xlabel(stime); ylabel('\fontsize{12}\itE'); - 148 - fig=fig+1; figure(fig); clf; plot(t(:,1),x(:,1),'-r', t(:,1),x(:,2),'-b', t(:,1),x(:,3),'-g', t(:,1),x(:,4),'-m') % Plots r(t), y(t) title(sk); xlabel(stime); ylabel('\fontsize{12}\bfx'); fig=fig+1; figure(fig); clf; plot(r(:,1),r(:,2),'-r', t,y(:,1),'-b') % Plots r(t), y(t) rt=fxt(r,t,'approx'); % rt=[t r dr/dt ...] title(sk); xlabel(stime); ylabel('\fontsize{12}\itr\rm, \ity'); ylim([-1.2 1.2]); s1='\fontsize{11}\leftarrowReference signal'; text(r(3.9/T_step*5,1),r(3.9/T_step*5,2),s1,'Color','r'); s2='\fontsize{11}\leftarrowPlant''s output'; text(t(1.8/T_step),y(1.8/T_step,1),s2,'Color','b'); fig=fig+1; figure(fig); clf; plot(t,y(:,2),'-r') % Plots ufb %s=sprintf('\\fontsize{12}Control signal - \\bf%s\\rm mode', flag); title(sk); xlabel(stime); ylabel('\fontsize{12}\itu'); switch flag case 'train' % Sets and trains approximators Plant.Fdxn=[]; trData=[]; X=[]; Y=[]; Z=[]; MF_No=2; MF_Type='gbellmf'; Epoch_No=10; uxa=y(:,2); X=eval(Plant.X); Z=z(:,2); % Z=dxN/dt trData=[X Z]; crAnfis=genfis1(trData, MF_No, MF_Type) % Generates an FIS structure from data used as initial conditions for anfis training Plant.Fdxn = anfis(trData, crAnfis, Epoch_No) % Training routine for Sugeno-type FIS Y=evalfis(X, Plant.Fdxn); Plant.W=[norm(Z-Y) abs(max(Z-Y))]; % abs(max(Z-Y)); fig=fig+1; figure(fig); clf; plot(t,Z,'-r',t,Y,'-b') % Plots u(t)=uN s1='\fontsize{15}\Delta\fontsize{11}_{dxn}'; s=sprintf('\\fontsize{11}Trained ANFIS Approximator - %s',s1); title(s); xlabel(stime); ylabel(s1); case 'approx' uxa=y(:,2); X=eval(Plant.X); fx=eval(Plant.fx); fxa=eval(Plant.fxa); Plant.Df=[norm(fxa-fx) abs(max(fxa-fx))]; gx=eval(Plant.gx); gxa=eval(Plant.gxa); Plant.Dg=[norm(gxa-gx) abs(max(gxa-gx))]; - 149 - Delta_f=fxa-fx; Delta_g=gxa-gx; fig=fig+1; figure(fig); clf; plot(t,Delta_f,'-r',t,Delta_g,'-b') % Plots u(t)=uN s1='\fontsize{13}\Delta\fontsize{12}\it_{f}\rm(\bfx\rm)'; s2='\fontsize{13}\Delta\fontsize{12}\it_{g}\rm(\bfx\rm)'; title(sk); xlabel(stime); ylabel(sprintf('%s, %s',s1,s2)); s=sprintf('\\leftarrow%s',s1); text(t(6/T_step),Delta_f(6/T_step),s,'Color','r'); s=sprintf('\\downarrow%s',s2); text(15,Delta_g+10,s,'Color','b'); end y=Plant; % ----- Nonlinear Plant Model --------------------------------------------------------- function [y] = fdx_statefb2(t, x, flag, Plant, rData) % rData=[t r dr/dt .. (d^N)r/dt^N]: Reference database % flag meanings: % % 'exact' & 'deriv': exact model states derivative 'exact' & ' % ALL VECTORS MUST BE ROW VECTORS !!! % MATRIX ROW : indicates one record of variable(s) % MATRIX COLUMN: indicates one variable in time steps global a b c d a2 b2 c2 d2 N=Plant.N; ETA=Plant.ETA(:)'; K=Plant.K(1:N); K=K(:); u=[]; y=[]; t=t(:);x=x(:)'; rt=fxt(rData,t,'approx'); e=x-rt(:,2:N+1); E=e*K; fx=eval(Plant.fx); gx=eval(Plant.gx); hx=eval(Plant.hx); fxa=eval(Plant.fxa); gxa=eval(Plant.gxa); hxa=eval(Plant.hxa); [t E] switch flag{1} % Control mode case 'exact' ufb = (rt(:,N+2)-e*ETA'-fx)./gx; % Feedback control law case 'approx' uxa = (rt(:,N+2)-e*ETA'-fxa)./gxa; % Approx. control law X=eval(Plant.X); Phi=(evalfis(X, Plant.Fdxn)); Edxn=E*Phi; if (0) ufb = uxa-abs(Phi)*bsig(Plant.kappa,E,0)./gxa; % Feedback control law else ufb = uxa-Phi*bsig(Plant.kappa,Edxn,0)/Plant.rho./gxa; % Feedback control law end case 'test' % Testing model with tempData - 150 - ut=fxt(Plant.tempData,t,'approx'); ufb=ut(:,3); case 'train' % Archiving data for approximator trainning uxa = (rt(:,N+2)-e*ETA'-fxa)./gxa; % Approx. control law ufb=uxa; otherwise error(['Unhandled Control Type = ', flag{1}]); end switch flag{2} case 'deriv' % y=[dx1/dt..dxN/dt] y=[x(:,2:N) fx+gx.*ufb]'; case 'output' % y=[h(x) ufb E e1..eN delta_dxn] if strcmp(flag{1},'approx') y=[hxa ufb E e (fxa-fx+(gxa-gx).*uxa)]; else y=[hx ufb E e (fxa-fx+(gxa-gx).*ufb)]; end case 'trndata' % y=[r delta_dxn] y=[rt(:,2) (fxa-fx+(gxa-gx).*uxa)]; otherwise error(['Unhandled Return Type = ', flag{2}]); end % ----- Reference r(t) signal Generator ------------------------------------------------ function [Ref] = fRefGen(RefSignal, tRef) % Reference signal r(t) Generator % Ref = [tRef yRef] ; max(size(Ref))=2 t=tRef; Ref = [tRef eval(RefSignal)]; % ----- Derrivative calculation ---------------------------------------------------------- function [y] = fDeriv(xData, p) % Calculates derrivatives up to p power of xData % xData=[t x1 .. x(N-1)]: xdata matrix (M rows, N columns) % y = [t dx1/dt..dx(N-1)/dt ... (d^p)x1/dt^p..(d^p)x(N-1)/dt^p]; % size(y)=[M-p 1+(N-1)*p] [M N]=size(xData); t=xData(:,1); dt=diff(t); x=[]; %x=xData(:,2:N); for i=1:p k=(i-1)*(N-1); for j=1:N-1 x(1:M-i,k+j)=diff(xData(1:M,j+1),i) ./ (dt(1:M-i).^i); end end y = [t(1:M-p) x(1:M-p,:)]; - 151 - % ----- Function values calculation ----------------------------------------------------- function [y] = fxt(xData, t, flag) % Calculation of x1(t)..xN(t) based on specification data stored in xData (t>=0) % t: time (row or column vector) for calculation of xi(t) % xData=[t x1(t) .. xN(t)]: xdata matrix % y = [t x1~(t) .. xN~(t)]; max(size(Ref))=N+1 % flag: mode of calculation (now works with 'approx' only) [M N] = size(xData); K=length(t); t=t(:); for i=1:K ti=t(i); j=1; while (xData(j,1)<=ti & j<M) j=j+1; end if (j==M) k=j; else k=j-1; end xt=xData(k,:); dt=ti-xt(1,1); if dt>0 switch flag % currently works with 'approx' only case 'approx' for j=2:N-1 xt(1,j)=xt(1,j)+xt(1,j+1)*dt; end otherwise ; end end y(i,:)=[ti xt(2:N)]; end % ----- bipolar sigmoidal function calculation ----------------------------------------- function f=bsig(kappa,E,A) kappa=kappa(:); E=E(:); A=A(1); f=2./(1+exp(-kappa.*(E-A))) - 1; - 152 - 5.6.  Bổ đề 6 trang 100 v Trƣờng hợp 1 Do A là ma trận xác định dương nên theo [38] luôn tồn tại phép phân tích LU (LU factorization) duy nhất A = LU với: L = é 1 0 L 0ù éu11 u12 L u1n ù 21  ê M O M ú ê M O M ú ê ú ê ú ë 0 0 tương ứng là các ma trận tam giác dưới (lower triangular matrix) và ma trận tam giác trên (upper triangular matrix); uii > 0, i = 1..n . Mặt khác có thể phân tích: U = éu11 0 L 0 ù é1 u12 / u11 L u1n / u11 ù ê M O M ú ê M O M ú 0 0 L 1 nên nếu ký hiệu lại U =  é1 u12 / u11 L u1n / u11 ù ê M O M ú 0 0 L 1 A có thể phân tích thành A = LDU với các ma trận tam giác L , U đều có các số hạng trên đường chéo bằng 1 và D là ma trận chéo. T T T T Ma trận chéo D có các giá trị trên đường chéo dương nên A có thể phân tích: T T 1/ 2 1/ 2 1/ 2 T  T với D1/2 = diag (  1/ 2 1/2êl ê 0 u22 2n ú ú ê ú , U = ê ú 1 0 u L unn û ëln1 ln 2 L 1û ê 0 u22 0 ú ê0 1 u2n / u22 ú ê ú * ê ú L unn û ë û ê ú ê ú ë 0 0 ê0 1 u2n / u22 ú ê ú và D = diag (u11, u22 ,K, unn ) thì ê ú ë û Biết A đối xứng nên từ A = AT suy ra A = LDU = U D LT = U DLT . Do phép phân tích trên là duy nhất nên L = UT hay A = U DU = LDLT . A = U DU = U D D U = ( D U ) ( D U) 1/ 2 = C C u11 22 ,K, unn ) và C = D U = D LT là ma trận tam giác trên. , u - 153 - v Trƣờng hợp 2 Nếu A có các giá trị riêng phân biệt thì ngoài phương pháp phân tích chung như trên còn có thể phân tích theo phương pháp đường chéo hóa ma trận A bằng phép -1 él1 0 L 0 ù ê ê M O M ú ê ú ë 0 0  , li > 0 : i = 1..n là các giá trị riêng phân biệt và P = é p11 p12 K p1n ù 21 22 2n ê M M M ú ê ú ë pn1 véctơ riêng độc lập tuyến tính của A . Mặt khác ta có: -T -1 -T T Þ DQ - QD = 0 T ) -1  -1 Đặt Q =  é q11 q12 K q1n ù 21 22 ê ú ëqn1  ij ji é l1q11 l1q12 ê M M ê q q é 0 ê M ê K l1q1n ù é l1q11 l2q12 K lnq1n ù q ú êl q l q - M M M M ú ê ú q q (l1 - l2 )q12 K (l1 - ln )q1n ù 0 M M ú ú 0 = 0 Do Q đối xứng nên biểu thức trên chỉ đúng khi qij = 0 với i ¹ j , ngoài ra do:biến đổi P AP = D với D = 0 úú ê 0 l2 L ln û ê p p K p ú ê ú = [P1 P2 n ] là tập hợp đầy đủ các L P pn 2 K pnn û A = PDP -1 = P DPT = AT Þ D = P P DP P = QDQ-1 với Q = ( P P = P P -T = QT là ma trận đối xứng. êq q K q2n ú ê ú với q = q | i, j = 1..n , dẫn đến: ê M M M ú qn 2 K qnn û êl q l q DQ - QD = ê 2 21 2 22 ëln n1 ln n 2 K l2 2 n ú ê 1 21 2 22 K lnq2 n úú ú ê ú K ln nn û ël1qn1 2qn 2 K ln nn û ê(l - l )q = ê 2 1 21 ë(ln - l1)qn1 K (l2 - ln )q2 n úú (ln - l2 )qn 2 K û - 154 - éP1T ù T êP2 ú M êP T ú  P2 L Pn ] T êP P ê M T T T ú T T M M úú T T  =  é1 / q11 0 K 0 ù 22 ê M M M ú ê ú ë 0 0 T T và chọn U = PT thì do li > 0 : i = 1..n nên có thể biến đổi A như sau: T T 1/2 1/2 1/2 T  T 1/2 1/2 ( l1 , l2 ,K, ln ) và U là ma trận unita.ê T ú P P = ê ú [P1 ê ú ë n û éP1 1 P ê T = ê 2 1 êP P ë n 1 P1 2 1 n ù L P P P P2 2 2 n ú L P P P Pn 2 n n úû L P P P ê 0 1/ q K 0 ú ê ú K 1 / qnn û nên Pi , i = 1..n cũng là các vectơ trực giao. Như vậy nếu chọn Pi i = 1 hay P P = I P A = U DU = U D D U = ( D U ) ( D U) 1/2 = C C với C = D U = D PT , D1/2 = diag - 155 - 5.7.  Một số môđun phần mềm trong mô hình phần mềm ứng dụng v Môđun phần mềm cung cấp dữ liệu quá trình cho IPC-Server Hình 14 cho biết hoạt động của môđun phần mềm cung cấp dữ liệu quá trình (Process I/O Data Transmission) và cấu trúc vùng bộ nhớ đệm với 2 nhiệm vụ chính là lưu dữ liệu quá trình vào bộ đệm (kích hoạt bởi ngắt thời gian theo chu kỳ lấy mẫu) và cung cấp dữ liệu trong bộ đệm theo yêu cầu cho PC-Server (điều khiển bởi PC- Server thông qua giao thức truyền thông). Ngoài ra môđun còn bảo đảm quản lý được vùng bộ nhớ đệm, xử lý các trường hợp đầy tràn vùng nhớ. Bộ đệm (FIFO) I/O Process Image  Header ¼  Current Plant  REAL 1 pRecRd REAL n ¼ REAL 1 Record ¼ REAL n  Rec 1  ¼ REAL n ¼ Data available for PC reading ¼ Ánh xạ  REAL 1 pRecWr REAL ... ¼ Current Plant Record will be written to the Buffer at sampling times Rec i  ¼ REAL n Note: n: m:  Number of related I/Os (all in real number format) of the plant(s) have to be stored at sampling times. Max. number of records available  ¼ REAL 1 in the Buffer for storage of plant data. temporary Rec m ¼ pRecRd: Pointer to the record for next reading from the Buffer. pRecWr: Pointer to the next record for next writting to the Buffer. REAL n Unused Hình 14 : Cấu trúc bộ đệm và dữ liệu quá trình cung cấp cho PC-Server Môđun phần mềm được xây dựng tổng quát cho phép mỗi lần thực hiện truy cập vào buffer có thể viết hoặc đọc nhiều bản ghi (records) với mỗi bản ghi chứa ít nhất 1 giá trị quá trình (dạng số thực 4 byte). - 156 - v Môđun phần mềm ANFIS trên PLC Đây là môđun phần mềm cơ bản trong mô hình hệ thống NF dựa trên mô hình mạng ANFIS. Môđun phần mềm cho phép tùy chọn các tham số/kiểu hàm trong các lớp mạng với các tùy chọn như sau: q Lớp 1: (Tính toán các đầu ra hàm liên thuộc) Môđun phần mềm hỗ trợ 2 dạng hàm liên thuộc đầu vào chính là hàm liên thuộc dạng hình chuông (Bell) và hàm Gauss. Số lượng các trọng số có thể điều chỉnh trong quá trình học của mỗi hàm này tương ứng là 3 và 2 (ký hiệu từ w0 đến w2) như đẳng thức sau: ABell ( x) =  1 +  1 x - w2 w0  2 w1  0 ê 2 è w1 ø û q Lớp 2: (Tính vế đầu của các luật) Có thể lựa chọn các dạng t-norm và t-conorm khác nhau cho tính toán như sau (mặc định t-norm=MIN và t-conorm=MAX) § t-norm: + MIN: + Lukasiewicz LAND: + Probabilistic PAND: § t-conorm: + MAX: + Lukasiewicz LOR: + Probabilistic POR: MIN(a,b) = min(a,b) LAND(a,b) = max(a+b-1,0) PAND(a,b) = ab MAX(a,b) = max(a,b) LOR(a,b) = min(a+b,1) POR(a,b) = a+b-ab q Lớp 3: (Chuẩn hóa đầu ra vế đầu của các luật) Phép chuẩn hóa đầu ra các luật được tính như sau: bi = a i N j =1  , i = 1,K, N q q Lớp 4: (Tính đầu ra của các luật) Đầu ra của mỗi luật được tính là tích của mức tác động đã được chuẩn hóa của mỗi luật (theo cơ chế luật của Sugeno) với đầu ra vế đầu của mỗi luật. Các trọng số trong lớp này có thể điều chỉnh trong quá trình học. Lớp 5: (Tính đầu ra của ANFIS) Mỗi đầu ra của ANFIS được tính trong lớp này và là tổng của toàn bộ đầu ra của các luật. Môđun phần mềm ANFIS được thiết kế cho dòng PLC SIMATIC S7-400 hoặc WinAC RTX hiện cho phép thực hiện 8 đầu vào với mỗi đầu vào mờ có thể có nhiều nhất tới 7 hàm liên thuộc (dạng Bell hoặc Gauss). Số lượng đầu ra lớn nhất cho phép của hệ thống ANFIS là 1 đầu ra tuy nhiên có thể mở rộng khi cần.é 1 æ x - w ö2 ù , BGauss ( x) = exp ê- ç ÷ ú ë ú åa j - 157 - Hình 15 : Các khối môđun phần mềm trên giao diện STEP7 V5

Các file đính kèm theo tài liệu này:

  • doc236.kilobooks.com.doc