Categories
Fuzzy Controller

Fuzzy Proportional Derivative plus Integral – FPI+I

Điều khiển vi phân tỷ lệ mờ + tích phân

Điều khiển vi phân tỷ lệ mở + tích phân FPD+I

Điều khiển vi phân tỷ lệ mở + tích phân FPD+I (Fuzzy Proportiona Derivative plus Integral controller) sử dụng cả khâu vi phân và khâu tích phân như bộ điều khiển PID với tham vọng có thể hạn chế được độ vọt lò bằng khâu vì phản, rút ngắn thời gian tăng và triệt tiêu sai số xác lập băng khâu tích phản.

Bộ điều khiển FPD+I được xây dựng như sau:

Fuzzy Proportional Derivative plus Integral – FPI+I

Việc chọn lựa các khâu khuếch đại GE, GCE, GIE và GU cũng cần thoa mãn quan hệ và đảm bảo giới hạn hoạt động của ngõ vào của bộ điều khiển MISO cơ bản như các kiều cải thiện trước.

GE*GU = KP(*)

GCE/GE = TD(**)

GIE/GE = 1/TI(***)

Lưu ý: Trong quá trình tính thiết kế bộ điều khiển mờ FPD+I ta có thể thay đổi giá trị các khâu khuyếch đại được thêm vào để tinh chỉnh bộ điều khiển. Nhằm đạt được kết quả và chất lượng điều khiển tốt nhất chứ không nhất thiết phải khô cứng tuân theo biểu thức (*)(**)(***). Tuy nhiên, giá trị tín hiệu ngõ vào sau khi đi qua các khâu này phải có biên độ nằm trong giới hạn của bộ điều khiển.

Cải thiện bộ điều khiển mờ MISO cơ bản

Tương tự, để đánh giá hiệu quả của kỹ thuật cải tiến điều khiển FPD+I chúng ta tiến hành kiêm chứng trên bộ điều khiển MISO đã được dựng Ở Chapter M. Đến đây ta có thấy bộ điều khiển FPD+I có đủ 3 thành phần tỷ lệ, tích phân và vi phân nên ta tiền hành tính toán để chọn lựa các khâu khuếch đại GE, GCE, GIE và GU dựa theo tham số của bộ điều khiển PID đã được thiết lập ở Chapter. Ngoài ra, ta có thể dùng phương pháp thử sai để tìm bộ thông số thích hợp cho hệ thống bằng mô hình trên Simulink.

Mô hình bộ điều khiển MISO cơ bản như sau:

Mô hình bộ điều khiển MISO cơ bản
Thông số mô hình động cơ DC
Đáp ứng ngõ ra của bộ điều khiển mờ MISO cơ bản

Sau nhiều lần kiểm chứng bằng phương pháp thử sai, ta chọn được GE = GU = 1 do bộ điều khiển mờ MISO cơ bản đã cho đáp ứng khá tốt. Các GCE = 0.05GIE = 0.005 để cải thiện thời gian xác lập cho hệ thống.

Mô hình điều khiển vi phân tỷ lệ mở + tích phân
Đáp ứng ngõ ra của bộ điều khiển mờ FPD+I

So sánh kết quả trên

So sánh kết quả trước và sau khi cải thiện

Ta thấy bộ điều khiển FPD+I cho đáp ứng rất tốt với thời gian tăng được cải thiện, sai số xác lập bị mệt tiêu và không xuất hiện vọt lố. Ngoài ra, nếu so sánh kết quả mô phỏng trên, ta thấy kỹ thuật cải thiện bằng điều khiển mờ FPD+I hoàn toàn tương đương với bộ điều khiển PID. Các kết quả mô phỏng cho phép ta khẳng định kỹ thuật điều khiển FPD+I có thể được sử dụng để cải thiện bộ điều khiển mờ MISO cơ bản với chất lượng đạt yêu cầu.

Categories
Fuzzy Controller

Fuzzy Proportional Integral – FPI

Điều khiển tích phân tỷ lệ mờ FPI

Mô hình điều khiển tích phân tỷ lệ mờ FPI

Hiện vẫn tồn tại nhiều ý kiến trái chiều giữa các nhóm nghiên cứu về kỹ thuật điều khiển tích phân tỷ lệ mờ FPI (Fuzzy Proportional Integral controller). Tuy nhiên, thực tế kiểm chứng cho thấy kỹ thuật này vẫn có thể áp dụng được cho mục tiêu giảm sai số xác lập và rút ngắn thời gian tăng của đáp ứng. Nên ở Chapter này chúng ta sẽ củng đánh giá xem việc sử dụng nó liệu có hiệu quả.

Bộ điều khiển tích phân tỷ lệ mờ FPI được xây dựng dựa trên bộ điều khiển mờ MISO cơ bản, bằng cách thêm các khâu GE, GIE và GU tương tứng tại 2 ngõ vào và ngõ ra của bộ điều khiển MISO. Đồng thời, khâu vi phân ở ngõ vào thứ hai của bộ điều khiển MISO cơ bản được thay bằng khâu tích phân. Việc chọn lựa giá trị của GE, GIE và GU cần lưu ý:

– Thỏa mãn quan hệ:

GE*GU = KP(*)

GIE/GE = 1/TI(**)

Như bộ điều khiển tích phân tỷ lệ (PI) quen thuộc, với TI là thời hằng tích phân.

– Giá trị khâu khuếch đại GE và GIE cần được chọn lựa sao cho tín hiệu e và ie đi qua 2 khâu này phải có biên độ nằm trong giới hạn hoạt động của 2 ngõ vào của bộ điều khiển mờ MISO.

Fuzzy Proportional Integral – FPI

Lưu ý: Trong quá trình tính thiết kế bộ điều khiển mờ FPI ta có thể thay đổi giá trị các khâu khuyếch đại được thêm vào để tinh chỉnh bộ điều khiển. Nhằm đạt được kết quả và chất lượng điều khiển tốt nhất chứ không nhất thiết phải khô cứng tuân theo biểu thức (*) và (**). Tuy nhiên, giá trị tín hiệu e và ie sau khi đi qua 2 khâu này phải có biên độ nằm trong giới hạn của bộ điều khiển.

Cải thiện bộ điều khiển mờ MISO cơ bản

Để đánh giá hiệu quả của kỹ thuật cải tiến điều khiển mờ FPI, chúng ta kiểm chứng trên bộ điều khiển MISO đã được thiết kế ở Chapter M như sau:

Mô hình bộ điều khiển MISO cơ bản
Thông số mô hình động cơ DC
Đáp ứng ngõ ra của bộ điều khiển mờ MISO cơ bản

Bộ điều khiển mờ FPI có được bằng cách thêm các khâu khuếch đại GE = 1, GIE=0.005GU = 1 tương ứng tại 2 ngõ vào và ngõ ra của bộ điều khiển MISO, đồng thời thay khâu vi phân thành khâu tích phân.

Mô hình điều khiển tích phân tỷ lệ mờ FPI

Sau đó, tiến hành mô phỏng theo sơ đồ trên ta thu được đáp ứng như sau:

Đáp ứng ngõ ra của bộ điều khiển mờ FPI

So sánh kết quả trên:

So sánh kết quả trước và sau khi cải thiện

Ta thấy bộ điều khiển tích phân tỷ lệ mờ FPI cho đáp ứng với thời gian tăng tốt hơn và hạn chế sai số xác lập. Kỹ thuật điều khiển FPI có thể sử dụng để cải thiện được bộ điều khiển mở MISO cơ bản. Tuy nhiên, quan sát đáp ứng ta thấy có sự xuất hiện vọt lỗ nhẹ, có thể chấp nhận được. Nhưng đây cũng điểm hạn chế của kỹ thuật cải tiến này, vì khó có thể triệt tiêu triệt để được sự vọt lố.

Categories
Fuzzy Controller

Fuzzy Proportional Derivetive – FPD

