Bộ điều khiển Mờ (Fuzzy Control)

Một phần của tài liệu NGHIÊN CỨU XÂY DỰNG PHƯƠNG PHÁP ĐIỀU KHIỂN ROBOT TỰ HÀNH DỰA TRÊN CƠ SỞ LOGIC MỜ (Trang 38)

Hình 3.8. Sơ đồ nguyên lý một bộ điều khiển mờ

Các nguyên lý thiết kế hệ thống điều khiển mờ :

- Giao diện đầu vào gồm các khâu : Mờ hóa, các khâu hiệu chỉnh tỷ lệ, tích phân, vi phân…

- Thiết bị hợp thành: sự triển khai luật hợp thành Mờ.

- Giao diện đầu ra gồm : khâu giải mờ và các khâu trực tiếp với đối tượng. Các bước xây dựng bộ điều khiển mờ:

- Bước 1 : định nghĩa tất cả các biến ngôn ngữ vào/ra.

- Bước 2 : xác định các tập mờ cho từng biến ngôn ngữ vào/ra (mờ hóa). - Bước 3: xây dựng luật hợp thành.

- Bước 4 : chọn thiết bị hợp thành. - Bước 5 : giải mờ và tối ưu hóa

Luật điều khiển Luật điều khiển Thiết bị thực hiện hợp thành Thiết bị thực hiện hợp thành Giao diện đầu ra Giao diện đầu ra Giao diện đầu vàoGiao diện đầu vào

BỘ ĐIỀU

KHIỂN MỜ Đối tượng ĐK

CHƯƠNG IV

XÂY DỰNG THUẬT TOÁN VỀ ỨNG DỤNG LOGIC MỜ TRONG KỸ THUẬT DẪN HƯỚNG CHO ROBOT TỰ HÀNH VÀ MÔ PHỎNG

TRÊN MATLAB – SIMULATINK

Như ở Chương II và Chương III đã đề cập tới vấn đề xây dựng mô hình động học cho robot tự hành kiểu 3 bánh và lý thuyết về điều khiển mờ. Trong Chương IV này sẽ đi vào xây dựng mô hình robot trên phần mềm mô phỏng Matlab- Simulink, và cũng trên đó một bộ điều khiển mờ sẽ được xây dựng và sử dụng để điều khiển mô hình robot đó. Nội dung chương này bao gồm:

+ Giới thiệu về Matlab Simulink. + Giới thiệu về Fuzzy Logic ToolBox.

+ Xây dựng bộ điều khiển Fuzzy control trong Fuzzy Logic Toolbox.

+ Xây dựng và mô phỏng robot được điều khiển bằng bộ điều khiển Fuzzy control.

4.1. Giới thiệu về Matlab Simulink và Fuzzy Logic Toolbox

Matlab (Matrix Laboratory) là phần mếm tính toán, mô phỏng được ứng dụng rộng rãi trong nhiều lĩnh vực khoa học và trở thành công cụ tính toán kỹ thuật hàng đầu, bao gồm phân tích dữ liệu, thiết kế mô phỏng…rất phù hợp cho những bài toán về điều khiển tự động và xừ lý tín hiệu. Matlab có nhiều tính năng về đồ họa, có thể vẽ các đặc tuyến bất kỳ trên mặt phẳng hai chiều hoặc không gian 3 chiều. Matlab còn có khả năng lập trình như một ngôn ngữ thực sự, có cấu trúc lệnh giống Pascal hoặc C.

4.1.1.Matlab Simulink

Được viết tắt từ Simulation and Link, là một chương trình đi chung với Matlab, là một chương trình mô phỏng rất tốt cho các hệ thống tự động. Đây là một chương trình đồ họa cho phép mô phỏng các hệ thống bằng cách sử dụng các khối trong thư viện Simulink và kết nối chúng lại với nhau một cách linh hoạt theo ý muốn bằng cách nhấp nhả chuột. Simulink có thể mô phỏng hầu hết các hệ thống phi tuyến, tuyến tính…

