Microsoft Word Bao cao dieu khien toi uu nhom 3 docx TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HỒ CHÍ MINH VIỆN ĐÀO TẠO SAU ĐẠI HỌC BÁO CÁO HỌC PHẦN ĐIỀU KHIỂN TỐI ƯU Giảng viên hướng dẫn PGS TS ĐẶNG XUÂN.
TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI TP HỒ CHÍ MINH VIỆN ĐÀO TẠO SAU ĐẠI HỌC BÁO CÁO HỌC PHẦN: ĐIỀU KHIỂN TỐI ƯU Giảng viên hướng dẫn : PGS.TS ĐẶNG XUÂN KIÊN TP.Hồ Chí Minh - 2023 PHẦN 1: BÀI TẬP THEO PHƯƠNG PHÁP LQR Bài 1: Đề bài: Consider the first-order unstable process: x ( t ) a x ( t ) u ( t ),a a Design an LQ controller u(t)=- Lx(t) that minimizes the criterion: J ( x (t ) u (t ))dt , 0 b Calculate the location of the closed-loop as a function of ρ and discuss what happens when either ρ or ρ ∞ Kết tính chọn theo matlab: a Thiết kế điều khiển thỏa mản tiêu chất lượng J % Đây kêt tính tốn 8.1 % Với hệ số a,p chọn thỏa a>,p>0: a=2; p=1; % Các giá trị A,B,Q,R theo phương trinh trạng thái là: A=a; B=1; Q=1; R=p; % Nghiệm P phương trình Ricacdo: [P]=care(A,B,Q,R); % Hệ số K tính: [K]=lqr(A,B,Q,R); disp('K computed via LQR') K Kết quả: Như vậy, với hệ số a, p >0, nhóm chọn a=2; p=1 luật điều khiển: u = 4.2361x b Xét ảnh hưởng tới hệ thống p0 p ∞ - Khi p0 (R0): làm hệ số K ∞: % Với hệ số a,p chọn thỏa a>,p>0: a=2; p=0.000001; % Các giá trị A,B,Q,R theo phương trinh trạng thái là: A=a; B=1; Q=1; R=p; % Nghiệm P phương trình Ricacdo: [P]=care(A,B,Q,R); % Hệ số K tính: [K]=lqr(A,B,Q,R); disp('K computed via LQR') K Kết quả: - Khi p∞ (R∞): làm hệ thống ổn định % Với hệ số a,p chọn thỏa a>,p>0: a=2; p=100000; % Các giá trị A,B,Q,R theo phương trinh trạng thái là: A=a; B=1; Q=1; R=p; % Nghiệm P phương trình Ricacdo: [P]=care(A,B,Q,R); % Hệ số K tính: [K]=lqr(A,B,Q,R); disp('K computed via LQR') Kết quả: Bài 2: Đề bài: Consider the second-order system: 1 2 1 x (t ) x(t ) u (t ) 1 0 0 y (t) 5 x (t ) Design an LQ controller u(t)=- Lx(t) that minimizes the criterion J ( y ( t ) u1 ( t ) 5u 2 ( t )) dt What are the poles of the closed-loop system? Also calculate the minimal 1 value of J when the initial state is x(0) Kết tính chọn theo matlab: - Khi thay y(t)= (5 5)x(t) vào phương trình J ta được: J= (x T 0 25 25 T 5 x(t ) u u (t ))dt 25 25 0 5 % Đây kêt tính tốn 8.2 % Gia tri khoi tao x0=[-1 ]; % Các giá trị A,B,Q,R theo phương trinh trạng thái là: A=[1 0; 0]; B=[2 0]; C=[5 5]; Q=[25 25 25 25]; R=[5 0 5]; % Hệ số K,P,E tính: [K,P,E]=lqr(A,B,Q,R); %disp('K computed via LQR') P; K; E; %Tính tiêu chất lượng J nhỏ nhất: x0=[-1 1]'; S =[ 5; 5]; J =(x0'*S*x0)/2; disp('J minimin') J Kết quả: Như cực cần tìm -1 -5 J nhỏ với điều kiện ban đầu x[1;-1] =1 Bài 3: Đề bài: Consider a process: 1 3 x (t ) x (t ) u (t ) 2 2 Show that u(t)= -Lx(t) with L ( 3 ) can not be an optimal state feedback designed using linear-quadratic control theory with the cost function J ( xT (t )Q1 x(t ) Q2u (t )) dt where Q1, Q2 >0 Kết tính chọn theo matlab: % Đây kêt tính tốn 8.3 % Với hệ số Q1,Q2 chọn thỏa Q1>,Q2>0: Q1=2; Q2=1; % Các giá trị A,B,Q,R theo phương trinh trạng thái là: A=[-1 0; -2]; B=[3 2]; Q=Q1; R=Q2; % Nghiệm P phương trình Ricacdo: [P]=care(A,B,Q,R); % Hệ số K tính: [K]=lqr(A,B,Q,R); disp('K computed via LQR') P K Kết quả: Luật điều khiển: u = [1.0472 ; 0.4410]x Bài Đề bài: Consider the system 4 1 x (t ) x ( )u 2 y ( 1 )x One wishes to minimize the criterion T J (T ) (( xT (t )Q1 x(t ) Q2u (t ))dt JdIs it possible to find positive definite weights Q1 and Q2 such that the cost function J(T) ∞ as T ∞? Kết tính chọn theo matlab: % Đây kêt tính tốn 8.4 % Các giá trị Q1,Q2 chọn thỏa Q1>0: Q1=2; Q2=0.01; % Các giá trị A,B,Q,R theo phương trinh trạng thái là: A=[1 -1; 4]; B=[ -4 8]; C=[1 1]; Q=Q1; R=Q2; % Nghiệm P phương trình Ricacdo: [P]=care(A,B,Q,R); % Hệ số K tính: [K]=lqr(A,B,Q,R); disp('K computed via LQR') P K Kết quả: Khơng tìm Q, R thỏa mản để xây dựng hàm tiêu chất lượng J Bài 5: Đề bài: Consider the double integrator 0 1 x (t ) x (t ) ( )u (t ) 0 y ( ) x (t ) A set of LQ controllers u(t)=-Lx(r)+Lr(r) have been designed L was calculated to minimize the cost function T J (T ) (( xT (t )Q1 x(t ) Q2u (t ))dt and Lr was chosen to give unit static gain from r to y The four plots in Figure 8.1 show the step responses of the closed-loop system for four different combinations of weights, Q1, Q2 Pair the combinations of weights given below with the step responses in Figure 8.1 1 0 Q1 , Q2 0.01 0 0 1 0 Q1 , Q2 0 0 1 0 Q1 , Q2 0 1 1 0 Q1 , Q2 1000 0 0 Kết tính chọn theo matlab: TH1: Với Q= [1 0; 0] R=0.01 % Đây kêt tính tốn 8.5-A % Các giá trị A,B,Q,R theo phương trinh trạng thái là: A=[0 1; 0]; B=[ 1]; C=[1 0]; D =0; Q=[1 0; 0]; R=0.01; % Hệ số K tính: [K,P]=lqr(A,B,Q,R); disp('K computed via LQR') K % Vi he thong kin, lien tuc sys= ss((A-B*K),B,C,D); % Dieu kien ban dau t=0:50; x0=[0 0]; [y,t,x] = initial(sys, x0, t); step(sys,t); Đồ thị miêu tả: Thời gian đáp ứng nhanh tầm 2s Như với Q, R cho ta có kết hình dạng đồ thị sau: C A D B Bài 6: Đề bài: We would like to control the following process with linear-quadratic optimal control: 3 x (t ) x(t ) ( )u (t ) 0.1 8 y ( ) x (t ) The penalty on x12 (t ) should be 1, and the penalty on x2 (t ) should be For u (t ) we will try different penalty values: ρ = 0.01, 1, 100 a Determine the cost function for the three different cases b Assume that we want to add reference tracking so that y =r instationarity, using the control law u(t)=Lr(t)-Lx(t) In Matlab, calculatethe three different resulting controllers, calculate the resulting closed-looppoles and simulate step responses from r to x2 and from r to u Verify thatthere is no static error 13 Kết tính chọn theo matlab: Với điều kiện đề bài, viết lại hàm J sau: 0 T 1 T ( x 0 x(t ) u u (t ))dt % Đây kêt tính tốn 8.6 % Các giá trị A,B,Q,R theo phương trinh trạng thái là: A=[1 3; 8]; B=[ 0.1]; C=[0 1]; D =0; Q=[1 0; 0]; %Chon R p=3; switch p case R=0.01; case R=1; case R=10; otherwise error('Unknow method') end [K,P,E]= lqr(A,B,Q,R); disp('K computed via LQR') R K P E %Initial condition t_final=30; x0=[pi; -2]; Với R=0.01: 14 Với R=1: Với R=10: 15 Câu b: Mô matlab: A = [1 3; 8]; B = [1; 0.1]; C = [0 1]; S = ss(A,B,C,0); Q = [1 0; 2]; R_vector = [0.01 100]; for i=1:length(R_vector) [K,P,E] = lqr(S,Q,R_vector(i)); % Calculating Kr (static gain to output should be 1) Kr = 1/(C/(B*K-A)*B); % Closed loop from r to u: Gur = ss(A-B*K,B*Kr,-K,Kr); % Closed loop from r to y: Gyr = ss(A-B*K,B*Kr,C,0); % Plotting step responses subplot(3,2,i*2-1) step(Gur) axis([0 10 -Inf Inf]) title(['Control signal, R=' num2str(Q2_vector(i))]) subplot(3,2,i*2) step(Gyr) axis([0 10 -Inf Inf]) title(['Output signal, R=' num2str(Q2_vector(i))]) poles{i} = E; end poles{:} 16 Bài 7: Đề bài: Consider the double integrator (t ) u (t ) with state-space representation 0 1 x (t ) x (t ) ( )u (t ) 0 1 0 y x(t ) 0 1 where x ( (t ), (t )) You would like to design a controller using the criterion ( (t ) u (t )) dt for some 17 a Show that S1 2 1/ S S 1/ S with S S S3 S 2 3/4 solves the Riccati equation b What are the closed-loop poles of the system when using this optimal state feedback? What happens with the control signal if η is reduced? Kết tính chọn theo matlab: Với s thỏa: Với E thỏa: % Đây kêt tính tốn 8.7 % Cac gia tri khoi tao ban đầu;chọn n>0 n=0.1; % Các giá trị A,B,Q,R theo phương trinh trạng thái là: A=[0 1; 0]; B=[ 1]; C=[1 0 1]; D=0; Q=[1 0; 0]; R=n; % Hệ số K tính: [K,P,E]=lqr(A,B,Q,R); disp('K computed via LQR') K P E % Vi he thong kin, lien tuc sys= ss((A-B*K),B,C,D); % Dieu kien ban dau t=0:10; x0=[0 0]; [y,t,x] = initial(sys, x0, t); step(sys,t); 18 Kết quả: 19 PHẦN 2: MƠ PHỎNG BÀI TỐN CON LẮC NGƯỢC VỚI PHƯƠNG PHÁP LQR 2.1 Mơ hình xây dựng phương trình trạng thái 2.1.1 Mơ hình lắc ngược Hình 2.1: Mơ hình lắc ngược bỏ qua khối lượng lắc Trong đó: l: chiều dài lắc ngược (m) M M: khối lượng xe (kg) g: gia tốc trọng trường (m/s2) u: lực tác động vào xe (N) m: khối lượng lắc (kg) x: vị trí xe (m) θ: góc lắc ngược phương thẳng đứng (rad) 2.1.2 Xây dựng phương trình trạng thái - Phương trình lắc ngược phi tuyến (đã rút gọn): 20 2.2 Xây dựng mơ hình lắc ngược matlab mơ với simulink % Tinh toan mo phong lac nguoc bang LQR % Bo qua khoi luong lac clear all; clc; close all; % Khoi tao cac gia tri ban dau M=1; % khoi luong xe m=0.1; % khoi luong lac l=1; % chieu dai can lac g=9.81;% gia toc truong % Thay doi cac gia tri q11, q33, r1 de chon bo thong so Q,R toi uu q11 = 1; q33 = 100; r1 = 1; % Khoi tao cac gia tri A,B,C,D cua phuong trinh trang thai A=[0 0; 10.78 0 0; 0 1; -0.98 0 0]; B= [0;-1;0;1]; R=r1; Q=[q11 0 0; 0; 0 q33 0; 0 1] ; C= [1 0 0; 0 0]; D = 0; [K,P,E] = lqr(A,B,Q,R); disp('K computed via LQR') P K Hình 2.2: Script tính tốn tìm thơng số K P 21 Hình 2.3: Kết nối khối chức Simulink -function [theta_2dot,x_2dot]= conlac(u,theta,theta_dot) % Khoi tao cac gia tri cho phuong phap LQR M=1; m=0.1; l=1; g=9.81; % Khai bao phuong trinh lac nguoc phi tuyen x_2dot=(u+m*l*(sin(theta))*theta_dot*theta_dot-m*g*cos(theta)*sin(theta))/(M+mm*cos(theta)*cos(theta)); theta_2dot=(u*cos(theta)(M+m)*g*sin(theta)+m*l*cos(theta)*sin(theta)*theta_dot)/(m*l*cos(theta)*cos(theta) -(M+m)*l); Hình 2.4: Khái báo phương trình lắc ngược Kết tính tốn tìm K P phương pháp LQR K computed via LQR P= 769.1196 243.9052 221.0906 173.7696 243.9052 221.0906 173.7696 77.5354 70.5670 55.4263 70.5670 110.5142 60.5670 55.4263 60.5670 44.3749 K= -70.1356 -22.1091 -10.0000 -11.0514 22 Hình 2.5: Đồ thị biểu diễn kết mô simulink NHẬN XÉT: Khi tiến hành chọn thông số Q, R cho điều khiển - Nếu ta muốn trạng thái đáp ứng nhanh ta tiên hành tăng thành phần Q tương ứng Ở Q ta chọn ma trận 4x4 ứng với: Khi tăng Q11 tăng đáp ứng góc lệch θ Khi tăng Q22 tăng đáp ứng vận tốc góc ω hay θ Khi tăng Q33 tăng đáp ứng vị trí xe 𝑥 Khi tăng Q44 tăng đáp ứng vận tốc xe 𝑣 hay 𝑥̇ - Muốn giảm lượng ta tăng giá trị R lớn 23 PHẦN 3: MÔ PHỎNG BÀI TOÁN CON LẮC NGƯỢC VỚI PHƯƠNG PHÁP LQG 3.1 Mục tiêu phương pháp LQG Mục tiêu xây dựng hệ thống điều khiển lắc ngược, sử dụng điều khiển LQR sau tiến hành lọc nhiễu cách kết hợp với lọc Kalman để tạo điều khiển cuối điều khiển LQG sau xem kết khác điều khiển LQG = LQR + Lọc Kalman 3.2 Xây dựng mơ hình lắc ngược matlab mô với simulink % Tinh toan mo phong lac nguoc bang LQG % Bo qua khoi luong lac clear all; clc; close all; % Khoi tao cac gia tri ban dau M=1; % khoi luong xe m=0.1; % khoi luong lac l=1; % chieu dai can lac g=9.81;% gia toc truong % Thay doi cac gia tri q11, q33, r1 de chon bo thong so Q,R toi uu q11 = 1; q33 = 100; r1 = 1; % Khoi tao cac gia tri A,B,C,D cua phuong trinh trang thai A=[0 0; 10.78 0 0; 0 1; -0.98 0 0]; B= [0;-1;0;1]; R=r1; Q=[q11 0 0; 0; 0 q33 0; 0 1] ; C= [1 0 0; 0 0]; %D = 0; % phuong pháp LQG D= zeros(size(C,1),size(B,2)); % QN&RN la phuong sai nhieu luong ung voi gia tri goc lech lac & vi tri xe QN=0.000001*eye(4); RN=[0.001 0;0 0.01]; % Tim K lqr %K=lqr(A,B,Q,R) [K,P,E] = lqr(A,B,Q,R); disp('K computed via LQR') %disp('K computed via LQG') P K % Tim L kalman filter [L,P] = lqe(A,eye(4),C,QN,RN) Hình 3.1: Script tính tốn tìm thơng số K, P L 24 Hình 3.2: Kết nối khối chức Simulink Khai báo phương trình khối MATLAB Function function [theta_2dot,x_2dot]= inverted_pendulum(u,theta,theta_dot) % Khoi tao cac gia tri cho phuong phap LQG M=1; m=0.1; l=1; g=9.81; % Khai bao phuong trinh lac nguoc phi tuyen x_2dot=(u+m*l*(sin(theta))*theta_dot*theta_dot-m*g*cos(theta)*sin(theta))/(M+mm*cos(theta)*cos(theta)); theta_2dot=(u*cos(theta)(M+m)*g*sin(theta)+m*l*cos(theta)*sin(theta)*theta_dot)/(m*l*cos(theta)*cos(theta) -(M+m)*l); Hình 3.3: Khái báo phương trình lắc ngược 3.3 Kết mơ tính tốn Kết tính tốn tìm thơng số phương pháp LQG K computed via LQG P= 769.1196 243.9052 221.0906 173.7696 243.9052 77.5354 70.5670 55.4263 221.0906 70.5670 110.5142 60.5670 173.7696 55.4263 60.5670 44.3749 K= -70.1356 -22.1091 -10.0000 -11.0514 25 L= 6.5617 -0.0571 21.5437 -0.1876 -0.5713 0.1470 -1.9568 0.0271 = 0.0066 0.0215 -0.0006 -0.0020 0.0215 0.0707 -0.0019 -0.0064 -0.0006 -0.0019 0.0015 0.0003 -0.0020 -0.0064 0.0003 0.0006 Kết nối khối chức Simulink Hình 3.4: Mơ điều khiển LQR lắc ngược Kết mô phương pháp LQG với lắc ngược 26 Hình 3.5: Kết mô sử dụng điều khiển LQR NHẬN XÉT: Sau thông qua lọc Kalman ta thấy hệ thống hoạt động tốt mức độ dao động ổn định so với trước sử dụng lọc Kalman Sau kết thúc mô phỏng, hệ cho ta thấy rõ phần ưu nhược điểm điều khiển LQG 27