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

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
Control Theory

System Classification

Linear – Nonlinear Control Theory

Lĩnh vực lý thuyết điều khiển có thể được chia thành hai nhánh:

Linear Control Theory – Lý thuyết điều khiển tuyến tính áp dụng cho các hệ thống được làm bằng các thiết bị tuân theo nguyên tắc chồng chất, có nghĩa là đầu ra tỷ lệ thuận với đầu vào. Chúng bị chi phối bởi các phương trình vi phân tuyến tính. Một phân lớp chính là các hệ thống ngoài ra còn có các tham số không thay đổi theo thời gian, được gọi là hệ thống bất biến thời gian tuyến tính (LTI). Các hệ thống này có thể chấp nhận các kỹ thuật toán học miền tần số mạnh mẽ có tính tổng quát tuyệt vời, chẳng hạn như biến đổi Laplace, biến đổi Fourier, biến đổi Z, giản đồ Bode, tiêu chí ổn định Nyquist. Những điều này dẫn đến mô tả hệ thống bằng cách sử dụng các thuật ngữ như băng thông, phản hồi tần số, cộng hưởng, khuyếch đạo, tần số cộng hưởng, số Zero và cực, cung cấp các giải pháp cho các kỹ thuật thiết kế và phản hồi hệ thống cho hầu hết các hệ thống.

Nonlinear Control Theory – Lý thuyết điều khiển phi tuyến bao gồm một lớp rộng hơn của các hệ thống không tuân theo nguyên tắc chồng chất, và áp dụng cho các hệ thống thực tế hơn. Các hệ thống này thường bị chi phối bởi các phương trình vi phân phi tuyến. Một vài kỹ thuật toán học đã được phát triển để xử lý chúng ít khó khăn hơn và ít chung chung hơn, nhưng thường chỉ áp dụng cho một số ít hệ thống. Chúng bao gồm lý thuyết chu kỳ giới hạn, bản đồ Poincaré, định lý ổn định Lyapunov và mô tả các chức năng. Các hệ thống phi tuyến thường được phân tích bằng các phương pháp số trên máy tính, ví dụ bằng cách mô phỏng hoạt động của chúng bằng ngôn ngữ mô phỏng như trong Matlab – Simulink. Nếu chỉ có các giải pháp gần một điểm ổn định được quan tâm, các hệ thống phi tuyến thường có thể được tuyến tính hóa bằng cách xấp xỉ chúng bằng một hệ thống tuyến tính bằng cách sử dụng lý thuyết nhiễu loạn và các kỹ thuật tuyến tính có thể được sử dụng.

Phân loại yêu cầu

Có ba dạng bài toán cơ bản trong lý thuyết điều khiển:

+ Phân tích hệ thống

+ Thiết kế hệ thống

+ Nhận dạng hệ thống

Phân tích hệ thống: Đối với dạng bài toán này thường yêu cầu tìm đáp ứng ngõ ra và đánh giá chất lượng của hệ thống dựa trên thông số và cấu trúc của đối tượng đã biết.

Thiết kế hệ thống: Đối với dạng bài toán này thường yêu cầu thiết kế bộ điều khiển thỏa mãn yêu cầu về chất lượng dựa trên cấu trúc và thông số của đối tượng đã biết.

Nhận dạng hệ thống: đối với bài toán dạng này hoàn toàn chưa biết trước cấu trúc và thông số của đối tượng. Do đó bài toán sẽ yêu cầu tìm cấu trúc và thông số của đối tượng.

Bài toán phân tích hệ thống và thiết kế hệ thống luôn luôn thực hiện được trong khi bài toán nhận dạng hệ thống không phải lúc nào cũng thực hiện được.

Trong lý thuyết điều khiển tự động, người ta thường phân ra làm nhiều loại hệ thống khác nhau như: hệ thống liên tục (được mô tả bằng phương trình vi phân), hệ thống rời rạc (được mô tả bằng phương trình sai phân), hệ thống tuyến tính (được mô tả dưới dạng phương trình vi phân/sai phân tuyến tính), hệ thống phi tuyến (được mô tả dưới dạng phương trình vi phân/sai phân phi tuyến), hệ thống bất biến theo thời gian (các hệ số của phương trình vi phân sai phân không thay đổi theo thời gian), hệ thống thay đổi theo thời gian (các hệ số của phương trình vi phân/sai phân thay đổi theo thời gian).

Control System Tuner là một phần trong Control System Toolbox của Matlab. Tham khảo thêm tại: https://www.mathworks.com/products/control.html
Mô hình Hệ thống kiểm soát tốc độ động cơ được xây dựng trên Simulink.

Các hệ thống trên có thể được phân tích, thiết kế và xây dựng mô hình trên MATLAB – Simulink. Đây là một công cụ rất mạnh, hữu ích và có tính ứng dụng cao. Chi tiết cách thiết kế và xây dựng cùng từng loại hệ thống điều khiển sẽ được đề cập trong các Chapter khác. Sẽ giúp chúng ta có cái nhìn cụ thể hơn về hệ thống điều khiển.