Luận văn Nghiên cứu điều khiển mờ 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.

 

doc71 trang | Chuyên mục: MATLAB | Chia sẻ: yen2110 | Lượt xem: 556 | Lượt tải: 0download
Tóm tắt nội dung Luận văn Nghiên cứu điều khiển mờ mô phỏng hệ thống điều khiển mờ bằng Matlab, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ều khiển mờ có hai ngõ vào và hai ngõ ra. Các biến ngõ vào là Flow và Temp, các biến ngõ ra là Cold và Hot.
Từ menu Edit, chọn Add Input rồi chọn Add Output. Nhắp vào hình input1, input2, output1, output2 để sửa tên trong ô Name tương ứng.
Nhắp kép vào hình temp để tạo lập các hàm liên thuộc cho biến vào temp.
Trong ô Range nhập vào miền xác định của biến. Vào menu Edit để thêm các hàm liên thuộc. Có các loại hàm liên thuộc như sau:
Trong ô Type, chọn hàm liên thuộc hình thang (trapmf) cho hàm cold và hot, và chọn hàm liên thuộc hình tam giác cân (trimf) cho hàm good.
Ô Param dùng để nhập thông số cho từng hàm khi nhắp vào hàm. Ô Name dùng để đặt tên cho hàm.
Làm tương tự như vậy đối với biến flow.
Đối với hai biến ra là cold và hot, chọn các hàm liên thuộc là hình tam giác.
Trở 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.
Để 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.
Để 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.
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ả.
Thư viện simulink
Trong thư viện simulink mở thư viện Blocksets & Toolboxes.
Thư viện Blockset và Toolbox
Mở SIMULINK Fuzzy ta có các thành phần sau:
Thư viện SIMULINK Fuzzy
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 Linear
Thư viện Sources
Thư viện Sinks
Sơ đồ hệ thống điều khiển
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).
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ử.
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 độ:
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.
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.2m3/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 lưu tốc
tín hiệu thử 
đáp ứng ra
đáp ứng ra
tín hiệu thử 
Đáp ứng của nhiệt độ
+ Đố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à 4oC đối với nhiệt độ của dòng nước ra. Ta có các đáp ứng sau:
đáp ứng ra
tín hiệu thử 
Đáp ứng của lưu tốc
đáp ứng ra
tín hiệu thử 
Đáp ứng của nhiệt độ
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.
PHẦN C
PHỤ LỤC 
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.
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.
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]
[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 
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:

  • docluan_van_nghien_cuu_dieu_khien_mo_mo_phong_he_thong_dieu_khi.doc