Luận văn Mô phỏng hệ thống điều khiển mờ bằng Matlab
I. Đặt vấn đề:
Vào những năm đầu của thập kỷ 90, một ngành kỹ thuật điều khiển mới đã phát
triển rất mạnh mẽ và đã đem lại nhiều thành tựu bất ngờ trong lĩnh vực điều khiển, đó là
điều khiển mờ. Ưu điểm cơ bản của điều khiển mờ so với các phương pháp điều khiển
kinh điển là có thể tổng hợp được bộ điều khiển mà không cần biết trước đặc tính của
đối tượng một cách chính xác.
Ngành kỹ thuật mới mẻ này đã được ứng dụng vào thực tiễn và đã đạt được nhiều
thành công. Ở Việt Nam, ngành kỹ thuật này chỉ mới ở bước đầu nghiên cứu. Chính vì
vậy chúng em thực hiện đề tài “Nghiên cứu điều khiển mờ. Mô phỏng hệ thống điều
khiển mờ bằng MatLab” cũng nhằm mục đích tiếp cận được với ngành kỹ thuật mới
này.
II. Giới hạn vấn đề:
Do thời gian nghiên cứu thực hiện đề tài chỉ giới hạn trong vòng 10 tuần, đối
tượng nghiên cứu khá mới mẻ đối với chúng em. Vì vậy đề tài này chỉ thực hiện trong
phạm vi như sau:
- Khảo sát lý thuyết logic mờ.
- Xây dựng mô hình vật lý và mô hình toán học của một hệ thống điều khiển cụ
thể: Hệ thống điều khiển tự động nhiệt độ dùng VXL 8 bit ứng dụng giải thuật logic mờ.
- Mô phỏng mô hình trong MatLab.
lại trong FIS Editor, trong phần Defuzzification chọn phương pháp giải mờ. Có các phương pháp giải mờ như: Sử dụng Rule Editor để tạo bảng luật điều khiển cho bộ điều khiển mờ. Từ menu View, chọn Edit Rules để kích hoạt Rule Editor. Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 54 Để kiểm tra lại hoạt động của bộ điều khiển mờ, ta vào menu View, chọn View Rules. Tại ô Input, ta có thể nhập các giá trị của biến ngã vào để quan sát các giá trị của biến ngã ra. Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 55 Để xem luật điều khiển trong không gian, chọn View Surface trong menu View. Tại Listbox Z(output) có thể chọn cold hay hot để quan sát. Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 56 2. Mô phỏng trong Simulink: Tại dấu nhắc của MatLab, gõ ‘simulink’ để kích hoạt màn hình làm việc của Simulink. Dựa vào mô hình toán học ta vào thư viện lấy các khối tích phân, khuếch đại công suất, máy phát tín hiệu thử, scope để hiển thị kết quả. Trong thư viện simulink mở thư viện Blocksets & Toolboxes. Thư viện simulink Thư viện Blockset và Toolbox Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 57 Mở SIMULINK Fuzzy ta có các thành phần sau: Trong SIMULINK Fuzzy, ta lấy Fuzzy Logic Controller. Trở lại thư viện simulink, lần lượt mở các thư viện Sources, Sink và Linear để lấy các thành phần như: Constant, Signal Generator, Scope, Sum, … Thư viện SIMULINK Fuzzy Thư viện Sources Thư viện Sinks Thư viện Linear Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 58 Thiết kế van nước lạnh: Van nước gồm một biến ngã vào là tốc độ đóng/mở van, hai biến ngã ra là nhiệt độ và tốc độ của dòng nước. Nhiệt độ của dòng nước lạnh là 10oC. Ngõ vào tốc độ đóng/mở van sau khi qua khâu tích phân rồi được qua khâu khuếch đại bão hoà. Hàm f(u) của khâu bão hoà được xác định theo công thức: k.u(1).(k.u(1)u(2)) + u(2).(k.u(1)>u(2)) Với k.u(1) là tín hiệu ra sau khâu tích phân, u(2) tốc độ cực đại của van. + Khi k.u(1) u(2) thì ngã ra là k.u(1), + Khi k.u(1) > u(2) thì ngã ra là u(2). Sơ đồ hệ thống điều khiển Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 59 Thiết kế van nước nóng: Tương tự như đối với van nước lạnh. Nhiệt độ của dòng nước nóng là 30oC. Thiết kế khâu lưu tốc đặt trước: Khâu bao gồm tốc độ đặt trước và máy phát tín hiệu thử. Thiết kế khâu nhiệt độ đặt trước: Khâu bao gồm nhiệt độ đặt trước và máy phát tín hiệu thử. Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 60 Thiết kế hàm đối tượng: Hàm lưu tốc: u(1)+u(3) Với u(1) là tốc độ của dòng nước nóng. u(3) là tốc độ của dòng nước lạnh. Hàm nhiệt độ: )3()1( )4().3()2().1( uu uuuu Với u(1) là tốc độ của dòng nước nóng. u(2) là nhiệt độ của dòng nước nóng. u(3) là tốc độ của dòng nước lạnh. u(4) là nhiệt độ của dòng nước lạnh. Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 61 IV. Kết quả mô phỏng: Mô phỏng với nhiệt độ đặt trước là 23oC. Lưu tốc đặt trước là 0.7m3/h. + Đối với tín hiệu thử có sự biến thiên là hàm xung vuông có tần số là fs1 = 0.3rad/s, biên độ là 0.2m 3/h đối với tốc độ dòng nước ra và fs2 = 0.2rad/s, biên độ là 4oC đối với nhiệt độ của dòng nước ra. Ta có các đáp ứng sau: Đáp ứng của nhiệt độ Đáp ứng của lưu tốc tín hiệu thử đáp ứng ra đáp ứng ra tín hiệu thử Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 62 + Đối với tín hiệu thử có sự biến thiên là hàm sin có tần số là fs1 = 0.3rad/s, biên độ là 0.2m3/h đối với tốc độ dòng nước ra và fs2 = 0.2rad/s, biên độ là 4 oC đối với nhiệt độ của dòng nước ra. Ta có các đáp ứng sau: Đáp ứng của lưu tốc Đáp ứng của nhiệt độ đáp ứng ra tín hiệu thử đáp ứng ra tín hiệu thử Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 63 Chương IV Kết luận đề nghị Trải qua 10 tuần thực hiện đề tài, chúng em đã trình bày được phần lý thuyết cơ bản của logic mờ, cách ứng dụng logic mờ trong điều khiển và đã rút ra được những ưu nhược điểm của kỹ thuật điều khiển mờ so với các kỹ thuật điều khiển cổ điển trước đây. Thêm vào đó, chúng em đã mô phỏng hệ thống điều khiển mờ bằng phần mềm MatLab để từ đó có thể quan sát được đáp ứng hay chất lượng của hệ thống. Hướng phát triển của đề tài: Xây dựng mô hình mẫu để có thể quan sát và kiểm tra lại lý thuyết bằng thực nghiệm. Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 64 PHẦN C PHỤ LỤC Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 65 CẤU TRÚC FILE .FIS (Fuzzy Inference System) Cấu trúc của file .FIS được tạo bởi FIS Editor bao gồm các phần sau: 1. [System] Name = : khai báo tên, được đặt trong dấu nháy. Type = : khai báo loại, được đặt trong dấu nháy. NumInputs = : số lượng ngã vào, là một số nguyên. NumOutputs = : số lượng ngã ra, là một số nguyên. NumRules = : số lượng luật điều khiển, là một số nguyên. AndMethod = : tên phương pháp AND. + các phương pháp được sử dụng là: ‘min’ và ‘prod’. OrMethod = : tên phương pháp OR. + các phương pháp được sử dụng là: ‘max’ và ‘probor’. ImpMethod = : tên phương pháp kéo theo. + các phương pháp được sử dụng là: ‘min’ và ‘prod’. AggMethod = : tên phương pháp tập hợp. + các phương pháp được sử dụng là: ‘max’, ‘sum’ và ‘probor’. DefuzzMethod = : tên phương pháp giải mờ. + các phương pháp được sử dụng là: ‘centroid’, ‘bisector’, ‘mom’, ‘lom’ và ‘som’. 2.[Input1] Name = : tên của ngã vào, được đặt trong dấu nháy. Range = : giới hạn dưới và trên của biến vào được đặt trong ngoặc vuông. NumMFs = : số lượng hàm liên thuộc, là một số nguyên. MF1=: khai báo dữ liệu về hàm liên thuộc, báo đầu bằng tên hàm được đặt trong dấu nháy, theo sau bởi dấu hai chấm và tên loại hàm liên thuộc, kế tiếp là dấu phẩy và các thông số của hàm được đặt trong ngoặc vuông. Cứ như vậy cho đến MFn, với n là số lượng hàm liên thuộc. Có bao nhiêu ngã vào thì lần lượt khai báo các dữ liệu cho các ngã vào [Inputi], với i là số thứ tự của ngã vào. Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 66 3.[Output1] Name = : tên của ngã ra, được đặt trong dấu nháy. Range = : giới hạn dưới và trên của biến ra được đặt trong ngoặc vuông. MF1=: khai báo dữ liệu về hàm liên thuộc, báo đầu bằng tên hàm được đặt trong dấu nháy, theo sau bởi dấu hai chấm và tên loại hàm liên thuộc, kế tiếp là dấu phẩy và các thông số của hàm được đặt trong ngoặc vuông. Cứ như vậy cho đến MFn, với n là số lượng hàm liên thuộc. Có bao nhiêu ngã ra thì lần lượt khai báo các dữ liệu cho các ngã ra [Outputi], với i là số thứ tự của ngã ra. * Các loại hàm liên thuộc có thể chọn là: ‘trimf’: có 3 thông số. ‘trapmf’: có 4 thông số. ‘gbellmf’: có 4 thông số. ‘gaussmf’: có 2 thông số. ‘gauss2mf’: có 4 thông số. ‘sigmf’: có 2 thông số. ‘dsigmf’: có 4 thông số. ‘psigmf’: có 4 thông số. ‘pimf’: có 4 thông số. ‘smf’: có 2 thông số. ‘zmf’: có 2 thông số. 4.[Rules] Mô tả bảng luật điều khiển dưới dạng ma trận, khai báo luật điều khiển theo cấu trúc sau: Hàng, cột, luật_điều_khiển_ ngã_ra_1 (luật_điều_khiển_ ngã_ra_2) … Hàng kế tiếp với cột được tăng lên 1, cứ như vậy cho đến cột cuối cùng, tiếp theo hàng được tăng lên 1, … cứ như vậy cho đến luật điều khiển cuối cùng. Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 67 LIỆT KÊ FILE SHOWER.FIS % $Revision: 1.1 $ [System] Name = 'shower' Type = 'mamdani' NumInputs = 2 NumOutputs = 2 NumRules = 9 AndMethod = 'min' OrMethod = 'max' ImpMethod = 'min' AggMethod = 'max' DefuzzMethod = 'centroid' [Input1] Name = 'temp' Range = [-20 20] NumMFs = 3 MF1='cold':'trapmf',[-30 -30 -15 0] MF2='good':'trimf',[-10 0 10 0] MF3='hot':'trapmf',[0 15 30 30] [Input2] Name = 'flow' Range = [-1 1] NumMFs = 3 MF1='soft':'trapmf',[-3 -3 -0.8 0] MF2='good':'trimf',[-0.4 0 0.4 0] MF3='hard':'trapmf',[0 0.8 3 3] [Output1] Name = 'cold' Range = [-1 1] NumMFs = 5 MF1='closeFast':'trimf',[-1 -0.6 -0.3 0] MF2='closeSlow':'trimf',[-0.6 -0.3 0 0] MF3='steady':'trimf',[-0.3 0 0.3 0] MF4='openSlow':'trimf',[0 0.3 0.6 0] MF5='openFast':'trimf',[0.3 0.6 1 0] Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 68 [Output2] Name = 'hot' Range = [-1 1] NumMFs = 5 MF1='closeFast':'trimf',[-1 -0.6 -0.3 0] MF2='closeSlow':'trimf',[-0.6 -0.3 0 0] MF3='steady':'trimf',[-0.3 0 0.3 0] MF4='openSlow':'trimf',[0 0.3 0.6 0] MF5='openFast':'trimf',[0.3 0.6 1 0] [Rules] 1 1, 4 5 (1) : 1 1 2, 2 4 (1) : 1 1 3, 1 2 (1) : 1 2 1, 4 4 (1) : 1 2 2, 3 3 (1) : 1 2 3, 2 2 (1) : 1 3 1, 5 4 (1) : 1 3 2, 4 2 (1) : 1 3 3, 2 1 (1) : 1 Luận văn tốt nghiệp Nghiên cứu điều khiển mờ – Mô phỏng hệ thống điều khiển mờ bằng MatLab 69 TÀI LIỆU THAM KHẢO 1. Trần Sum, Giáo trình: Lý thuyết điều khiển tự động, ĐH SPKT, 1998. 2. Nguyễn Thị Phương Hà, Điều khiển tự động, NXB KHKT, 1996. 3. Phan Xuân Minh – Nguyễn Doãn Phước, Lý thuyết Điều khiển mờ, NXB KHKT, 1997. 4. Timothy J.Ross, Fuzzy Logic With Engineering Applications, McGraw-Hill, 1998. 5. Kazuo Tanaka, An Introduction to fuzzy logic for practical applications, Spinger, 1996 6. MatLab, The Student Edition of MatLab version 4 User’s Guide, Prentice Hall. 7. Charles L.Phillips and HTroy Nagle, JR, Digital Control System Analysis and Design, Prentice Hall, 1984.
File đính kèm:
- Luận văn Mô phỏng hệ thống điều khiển mờ bằng Matlab.pdf