Simulink cho phép chúng ta dễ dàng xây dựng các mô hình từ đầu, hoặc lấy các mô hình đã tạo sẵn và thêm những khối cho chúng. Simulink cho phép chúng ta thay đổi các thông số của các khối trong hệ thống. Ta có thể sử dụng tất cả các công cụ phân tích trên Matlab, do đó sẽ rất dễ dàng để lấy kết quả tính toán được để tiếp tục mô phỏng, phân tích và làm trực quan hóa chúng. Simulink biến máy tính trở thành một phòng thí nghiệm thu nhỏ cho việc mô phỏng, mô hình hóa và phân tích hệ thống mà điều này rất khó làm trong thực tế.

Hình 4.1. Giao diện phần mềm Matlab version 7.0.4

Tổng quát, Simulink là một phần mềm sử dụng cho việc mô hình hóa, mô phỏng và phân tích hệ thống động. Nó hỗ trợ cả hai hệ thống phi tuyến và tuyến tính, mô phỏng trong khoảng thời gian liên tục, các khoảng thời gian lấy mẫu. Mô hình có thể được mô phỏng bằng các phương pháp phân tích mô hình từ các

Menu của Simulink hoặc từ cửa sổ lệnh của Matlab. Có thể sử dụng đồng hồ đo, dao động kí hoặc các khối hiển thị kết quả để lấy kết quả mô phỏng. Từ đó có thể thay đổi các thông số của hệ thống để được kết quả như ý muốn. Sau đó các kết quả mô phỏng có thể được đưa vào vùng làm việc của Matlab để xử lý tiếp. Ngoài ra để phục vụ cho việc mô phỏng các hệ thống khác nhau trên máy tính,

Matlab được tích một bộ công cụ toolbox với nhiều mô hình dành cho việc mô phỏng các hệ thống khác nhau như: xử lý tín hiệu số, hệ thống tự động điều khiển, hệ thống điện, mạng nơ ron, hệ thống suy luận mờ…

Hình 4.2. Cửa sổ thư viện công cụ mô phỏng Simulink

Chương trình mô phỏng Simulink được gọi ra từ chương trình chính Matlab bằng lệnh >>simulink hoặc nút trên thanh công cụ của Matlab. Cửa sổ xây dựng mô hình mô phỏng như hình 4.3 dưới đây.

Hình 4.3. Cửa sổ xây dựng mô hình

4.1.2.Fuzzy Logic Toolbox (adsbygoogle = window.adsbygoogle || []).push({});

Fuzzy Logic Toolbox là tập hợp những hàm xây dựng trong môi trường tính toán số của Matlab. Nó cung cấp nhiều công cụ hữu ích cho người sử dụng để tạo và soạn thảo hệ thống suy luận mờ ( FIS ) trong Command Windown của Matlab hoặc chúng có thể xây dựng riêng bằng ngôn ngữ lập trình mà gọi các hệ thống mờ trong Fuzzy Logic Toolbox. Người sử dụng có thể làm việc bằng các dòng lệnh đó, những Toolbox này thiên về những công cụ giao diện đồ họa (GUI) để giúp người sử dụng hoàn tất công việc một cách dễ dàng hơn.

4.2.Xây dựng bộ điều khiển Fuzzy Logic Controller (FLC) trên Fuzzy Logic Toolbox

4.2.1.Thuật toán điều khiển Mobile robot, định nghĩa các biến vào ra

Như mô hình Mobile robot đã xây dựng ở Chương II, robot gồm 3 bánh, 2 bánh chủ động ở phía sau được gắn với 2 động cơ, 1 bánh lái phía trước có khả năng quay tự do. Nhiệm vụ của Mobile robot là di chuyển dọc theo tường và duy trì một khoảng cách xác định với tường. Nó sẽ được gắn hai cảm biến đo khoảng cách và đo góc của trục robot so với hướng di cần chuyển. Trong mô hình điều khiển này thì các yếu tố như nhiễu, ma sát trượt, lực quán tính của xe sẽ được bỏ qua. Ở đây ta chỉ xét tới các yếu tố liên quan tới robot là góc θ, khoảng cách Xđ

từ tâm robot tới tường. Bộ phận được tác động để điều khiển robot là 2 động cơ gắn với 2 bánh phải và trái.