Điều khiển vi phân tỷ lệ mờ FPD

Mô hình điều khiển vi phân tỷ lệ mờ FPD

Bộ điều khiển vi phân tỷ lệ mờ FPD (Fuzzy Proportional Derivative controller) được xây dựng dựa trên bộ điều khiển mờ MISO cơ bản, bằng cách thêm các khâu GE, GCE và GU tương tứng tại 2 ngõ vào và ngõ ra của bộ điều khiển MISO. Việc chọn lựa giá t của GE, GCE và GU cần lưu ý:

– Thỏa mãn quan hệ sau:

GE*GU = KP (*)

GCE/GE = TD(**)

Như bộ điều khiển vi phân tỷ lệ (PD) quen thuộc, với TD là thời hằng vi phân.

– Giá trị khâu khuếch đại GE và GCE cần được chọn lựa sao cho tín hiệu e và de đi qua 2 khâu này phải có biên độ nằm trong giới hạn hoạt động của 2 ngõ vào của bộ điều khiển mờ MISO.

Fuzzy Proportional Derivetive – FPD

Lưu ý: Trong quá trình tính thiết kế bộ điều khiển mờ FPD ta có thể thay đổi giá trị các khâu khuyếch đại được thêm vào để tinh chỉnh bộ điều khiển. Nhằm đạt được kết quả và chất lượng điều khiển tốt nhất chứ không nhất thiết phải khô cứng tuân theo biểu thức (*)(**). Tuy nhiên, giá trị tín hiệu e và de sau khi đi qua 2 khâu này phải có biên độ nằm trong giới hạn của bộ điều khiển.

Cải thiện bộ điều khiển mờ MISO cơ bản

Chapter M ta đã thiết kế được bộ điều khiển mờ MISO cho mô hình động cơ như sau:

Mô hình bộ điều khiển MISO cơ bản
Mô hình động cơ DC
Đáp ứng ngõ ra của bộ điều khiển MISO cơ bản

Để cải thiện bộ điều khiển mờ MISO trên, ta sẽ tiến hành thêm các khâu khuyếch đại GE = GU = 1, do bộ điều khiển MISO mà chúng ta đã thiết kế cho đáp ứng khá tốt. Và GCE = 0.03 để cải thiện thời gian xác lập cho hệ thống, ta được mô hình như sau:

Mô hình điều khiển vi phân tỷ lệ mờ FPD
Đáp ứng ngõ ra của bộ điều khiển mờ FPD

So sánh kết quả đáp ứng trước và sau khi cải thiện:

So sánh kết quả trước và sau khi cải thiện

Ta thấy bộ điều khiển vi phân tỷ lệ mờ FPD được thực hiện từ việc cải tiến bộ điều khiển mờ MISO cơ bản đã cho kết quả điều khiển tốt hơn với thời gian xác lập (settling time) giảm đi đáng kể từ 2s xuống còn 1s.

Tuy nhiên, hạn chế của kỹ thuật cải tiến điều khiển vi phân tỷ lệ mờ FPD là đáp ứng chậm. Các ứng dụng không đòi hỏi đáp ứng nhanh như điều khiển tốc độ động cơ có thể chấp nhận được. Nhưng các đối tượng biến đổi nhanh như hệ con lắc ngược cần ngược, thì kỹ thuật cải tiến này khó có thể thỏa mãn, khi đó, đòi hỏi phải tiến hành kỹ thuật hiệu chỉnh khác.

Ngoài ra, khi bộ điều khiển mờ MISO cơ bản đã cho đáp ứng khá tốt thì việc cải thiện đôi lúc sẽ không có hiệu quả, thậm chí sẽ làm cho bộ điều khiển hoạt động tệ hơn. Như trường hợp trên nếu ta chọn GU>1 thì sẽ xuất hiện sai số. Do vậy không phải lúc nào cải thiện bộ điều khiển mờ cũng cho kết quả như mong muốn.

Categories
Fuzzy Controller

Ameliorate Fuzzy Controller

Cải thiện bộ điều khiển mờ

Qúa trình thiết kế hệ thống điều khiển mờ không nhất thiết phải biết trước mô hình toán mà chủ yếu dựa vào đáp ứng động học thông qua các biến vào của đối tượng. Các biến này sẽ được đặc ta bằng các biến ngôn ngữ và bộ luật điều khiển thích hợp được xây dựng dựa trên các biến ngôn ngữ này. Trong nhiều trường hợp khả năng nhận dạng mô hình của đối tượng là rất khó khăn, đôi khi không thể thực hiện được. Vì thế, việc áp dụng kỹ thuật điều khiển mờ là một trong những lựa chọn khả dĩ.

Tuy nhiên, ở một số trường hợp, bộ điều khiển mờ cơ bản khó có thể triệt tiêu sai số xác lập của đáp ứng. Ngoài ra, khi tham số của đối tượng điều khiển thay đổi nhẹ, bộ điều khiển mờ cơ bản có thể không còn đáp ứng được yêu cầu, đòi hỏi phải tiến hành hiệu chỉnh lại thiết kế. Để khắc phục các hạn chế này, một số kỹ thuật cải thiện chất lượng bộ điều khiển mờ đã được nghiên cứu và đề xuất. Các kỹ thuật này đã được phát triển khá xa, chẳng hạn dùng các giải thuật tối ưu để hiệu chỉnh các tập mờ ở khâu mờ hóa hay tự động điều chính bộ luật điều khiển…

Trong Chapter này, chúng ta không đi vào các kỹ thuật cải thiện phức tạp mà chỉ tập trung vào một số kỹ thuật đơn giản, chỉ cho phép hiệu chỉnh với tầm hoạt động thay đổi tương đối hẹp. Do vậy giải pháp thuận lớn nhất là giữ nguyên bộ điều khiển mờ cơ bản đã thiết kế và chỉ tăng cường các thành phần cần thiết bên ngoài bộ điều khiển. Đó là lý do mà Bộ Điều khiển Mờ Động xuất hiện.

Bộ điều khiển mờ động

Trước khi tìm hiểu, ta sẽ nhắc lại một số kiến thức về bộ điều khiển PID, do các khâu trong bộ điều khiển mờ động sẽ được cập nhật từ các thông số KP, KI, KD :

Hệ thống điều khiển PID dạng khối
PID cho mô hình động cơ DC
Đáp ứng ngõ ra của hệ thống

Bộ Điều khiển mờ động là bộ điều khiển mờ được xây dựng nên từ các bộ điều khiển mờ cơ bản mà đầu vào có sự tham gia của các trạng thái động của đối tượng như vận tốc, gia tốc, dạo hàm của gia tốc… Ví dụ đối với hệ điều khiển theo sai lệch thì đầu vào của bộ điều khiển mờ ngoài tín hiệu sai lệch e theo thời gian còn có các đạo hàm của sai lệch giúp cho bộ điều khiển phản ứng kịp thời với các biến động đột xuất của đối tượng.

Các bộ điều khiển thường được sử dụng hiện bao gồm:

+ Điều khiển tỷ lệ mờ – Fuzzy Proportional controller (FP).

Fuzzy Proportional controller (FP)

+ Điều khiển vi phân tỷ lệ mờ – Fuzzy Proportional Derivative controller (FPD).

Fuzzy Proportional Derivative controller (FPD)

+ Điều khiển tích phân tỷ lệ mờ – Fuzzy Proportional Integral controller (FPI).

Fuzzy Proportional Integral controller (FPI)

+ Điều khiển mờ tăng cường – Fuzzy Incremental Controller (FInc).

Fuzzy Incremental Controller (FInc)

+ Điều khiển vi phân tỷ lệ mờ + tích phân – Fuzzy Proportional Derivative plus Integral (FPD+I).

Fuzzy Proportional Derivative plus Integral (FPD+I)

Đánh giá

