Lời giải các bài tập Matlab LQR và LQG nhóm 2 môn điều khiển tối ưu và bền vững lớp cao học ngành tự động hóa

28 1 0
Lời giải các bài tập Matlab LQR và LQG nhóm 2 môn điều khiển tối ưu và bền vững  lớp cao học ngành tự động hóa

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TP HCM, 2023 BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HCM oOo BÁO CÁO GIỮA KỲ MÔN HỌC ĐIỀU KHIỂN TỐI ƯU VÀ BỀN VỮNG Môn học Điều khiển tối ưu và bền vững PGS T.

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM - oOo BÁO CÁO GIỮA KỲ MÔN HỌC: ĐIỀU KHIỂN TỐI ƯU VÀ BỀN VỮNG TP.HCM, 2023 Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên Bài tập LQR Câu 8.1: + Đề : + Bài giải : A) a = -1; A = a; B = 1; C = 1; D = 0; sys = ss(A,B,C,D); Q = eye(1); % trọng lượng biến trạng thái R = 1; % trọng lượng biến kiểm soát [K,S,e] = lqr(sys,Q,R); rho = 1; tspan = 0:0.01:10; x0 = 1; u = @(t,x) -K*x; % xử lý chức cho đầu vào bộđiều khiển [t,y] = ode45(@(t,x) A*x + B*u(t,x), tspan, x0); % mô hệ thống vịng kín Mơn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên figure; plot(t,y,'LineWidth',2); title(' Phản hồi bước đầu vào với điều khiển LQR '); xlabel('Thời gian (s)'); ylabel('Biến trạng thái'); legend('x'); B) Để tính tốn vị trí vịng kín dạng hàm ρ, trước tiên cần xác định hàm truyền nhà máy điều khiển Đối với quy trình bậc có số thời gian a, hàm truyền đạt là: Gp(s) = / (as + 1) Đối với điều khiển tỷ lệ có độ lợi Kp, hàm truyền đạt là: Gc(s) = Kp Hàm truyền tổng thể hệ thống vịng kín thu cách nhân hàm truyền nhà máy điều khiển sau: Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên G(s) = Gc(s)Gp(s) = Kp / (as + 1) Phương trình đặc trưng vịng kín thu cách đặt mẫu số G(s) 0, điều mang lại cho chúng ta: as + + Kp = Đây phương trình bậc gốc cho là: s = -1/a - Kp/a Hệ thống vịng kín ổn định phần thực s âm, nghĩa Re(s) < Do đó, cần đảm bảo rằng: -1/a - Kp/a < Điều đơn giản hóa thành: Kp > -a Do đó, vị trí vịng lặp kín đưa là: s = -1/a - Kp/a Điều xảy ρ: ρ ρ ∞ Trường hợp 1: Khi ρ Khi độ lợi điều khiển nhỏ (gần 0), vị trí vịng kín bị chi phối động lực học nhà máy Nói cách khác, hệ thống vịng kín hoạt động tương tự hệ thống vòng hở với hàm truyền Gp(s) Do đó, hệ thống vịng kín có khả khơng ổn định nhà máy không ổn định (a > 0) Trường hợp 2: Khi ρ ∞ Khi độ lợi điều khiển lớn (gần đến vô cùng), vị trí vịng kín bị chi phối động lực học điều khiển Nói cách khác, hệ thống vịng kín hoạt động tương tự tích phân túy với hàm truyền Kp/s Do đó, hệ thống vịng kín có khả ổn định giá trị a Tuy nhiên, phản hồi hệ thống trở nên chậm chạp độ lợi điều khiển mức Câu 8.2 : + Đề : Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên + Bài giải : A = [0 1; -3 -1]; B = [0; 4]; C = [1 0]; D = 0; Q = [1 0; 1]; R = 5; [K, S, poles] = lqr(A, B, Q, R); display(poles); sys_cl = ss(A - B*K, B, C, D); x0 = [1; 1]; % or x0 = [11; 0]; t = linspace(0, 10, 100); u = initial(sys_cl, x0, t); lsim(sys_cl, u, t, x0); Xác định ma trận hệ thống `A`, `B`, `C`, `D`, ma trận trọng số `Q` `R` cho điều khiển LQ Sau đó, sử dụng hàm `lqr()` để tính tốn độ lợi điều khiển tối ưu `K`, nghiệm phương trình Riccati `S` cực hệ thống vịng kín Các cực hệ thống vịng kín là: poles = -0.5984 + 1.3324i -0.5984 - 1.3324i Để tính giá trị tối thiểu J, mơ hệ thống vịng kín cách sử dụng hàm `ss()` `initial()`, sau sử dụng hàm `lsim()` để vẽ biểu đồ phản hồi Giả sử trạng thái ban đầu `x0 = [11; 0]`, mã xuất biểu đồ sau: J_min = trapz(t, yd.^2 + 5*u.^2); display(J_min); Giá trị nhỏ J là: J_min =44.7173 Câu 8.3 : + Đề : Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên + Bài giải: A = [-1 0; -2]; B = [3;2]; Q1=12; Q2=5; [L] = lqr(A,B,Q1,Q2) Giả sử cho Q1=12, Q2=5, ta tính L= [1.1678 0.4967] Thử thêm vài trường hợp khác với Q1,Q2>0, ta thấy L2 >0 => L (2 -3) không thỏa Câu 8.4 : + Đề bài: Môn học: Điều khiển tối ưu bền vững + Bài giải: A = [1, -1; 2, 4]; B = [-4; 8]; C = [1, 1]; D = 0; Q1 = [0.00001 0;0 0.00001]; Q2 = 0.00001; K = lqr(A,B,Q1,Q2) sys = ss((A-B*K),B,C,D); step(sys) Khi giả sử trường hợp cho Q1,Q2: + Q1, Q2 vô bé + Q1, Q2 vô lớn PGS TS Đặng Xuân Kiên Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên + Q1, Q2 số dương Thì cho kết không thực => Không có Q1, Q2 thỏa điều kiện đề cho Câu 8.5 : + Đề : + Bài giải: Thay giá trị Q1, Q2 đề cho vào code, ta đồ thị sau: A) Q1 = [1 0;0 0]; Q2 = 0.01 A = [0 1; 0]; B = [0; 1]; C = [1 0]; D = 0; Q1=[1 0;0 0]; Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên Q2= 0.01; [K, S, e] = lqr(A, B, Q1, Q2); L = -K; Ac = [(A+B*L)]; Bc = [B]; Cc = [C]; Dc = [D]; sys_cl = ss(Ac, Bc, Cc, Dc); t = 0:0.01:10; r = ones(size(t)); [y, t, x] = lsim(sys_cl,r,t); plot(t,y); xlabel('Time (sec)'); ylabel('Output'); title('Phản ứng bước Hệ thống Kiểm sốt LQR'); Mơn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên B) Q1 = [1 0;0 0]; Q2 = A = [0 1; 0]; B = [0; 1]; C = [1 0]; D = 0; Q1=[1 0;0 0]; Q2= 1; [K, S, e] = lqr(A, B, Q1, Q2); L = -K; Ac = [(A+B*L)]; Bc = [B]; Cc = [C]; Dc = [D]; sys_cl = ss(Ac, Bc, Cc, Dc); t = 0:0.01:10; r = ones(size(t)); [y, t, x] = lsim(sys_cl,r,t); plot(t,y); xlabel('Time (sec)'); ylabel('Output'); title('Phản ứng bước Hệ thống Kiểm sốt LQR'); 10 Mơn học: Điều khiển tối ưu bền vững + Bài giải : A) Ta có: Q = [ 0; 2] R=p= 0.01 , 1, 100 Phương trình có được: Với p = 0.01, p = 10, p = 1000 B) A = [1 3; 8]; 14 PGS TS Đặng Xuân Kiên Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên B = [1; 0.1]; C = [0 1]; P = ss(A,B,C,0); Q1 = [1 0; 2]; Q2_vector = [0.01 100]; clf for i=1:length(Q2_vector) [L,S,E] = lqr(P,Q1,Q2_vector(i)); % Tính tốn Lr: Lr = 1/(C/(B*L-A)*B); % Vòng lặp từ r đến u : Gur = ss(A-B*L,B*Lr,-L,Lr); % Vòng lặp từ r đến y : Gyr = ss(A-B*L,B*Lr,C,0); % Vẽ sơ đồ subplot(3,2,i*2-1) step(Gur) axis([0 10 -Inf Inf]) title(['Control signal, Q_2=' num2str(Q2_vector(i))]) subplot(3,2,i*2) step(Gyr) axis([0 10 -Inf Inf]) title([' Output signal, Q_2=' num2str(Q2_vector(i))]) poles{i} = E; end poles{:} Thay đổi giá trị p = 0.01, 1, 100 vào code vòng lặp for, ta xuất đồ thị theo giá trị 15 Môn học: Điều khiển tối ưu bền vững Câu 8.7 : + Đề : 16 PGS TS Đặng Xuân Kiên Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên + Bài giải: Giả sử cho n=1 n=1; A=[0 1;0 0]; B= [0;1]; C= [1 0;0 1]; Q= [1 0; 0]; R=n; [K,P,E] = lqr(A,B,Q,R); K P E Bài tập: Mơ LQR cần trục 2D (gantry crane) - Tính toán: clc, clear all; x1=0,x2=0,x3=0,x4=0,Fx=0; A =[0,1,0,0; 0, 0,- (x4^2*cos(x3) + (981*cos(x3)^2)/100 (981*sin(x3)^2)/100)/(cos(x3)^2 - 349/100) 17 Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên (2*cos(x3)*sin(x3)*(sin(x3)*x4^2 + Fx + (981*cos(x3)*sin(x3))/100))/(cos(x3)^2 - 349/100)^2, -(2*x4*sin(x3))/(cos(x3)^2 - 349/100); 0,0,0,1; 0,(x4^2*cos(x2)*cos(x3))/(cos(x3)^2 - 349/100), (2*cos(x3)*sin(x3)*(cos(x3)*sin(x2)*x4^2 + (60230191438406621*sin(x3))/1759218604441600 + Fx*cos(x3)))/(cos(x3)^2 - 349/100)^2 (sin(x2)*sin(x3)*x4^2 (60230191438406621*cos(x3))/1759218604441600 + Fx*sin(x3))/(cos(x3)^2 - 349/100), (2*x4*cos(x3)*sin(x2))/(cos(x3)^2 - 349/100)]; B =[ 0; -1/(cos(x3)^2 - 349/100); 0; cos(x3)/(cos(x3)^2 - 349/100)]; Q=[1 0 0;0 0; 0 0; 0 1]; % co the thay doi gia tri Q1,Q2,Q3,Q4 de tim ma tran so hieu qua R=1; % co the thay doi gia tri R K=lqr(A,B,Q,R) - Thông số mô phỏng: clc,clear all; x_init=0; x_dot_init=0; teta_init=0.03; teta_dot_init=0; K =[1.0000 2.8432 -0.5087 KẾT QUẢ THU ĐƯỢC: DAO ĐỘNG TẠI VỊ TRÍ BAN ĐẦU 18 -0.2412] Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên Mô hệ cần trục simulink Kết teta thu 19 Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên Kết x thu DI CHUYỂN CẦN TRỤC KHOẢNG 20CM VỀ BÊN PHẢI GÓC TỌA ĐỘ BAN ĐẦU 20 Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên Kết teta thu Kết x thu 21 Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên DI CHUYỂN CẦN TRỤC KHOẢNG VỀ BÊN TRÁI 30 CM SO VỚI GÓC TỌA ĐỘ BAN ĐẦU Kết teta thu 22 Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên Kết x thu Bài tập LQG Ví dụ 1: A = [0 0;0 1;1 0]; B = [0.3 1;0 1;-0.3 0.9]; C = [1.9 1.3 1]; D = [0.53 -0.61]; sys = ss(A,B,C,D); nx = 3; %Số trạng thái ny = 1; %Số ngõ Qn = [4 0;2 0; 0 1]; 23 Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên Q = 1; Rn = 0.7; R = [1 0;0 2] QXU = blkdiag(0.1*eye(nx),R); %Ma trận trọng số QWV = blkdiag(Qn,Rn); %Ma trận phương sai nhiễu QI = eye(ny); Kr = lqr(A,B,Q,R); KLQG = lqg(sys,QXU,QWV) Mô simulink Kết thu 24 Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên Ví dụ : BÀI TẬP CON LẮC NGƯỢC Bài giải : clc clear M = 1; m = 0.1; l = 1; g = 9.81; theta_init = 0.1; theta_dot_init = 0; x_init = 0; x_dot_init = 0; A = [0 0;10.78 0 0;0 0 1;-0.98 0 0]; B = [0;-1;0;1]; C = [1 0 0;0 0]; D = 0; %Q = C'*C; Q = [10 0 0;0 0;0 100 0;0 0 1]; R = 1; G = diag([1 1 1]); Qn = diag([0.000001 100 10000]); P = care(A,B,Q,R); K = lqr(A,B,Q,R); Rn = [0.001 0;0 1]; L = lqe(A,G,C,Qn,Rn) 25 Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên Mô simulink LQG với lắc ngược Mô simulink hệ lắc ngược 26 Môn học: Điều khiển tối ưu bền vững Kết thu Ví dụ : Con lắc đơn g = 9.81; m = 1; l = 0.5; A = [0 1; -g/1 0]; B = [0; 1/(m*1^2)]; C = [1 0]; D = 0; Q = 1e-3; R = 1e-4; Ts = 0.01; 27 PGS TS Đặng Xuân Kiên Môn học: Điều khiển tối ưu bền vững PGS TS Đặng Xuân Kiên Mô simulink hệ lắc đơn Cho giá trị theta đầu = 10 Kết thu 28

Ngày đăng: 03/05/2023, 20:29

Tài liệu cùng người dùng

Tài liệu liên quan