Giả sử ta cho robot chạy theo một đường có khoảng cách so với tường là Xđ. Khi robot di chuyển, nó bị lệch ra khỏi đường đó, lúc đó sẽ có sự sai lệch cả về vị trí và tư thế của nó so với yêu cầu. Bộ điều khiển sẽ có nhiệm vụ xử lý các tín hiệu báo về từ các cảm biến để xác định các sai lệch, từ đó đưa ra các tín hiệu điều khiển 2 động cơ như thế nào đó để robot về quỹ đạo ban đầu. Bộ điều khiển mờ được thiết kế trong Fuzzy Logic Toolbox sẽ có đầu vào là các sai lệch về vị trí ∆ex (bao gồm sai lệch Âm và sai lệch Dương), sai lệch về góc ∆et (bao gồm sai lệch Âm và sai lệch Dương).

Hình 4.5. Robot trong tọa độ Decade

Bộ điều khiển sẽ có hai tín hiệu đầu vào là sai lệch góc ∆et và sai lệch khoảng cách ∆ex, hai đầu ra là hai tín hiệu điều khiển 2 động cơ chủ động, thực

y x X sai lệch Âm sai lệch Dương ∆ex ∆et

tế thì đó là các xung điện điều khiển tốc độ hai động cơ. Sơ đồ khối toàn bộ hệ thống được thể hiện ở hình 4.5.

Giá trị của các sai lệch về góc định hướng θ là ∆et sẽ nằm trong khoảng từ -0,3 đến 0,3 radian. Các giá trị sai lệch về khoảng cách ∆ex sẽ nằm trong khoảng từ -4 inch đến 4 inch (khoảng -100mm đến 100mm).

Giá trị đầu ra của bộ điều khiển mờ ( FLC ) sẽ là các giá trị vận tốc góc bánh phải (ωr) , bánh trái ( ωl ). Các giá trị này còn phụ thuộc sự ràng buộc về kết cấu cơ khí của robot. Trong trường hợp này ta chọn dải từ -3 đến 3 rad/s

Hình 4.6. Sơ đồ khối toàn bộ Mobile robot

4.2.2.Xác định tập mờ

a. Miền giá trị vật lý cơ sở của các biến ngôn ngữ

-Tín hiệu sai lệch giữa góc đặt như trên chọn trong khoảng : -0,3≤ ∆et ≤0,3 (rad)

- Sai lệch khoảng cách nằm trong khoảng : -4 ≤ ∆ex ≤ 4 (inch) - Tín hiệu đầu ra, vận tốc góc bánh trái và bánh phải :

-3 ≤ ωl ≤ 3 rad/s

-3 ≤ ωr ≤ 3 rad/s

b. Số lượng tập mờ ( giá trị ngôn ngữ )

Về nguyên tắc, số lượng tập mờ cho mỗi biến ngôn ngữ thường nằm trong khoảng từ 3 đến 10 giá trị. Nếu số lượng tập mờ nhỏ hơn 3 thì ít có ý nghĩa, vì không thể thực hiện được việc chi tiết hóa các phương án xử lý. Nếu lớn hơn 10 thì đòi hỏi người lập trình phải xử lý một khối lượng lớn các suy luận, phải

Kết quả tính toán ∆e Kết quả tính toán ∆ex và ∆et

x và ∆et Fuzzy Logic Controller Fuzzy Logic Controller ROBOT ROBOT sensor sensor θ , x ∆ex ∆ex wl wr

nghiên cứu đầy đủ để đồng thời phân biệt khoảng từ 5 đến 9 phương án khác nhau và phần cứng phải có khả năng lưu trữ lớn, cũng như khả năng xử lý nhanh đặc biệt trong bài toán điều hướng robot hoạt động trong môi trường thực (là bài toán yêu cầu cần có tốc độ xử lý và khả năng lưu trữ rất lớn).

Đối với quá trình điều khiển robot có thể chọn giá trị ngôn ngữ như sau : + ∆ex∈ {ÂM, KHÔNG, DƯƠNG}

+ ∆et∈ {ÂM, KHÔNG, DƯƠNG}

+ ωr∈ {CHẬM, TRUNG BÌNH, NHANH} + ωl ∈ {CHẬM, TRUNG BÌNH, NHANH}

c. Các hàm liên thuộc