Ưu điểm của các kỹ thuật này là không can thiệp vào việc hiệu chính lại thiết kế bộ điều khiển mờ cơ bản, mà chỉ tăng cường các khẩu cần thiết bên ngoài. Tuy nhiên, hạn chế của các kỹ thuật này là tầm điều chỉnh không lớn. Thực tế cho thấy, trong nhiều trường hợp cần phải thiết kế lại bộ điều khiển mở cơ bản mới có thể đạt được chất lượng điều khiển như mong muốn.

Tuy nhiên mỗi kỹ thuật điều khiển đều có các ưu và nhược điểm riêng được tổng hợp như sau:

Tên bộ điều khiểnKý hiệuƯu điểmNhược điểm
Tỷ lệ mờFPThiết kế đơn giản.Khó khắc phục được vọt lố và sai số xác lập.
Vi phân mờFPDÍt xảy ra vọt lố.Dễ bị nhiễu và lỗi do gai đạo hàm*.
Tích phân mờFPITriệt tiêu được sai số xác lập.Khó khắc phục được vọt lố, dẽ bị bảo hòa tích phân**.
Mờ tăng cườngFIncTriệt tiêu được sai số xác lập.Đáp ứng khá chậm.
Vi phân mờ + Tích phânFPD+ITất cả các ưu điểm trên.Dễ bị bảo hòa tích phân và lỗi do gai đạo hàm.

*Derivative kick: Khi sai biệt e thay đổi đột ngột, đạo hàm de phát sinh gai hẹp, biên độ lớn, dễ gây lỗi cho bộ điều khiển.

**Windup: Khi sai biệt e = 0, ngõ ra u của bộ điều khiển vẫn tiếp tục tăng do sự tích lũy của các thành phần tích phân, dẫn đến đáp ứng sai.

Tùy theo yêu cầu cụ thể của từng hệ thống mà người thiết kế có thể lựa chọn các phương thức trên để cải thiện bộ điều khiển mờ một cách phù hợp và hiệu quả. Ở các Chapter tiếp theo chúng ta sẽ đi vào chi tiết cách sử dụng và thông số của từng kỹ thuật điều khiển trên.

Categories
Fuzzy Controller

MISO for DC Motor

Chúng ta đã tìm hiểu chi tiết cách thiết kế bộ điều khiển mờ SISO ở Chapter L. Tiếp theo ta sẽ tìm hiểu cách thiết kế bộ điều khiển mờ MISO thông qua yêu cầu tương tự như Chapter trước:

“Hãy thiết kế và mô phỏng bộ điều khiển mờ MISO cho đối tượng động mô hình cơ DC để ổn định tốc độ động cơ tại 2 rad/s. Trong đó, các tham số của động cơ DC như sau: Mô-men quán tính J = 0.01 (kg.m2/s2); hệ số ma sát b = 0.1 (Nms); điện cảm cuộn dây L = 1 (H); điện trở cuộn dây R = 0.5(W); hằng số sức điện động K = 0.01 (Nm/Amp).”

Sơ đồ điều khiển mờ MISO cho DC Motor trên Simulink.

Mô tả hàm truyền của động cơ DC

Đối tượng điều khiển là động cơ DC được mô tả bằng cách sử dụng khối hàm truyền trong thư viện Simulink. Đa thức tử số và mẫu số của khối “Transfer Function” lần lượt là numeratordenominator, được nhập thông qua Script file như sau:

Script mô tả thông số mô hình động cơ DC.
Kết quả khi chạy Script file trên.

Thiết kế bộ điều khiển mờ MISO

Bộ điều khiển mờ MISO.

Bước 1: Xác định giới hạn các biến ngôn ngữ vào/ra của bộ điều khiển mờ

Tiến hành xác định giới hạn của các biến ngôn ngữ vào ra của bộ điều khiển mờ. Ta xét giá trị tham khảo yref = 2 (rad/s), ta có ngõ vào e, de và ngõ ra u. Giới hạn ngõ vào e sẽ nằm trong khoảng [emin; emax], de thuộc khoảng [demin; demax] và ngõ ra u thuộc khoảng [umax; u­min].

Giới hạn ngõ vào e và ngõ ra u

Khoảng giá trị sẽ được giữ nguyên như mô hình điều khiển mô hình động cơ DC bằng bộ điều khiển mờ SISO ở Chapter L. Nếu bạn chưa xem thì nên xem Chapter L để hiểu rõ quá trình xác định khoảng giá trị của hai biến ngôn ngữ này. Ngõ vào e sẽ thuộc khoảng [-2; 2] và ngõ ra u sẽ thuộc khoảng [0; 40].

Giới hạn giá trị ngõ vào de

Ngõ vào de là đạo hàm của ngõ vào e hay là tốc độ biến thiên của e. Đại lượng này thường biến biến thiên chậm, theo kinh nghiệm ta nên đặt trước giới hạn cho de là [-1; 1]. Sau đó tiến hành các bước kế tiếp, khi chất lượng điều khiển không đúng với yêu cầu thì ta sẽ điều chỉnh khoảng giá trị này.

Như vậy, sau khi kết thúc Bước 1 ta đã xác địnhg được e thuộc khoảng [-2; 2], de thuộc khoảng [-1; 1]u thuộc khoảng [0; 40].

Bước 2: Mờ hóa các biến ngôn ngữ vào/ra

Trong bước này, chúng ta sẽ biểu diễn các biến ngôn ngữ vào/ra của bộ điểu khiển mờ (e, de và u) bằng các giá trị ngôn ngữ. Mỗi biến ngôn ngữ, thường được thể hiện bằng 5 hàm liên thuộc. Đối với bài toán điều khiển mờ này, ta mờ hóa: ngõ vào e bằng các giá trị ngôn ngữ {RN-rất nhỏ, N-nhỏ, K-không, L-lớn, RL-rất lớn}, ngõ vào de bằng các các trị ngôn ngữ {RX-rất xuống, X-xuống, N-ngang, L-lên, RL-rất lên} và ngõ ra u thành các gia trị ngôn ngữ {RC-rất chậm, C-chậm, TB-trung bình, N-nhanh, RN-rất nhanh}hay còn được biểu diễn như sau:

Mờ hóa các biến ngôn ngữ trên MATLAB:

Mờ hóa ngõ vào e bằng 5 tập mờ dạng tam giác.
Mờ hóa ngõ vào de bằng 5 tập mờ dạng tam giác.
Mờ hóa ngõ ra u bằng 5 tập mờ dạng tam giác.

Bước 3: Lập luật điều khiển

Thông thường, khi xây dựng bảng luật mờ ta lưu ý 2 điểm quan trọng sau:

Thứ nhất, cần lập luận để xác định giá trị ngôn ngữ cho điểm Cực *Cực ** trên Bảng Luật Mờ. Từ đó, ta tiến hành sắp xếp các giá trị ngôn ngữ còn lại trên đường chéo chính của bảng luật, theo khuynh hướng tăng dần hay giảm dần từ Cực * đến Cực ** tương ứng với sự biến thiên của các tập mờ của ngõ ra u.

Ví dụ, nếu Cực * = “RC”Cực ** = “RN” thì theo chiều từ Cực * đến Cực** các ô còn lại trên đường chéo chính của bảng luật sẽ lần lượt là “C”, “TB”, “N”. Các luật điều khiển thường đối xứng qua đường chéo của bảng luật như sau:

Từ sơ đồ điều khiển vòng kín, ta hình dung được đáp ứng của hệ thống có thể biến thiên như hình dưới. Dựa theo quá trỉnh biến thiên của e và de ta sẽ xác định điểm Cực * và Cực ** của bảng luật như sau:

Ngõ vào thứ nhất của bộ điều khiển là e = yref – y, biến thiên theo thời gian. Ta xét 2 trưởng hợp sau:

Trường hợp 1: Khi e > 0 là thời điểm mà đáp ứng y còn thấp hơn giá trị tham khảo yref, lúc đó đòi hỏi bộ điều khiển phải cung cấp tín hiệu điều khiển u đủ lớn để lại đáp ứng ở nhanh đạt được trị đặt.

