PHẦN MỞ ĐẦU1 Đặt vấn đề Với thời đại 4.0 thì mọi thứ đều được vận hành một các tự động thì để có thểvận hành được hệ thống đó thì ta phải có các thông số của mô hình cần điềukhiển, các b
Mục tiêu
Hệ xe con lắc ngược có độ nhạy cao với nhiễu và dễ mất ổn định ngay cả khi nhiễu tác động rất nhỏ Vì vậy mục tiêu của đề tài là thiết kế bộ điều khiển LQG và bộ điều khiển trượt để giữ xe ở vị trí đặt, đồng thời con lắc có thể bị lệch khỏi phương thẳng đứng nhưng vẫn duy trì thăng bằng Hai phương án điều khiển này kết hợp nhằm giảm ảnh hưởng của nhiễu và bất ổn, đảm bảo hệ có phản hồi ổn định và hiệu quả Kết quả cho thấy con lắc có thể lệch khỏi trục thẳng đứng khi được điều khiển, nhưng hệ vẫn duy trì cân bằng và quay về trạng thái cân bằng sau khi bị tác động.
Giới hạn
Đề tài hiện đang ở giai đoạn mô phỏng và chưa được triển khai thực tế, nên chưa thể điều chỉnh thông số cho phù hợp với yêu cầu Hệ thống đạt hiệu quả tốt khi con lắc không lệch khỏi phương thẳng đứng; nếu lệch quá mức sẽ làm hệ thống mất cân bằng và ảnh hưởng đến kết quả Vì vậy, cần thực hiện thử nghiệm thực tế và tối ưu hóa tham số để đảm bảo vận hành ổn định và đáp ứng yêu cầu đề bài.
Phương pháp nghiên cứu
Xây dựng đề tài nghiên cứu dựa trên tổng hợp các đề tài từ sách, báo, tạp chí khoa học nhằm nghiên cứu và phát triển nội dung Đồng thời khảo sát các mô hình hệ xe con lắc để làm rõ nguyên lí hoạt động của hệ thống và từ đó đề xuất các giải pháp cải tiến Qua phân tích tài liệu khoa học liên quan, bài viết nhấn mạnh mối liên hệ giữa tham số mô hình, động lực học và phương pháp mô phỏng, góp phần nâng cao hiểu biết và ứng dụng thực tiễn của hệ xe con lắc trong các hệ thống tự động hóa và điều khiển.
Sử dụng Matlab/Simulink hoặc các phần mềm khác có thể mô phỏng được để chạy mô phỏng hệ thống.
Nhóm áp dụng thiết kế bộ điều khiển LQG và điều khiển trượt để mô phỏng hệ thống, đồng thời vận dụng kinh nghiệm từ học phần lý thuyết "Nhận dạng và điều khiển hệ thống" nhằm thực hiện thiết kế có chọn lọc và hiệu quả.
Nội dung nghiên cứu
Chương 1: Tổng quan về hệ xe con lắc ngược
Chương này trình bày lý thuyết về mô hình toán hệ xe con lắc ngược.
Chương 2: Nhận dạng thông số mô hình sử dụng phương pháp bình phương cực tiểu
Chương này trình bày quá trình nhận diện tham số của hệ thống để so sánh tham số mô hình với tham số được nhận dạng thông qua phương pháp bình phương tối thiểu, nhằm xác định độ khớp giữa thực tế và mô hình Quá trình nhận diện thu thập dữ liệu đầu vào và đầu ra, ước lượng tham số hệ thống bằng kỹ thuật bình phương tối thiểu để tối ưu độ khớp giữa mô hình và dữ liệu thực tế Kết quả nhận dạng tham số được dùng để đánh giá mức khớp với tham số của mô hình, từ đó điều chỉnh và cải thiện mô hình cho các điều kiện vận hành khác nhau.
Chương 3: Thiết kế bộ điều khiển LQR cho hệ xe con lắc ngược
Chương này trình bày về thiết kế mô hình bộ điều khiển LQR trên Simulink và sau đó tiến hành mô phỏng hệ thống.
Chương 4: Thiết kế khảo sát bộ lọc Kalman cho hệ xe con lắc ngược
Chương này trình bày về thiết kế bộ lọc Kalman sau đó tiến hành mô phỏng khảo sát bộ lọc trên Matlab Simulink.
Chương 5: Thiết kế mô phòng bộ điều khiển LQG cho hệ xe con lắc ngược
Chương này trình bày về kết quả khảo sát bộ điều khiển LQG sau khi áp dụng bộ lọc Kalman vào bộ điều khiển LQR trên Matlab Simulink.
Chương 6: Thiết kế bộ điều khiển Sliding Mode Control cho hệ xe con lắc ngược
Chương này trình bày về thiết kế mô hình bộ điều khiển Sliding ModeControl trên Simulink và sau đó tiến hành mô phỏng hệ thống.
TỔNG QUAN VỀ HỆ XE CON LẮC NGƯỢC
Mô hình hệ xe con lắc ngược
Hệ xe con lắc ngược, được mô tả ở Hình 1.1, gồm một con lắc gắn vào xe kéo bởi động cơ điện; con lắc chỉ di chuyển trong mặt phẳng và không thể ổn định vì nó luôn ngã xuống nếu không có lực tác động thích hợp Giả sử khối lượng của con lắc tập trung ở đầu thanh (khối lượng thanh bỏ qua) Lực điều khiển u tác động lên xe Nhiệm vụ bài toán là điều khiển vị trí xe và giữ cho con lắc ngược luôn thẳng đứng, tức là hệ xe con lắc ngược luôn cân bằng.
Hình 1.1: Mô hình hệ xe con lắc ngược
Với các thông số hệ xe con lắc ngược như sau:
M=1.0 (kg): trọng lượng xe m= 0.1 (kg) trong lượng con lắc l=1.0 (m): chiều dài con lắc u: lực tác động vào xe (N) g: gia tốc trọng trường (m/s 2 ) x: vị trí xe (m) θ : góc giữa con lắc và phương thẳng đứng (rad)
Mô hình toán học của hệ xe con lắc ngược
Từ mô hình trên, ta phân tích các lực như hình vẽ Từ đó, ta được các giá trị như sau:111Equation Chapter 1 Section 1 Động năng của con lắc:
212\* MERGEFORMAT (.) Động năng của xe:
313\* MERGEFORMAT (.) Tổng động năng của hệ thống:
414\* MERGEFORMAT (.)Thế năng của hệ thống:
515\* MERGEFORMAT (.) Toán tử Lagrangian, ta có:
Hệ phương trình toán học theo phương pháp Euler-Lagrange:
Công thức (1.6) được biểu diễn theo từng biến trạng thái tác động đến hệ thống và ở bên trái là ngoại lực tác động xét theo từng hướng chuyển động.
Từ phương trình (1.6) và (1.7) ta tìm được như sau:
Tiếp theo cũng từ phương trình (1.6) và (1.7) ta tìm được như sau:
Phương trình vi phân của hệ xe con lắc ngược
Mô hình hóa hệ xe con lắc ngược
Đưa mô hình toán học của con lắc ngược về dạng chuẩn:
12112\* MERGEFORMAT (.) Đặt các biến trạng thái lần lượt là:
Tuyến tính hóa mô hình xung quanh điểm làm việc thẳng đứng
Sử dụng Matlab, ta sẽ tính được và
15115\* MERGEFORMAT (.) Thay các bộ thông số vào (3) và (4), ta được:
+ Đặc tính động của hệ xe con lắc ngược có thể được mô tả bởi hệ phương trình biến trạng thái tuyến tính Điều này chỉ đúng khi góc lệch θ ˙ nhỏ.
+ Hệ thống phản hồi trạng thái đầy đủ, nghĩa là có thể đo được 4 biến trạng thái (góc lệch, vận tốc góc, vị trí xe, vận tốc xe).
+ Không có nhiễu tác động vào hệ thống
NHẬN DẠNG THÔNG SỐ MÔ HÌNH SỬ DỤNG PHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂU
Mô hình toán của hệ xe con lắc ngược
Trong hệ con-lắc trên xe, các tham số được xác định như sau: m_x = 1 kg là khối lượng của xe, m_l = 0.1 kg là khối lượng của con lắc, l = 1 m là chiều dài của con lắc, g = 9.81 m/s^2 là gia tốc trọng trường; F là lực điều khiển tác động lên hệ (được đo bằng đơn vị Newton, N); θ là góc giữa con lắc và phương thẳng đứng và là vị trí của con lắc so với gốc tọa độ ban đầu.
Từ công thức (2.1) ta có thể thế các thông số , , và ta được hệ phương trình như sau:
Từ công thức (2.2) có thể biểu diễn lại dưới dạng hồi quy tuyến tính theo dạng bộ dự báo hồi quy tuyến tính như sau:
Trong đó: là vector tham số ước lượng, là vector hồi quy ước lượng,
Mô hình dự báo của hệ (2.3) được trình bày như sau:
Tiêu chuẩn ước lượng tham số:
Trong đó là số mẫu đã lấy.
Vector tham số ước lượng:
Giải phương trình để tìm nghiệm
Các bước xây dựng mô hình thu thập dữ liệu từ hệ thống
Xây dựng hệ thống và thu thập các thông số hệ thống dùng phương pháp bình phương cực tiểu để tìm ra thông số của hệ thống:
Hình 2.1: Mô hình thu thập dữ liệu từ hệ thống Bước 1 : Xây dựng mô hình toán học cho hệ xe con lắc ngược:
Hình 2.2: Mô hình toán hệ Xe con lắc ngược
Chương trình Matlab phương trình vi phân hệ thống: function [x_2d,theta_2d]= Inverted_Pendulum(u,theta,theta_d) m = 0.2; % Trọng luong con lắc kg
M = 1.2; % Trọng lượng của xe kg l = 0.35; % Chiều dài con lắc m g = 9.81; % Gia tốc trọng trường m/s^2
%% Con lắc ngược trên xe x_2d = (u+m*l*sin(theta)*(theta_d)^2-m*g*cos(theta)*sin(theta))/
(M+m-m*(cos(theta))^2); theta_2d = (u*cos(theta)-(M+m)*g*sin(theta)+m*l*(cos(theta)*sin(theta))* (theta_d)^2)/(m*l*(cos(theta))^2-(M+m)*l);
Bước 2: Thiết lập tín hiệu đặt Random tác động vào hệ thống để lấy dữ liệu:
Hình 2.3: Đặt các thông số đầu vào tác động đến hệ thống
Sau đây là dạng sóng tín hiệu ngõ vào tác động đến hệ thống, ngõ ra của khối Random number:
Hình 2.4: Tín hiệu ngõ vào lực tác động và hệ thống
Bước 3: Dạng sóng ngõ ra từ Gốc Theta và Vị trí:
Dạng sóng ngõ ra từ Gốc Theta của hệ thống:
Hình 2.5: Tín hiệu ngõ ra góc Theta
Dạng sóng ngõ ra từ vị trí của hệ thống:
Hình 2.6: Tín hiệu ngõ ra Vị trí của xe
Bước 4: Thu thập dữ liệu từ ngõ ra của hệ thống:
Hình 2.7: Thu thập dữ liệu từ phương trình vi phân và từ ngõ ra của hệ thống
Bước 5: Xử lý dữ liệu sau khi đã thu thập được: clc
%% khai bao thong so mo hinh
%% khai bao thong so tinh cho X 2dot x_x2 = x_2d.signals.values; ux = u.signals.values; thex = theta.signals.values; thex_2 = theta_2d.signals.values;
% trong do a = sin(theta)*theta_d^2, b = cos(theta)*theta_2d ax1 = ax.signals.values; bx1 = bx.signals.values; phi1=[ax1(1:5001)';bx1(1:5001)';ux(1:5001)']; heso1=inv(phi1*phi1')*phi1*x_x2
%% khai bao thong so tinh cho theta 2dot x2 = x_2d.signals.values; the = theta.signals.values; the2 = theta_2d.signals.values;
% trong do a = x_2d*cos(theta), b = sin(theta) a1 = a.signals.values; b1 = b.signals.values; phi2=[a1(1:5001)';b1(1:5001)']; heso2=inv(phi2*phi2')*phi2*the2
Kết quả sau khi thu thập được:
Hình 2.8: Kết quả sau khi thu thập được Bảng 1: Thông số liên quan đến phương trình vi phân :
Hệ số trên lý thuyết Hệ số sau khi nhận dạng
Bảng 2: Thông số liên quan đến phương trình vi phân :
Hệ số trên lý thuyết Hệ số sau khi nhận dạng
THIẾT KẾ BỘ ĐIỀU KHIỂN LQR CHO HỆ XE CON LẮC NGƯỢC
Lý thuyết về bộ điều khiển LQR
Bộ điều khiển LQR liên tục
Hình 3.1: Bộ điều khiển LQR Đối tượng tuyến tính mô tả bởi phương trình trạng thái:2513Equation Chapter (Next) Section 1
: Vector tín hiệu điều khiển.
Bài toán được đặt ra là xác định tín hiệu điều khiển u(t) để đưa hệ thống từ mọi trạng thái ban đầu về trạng thái cuối mong muốn, sao cho chỉ tiêu chất lượng dạng toàn phương được tối thiểu hóa Nhiệm vụ này yêu cầu thiết kế một điều khiển tối ưu có khả năng sinh ra u(t) theo thời gian, đảm bảo đường đi của trạng thái là chính xác và hệ thống duy trì ổn định, qua đó tối ưu hiệu suất theo tiêu chí toàn phương.
Trong đó: Q và M là các ma trận trọng số bán xác định dương.
R là ma trận trọng số xác định dương.
Bài toán trên được gọi là bài toán điều chỉnh toàn phương tuyến tính.
28328\* MERGEFORMAT (.) Điều kiện cần để có lời giải tối ưu:
+ Phương trình đồng trạng thái:
Thế vào phương trình trạng thái ta rút được:
Kết hợp phương trình số (3.4) với phương trình đồng trạng thái ta có:
Từ đó ta tính được tín hiệu điều khiển ngõ ra:
Trong đó: và là nghiệm bán xác định dương của phương trình vi phân Ricatti:
Một số hàm hỗ trợ trong Matlab:
+ Nghiệm phương trình đại số Riccati liên tục (Continuous Algebric Riccati Equation- care): P = care(A, B, Q, R).
+ Lời giải bài toán LQR (Linear Quadratic Regulator – LQR) liên tục:
Note: Trong trường hợp này K và P là sẽ không còn phụ thuộc vào thời gian
3.2 Thiết kế mô phỏng bộ điều khiển LQR cho hệ xe con lắc ngược
Ta xây dựng được mô hình con lắc ngược:
Hình 3.2: Mô hình mô phỏng hệ xe con lắc ngược
Chương trình Matlab phương trình vi phân hệ thống: function [x_2d,theta_2d]= Inverted_Pendulum(u,theta,theta_d) m = 0.2; % Trọng luong con lắc kg
M = 1.2; % Trọng lượng của xe kg l = 0.35; % Chiều dài con lắc m g = 9.81; % Gia tốc trọng trường m/s^2
%% Con lắc ngược trên xe x_2d = (u+m*l*sin(theta)*(theta_d)^2-m*g*cos(theta)*sin(theta))/
(M+m-m*(cos(theta))^2); theta_2d = (u*cos(theta)-(M+m)*g*sin(theta)+m*l*(cos(theta)*sin(theta))* (theta_d)^2)/(m*l*(cos(theta))^2-(M+m)*l);
Mô hình bộ điều khiển cho hệ xe con lắc ngược:
Hình 3.3: Mô hình mô phỏng điều khiển LQR cho hệ xe con lắc ngược
Chương trình Matlab tìm thông số của bộ điều khiển LQR: clc;
%% khai bao thong so mo hinh
M=1; m=0.1; l=1; g=9.8; q11=1; q33=1; r1=1; thetadot_init=0; %gia tri dat theta_dot theta_init=0.1; %gia tri dat theta xdot_init=0; %gia tri dat x_dot x_init=0; %gia tri dat x
Ta lần lượt khảo sát các giá trị khác nhau của ma trận Q và R:
Ta được độ lợi hồi tiếp trạng thái:
Luật điều khiển tối ưu: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống:
Hình 3.4: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống trong trường hợp 1
Ta được độ lợi hồi tiếp trạng thái:
Luật điều khiển tối ưu: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống:
Hình 3.5: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống trong trường hợp 2
Ta được độ lợi hồi tiếp trạng thái:
Luật điều khiển tối ưu: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống:
Hình 3.6: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống trong trường hợp 3
Độ lớn tương đối giữa trọng số và R quyết định mức độ đáp ứng quá độ và mức tiêu thụ năng lượng của hệ thống Để có trạng thái đáp ứng nhanh, ta có thể điều chỉnh hai thành phần liên quan: tăng q11 giúp cải thiện đáp ứng góc lệch và giữ cân bằng tốt, nhưng vị trí của xe sẽ dao động khá lớn; tăng q33 khiến vị trí xe ít dao động hơn nhưng năng lượng tiêu thụ lại tăng lên Khi tăng R, năng lượng tiêu thụ giảm nhưng thời gian đáp ứng quá độ của toàn hệ thống chậm hơn.
Trong báo cáo này, nhóm đã chọn q11 = 1; q33 = 100 và R = 1 cho bộ điều khiển LQR Kết quả cho thấy bộ điều khiển LQR đạt được đáp ứng tốt khi hệ thống hoạt động không có nhiễu, nhưng sự có mặt của nhiễu trong quá trình hệ thống hoặc nhiễu đo lường khiến chất lượng điều khiển bị ảnh hưởng đáng kể.
3.3 Mô hình bộ điều khiển LQR cho hệ xe con lắc ngược trong trường hợp có nhiễu đo lường
Hệ thống hoạt động trong miền tuyến tính
Giả sử chỉ đo được góc lệch và vị trí xe
Có nhiễu tác động vào hệ thống Nhiễu đo vị trí xe có phương sai là 0.001; nhiễu đo góc lệch con lắc có phương sai 0.0001
Hình 3.7: Mô hình mô phỏng điều khiển LQR cho hệ xe con lắc ngược khi có nhiễu
Thiết lập nhiễu cho khối Random Number
Hình 3.8: Nhiễu đo vị trí xe
Hình 3.9: Nhiễu đo góc lệch con lắc Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống khi có nhiễu đo lường:
Hình 3.10: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống khi có nhiễu đo lường
Trong hệ thống điều khiển, tín hiệu ngõ ra có dao động nhẹ nhưng vẫn nằm trong phạm vi cân bằng Điều này vẫn đúng khi tín hiệu góc theta hồi tiếp chịu thêm nhiễu tác động, cho thấy hệ thống duy trì ổn định và khả năng kháng nhiễu ở giới hạn cân bằng Nhờ vậy, nhiễu tác động lên tín hiệu hồi tiếp không làm lệch trạng thái cân bằng, đảm bảo hiệu quả vận hành và an toàn của quá trình điều khiển.
Ngõ ra vị trí của hệ thống chịu ảnh hưởng của nhiễu tác động, khiến vị trí của xe dao động nhẹ nhưng vẫn ổn định và di chuyển mượt quanh điểm cân bằng với một khoảng sai số nhỏ.
Khi có nhiễu tác động mà không sử dụng bộ lọc Kalman, tín hiệu điều khiển sẽ dao động liên tục, làm giảm độ ổn định của hệ thống và gây ra các dao động với tần số cao quanh điểm cân bằng Sự dao động này làm sai lệch đáp ứng điều khiển, ảnh hưởng đến hiệu suất và độ chính xác của hệ thống trong quá trình vận hành Việc áp dụng bộ lọc Kalman giúp loại bỏ nhiễu hiệu quả, ổn định tín hiệu điều khiển và giảm biên độ dao động, từ đó cải thiện đáp ứng động và duy trì hệ thống ở trạng thái cân bằng một cách an toàn Vì vậy, việc kết hợp quản lý nhiễu với bộ lọc Kalman là yếu tố then chốt để duy trì sự ổn định của tín hiệu điều khiển và ngăn ngừa dao động ở tần số cao quanh điểm cân bằng.
THIẾT KẾ KHẢO SÁT BỘ LỌC KALMAN CHO HỆ XE
Lý thuyết về bộ lọc Kalman
Bộ lọc Kalman liên tục3314Equation Chapter (Next) Section 1
Khi hệ thống gặp nhiễu, hoặc nhiễu từ đo lường làm cho bộ điều khiển LQR không bám sát tín hiệu của hệ thống, người ta thiết kế bộ lọc Kalman để giảm cả nhiễu từ quá trình và nhiễu đo lường, từ đó cải thiện độ chính xác và ổn định của điều khiển.
Xét hệ tuyến tính liên tục:
Trong đó: là nhiễu hệ thống, là nhiễu đo lường.
Giả sử nhiễu hệ thống và nhiễu đo lường có phân bố Gauss, không tương quan, có trung bình bằng 0 và phương sai là:
Bộ lọc Kalman liên tục:
Trong đó: là độ lợi của bộ lọc Kalman
Với là nghiệm của phương trình Ricatti:
Thiết kế khảo sát bộ lọc Kalman cho hệ xe con lắc ngược
Chương trình Matlab tìm thông số của bộ điều khiển LQR và bộ lọc Kalman clc;
%% khai bao thong so mo hinh
M=1; m=0.1; l=1; g=9.8; thetadot_init=0; theta_init=0.1; xdot_init=0; x_init=0;
Trong giả thuyết không có nhiễu hệ thống, ta chọn QN rất bé để phản ánh mức nhiễu thấp trong hệ thống Hai thành phần chính của phương sai nhiễu đo là nhiễu đo góc lệch của con lắc, với phương sai 0.001, và nhiễu đo vị trí của xe, với phương sai 0.01, cho thấy sự khác biệt giữa đo góc và đo vị trí trong mô hình.
Phương sai của nhiễu được tính bằng cách xác định chênh lệch giữa mỗi quan sát trong tập dữ liệu và giá trị trung bình, sau đó bình phương các chênh lệch để đảm bảo chúng mang giá trị dương và không triệt tiêu lẫn nhau, và cuối cùng chia tổng các bình phương chênh lệch cho tổng số lượng quan sát trong tập dữ liệu (N).
Trong đó: là phương sai, là giá trị mẫu thứ i, là giá trị trung bình của các mẫu và n là số lượng mẫu.
Mô hình Simulink khảo sát bộ lọc Kalman:
Hình 4.2: Mô hình mô phỏng khảo sát bộ lọc Kalman
Hình 4.3: So sánh tín hiệu trước và sau khi qua bộ lọc Kalman cho góc lệch
Hình 4.4: So sánh tín hiệu trước và sau khi qua bộ lọc Kalman cho vị trí xe
Nhận xét: tín hiệu sau khi qua bộ lọc Kalman ổn định và bớt nhiễu đi rất nhiều.
THIẾT KẾ MÔ PHỎNG BỘ ĐIỀU KHIỂN LQG CHO HỆ
Lý thuyết về bộ điều khiển LQR
Bộ điều khiển tối ưu LQG thể hiện sự kết hợp giữa hai thành phần cốt lõi là bộ điều khiển LQR và bộ lọc Kalman, nhằm giải quyết đồng thời bài toán điều khiển tối ưu và ước lượng trạng thái tối ưu cho hệ tuyến tính LQR đảm nhiệm bài toán điều khiển tối ưu toàn phương tuyến tính, tối ưu hóa chi phí điều khiển trên hệ động học tuyến tính Trong khi đó bộ lọc Kalman đảm nhận bài toán ước lượng trạng thái tối ưu, cung cấp ước lượng trạng thái dựa trên các đo lường có nhiễu Ghép lại, LQG tạo ra một khung điều khiển đồng bộ giữa điều khiển và ước lượng trạng thái cho các hệ thống tuyến tính chịu nhiễu, với mục tiêu tối ưu hóa hiệu năng điều khiển và độ chính xác của ước lượng trạng thái.
Thiết kế mô phỏng bộ điều khiển LQG cho hệ xe con lắc ngược
Ta có mô hình Simulink điều khiển tối ưu cho hệ xe con lắc ngược sau khi bộ lọc Kalman như sau:
Hình 5.1: Mô hình mô phỏng điều khiển LQG cho hệ xe con lắc ngược
Kết quả mô phỏng điều khiển LQG cho hệ xe con lắc ngược
Hình 5.2: Đáp ứng quá độ và năng lượng tiêu tổn khi dùng bộ điều khiển LQG
Nhận xét cho thấy bộ lọc Kalman ước lượng trạng thái và lọc nhiễu một cách hiệu quả, từ đó nâng cao đáp ứng của hệ thống điều khiển LQG Việc tích hợp Kalman filter giúp giảm ảnh hưởng của nhiễu đo và nhiễu quá trình trong quá trình ước lượng, cải thiện độ chính xác và sự ổn định của hệ thống Do đó, khi đối mặt với nhiễu, hệ thống điều khiển LQG thường cho hiệu suất tốt hơn so với LQR.
THIẾT KẾ BỘ ĐIỀU KHIỂN SLIDING MODE CONTROL
Lý thuyết về bộ điều khiển trượt
Điều khiển chế độ trượt (Sliding Mode Control) là một kỹ thuật điều khiển phi tuyến được biết đến với độ chính xác cao, tính mạnh mẽ và khả năng dễ dàng điều chỉnh cũng như triển khai Hệ thống điều khiển chế độ trượt được thiết kế để di chuyển các trạng thái của hệ thống lên một bề mặt cụ thể trong không gian trạng thái, được gọi là bề mặt trượt, và khi đạt tới bề mặt này, điều khiển sẽ giữ trạng thái ở vùng quanh bề mặt trượt nhằm đảm bảo hành vi mong muốn của hệ thống Kỹ thuật này gồm hai phần chính: phần đầu là thiết kế bề mặt trượt sao cho quá trình chuyển động thỏa mãn các tham số kỹ thuật thiết kế, và phần thứ hai là lựa chọn và áp dụng một luật điều khiển phù hợp với trạng thái của hệ thống để điều khiển và duy trì trạng thái trên và quanh bề mặt trượt.
Bước 1: Biểu diễn mối quan hệ vào ra của hệ xe con lắc ngược:
Từ mô hình toán học của con lắc ngược về dạng chuẩn:
Từ phương trình (1.27) ta đặt các biến trạng thái lần lượt là:
Từ đó ta có thể viết lại phương trình trên về dạng như sau: với 39639\
Bước 2: Chọn bề mặt trượt cho hệ SIMO:
Bước 3: Biểu thức điều khiển của bộ điều khiển trượt :
Vì vậy ta chọn u điều khiển sao cho hàm theo tiêu chuẩn ổn định lyapunov:
Bước 4: Chọn bộ lọc thông thấp cho tín hiệu đầu vào:
Xây dựng mô hình mô phỏng bộ điều khiển trượt
Xây dựng bộ điều khiển trượt trên Matlab Simulink:
Hình 6.1: Mô hình mô phỏng bộ điều khiển trượt
Chương trình điều khiển của Sliding Mode Controll: function [U,s1,s2] = Sliding_Mode_Control(the,the_d,x,x_d)
%declaration m = 0.2; % Trọng luong con lac kg
M = 1.2; % Trọng luong cua xe kg l = 0.35; % Chieu dài con lac m g = 9.81; % Gia toc trong truong m/s^2 lamda1 = 1.6; lamda2 = 0.3; lamda3 = 1; lamda4 = 1;
% xu ly tin hieu bien cho vi tri mx1 = M+m-m*cos(the)^2; fx1 = (m*l*sin(the)*the_d^2-m*g*cos(the)*sin(the))/mx1; gx1 = 1/mx1;
% xu ly tin hieu bien cho goc mx2 = m*l*cos(the)^2-(M+m)*l; fx2 = (-(M+m)*g*sin(the)+m*l*cos(the)*sin(the)*the_d)/mx2; gx2 = cos(the)/mx2;
% ham cho mat truot s s1 = x + lamda1*x_d; s2 = the + lamda2*the_d;
% ham cho ax va bx ax = lamda1*sign(s1)*fx1+lamda3*sign(s2)*fx2+x_d*sign(s1)+ lamda3*the_d*sign(s2); bx = lamda1*sign(s1)*gx1+lamda3*sign(s2)*gx2;
Cài đặt tín hiệu đầu vào thay đổi vị trí của xe từ 0(m) sang vị trí 1(m):
Hình 6.2: Tín hiệu đầu vào thay đổi vị trí con xe
Hình 6.3: Tín hiệu đầu vào tác động đến vị trí xe
Khi áp dụng bộ điều khiển Sliding Mode Control, hệ thống được chia thành hai giai đoạn chính Giai đoạn đầu là Reaching Mode, nhằm kéo biến trạng thái từ vị trí khởi đầu đến mặt trượt Giai đoạn sau là Sliding Mode, nơi biến trạng thái trượt trên mặt trượt để đảm bảo điều khiển ổn định và đáp ứng nhanh với nhiễu và biến động môi trường.
Hình 6.4: Tín hiệu quan sát ở ngõ ra của hệ thống
Hình 6.5: Quan sát sai số ở ngõ ra của hệ thống
Kết luận bộ điều khiển trượt
Tín hiệu ngõ ra theo sát vị trí cân bằng ở mức gần như tối ưu, nhưng vẫn có dao động nhẹ Những dao động này là kết quả của hiện tượng chattering trong tín hiệu điều khiển, khiến hệ thống rung động nhẹ quanh vị trí cân bằng.
Tín hiệu ngõ ra vị trí cũng bám theo vị trí đặt nhưng khoảng thời gian để hệ thống xác lập sẽ hơi lâu.
Hiện tượng chattering trong tín hiệu điều khiển có thể gây ảnh hưởng tiêu cực đến hiệu suất và độ ổn định của hệ thống trong quá trình vận hành theo thời gian Vì vậy, ta cần giảm bớt hiện tượng chattering bằng các biện pháp thiết kế và điều khiển phù hợp để bảo vệ hệ thống, kéo dài tuổi thọ và nâng cao độ tin cậy Việc loại bỏ hoặc làm giảm chattering không chỉ cải thiện chất lượng điều khiển mà còn giảm mài mòn, rung động và tiêu hao năng lượng, từ đó tối ưu hóa hiệu suất vận hành theo thời gian.