Đây là điểm cực kì quan trọng vì quá trình làm việc của bộ điều khiển mờ phụ thuộc rất nhiều vào dạng và kiểu hàm liên thuộc. Do vậy cần chọn kiểu hàm liên thuộc có phần chồng lên nhau và phủ kín miền giá trị vật lý, để trong quá trình điều khiển không xuất hiện “lỗ hổng” và tránh trường hợp với một giá trị vật lý rõ đầu vào x0 mà tập mờ đầu ra có độ cao bằng không (miền xác định là tập rỗng ) và bộ điều khiển không thể đưa ra một quyết định điều khiển nào được gọi là hiện tượng “cháy nguyên tắc”.

Mặt khác, hàm liên thuộc được chọn sao cho miền tin cậy của nó chỉ có một phần tử, hay nói cách khác chỉ tồn tại một điểm vật lý có độ phụ thuộc bằng độ cao của tập mờ. Đối với quá trình điều khiển Mobile robot có 4 tập mờ. Mỗi tập mờ có 3 biến ngôn ngữ, tương ứng với nó là các giá trị ngôn ngữ. (adsbygoogle = window.adsbygoogle || []).push({});

+ Sai lệch khoảng cách Δex và sai lệch góc định hướng Δet có có các biến giá trị AM ( Âm ), KHONG ( Không ), DUONG ( Dương ).

+ Giá trị đầu ra là vận tốc góc ωl và ωl có các biến giá trị CHAM ( Chậm ), TRUNGBINH ( trung bình ), NHANH ( nhanh ).

Hình 4.7. Hàm phụ thuộc của sai lệch khoảng cách Δex

Hình 4.8. Hàm phụ thuộc của sai lệch góc định hướng Δet

1 0 .5 0 0 2 4 -2 H àm p h t h u ộc

Sai lệch khoảng cách ( inch ) AM KHONG DUONG 1 0.5 0 0 0.15 0.3 -0.15 H àm p h t h u ộc

Sai lệch góc định hướng Δet (radian)

DUONG KHONG

Hình 4.9. Hàm phụ thuộc đầu ra bánh phải ωr

Hình 4.10. Hàm phụ thuộc đầu ra bánh trái ωl

d. Rời rạc hóa các tập mờ

- Hàm liên thuộc của sai lệch góc Δet là μ t(t) và được rời rạc tại 5 điểm : t ∈ {-0.3, -0.15, 0, 0.15, 0.3 }

- Hàm liên thuộc của sai lệch khoảng cách ∆ex là μx(x) và được rời rạc hóa tại 5 điểm :

X ∈ { -4, -2, 0, 2, 4 }

- Hàm liên thuộc đầu ra ωr, ωl là μω(ω ) được rời rạc hóa tại 5 điểm:

1 0.5 0 0 1.5 3 -1.5 H àm p h t h u ộc

Dải giá trị đầu ra vận tốc góc bánh phải ωr (rad/s) TRUNGBINH CHAM NHANH 1 0.5 0 0 1.5 3 -1.5 H àm p h t h u ộc

Dải giá trị đầu ra vận tốc góc bánh trái ωl (rad/s)

Thứ tự quá trình xây dựng bộ Fuzzy Logic Cotroller được thực hiện trong Fuzzy Logic Toolbox theo thứ tự các hình dưới đây:

Hình 4.11. Sơ đồ các biến vào/ra của FLC

Hình 4.11.Xây dựng các biến vào ra cho FLC

Biến đầu vào Biến đầu vào Bộ hợp thànhBộ hợp thành Lựa chọn luật hợp thành Lựa chọn luật hợp thành Phương pháp giải mờ Phương pháp giải mờ Tên biến và giá trị Tên biến và giá trị Biến đầu ra Biến đầu ra

Hình 4.12. Đặt giá trị cho các hàm phụ thuộc vào/ ra của FLC e. Xây dựng các luật hợp thành

Từ kinh nghiệm thực tế mà ta xây dựng được 9 luật điều khiển :

Bảng 4.1. Luật điều khiển cơ bản cho vận tốc góc bánh phải ωr

Δex/Δet AM KHONG DUONG

AM CHAM CHAM CHAM

KHONG CHAM NHANH TRUNGBINH

DUONG CHAM TRUNGBIN

H (adsbygoogle = window.adsbygoogle || []).push({});

NHANH