Trường hợp 2: Khi e < 0 là thời điểm đáp ứng đã vọt lố, lúc này bộ điều khiển cần giảm u để đáp ứng u chậm lại và quay về trị đặt yref.

Ngõ vào thứ hai của bộ điều khiển mờ là de = de/dt. Ta xét khi de < 0 chứng tỏ đường cong e đang đi xuống. Ngược lại, khi de > 0 chứng tỏ đường cong e đang đi lên. Việc bổ sung ngõ vào de giúp tinh chỉnh đáp ứng của hệ thống, khi đáp ứng này biến thiên xung quanh giá trị tham khảo.

Minh họa mối quan hệ giữa e, de và y bằng đồ thị. Cặp mũi tên màu đỏ chỉ Cực *, và cặp mũi tên màu xanh chỉ Cực **.

Xác định điểm Cực *

Giá trị ngôn ngữ tại Cực * tương ứng với luật điều khiển If (e is RN) AND (de is RX) Then (u is Cực *). Chìa khóa xác định Cực * như sau:

+ e < 0 | y > yref , y đã vọt lố, cần giảm u đề y quay về giá trị đặt yref. Do vậy u phải giảm.

 + de < 0 | e đang giảm xuống và y đang tăng lên, từ nhận xét ở trên ta đã biết y đã vọt lố mà lại tăng lên thì ta cần giảm mạnh u để y nhanh trở về với yref. Do vậy Cực * = “RC”.

Xác định điểm Cực **

Giá trị ngôn ngữ tại Cực ** tương ứng với luật điều khiển If (e is RL) AND (de is RL) Then (u is Cực **). Chìa khóa xác định Cực ** như sau:

e > 0 | y < yref , y đang thấp hơn yref, ta cần tăng u để y nhanh đạt tới giá trị đặt yref. Do vậy u phải tăng.

de > 0 | e đang tăng lên và y đang giảm xuống, từ nhận xét ở trên ta đã biết y đang thấp hơn yref mà lại đang giảm xuống thì ta cần tăng mạnh u để y nhanh đạt giá trị yref. Do vậy Cực ** = “RN”.

Từ đó, ta có được bảng luật mờ cho bộ điều khiển như sau:

  • Khi e = RN, de = RX => u­­ thì u = RC (*).
  • Khi e = RL, de = RL => u thì u = RN(**).
Xây dựng luật mờ trên MATLAB.

Như vậy ở bước này ta đã thiết kế bộ điều khiển mờ xong. Tiếp theo ta cần xuất bộ điều khiển sang Workspace hoặc file của MATLAB để tiến hành mô phỏng kiểm chứng và sử dụng. Ta chọn File > Export > To Workspace/File và nhập tên của bộ điều khiển ví dụ như “MISO” như trên để tiến hành mô phỏng. Dùng lệnh readfis() để mở bộ điều khiển vừa thiết kế từ file.

Mở bộ điều khiển mờ bằng lệnh Readfis.
Xem luật mờ của bộ điều khiển trên thông qua lệnh Showrule.

Bước 4: Chọn cơ chế suy diễn mờ và phương pháp giải mờ

Ta giữ cơ chế mặt định của MATLAB là suy diễn mờ MAX-MIN và cài đặt mặt định của Matlab là giải mờ bằng phương pháp điểm trọng tâm. Ngoài ra ta vẫn có thể chọn phương pháp giải mờ bằng độ phụ thuộc cực đại cận phải, cận trái hoặc trung bình. Dĩ nhiên, sau khi đã thành thạo và chủ động được việc thiết kế ta có thể sử dụng các cơ chế suy diễn và các phương pháp giải mờ khác để kiểm chứng.

Cửa sổ Rule Viewer tính toán giá trị ngõ ra.
Quan hệ vào ra được thể hiện qua mặt đặc tính.

Bước 5: Mô phỏng kiểm chứng và tối ưu hóa hệ thống

Ở bước này ta sẽ tiến hành mô phỏng bộ điều khiển vừa thiết kế trong Simulink. Trở lại với sơ đồ “Cybernetics_MISO_DCmotor”. Sau khi chạy Script file để cập nhật các thông số cho mô hình động cơ DC qua khối Transfer Function như sau:

Nhập thông số cho khối Transfer Fcn.

Sau đó sử dụng bộ điều khiển vừa thiết kế bằng cách nhập tên của bộ điều khiển vào khối Fuzzy Logic Controller để sử dụng.

Nhập tên bộ điều khiển cho khối Fuzzy.

Cuối cùng tiến hành chạy mô phỏng hệ thống trên, ta thu được đồ thị biểu diễn đáp ứng vào ra của hệ thống như sau:

Đáp ứng ngõ ra của động cơ khi được điều khiển.

Như vậy ta đã hoàn thành việc xây dựng bộ điều khiển mờ cho mô hình động cơ DC trên MATLAB Simulink. Phần trình bày trên chỉ thỏa mãn việc điều khiển tốc độ động cơ ở một chiều. Các bạn có thể thay đổi thông số của mô hình động cơ DC và thiết kế lại bộ điều khiển trên để rèn luyện khả năng thiết kế bộ điều khiển trên MATLAB và mô phỏng trên Simulink.

Theo Chapter I thì Bước 5 ngoài mô phỏng kiểm chứng, ta còn bước cải thiện hệ thống. Đầy là một bước tương đối khó khăn ở giai đoạn này nên việc cải thiện bộ điều khiển mờ nói chung sẽ được đề cập trong các Chapter tiếp theo.

Nếu có thắc mắc hay cần trao đổi thêm mình sẽ hỗ trợ các bạn. Cứ để lại bình luận bên dưới !!!

Categories
Fuzzy Controller

SISO for DC Motor

Ở bài viết trước chúng ta đã tìm hiểu về công cụ Fuzzy Logic Designer trong MATLAB. Để hiểu rõ hơn về cách sử dụng nó, ở bài viết này chúng ta sẽ tìm hiểu quá trình thiết kế bộ điều khiển mờ cho mô hình động cơ DC trên MATLAB – Simulink với yêu cầu như sau:

” Hãy thiết kế và mô phỏng bộ điều khiển mờ SISO cho đối tượng động mô hình cơ DC để ổn định tốc độ động cơ tại 2 rad/s. Trong đó, các tham số của động cơ DC như sau: Mô-men quán tính J = 0.01 (kg.m2/s2); hệ số ma sát b = 0.1 (Nms); điện cảm cuộn dây L = 1 (H); điện trở cuộn dây R = 0.5(W); hằng số sức điện động K = 0.01 (Nm/Amp).”

Mô tả hàm truyền của động cơ DC

Đối tượng điều khiển là động cơ DC được mô tả bằng cách sử dụng khối hàm truyền trong thư viện Simulink. Đa thức tử số và mẫu số của khối “Transfer Function” lần lượt là numeratordenominator, được nhập thông qua Script file như sau:

Script mô tả thông số mô hình của động cơ DC
Kết quả khi chạy file trên.

Thiết kế bộ điều khiển mờ

Ta sẽ dựa vào thứ tự các bước ở Chapter I Fuzzy Control System Designer để tiến hành thiết kế bộ điều khiển mờ. Ta có giá trị tốc độ động cơ mong muốn hay giá trị đặt là yref = 2 rad/s với sơ đồ như sau:

Mô hình Cybernetics_SISO_Dcmotor_Modeling trên Simulink

Bước 1 Khảo sát đối tượng

Tiến hành xác định giới hạn của các biến ngôn ngữ vào ra của bộ điều khiển mờ. Bộ điều khiển mờ có các biến ngôn ngữ ngõ vào và ngõ ra lần lượt là e và u được mô tả như hình sau:

Hình ảnh giao diện bộ điều khiển SISO.

