CHƯƠNG 1 Tiếp theo cũng từ phương trình (1.7) ta tìm được như sau: 10110\* MERGEFORMAT (.9), ta có: Phương trình vi phân của hệ xe con lắc ngược 11111\* MERGEFORMAT (.3 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à: ; ; ; BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 7 CHƯƠNG 1 Ta có: + + + + Tuyến tính hóa mô hình xung quanh điểm làm việc thẳng đứng 13113\* MERGEFORMAT (. Ta có: Sử dụng Matlab, ta sẽ tính được và BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 8 CHƯƠNG 1 14114\* MERGEFORMAT (.) Thay các bộ thông số vào (3) và (4), ta được: ; và Giả thuyết: + Đặ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 BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 9 CHƯƠNG 2 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 2.1 Mô hình toán của hệ xe con lắc ngược 1612Equation Chapter (Next) Section 1 17217\* MERGEFORMAT (.) Trong đó: = 1(kg) là khối lượng của xe, = 0.81( ), là lực điều khiển tác động đến xe con lắc (N), là góc tạo bởi 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: 18218\* MERGEFORMAT (.) 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: 19219\* MERGEFORMAT (.) BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 10 CHƯƠNG 2 Trong đó: là vector tham số ước lượng, là vector hồi quy ước lượng, , , và. Mô hình dự báo của hệ (2.3) được trình bày như sau: 20220\* MERGEFORMAT (.) Sai số dự báo : 21221\* MERGEFORMAT (.) Tiêu chuẩn ước lượng tham số: 22222\ * MERGEFORMAT (.) Trong đó là số mẫu đã lấy. Vector tham số ước lượng: 23223\* MERGEFORMAT (.) BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 11 CHƯƠNG 2 Giải phương trình để tìm nghiệm 24224\* MERGEFORMAT (.2 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: BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 12 CHƯƠNG 2 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 %% Hàm tính toán %% Con lắc ngược trên xe x_2d = (u+m*l*sin(theta)*(theta_d)^2-m*g*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: BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 13 CHƯƠNG 2 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: BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 14 CHƯƠNG 2 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Ộ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 15 CHƯƠNG 2 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 Trong đó: , , và. Bước 5: Xử lý dữ liệu sau khi đã thu thập được: clc %% khai bao thong so mo hinh M = 1; m = 0.81; %% khai bao thong so tinh cho X 2dot x_x2 = x_2d.values; thex = theta.values; thex_2 = theta_2d.values; % trong do a = sin(theta)*theta_d^2, b = cos(theta)*theta_2d ax1 = ax.values; bx1 = bx.values; phi1=[ax1(1:5001)';bx1(1:5001)';ux(1:5001)']; BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 16 CHƯƠNG 2 heso1=inv(phi1*phi1')*phi1*x_x2 %% khai bao thong so tinh cho theta 2dot x2 = x_2d.values; the = theta.values; the2 = theta_2d.values; % trong do a = x_2d*cos(theta), b = sin(theta) a1 = a.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 0.9091 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 BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 17 CHƯƠNG 2 -1 -1 9.81 BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 18 CHƯƠNG 3 CHƯƠNG 3: THIẾT KẾ BỘ ĐIỀU KHIỂN LQR CHO HỆ XE CON LẮC NGƯỢC 3.1 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 26326\* MERGEFORMAT (.) Trong đó: : Vector trạng thái. : Vector tín hiệu điều khiển. Bài toán đặt ra là tìm tín hiệu điều khiển u(t) để điều chỉnh hệ thống từ trạng thái bắt đầu bất kỳ về trạng thái cuối sao cho tối thiểu chỉ tiêu chất lượng dạng toàn phương.
BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 19 CHƯƠNG 3 27327\* MERGEFORMAT (.) 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. Hàm Hamilton: 28328\* MERGEFORMAT (.) Điều kiện cần để có lời giải tối ưu: + Phương trình trạng thái: + Phương trình đồng trạng thái: + Điều kiện dừng: Ta có: Thế vào phương trình trạng thái ta rút được: 29329\* MERGEFORMAT (.) Kết hợp phương trình số (3.4) với phương trình đồng trạng thái ta có: BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 20 CHƯƠNG 3 30330\* MERGEFORMAT (.) Từ đó ta tính được tín hiệu điều khiển ngõ ra: 31331\* MERGEFORMAT (.) Trong đó: và là nghiệm bán xác định dương của phương trình vi phân Ricatti: 32332\* MERGEFORMAT (.) 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: K = lqr(A, B, Q, R). 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: BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 21 CHƯƠNG 3 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 %% Hàm tính toán %% Con lắc ngược trên xe x_2d = (u+m*l*sin(theta)*(theta_d)^2-m*g*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: BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 22 CHƯƠNG 3 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.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 A=[0 1 0 0; 10.98 0 0 0]; B=[0;-1;0;1]; C=[1 0 0 0; 0 0 1 0]; Q=[q11 0 0 0; 0 1 0 0; BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 23 CHƯƠNG 3 0 0 q33 0; 0 0 0 1]; R=r1; P=care(A,B,Q,R); K=lqr(A,B,Q,R); Ta lần lượt khảo sát các giá trị khác nhau của ma trận Q và R: Trường hợp 1: q11 =1; q33 =1; R=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: BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 24 CHƯƠNG 3 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 Trường hợp 2: q11 =1; q33 =100; R=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: BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 25 CHƯƠNG 3 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 Trường hợp 3: q11 =1; q33 =100; R=10 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: BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 26 CHƯƠNG 3 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 Nhận xét: - Tùy theo độ lớn tương đối giữa trọng số và R mà hệ thống có đáp ứng quá độ và năng lượng tiêu tốn khác nhau. Muốn trạng thái đáp ứng nhanh, ta tăng 2 thành phần tương ứng (tăng q11 thì đáp ứng góc lệch giữ cân bằng tốt, tuy nhiên vị trí xe dao động khá lớn; tăng q33 thì vị trí xe ít dao động hơn, tuy nhiên năng lượng tiêu tốn tăng lên), khi ta tăng R, năng lượng tiêu tốn ít hơn tuy nhiên thời gian đáp ứng quá độ của toàn hệ thống chậm hơn.
BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 27 CHƯƠNG 3 - Do đó, với bài báo cáo này nhóm chúng em chọn hệ số q11 = 1; q33 = 100, R=1. Bộ điều khiển LQR có đáp ứng hệ thống tốt chỉ khi trong trường hợp không có nhiễu, nếu có nhiễu hệ thống hoặc nhiễu đo lường thì chất lượng điều khiển bị ảnh hưởng đáng kể. 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 Giả thiết: 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.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 BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG 28 CHƯƠNG 3 Hình 3.8: Nhiễu đo vị trí xe Hình 3.