Bảng 4.2. Luật điều khiển cơ bản cho vận tốc góc bánh trái ωl

Δex /Δet AM KHONG DUONG

AM NHANH TRUNGBIN H CHAM KHONG TRUNGBIN H NHANH CHAM

DUONG CHAM CHAM CHAM

- Luật R1: NẾU Δex là AM Δet AM là THÌ ωr là CHAM ωl là CHAM

- Luật R2: NẾU Δex là AM Δet là KHONG THÌ ωr là CHAM ωl là TRUNGBINH

- Luật R3: NẾU Δex là AM Δet là DUONG THÌ ωr là CHAM ωl là CHAM

- Luật R4: NẾU Δex là KHONG Δet là AM THÌ ωr là CHAM ωl là TRUNGBINH

- Luật R5: NẾU Δex là KHONG Δet là KHONG THÌ ωr là NHANH

ωl là NHANH

- Luật R6: NẾU Δex là KHONG Δet là DUONG THÌ ωr là TRUNGBINH ω là CHAM

- Luật R7: NẾU Δex là DUONG Δet là AM THÌ ωr là CHAM ωl là CHAM

- Luật R8: NẾU Δex là DUONG Δet là KHONG THÌ ωr là TRUNGBINH ωl là CHAM

- Luật R9: NẾU Δex là DUONG Δet là DUONG THÌ ωr là NHANH

ωl là CHAM

Ví dụ một trường hợp luật R1 như hình 4.13, Mobile robot đi ra ngoài quỹ đạo, sai số khoảng cách một khoảng là Δex = AM (âm) và sai số góc định hướng Δet = AM.

Hình 4.13. Trường hợp robot đi sai khỏi quỹ đạo

Lúc này, để về quỹ đạo ban đầu thì đòi hỏi bánh trái phải quay nhanh (NHANH ) và bánh phải quay chậm lại ( CHAM ) ứng với luật R1.

f. Chọn thiết bị hợp thành

Đối với trường hợp điều khiển Mobile robot, chúng ta sẽ chọn thiết bị thực hiện luật hợp thành theo phương pháp MAX- MIN.

g. Chọn nguyên lý giải Mờ

Giải mờ là quá trình xác định rõ giá trị đầu ra của bộ điều khiển. Việc chọn phương pháp giải mờ cũng gây ảnh hưởng đến độ phức tạp và trạng thái làm việc của hệ thống. Đối vơi bộ điều khiển Mờ FLC sử dụng cho Mobile robot ở đây ta dùng phương pháp điểm trọng tâm (Centroid ), bởi vì phương pháp này có sự tham gia của tất cả các kết luận điều khiển R1, R2, R3, R4, R5, R6, R7, R8, R9.

ICC r x m x y m y P 0 X Y θ nhanh Chậm X Bên phải Bên trái

Quá trình xây dựng luật điều khiển và hợp thành được tiến hành trên Fuzzy toolbox như trong hình 4.14 và 4.15.

Hình 4.14. Xây dựng các luật điều khiển

Hình 4.15. Các luật điều khiển

Hình 4.16.Mô tả bộ điều khiển trên không gian 3D cho bánh phải

Hình 4.17. Mô tả bộ điều khiển trên không gian 3D cho bánh trái

Sau khi xây dựng xong, bộ điều khiển Mờ FLC sẽ được lưu dưới dạng một file FLC.fis. (adsbygoogle = window.adsbygoogle || []).push({});

4.3.Xây dựng và mô phỏng Mobile robot trên Matlab Simulink 4.3.1.Xây dựng mô hình Mobile robot

Như ở chương II, phương trình mô tả động học của Mobile robot có dạng:

x r y l 1 1 cosθ cosθ 2 2 v (t) v 1 1 v (t) = sinθ sinθ v 2 2 θ(t) 1/L -1/L                                 & (4.1)

Trong đó, các thông số cơ bản của Mobile robot : + khoảng cách 2 bánh chủ động L= 200mm=7,8”

Một phần của tài liệu NGHIÊN CỨU XÂY DỰNG PHƯƠNG PHÁP ĐIỀU KHIỂN ROBOT TỰ HÀNH DỰA TRÊN CƠ SỞ LOGIC MỜ (Trang 38)