Tiếp theo ta cần xác định khoảng giới hạn giá trị của biến ngõ vào e nằm trong khoảng [emin , emax] và ngõ ra u nằm trong khoảng [umin , umax]. Nhiệm vụ chính của bước này là xác định các khoảng giá trị này.

Xác định giới hạn giá trị ngõ vào e

Từ sơ đồ điều khiển ta sẽ thấy e = yref – y và ta đã chọn tốc độ động cơ DC quanh giá trị yref = 2 rad/s. Nên mô hình động cơ ta thấy tốc độ động cơ y sẽ biến thiên từ ymin = 0 đến ymax = 2 (rad/s) và do ta đã chọn giá trị yref = 2 (rad/s) là giá trị đặt mong muốn. nên yref  cũng biến thiên từ yrefmin = 0 đến yrefmax = 2 (rad/s). Ta có:

emin = yrefmin – ymax =  0 – 2 = -2 (rad/s) là sai số nhỏ nhất giữa giá trị mong muốn yref và giá trị ngõ ra y của động cơ.

Ngược lại ta có:

emax = yrefmax – ymin =  2 – 0  = 2 (rad/s) là sai số lớn nhất giữa giá trị mong muốn yref và giá trị ngõ ra y của động cơ.

Do khi tốc độ động cơ ymin = 0 tức động cơ ngừng quay là lúc sai số giữa giá trị mong muốn yref và giá trị ngõ ra y là lớn nhất 2 rad/s. Từ đó ta giới hạn giá trị ngõ vào e thuộc khoảng [-2, 2].

Xác định giới hạn giá trị ngõ ra u

Việc xác định giới hạn ngõ ra u đòi hỏi ta phải khảo sát ngõ vào của đối tượng nhằm tìm được giá trị U của ngõ vào để tốc độ động cơ đạt được 2 (rad/s). Để thực hiện được điều này, ta tiến hành khảo sát đáp ứng vòng hở của động cơ thông qua mô hình Simulink như sau:

Mô hình Simulink khảo sát đáp ứng vòng hở của động cơ DC.

Ta thu được đáp ứng ngõ ra như sau:

Đáp ứng vòng hở của động cơ DC với ngõ vào 20 V.

Từ kết quả trên ta thấy, để ngõ ra của động cơ y đạt tốc độ 2 (rad/s) như ta đã chọn thì giá trị ngõ vào của động cơ umax = U = 20 (V). Như vậy, nếu muốn điều khiển động cơ quay một chiều thì điện áp ngõ vào u sẽ biến thiên từ 0 V (động cơ dừng) đến umax = 20 V (động cơ chạy đúng theo giá trị đặt).

Theo kinh nghiệm thiết kế, khi chọn phương pháp giải mờ điểm trọng tâm ở bước tiếp theo thì ta cần chọn giá trị umax lớn hơn giá trị tìm được lớn hơn giá trị U tìm được trước đó. Ở đây ta chọn umax = 2U, tức u thuộc khoảng [0, 40].

Sau khi kết thúc bước đầu tiên của quá trình thiết kế, ta đã xác định được giới hạn ngõ vào e nằm trong khoảng [-2, 2]. Giới hạn ngõ ra u nằm trong khoảng [0, 40]. Tuy nhiên, trong thực tế ta có thể tiến hành thay đổi các khoảng giá trị này như tăng hoặc giảm để có được chất lượng điều tốt nhất.

Bước 2 Mờ hoá các biển ngôn ngữ vào/ra

Trong bước này chúng ta cần xác định số lượng tập mờ và hình dạng các hàm liên thuộc cho mỗi biến ngôn ngữ ngõ vào e và ngõ ra u.

Ở bước này chúng ta sẽ tiến hành biểu diễn các biến ngôn ngữ cho ngõ vào e và ngõ ra u bằng các giá trị ngôn ngữ. Mỗi giá trị ngôn ngữ sẽ được biểu diễn bằng 1 hàm liên thuộc. Mỗi biến ngôn sẽ thường được biểu diễn bởi từ 3 đến 9 hàm liên thuộc. Với bài toán này, ta sẽ tiến hành mờ hóa ngõ vào e và u bằng 5 hàm liên thuộc dạng tam giác chia đều cho các khoảng giá trị đã xác định ở Bước 1. Mờ hóa ngõ vào e bằng các giá trị ngôn ngữ sau {RN – rất nhỏ, N – nhỏ, K – không, L – lớn, RL – rất lớn} và ngõ ra u {RC – rất chậm, C – chậm, TB – trung bình, N – nhanh, RN – rất nhanh} hay còn được viết như sau:

Mờ hóa ngõ vào e và ngõ ra u

Ở giai đoạn bắt đầu, ta nên chọn hàm liên thuộc dạng tam giác và chia đều các tập mờ trong miền giá trị đã được giới hạn ở Bước 1. Sau khi có nhiều kinh nghiệm hơn, chúng ta hoàn toàn có thể thay đổi kiểu hàm liên thuộc và dịch chuyển các tập mờ trong miền giá trị của biến ngôn ngữ, để thu được đáp ứng tốt nhất. Việc lựa chọn số lượng và hình dạng các hàm liên thuộc đều tùy thuộc vào kinh nghiệm của người thiết kế. Ngoài ra, chúng ta có thể thay đổi và thực hện lại bước này nhiều lần khi kết quả điều khiển chưa đạt yêu cầu. Tiến hành mờ hóa trên MATLAB và ta thu được kết quả sau:

Mờ hóa ngõ vào bằng 5 hàm liên thuộc hình tam giác. Range là khoảng giá trị xác định ở Bước 1.
Mờ hóa ngõ ra bằng 5 hàm liên thuộc hình tam giác. Range là khoảng giá trị xác định ở Bước 1.

Bước 3 Lập luật điều khiển

Đây là bước quan trọng và khó nhất trong quá trình thiết kế bộ diễn khiến mờ. Việc xây dựng luật điều khiển phụ thuộc vào kiến thức và kinh nghiệm vận hành hệ thống của các chuyên gia và người thiết kế. Đôi khi, luật điều khiển mà phải được hiệu chỉnh nhiều lần để thu được đáp ứng tốt nhất.

Từ sơ đồ điều khiển vòng kín ta thấy ngõ vào bộ điều khiển e = yref – y biến thiên theo thời gian. Ta xét 2 trường hợp sau:

Trường hợp 1: Ta xét e > 0, tức là thời điểm mà đáp ứng y còn thấp hơn giá trị tham khảo yref, lúc đó đòi hỏi bộ điều khiển phải cung cấp tín hiệu điều khiển u đủ lớn để lại đáp ứng nhanh đạt được trị yref.

Trường hợp 2: Ngược lại, khi e < 0 là thời điểm đáp ứng y của động cơ đã lớn hơn giá trị trị tham khảo yref. Khi đó hiện tượng vot lố đã xuất hiện, do vậy ta cần giảm giá trị u để tốc độ động cơ nhanh được ổn định ở giá trị tham khảo.

Ngoài ra, khi e = 0 tức hệ thống đã được ổn định đây là mục tiêu điều khiển nên ta không cần quan tâm đến trường hợp này.

Từ 2 trường hợp trên ta rút ra được nhận xét như sau:

+ Khi e < 0 | y > yref , y đã vọt lố do vậy cần giảm u để y quay về giá trị yref nên u cần giảm.

+ Khi e > 0 | y < yref , y thấp hơn yref do vậy cần tăng u để y nhanh đạt đến giá trị yref nên u cần tăng.

Từ 2 nhận xét trên ta sẽ lập luật điều khiển thông qua bảng sau:

Thứ tựLuật mờ
R1If e is RN then u is RC
R2If e is N then u is C
R3If e is K then u is TB
R4If e is L then u is N
R5If e is RL then u is RN

Các luật sẽ được hiểu như sau, ta lấy R1 làm ví dụ. If e is RN then u is RC tức nếu sai số e là Rất nhỏ (RN) thì ngõ ra u sẽ là Rất chậm (RC). Vì khi e là RN tức e < 0 ta xét trường hợp 2, ta cần phải giảm u ở ngõ ra nên u sẽ là RC để hệ thống nhanh được ổn định. Tương tự với các luật còn lại.

