THIẾT KẾ BỘ ĐIỀU KHIỂN MỜ CHO CÁNH TAY MÁY

Một phần của tài liệu Tóm tắt luận văn thạc sĩ kỹ thuật NHẬN DẠNG và điều KHIỂN CÁNH TAY máy (Trang 46)

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

Một phần của tài liệu Tóm tắt luận văn thạc sĩ kỹ thuật NHẬN DẠNG và điều KHIỂN CÁNH TAY máy (Trang 46)

Tải bản đầy đủ (PDF)

(75 trang)