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 !!!