Quá trình này được tiến hành trên MATLAB như sau ta sẽ chọn giá trị e, chọn giá trị u và nhấn “Add rule” để thêm luật.

Cửa sổ thiết lập luật mờ.

Như vậy ở bước này ta đã thiết kế bộ điều khiển mờ xong. Tiếp theo ta cần xuất bộ điều khiển sang Workspace hoặc file của MATLAB để tiến hành mô phỏng kiểm chứng và sử dụng. Ta chọn File > Export > To Workspace và nhập tên của bộ điều khiển ví dụ như “Cybernetics_SISO_Theory” như trên để tiến hành mô phỏng.

Ngoài ra ta có thể chọn To File và nhập tên để lưu bộ điều khiển trong máy tính. Khi muốn mở một bộ điều khiển mờ dưới dạng file với phần mở rộng là .fis ta cần nhớ câu lệnh sau:

<Tên bộ điều khiển> = readfis(“<tên file của bộ điều khiển>”) như như hình sau:

Script mô tả thông số mô hình của động cơ DC
Xem luật mờ thông qua câu lệnh showrule().
Các giá trị trên Workspace.

Lưu ý khi có bất cứ điều chỉnh nào trong bộ điều khiển mờ ta cần thực hiện lại bước này để cập nhật tất cả thay đổi để chuyển sang các bước kế tiếp.

Bước 4 Chọn cơ chế suy diễn mờ và phương pháp giải mờ

Do ở giai đoạn mới bắt đầu, để dễ dàng sử dụng ta sẽ giữ cơ chế suy diễn mờ mặc định của MATLAB là cơ chế suy diễn mờ MAX-MIN. Tương tự ta cũng giữ mặc định giải mờ bằng phương pháp điểm trọng tâm. Dĩ nhiên, sau khi đã thành thạo và chủ động được việc thiết kế ta có thể sử dụng các cơ chế suy diễn và các phương pháp giải mờ khác để kiểm chứng.

Cửa sổ Rule Viewer hiển thị quan hệ giá trị vào ra.
Mặt đặc tính biểu thị quan hệ vào ra của bộ điều khiển.

Bước 5 Tối ưu hệ thống

Ở bước này ta sẽ tiến hành mô phỏng bộ điều khiển vừa thiết kế trong Simulink. Trở lại với sơ đồ “Cybernetics_SISO_Dcmotor_Modeling”. Trước hết ta sẽ chạy Script file Parameter.m ở Bước 3 để cập nhật các thông số cho mô hình động cơ DC được mô tả thông qua khối “Transfer Function” với tử số (numerator) và mẫu số (denominator) được cung cấp như sau.

Mô hình Cybernetics_SISO_Dcmotor_Modeling trên Simulink
Thiết lập thông số cho khối Transfer Fcn

Sau đó sử dụng bộ điều khiển vừa thiết kế bằng cách nhập tên của bộ điều khiển vào khối Fuzzy Logic Controller để sử dụng.

Nhập tên bộ điều khiển mờ được sử dụng vào khối Fuzzy Logic Controller

Cuối cùng tiến hành chạy mô phỏng hệ thống trên Simulink, ta thu được đồ thị biểu diễn đáp ứng vào ra của hệ thống như sau:

Đáp ứng ngõ ra y và giá trị đặt y_ref.

Như vậy ta đã hoàn thành việc xây dựng bộ điều khiển mờ cho mô hình động cơ DC trên MATLAB Simulink. Phần trình bày trên chỉ thỏa mãn việc điều khiển tốc độ động cơ ở một chiều. Ta có thể điều khiển cả 2 chiều của động cơ bằng cách thay đổi khoảng giá trị giới hạn ngõ ra u thành [-40, 40] và điều chỉnh luật mờ. Các bạn có thể xem như đây là một thử thách để các bạn tự tay thiết kế lại bộ điều khiển trên để có thể điều khiển 2 chiều của mô hình động cơ.

Theo Chapter I thì Bước 5 ngoài mô phỏng kiểm chứng, ta còn bước cải thiện hệ thống. Đầy là một bước tương đối khó khăn ở giai đoạn này nên việc cải thiện bộ điều khiển mờ nói chung sẽ được đề cập trong các Chapter tiếp theo.

Nếu có thắc mắc hay cần trao đổi thêm mình sẽ hỗ trợ các bạn. Cứ để lại bình luận bên dưới !!!

Categories
Fuzzy Controller

Fuzzy Logic Designer

Giới thiệu

Hộp công cụ Lôgic mờ (The Fuzzy Logic Toolbox) là tổ hợp các hàm được xây dựng trên nền Matlab 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 dễ dàng. Để 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 dòng lệnh hoặc thông qua giao diện đồ hoạ. Trong Chapter này chỉ giới thiệu những thao tác cơ bản để thiết kế bộ điều khiển mờ thông qua giao diện đồ hoạ. Phần thiết kế thông qua dòng lệnh, ta có thể đọc trong phần “Fuzzy Logic Toolbox”củaMatlab: https://www.mathworks.com/products/fuzzy-logic.html

Trước khi vào nội dung chính chúng ta sẽ có một số lưu ý rằng máy tính của bạn phải cài đặt Matlab và mình đề xuất nên sử dụng các phiên bản từ 2015 trở đi. Các hình ảnh mình sử dụng bên dưới được lấy từ Matlab 2019a, các phiên bản cũ hơn sẽ có giao diện khác đi. Nhưng về chức năng và việc thiết kế vẫn vậy.

Để truy cập vào Fuzzy Logic Toolbox các bạn sẽ gõ lệnh “fuzzy”, Matlab có phân biệt chữ hoa và chữ thường. Sau đó giao diện “Fuzzy Logic Designer” sẽ xuất hiện.

Giao diện Fuzzy Logic Designer trong Matlab.

Chức năng

Hình 1.

Trong đó (Hình 1):

+ FIS Name: Cho biết tên của bộ điều khiển đang được xem hoặc đang thiết kế.

+ FIS Type: Cho biết nguyên tắc của bộ điều khiển đang được xem hoặc đang thiết kế.

Hình 2.

(Hình 2) Hiển thị tên và các tùy chọn cho các nguyên tắc xây dựng luật hợp thành và phương pháp giải mờ. Những tùy chọn dưới đây là các tùy chọn mặc định.

Hình 3.

(Hình 3) Hiển thị tên biến, loại biến (Input hay Output) và khoảng giá trị xác định của biến hiện thời.

Hình 4.

(Hình 4) Hiển thị các trạng thái của bộ điều khiển bao gồm số ngõ ra vào và số luật.

File

Cửa sổ File – Cung cấp các tùy chọn như sau:

+ New FIS…: Cho phép tạo mới một bộ điều khiển mờ theo nguyên tắc Mamdani (mặc định) hoặc nguyên tắc Sugeno.

+ Import: Được dùng để mở một bộ điều khiển mờ có sẵn, có thể được thêm từ Workspace của Matlab hoặc được thêm từ file (với phần mở rộng .fis).

+ Export: Sau khi thiết kế bộ điều khiển mờ, ta có thể chuyển bộ điều khiển vừa thiết kế sang Workspace để sử dụng hoặc lưu trữ dưới dạng file với phần mở rộng .fis.

Edit

Cửa sổ Edit – Cung cấp các tùy chọn cho phép thêm bớt các giá tri hay các biến Input hay Output của bộ điều khiển. Truy cập và chỉnh sửa các hàm liên thuộc và luật mờ.

View

Cửa sổ View – Cung cấp các tùy chọn cho phép xem mặt đặc tính (Surface) và luật mờ (Rule View).

Mặt đặc tính phi tuyến.
Cửa sổ Rule View.

Membership Funtions Enditor

