3.3.1. Thiết kế bộ điều khiển mờ bằng công cụ Fuzzy trong Matlab
Một bộ điều khiển mờ có thể được thiết kế dễ dàng trên phần mềm
Matlab sử dụng lệnh Fuzzy, giúp cho việc thiết kế, mô phỏng, kiểm tra và
hiệu chỉnh bộ điều khiển mờ một cách thuận tiện. Để thiết kế bộ điều khiển mờ trong hộp công cụ này ta có thể thực hiện thông qua các giao diện đồ họa, sau khi tạo cửa sổ bằng câu lệnh này trên màn hình hiện ra cửa sổ. Bộ điều
khiển này chưa được đặt tên và chỉ có một đầu vào Input1, một đầu ra
Output1. Để chọn mô hình mờ, vào menu File, New FIS chọn mô hình mờ
Mamdani (hình 3.9). Matlab hỗ trợ hai loại mô hình mờ là Mamdani và Sugeno. Trong luận văn này chúng tôi sử dụng mô hình mờ thứ nhất.
35
Hình 3.9: Giao diện thiết kế mô hình mờ Mamdani
Sau khi đã có mô hình mờ, tiến hành soạn thảo các hàm liên thuộc
vào/ra, các luật điều khiển. Vào biểu tượng input1 màu vàng, chọn Edit, Add
MFs để thêm hàm liên thuộc. Chọn các hàm liên thuộc cho biến đầu vào
input1 (màu vàng) và đầu ra output1 (màu xanh).
Chọn số hàm liên thuộc cho biến đầu vào input1 là 3, có dạng hình tam
giác. 3 tập mờ đầu vào là mf1, mf2, mf3 hoặc có thể chọn số tập mờ tùy theo yêu cầu của bài toán.
Hình 3.10: Giao diện các tập mờ đầu vào
Tập mờ đầu ra Tập mờ đầu
vào
36
Hình 3.11: Giao diện các tập mờ đầu ra
Để thay đổi hình dạng một hàm liên thuộc nào đó kích chuột vào nó sẽ
chuyển sang màu đỏ, sau đó kích chuột vào hộp thoại Params để đặt tên và
dải tín hiệu của các hàm liên thuộc. Vào hộp thoại Range nhập dải giá trị cho
tín hiệu đầu vào (hoặc ra).
Hình 3.12: Giao diện soạn thảo đầu vào
Như vậy ta đã có tập mờ vào/ra. Để soạn thảo luật hợp thành bấm chuột
vào khối Mamdani màu đen trong hình 3.9, sau đó sẽ hiện ra cửa sổ (luật hợp
thành) có 3 tập mờ đầu vào mf1, mf2, mf3 và 3 tập mờ đầu ra mf1, mf2, mf3. Nếu tín hiệu đầu vào thuộc tập mờ mf1, ta chọn tập mờ đầu ra là mf1, mỗi lần
37
soạn xong một luật chọn Add rule để xác nhận, tương tự chọn các luật mờ còn
lại. Việc lựa chọn số lượng, dạng và vị trí các hàm liên thuộc hoàn toàn dựa trên cơ sở kinh nghiệm và hiểu biết về đối tượng thực.
Hình 3.13: Giao diện soạn thảo luật mờ.
Từ Menu chọn View tacó thể xem đồ thị đường đặc tính của bộ mờ (như hình 3.14).
38
Muốn quan sát hoạt động của bộ mờ, chọn View Rules. Tín hiệu đầu
vào Input1 = 0, tín hiệu đầu ra Output1 = 0. Ta có thể tìm quan hệ đầu vào/ra
của bộ mờ qua đồ thị. Từ ô Input1 có thể nhập các giá trị biến đầu vào và ta
có thể quan sát được các giá trị của biến đầu ra như hình 3.15. Như vậy bộ điều khiển mờ đã được thiết kế.
Hình 3.15: Giao diện mô phỏng quá trình hoạt động của bộ mờ
Sau khi thiết kế xong bộ điều khiển, ta lưu lại thành một file có đuôi là
fis chẳng hạn là myfis.fis. Sau đó đưa ra workspace thông qua lệnh export to
workspace. Trong Simulink ta có thể sử dụng bộ mờ này bằng cách sử dụng
khối điều khiển mờ và khai báo với tên là myfis.
3.3.2. Thiết kế bộ điều khiển mờ cho đối tượng
Ở phần trên chúng ta đã làm quen với công cụ Fuzzy trong Matlab.
Trong phần này, chúng tôi sẽ sử dụng nó để thiết kế bộ điều khiển mờ cho mô hình cánh tay máy thực trong phòng thí nghiệm.
Mục tiêu là thiết kếbộ điều khiển mờ, và chạy mô phỏng cho đối tượng
39
giá trị góc bám theo giá trị đặt với sai số là đủ nhỏ. Chúng tôi thiết kế thử nghiệm cả 2 bộ điều khiển mờ tĩnh và mờ động để điều khiển cho cùng một đối tượng, sau đó lấy kết quả so sánh, lựa chọn để điều khiển cho hệ thống thực. Với mỗi bộ điều khiển này chúng tôi sẽ thiết kế với hai trường hợp là số tập mờ đầu vào/ra lần lượt là 3 và 5.
Để thiết kế và mô phỏng hệ thống, chúng tôi đã sử dụng mô hình toán (2.9) của cánh tay máy một bậc tự do trong phòng thí nghiệm, với bộ tham số đã được xác định thông qua nhận dạng ở trên như bảng 3.1.
STT Thông số Giá trị Đơn vị
1 β 1 N.m.s 2 k 0.0491 N.m/V 3 Jt 1.0015 kg.m2 4 J 3.0350 kg.m2 5 ℓ 0.25 m 6 M 0.004 kg 7 Ts 0.05 s (giây) 8 g 9.81 m/s2
Bảng 3.1: Các thông số của mô hình toán
Bộ điều khiển mờ sau khi thiết kế và mô phỏng cho mô hình toán sẽ được cài đặt và điều khiển thực cho cánh tay máy một bậc tự do trong phòng thí nghiệm.
3.3.2.1. Thiết kế bộ điều khiển mờ tĩnh cho đối tượng
Thiết kế bộ điều khiển mờ tĩnh gồm các bước như sau:
Bước 1: Mờ hóa đầu vào.
40
3.14)rad. Chọn 3 tập mờ đầu vào là mf1, mf2 và mf3 và 3 tập mờ đầu ra là
mf1, mf2 và mf3.
Bước 2: Chọn luật hợp thành.
Xây dựng luật hợp thành: Nếu tín hiệu đầu vào thuộc tập mờ mf1, mf2 hoặc mf3 thì chọn tín hiệu đầu ra thuộc tập mờ mf1, mf2 hoặc mf3 tương ứng.
Bước 3: Giải mờ đầu ra.
Chọn biến đầu ra là tín hiệu điều khiển động cơ có dải giá trị là (-12 ÷
12)V.
Mô phỏng hệ thống điều khiển sử dụng bộ điều khiển mờ tĩnh trong Matlab như hình sau:
Hình 3.16: Sơ đồ khối bộ điều khiển mờ tĩnh trong Simulink
Hệ thống có tín hiệu đặt bằng 1. Đối tượng (*) là cánh tay máy một bậc
tự do có mô hình toán là (2.9), và các thông số kèm theo trong bảng 3.1. Kết quả thể hiện trong hình 3.18.
3.3.2.2. Thiết kế bộ điều khiển mờ động cho đối tượng
Để thiết kế bộ điều khiển mờ động, trước tiên chúng tôi lựa chọn cấu trúc bộ mờ là PI mắc song song. Khối mờ thứ nhất là thành phần tỉ lệ và khối mờ thứ hai là thành phần tích phân. Hai khối mờ này được thiết kế tương tự như bộ mờ tĩnh ở phần trên với số tập mờ đầu vào/ra đều bằng 3.
41
Mô phỏng hệ thống điều khiển sử dụng bộ mờ động trong Matlab/Simulink như hình sau:
Hình 3.17: Sơ đồ khối bộ điều khiển mờ động trong Simulink
Đối tượng vẫn được giữ nguyên như phần trên (*), nhưng bộ điều khiển
là mờ động. Kết quả thể hiện trong hình 3.19.
3.3.2.3. So sánh bộ điều khiển mờ tĩnh và động dùng 3 tập mờ0 5 10 15 20 25 30 0 5 10 15 20 25 30 0 0.2 0.4 0.6 0.8 1 1.2 1.4 Giay R a d
Gia tri toa do cua mo hinh toan Vi tri goc dat
42
Từ đồ thị hình 3.18 ta thấy: Đường màu đỏ là vị trí góc đặt, đường màu xanh là giá trị tọa độ ước lượng của mô hình toán theo phương trình (2.9) ta có được kết quả sau:
- Trong thời gian quá độ là 10 giây đồ thị có sai lệch tĩnh bằng 4,6 %. - Thời gian xác lập: Tọa độ của mô hình toán đạt giá trị xác lập là 17,5 giây. - Không có dao động. 0 5 10 15 20 25 30 0 0.2 0.4 0.6 0.8 1 1.2 1.4 Giay R a d
Gia tri toa do cua mo hinh toan Vi tri goc dat
Hình 3.19: Tín hiệu đầu ra sử dụng bộ điều khiển mờ động
Từ đồ thị hình 3.19 ta thấy: Đường màu đỏ là vị trí góc đặt, đường màu xanh là giá trị tọa độ ước lượng của mô hình toán theo phương trình (2.9) ta có được kết quả sau:
43
- Thời gian xác lập: Tọa độ của mô hình toán đạt giá trị xác lập là 16,5
giây.
- Không có dao động.
Nhận xét:
- Đã mô phỏng trong Matlab cho hai bộ điều khiển, bộ điều khiển mờ tĩnh và bộ điều khiển mờ động, điều khiển cho cùng một đối tượng có mô hình toán (2.9) xác định, sử dụng bộ điều khiển mờ có 3 tập mờ đầu vào/ra.
- So sánh hai kết quả mô phỏng trên ta thấy bộ điều khiển mờ động có
3 tập mờ đầu vào, thu được thời gian quá độ 10s và thời gian hệ thống xác lập là 16,5 giây nhỏ hơn so với bộ điều khiển mờ tĩnh.
3.3.2.4. So sánh bộ điều khiển mờ tĩnh và động dùng 5 tập mờ
Để có được bộ điều khiển mờ đảm bảo chất lượng tốt hơn, chúng tôi đã thiết kế bộ mờ tĩnh và động như ở phần trên nhưng với số tập mờ đầu vào và đầu ra khác nhau. Trong phần này chúng tôi đưa ra kết quả với trường hợp là có 5 tập mờ đầu vào/ra.
Sau khi thiết kế bộ điều khiển mờ và mô phỏng trong Matlab chúng tôi thu được các kết quả như hình 3.20 và hình 3.21. Tiếp theo chúng tôi sẽ so sánh chất lượng của các bộ điều khiển đã thiết kế, và lựa chọn một bộ điều khiển để điều khiển hệ thống thực.
44 0 5 10 15 20 25 30 0 0.5 1 1.5 Giay R a d
Gia tri toa do cua mo hinh toan Vi tri goc dat
Hình 3.20: Tín hiệu đầu ra sử dụng bộ điều khiển mờ tĩnh
Từ đồ thị hình 3.20 ta thấy: Đường màu đỏ là vị trí góc đặt, đường màu xanh là giá trị tọa độ ước lượng của mô hình toán theo phương trình (2.9) ta có được kết quả như sau:
- Thời gian xác lập: 2,39 giây - Độ quá điều chỉnh: 38 % - Thời gian quá độ: 13,7 giây - Sai lệch tĩnh: 0,15 %
45 0 5 10 15 20 25 30 0 0.2 0.4 0.6 0.8 1 1.2 1.4 Giay R a d
Gia tri toa do cua mo hinh toan Vi tri goc dat
Hình 3.21: Tín hiệu đầu ra sử dụng bộ điều khiển mờ động
Từ đồ thị hình 3.21 ta thấy: Đường màu đỏ là vị trí góc đặt, đường màu xanh là giá trị tọa độ ước lượng của mô hình toán theo phương trình (2.9) ta có được kết quả như sau:
- Thời gian xác lập: 3,23 giây - Độ quá điều chỉnh: 28 % - Thời gian quá độ: 13,5 giây - Sai lệch tĩnh: 0,13 %
- Số lần dao động ít, hệ thống ổn định sau 20 giây.
Nhận xét:
- Đã mô phỏng trong Matlab cho hai bộ điều khiển, bộ điều khiển mờ
tĩnh và bộ điều khiển mờ động điều khiển cho cùng một đối tượng (*), sử
46
- So sánh hai kết quả mô phỏng trên ta thấy bộ điều khiển mờ động có
có ưu điểm hơn so với bộ điều khiển mờ tĩnh: - Có biên độ dao động nhỏ hơn.
- Số lần dao động ít hơn.
- Có độ quá điều chỉnh nhỏ hơn. - Độ sai lệch tĩnh ít hơn.
- Thời gian quá độ nhỏ.
Tuy nhiên bộ điều khiển mờ động có thời gian xác lập lớn hơn so với bộ điều khiển mờ tĩnh là 0,84 giây.
Kết luận:
Sau khi thiết kế và mô phỏng hệ thống điều khiển, sử dụng bộ điều khiển mờ tĩnh và bộ điều khiển mờ động, với các trường hợp 3 tập mờ và 5 tập mờ đầu vào/ra ta thấy:
Bộ điều khiển mờ động sử dụng 3 tập mờ đầu vào/ra cho chất lượng tốt hơn cả. Vì vậy bộ điều khiển mờ động có 3 tập mờ đầu vào/ra được chọn dùng để điều khiển đối tượng thực là cánh tay máy một bậc tự do trong phòng thí nghiệm.
47
Chương IV
ĐIỀU KHIỂN THỜI GIAN THỰC SỬ DỤNG MATLAB/SIMULINK VÀ THƯ VIỆN ARDUINO
4.1. GIỚI THIỆU THƯ VIỆN ARDUINO TRONG SIMULINK
Thư viện Arduino được Giampiero Campa xây dựng trong Simulink
lần đầu tiên từ năm 2009 với phiên bản 1.0. Cho tới nay đã phát triển thành phiên bản 4.2.
Thư viện có nhiệm vụ kết nối máy tính với card Arduino thông qua
Simulink.
Thư viện Arduino gồm các khối sau:
- Khối Arduino IO Setup.
- Khối Real - Time Pacer. - Khối Motor out.
- Khối Encoder Read.
Để điều khiển thời gian thực ta chỉ cần ghép nối các khối này với khối mờ trong một file mô phỏng của Simulink là được.
4.1.1. Khối Arduino IO Setup
48
Hình 4.2: Giao diện định nghĩa cho khối Arduino IO Setup
+ Khối Arduino IO Setup: Trên giao diện Parameters sử dụng hai tham số:
- Biến Arduino: Có rất nhiều biếnArduino, chúng tôi đã sử dụng biến
Arduino1 cho hệ thống.
- Cổng nối tiếp Serial (COM) port : Do máy tính kết nối với Arduino
thông qua cổng nối tiếp COM3, cho nên ta phải khai báo là COM3 ở tham số Serial (COM) port.
4.1.2. Khối Real - Time Pacer
49
Hình 4.4: Giao diện khối Real-Time Pacer
Khối Real - Time Pacer: trên giao diện Parameters sử dụng một tham số Speedup (Simulation Time / Real Time), là tỉ số giữa thời gian mô phỏng và thời gian thực.
Để điều khiển thời gian thực, ta chọn Speedup bằng 1.
4.1.3.Khối Motor out
50
Khối Motor out đưa tín hiệu điều khiển từ máy tính ra các chân số 5, 6 của Arduino.
+ Chân số 5 làtín hiệu Analog tương tự.
1 Gain3 Convert Data Type Conversion
>= 0 Compare To Zero Arduino1 Digital Write Pin 6 Arduino Digital Write
Arduino1 Analog Write
Pin 5
Arduino Analog Write |u| Abs 2 Direction 1 Speed
Hình 4.6: Sơ đồ khối Speed
Hình 4.7: Giao diện của khối Analog Write + Khối Analog Write có 3 tham số:
- Chọn biến Arduino: Là Arduino1 - Pin: 5
51
- Thời gian lấy mẫu Sample Time: Là 0,01
+ Chân số 6 làtín hiệu xung PWM.
1 Gain3 Convert Data Type Conversion
>= 0 Compare To Zero Arduino1 Digital Write Pin 6 Arduino Digital Write
Arduino1 Analog Write
Pin 5
Arduino Analog Write |u| Abs 2 Direction 1 Speed
Hình 4.8: Sơ đồ khối Direction
Hình 4.9: Giao diện khối Digital Write + Khối Digital Write có 3 tham số:
- Chọn biến Arduino: Là Arduino1
- Thời gian lấy mẫu Sample Time: Là 0,01 - Pin: 6
52
4.1.4.Khối Encoder Read
Hình 4.10: Khối Encoder Read
53
+ Khối Encoder Read có 6 tham số:
- Arduino Variable: Chọn Arduino 1
- Encoder number: Chọn số bộ mã hóa là 1.
- Pin A: Nối với chân số 3 của card Arduino. - Pin B: Nối với chân số 2 của card Arduino. - Debounce delay: 0
- Sample Time: Ts = 0,05 (thời gian lấy mẫu được định nghĩa trong cửa sổ lệnh).
4.2.HỆ THỐNG ĐIỀU KHIỂN THỜI GIAN THỰC SỬ DỤNG BỘ MỜ VÀ ARDUINO VÀ ARDUINO
Sau khi lựa chọn được các khối, ta tiến hành kết nối với động cơ, card
Arduino và Encoder để điều khiển thời gian thực.
Chương trình điều khiển cánh tay máy trên miền thời gian thực được
xây dựng bằng phần mềm Matlab - Simulink (hình 4.12).Hệ thống điều khiển
sử dụng bộ điều khiển mờ động, có 3 tập mờ đầu vào/ra để điều khiển đối tượng thực. Bộ điều khiển mờ được thiết kế ở phần 3.3.2.2 chương III. Tín hiệu góc thực đo được và tín hiệu góc đặt được thể hiện trong hình 4.13.
54
55 0 10 20 30 40 50 60 70 80 90 100 -60 -40 -20 0 20 40 60 Giay Do
Vi tri goc thuc Vi tri goc dat
Hình 4.13: Vị trí góc thực và giá trị đặt