Giao diện cửa sổ Membership Funtions Editor

Click vào biểu tượng Input/Output hoặc vào Edit >> Membership Funtions Editor. Cho phép điều chỉnh các thông số của các hàm liên thuộc ở ngõ ra và ngõ vào như:

+ Name: Tên của các hàm liên thuộc. Tên thường đặt theo các biến ngôn ngữ mà hàm liên thuộc biểu thị.

+ Params: Miền xác định của hàm liên thuộc.

+ Type: Tùy chọn hình dạng các hàm liên thuộc như: trimf, trapmf, gaussmf…

+ Range: Thay đổi miền xác định hay giới hạn các giá trị của biến ngôn ngữ.

+ Display Range: Miền giá trị được hiển thị trên Membership Function Plots.

Chọn Edit >> Add MFs hoặc Add Custom MF để thêm hàm liên thuộc. Chọn Remov Select MF để gỡ bỏ một hàm liên thuộc được chọn hoặc Remov All MFs để gỡ bỏ tất cả các hàm liên thuộc của biến được chọn.

Rule Editor

Để xây dựng luật mờ, ta vào Edit >> Rules trên màn hình. Sau mỗi lần soạn xong một luật ta ấn Add rule để xác nhận. Để thay đổi một luật hợp thành ta ấn Change rule. Để xoá một luật điều khiển ta chọn luật cần xóa và ấn Delete rules. Muốn quan sát mặt đặc tính động của các luật ta vào View >> View Rules, View >> Surface để xem mặt đặc tính của bộ điều khiển.

Sau khi thiết kế xong bộ điều khiển, ta cần đặt tên và lưu chúng bằng cách ấn File, chọn Export To Disk để lưu vào thư mục hoặc to Workspase để lưu vào vùng làm việc của Matlab.

Muốn mở một bộ điều khiển mờ đã lưu trên máy tính, ta chọn File >> Import >> Import from file hoặc Import from Workspace để mở bộ điều khiển từ Workspace của Matlab.

Ví dụ về một bộ điều khiển mờ DCmotor_SISO
Membership Function Editor ở ngõ vào e với 5 tập mờ dạng tam giác.
Categories
Fuzzy Controller

Fuzzy Control System Design

Fuzzy Control System Design

Theo bản chất của tín hiệu đưa vào bộ điều khiển ta phân ra bộ điều khiển mờ tĩnh và bộ điều khiển mờ động. Bộ điều khiển mờ tĩnh chỉ có khả năng xử lý các giá trị tín hiệu hiện thời, bộ điều khiển mờ động có sự tham gia của các giá trị đạo hàm hay tích phân của tín hiệu, chúng được ứng dụng cho các bài toán điều khiển động. Để mở rộng miền ứng dụng của chúng vào các bài toán điều khiển động, các khâu động học cần thiết sẽ được nối thêm vào bộ điều khiển mở tĩnh nhằm cung cấp cho bộ điều khiển các giá trị đạo hàm hay tích phân của tín hiệu. Cùng với những khâu động học bổ sung này, bộ điều khiển tĩnh sẽ trở thành bộ điều khiển mờ động. Sau đây ta sẽ tìm hiểu cách thiết kế bộ điều khiển mờ tĩnh, bộ điều khiển mờ động sẽ được đề cập ở các Chapter sau.

Bộ điều khiển mờ tĩnh SISO.
Điều khiển vi phân tỷ lệ mờ + tích phân FPD+I.

Thiết kế bộ điều khiển mờ tĩnh

Điều khiển mờ có thể giải quyết được một bài toán tổng hợp điều khiển (tĩnh) phi tuyến bất kỳ. Bộ điều khiển mờ SISO với ngõ vào là sai biệt hay sai số e ở giữa tín hiệu mong muốn và đáp ứng của đối tượng hay tín hiệu ngõ ra được đo đạt thực tế, ngõ ra là tín hiệu điều khiển là u. Để thiết kế được các bộ điều khiển mờ SISO hay MISO và cho bộ điều khiển hoạt động một cách hoàn thiện ta cần thực hiện qua các bước cơ bản sau:

1- Khảo sát đối tượng: Xác định giới hạn các biến ngôn ngữ vào/ra của bộ điều khiển mờ. Từ đó định nghĩa tất cả các biến ngôn ngữ vào, ra và miền xác định của chúng. Trong bước này chúng ta cần chú ý một số đặc điểm cơ bản của đối tượng điều khiển như: Đối tượng biến đổi nhanh hay chậm? Có trễ hay không? Tính phi tuyến nhiều hay ít?… Đây là những thông tin rất quan trọng để quyết định miền xác định của các biến ngôn ngữ đầu vào, nhất là các biến động học (vận tốc, gia tốc,…). Đối với tín hiệu biến thiên nhanh cần chọn miền xác định của vận tốc và gia tốc lớn và ngược lại.

2- Mờ hoá các biển ngôn ngữ vào/ra: Trong bước này chúng ta cần xác định số lượng tập mờ và hình dạng các hàm liên thuộc cho mỗi biến ngôn ngữ. Số lượng các tập mờ cho mỗi biến ngôn ngữ được chọn tuỳ ý. Tuy nhiên nếu chọn ít quá thì việc điều chỉnh sẽ không mịn, chọn nhiều quá sẽ khó khăn khi cài đặt luật hợp thành, quá trình tính toán lâu, hệ thống để mất ổn định. Hình dạng các hàm liên thuộc có thể chọn hình tam giác, hình thang, hàm Gauss…

3- Xây dựng các luật điều khiển hay luật mờ (mệnh đề hợp thành): Đây là bước trọng nhất và khó khăn nhất trong quá trình thiết kế bộ điều khiển mờ. Việc xây dựng luật điều khiển phụ thuộc rất nhiều vào tri thức và kinh nghiệm vận hành hệ thống của các chuyên gia hay của người thiết kế. Hiện nay ta thường sử dụng một vài nguyên tắc xây dựng luật hợp thành đủ để hệ thống làm việc, sau đó mô phỏng và chỉnh định dần dần các luật hoặc áp dụng một số thuật toán tối ưu bộ điều khiển (Sẽ được trình bày ở các Chapter sau).

4- Chọn cơ chế suy diễn mờ và phương pháp giải mờ: Chọn các cơ chế suy diễn mờ như MAX-MIN hoặc MAX-PROD hoặc MIN hoặc SUM-PROD và chọn các phương pháp giải mờ như phương pháp cực đại theo nguyên lý trung bình, cận trái hoặc cận phải; phương pháp điểm trọng tâm.

5- Tối ưu hệ thống: Sau khi thiết kế xong bộ điều khiển mở, ta cần mô hình hoá và mô phỏng hệ thống để kiểm tra kết quả, đồng thời chỉnh định lại một số tham số để có chế độ làm việc tối ưu và hệ thống đạt độ ổn định. Các tham số có thể điều trong bước này như thêm hoặc bớt các luật điều khiển; Thay đổi trọng số các luật; Thay đổi hình dạng và miền xác định của các hàm liên thuộc.

Bộ điều khiển mờ tĩnh MISO.
Categories
Fuzzy Controller

Fuzzy System

Hệ mờ

Về nguyên tắc, hệ thống điều khiển mờ cũng giống các hệ thống điều khiển tự động thông thường khác. Điểm khác biệt ở đây là bộ điều khiển mờ được xây dựng phỏng theo tư duy của con người. Hay nói cách khác là nó “nhạy theo” kinh nghiệm và phương pháp rút ra kết luận của con người. Ưu điểm của kỹ thuật này là không phụ thuộc nhiều vào mô hình của đối tượng điều khiển. Nguyên tắc điều khiển mờ SISO đơn giản được minh họa như hình.

Cần chú ý dưới hệ mờ cơ bản là hệ tĩnh, điều này có nghĩa là giá trị ngõ ra của hệ mờ ở một thời điểm chỉ phụ thuộc vào giá trị ngõ vào ở thời điểm đó.

Nguyên tắc điều khiển mờ.

Sơ đồ khối hệ mờ cơ bản gồm 3 thành phần:

Khối mờ hóa: Khối mờ hóa, có nhiệm vụ mờ hóa các biến và các giá trị rõ ngõ vào sang giá trị ngôn ngữ và từ đó hình thành các tập mờ thành phần.

Luật mờ và phương pháp suy diễn: Từ các biến và các tập mờ ngõ vào tiến hành xây dựng luật mờ dựa trên tư duy hay kinh nghiệm của người thiết kế hoặc người vận hành. Sau đó từ các phương pháp suy diễn hình thành tập mờ ngõ ra từ các ngõ vào.

Khối giải mờ: Từ luật mờ,tập mờ và giá trị ngôn ngữ tiến hành tính toán và xác định giá trị ngõ ra sao cho phù hợp với yêu cầu và hệ thống thực tế. Từ đó đảm bảo được tính chính xác và ổng định của hệ thống.

Mặt đặc tính – Surface

Hệ mờ có thể có nhiều ngõ vào và nhiều ngõ ra. Đồ thị biểu điễn mối quan hệ giữa một ngõ ra theo hai ngõ vào bất kỳ gọi là mặt đặc tính. Trường hợp đặc biệt khi hệ mờ chỉ có một ngõ vào thì mặt đặc tính trở thành đường đặc tính. Tổng quát mặt đặc tính của hệ mờ suy diễn là mặt phi tuyến, tuy nhiên trong một số trường hợp mặt đặc tính có thể là mặt tuyến tính (mặt phẳng). Hình minh họa mặt đặc tính phi tuyến và tuyến tính.

Mặt đặc tính phi tuyến.
Mặt đặc tính tuyến tính.

Mặt đặc tính phụ thuộc chủ yếu vào hệ quy tắc mờ hay luật mờ vì hệ quy tắc mờ quyết định quan hệ giữa ngõ vào và ngõ ra dưới dạng giá trị ngôn ngữ. Tuy nhiên, hình dạng, vị trí các tập mờ, phương pháp suy diễn, phương pháp giải mờ cũng ảnh hưởng đến mặt đặc tính. Các ảnh hưởng này sẽ được phân tích sau.

Categories
Fuzzy Controller

Fuzzy Inference

Suy diễn mờ

Suy diễn mờ hay nói một cách dễ hiểu là cách mà ta xác định hay xây dựng được tập mờ ngõ ra từ một hay nhiều giá trị từ các tập mờ ngõ vào. Trong điều khiển có nhiều cơ chế suy diễn tả thông dụng như MAX – MIN, MAX – PROD, SUM – MIN và SUM – PROD. Trong Chapter này chúng ta sẽ đề cập đến 2 cơ chế suy diễn mờ thông dụng nhất đó làm suy diễn mờ MAX-MIN và suy diễn mờ MAX-PROD.

Suy diễn mờ MAX – MIN

Ta sẽ xét một cách tổng quát, luật thứ K của bộ luật mờ (Chapter E). Ta có:

RK: Nếu x1 = A1 và x2 = A2 thì y = C

Áp dụng ở luật mờ RK ta có một tập mờ ngõ ra được xác định như sau:

          uCK (y) = Min (uA1K (x1), uB2K (x2))

Áp dụng n luật mờ liên quan, suy diễn mờ MAX – MIN cho tập mờ ngõ ra là:

uC (y) = Max (uC1 (y1), uC2 (y1)…uCK (x1)…uCn (y))

Để dễ hiểu hơn ta xét ví dụ sau: Giả sử có cấu trúc MISO 2 ngõ vào x và y – 1 ngõ ra z, với các luật mờ như sau:

R1: IF x is A1 AND y is B1          THEN z is C1

R2: IF x is A2 AND y is B2          THEN z is C2

Giả sử có 2 ngõ vào x và y như hình bên dưới. Khi đó ngõ vào x cắt 2 tập mờ A1 và A2, với độ phụ thuộc tương ứng là uA1 (x1) = 0.6uA2 (x1) = 0.2. Đồng thời, ngõ vào y1, cắt 2 tập mờ B1 và B2 với độ phụ thuộc tương ứng là uB1 (y1) = 0.1uB2 (y1) = 0.8.

Áp dụng luật R1 ta có tập mờ hợp thành thứ nhất có độ phụ thuộc là:

uC1 (z) = Min {uA1 (x₁), uB1 (y1)} = Min {0.6, 0.1} = 0.1 (1)

Tương tự, áp dụng luật mờ R2, tập mờ hợp thành thứ hai có độ phụ thuộc là

uC2 (z) = Min {uA2 (x1), uB2 (y1)} = Min {0.2, 0.8} = 0.2 (2)

Tập mờ ngõ ra cuối cùng theo cơ chế suy diễn MAX-MIN thu được như trên được xác lập bởi phép hợp các tập mờ thành phần. Từ (1) và (2) ta có:

uC (z) = Max {uC1 (z), uC2 (z)} = Max {0.1, 0.2}

Hình minh họa cho cơ chế suy diễn mờ MAX-MIN. Vùng được tô màu xanh chính là Tập mờ ngõ ra.

Suy diễn mờ MAX-PROD

Suy diễn mờ MAX-PROD hoàn toàn giống suy diễn mờ MAX-MIN. Trong đó, các tập mờ ngõ ra thành phần không sử dụng toán tử MIN mà dùng toán tử PROD hay tích đại số.

Ta sẽ xét luật thứ K của bộ luật mờ (Chapter E). Ta có:

RK: Nếu x1 = A1 và x2 = A2 thì y = C

Áp dụng ở luật mờ RK ta có một tập mờ ngõ ra được xác định như sau:

          uCK (y) = uA1K (x1).uB2K (x2)

Áp dụng n luật mờ liên quan, suy diễn mờ MAX – MIN cho tập mờ ngõ ra là:

uC (y) = Max (uC1 (y1), uC2 (y1)…uCK (x1)…uCn (y))

Để dễ hiểu hơn ta xét ví dụ sau: Giả sử có cấu trúc MISO 2 ngõ vào x và y – 1 ngõ ra z, với các luật mờ như sau:

R1: IF x is A1 AND y is B1          THEN z is C1

R2: IF x is A2 AND y is B2          THEN z is C2

Giả sử có 2 ngõ vào x và y như hình bên dưới. Khi đó ngõ vào x cắt 2 tập mờ A1 và A2, với độ phụ thuộc tương ứng là uA1 (x1) = 0.6uA2 (x1) = 0.2. Đồng thời, ngõ vào y1, cắt 2 tập mờ B1 và B2 với độ phụ thuộc tương ứng là uB1 (y1) = 0.1uB2 (y1) = 0.8.

Áp dụng luật R1 ta có tập mờ hợp thành thứ nhất có độ phụ thuộc là:

uC1 (z) = uA1 (x₁).uB1 (y1) = 0.6*0.1 (3)

Tương tự, áp dụng luật mờ R2, tập mờ hợp thành thứ hai có độ phụ thuộc là:

uC2 (z) = uA2 (x1).uB2 (y1) = 0.2*0.8 (4)

Tập mờ ngõ ra cuối cùng theo cơ chế suy diễn MAX-PROD thu được như trên được xác lập bởi phép hợp các tập mờ thành phần. Từ (3) và (4) ta có biểu thức sau:

uC (z) = Max {uC1 (z), uC2 (z)}

Như vậy chúng ta đã tìm hiểu xong về cơ chế suy diễn mờ, phần nảy tương đối nặng về lý thuyết. Tuy nhiên, chúng ta chỉ cần hiểu nguyên lý hoạt động của nó về mặt tính toán và thiết kế Matlab sẽ giúp chúng ta làm điều đó.

Cửa sổ Rule Viewer trong Matlab dùng để thực hiện và tính toán với 2 ngõ vào e và de; ngõ ra u.