230 likes | 487 Vues
CHỈ TIÊU CHẤT LƯỢNG. Chỉ tiêu chất lượng (Hàm mục tiêu):. Integral of square error. Giới hạn tín hiệu điều khiển : max |u(t)| <= M. Giảm năng lượng tiêu hao. Chỉ tiêu chất lượng toàn phương:. Ví dụ : Tìm K để cực tiểu ISE. u. e. 1/s. y. K. r. TỐI ƯU THAM SỐ. Hàm truyền sai số.
E N D
CHỈ TIÊU CHẤT LƯỢNG Chỉ tiêu chất lượng (Hàm mục tiêu): Integral of square error Giới hạn tín hiệu điều khiển : max |u(t)| <= M Giảm năng lượng tiêu hao Chỉ tiêu chất lượng toàn phương: Ví dụ : Tìm K để cực tiểu ISE u e 1/s y K r
TỐI ƯU THAM SỐ Hàm truyền sai số Với tín hiệu vào hàm nấc: e(t) = e - Kt Kết quả là K phải vô cùng Dùng chỉ tiêu J cực tiểu khi suy ra K = 1, J = 1
ĐIỀU CHỈNH TRẠNG THÁI (LQR) LINEAR QUADRATIC REGULATOR Khảo sát vấn đề duy trì trạng thái của hệ thống ở giá trị là 0, chống tác động nhiễu, đồng thời với cục tiểu tiêu hao năng lượng Q là ma trận đối xứng xđd hay bán xđd, thường là ma trận chéo R là ma trận đối xứng xđd, thường là ma trận chéo Chọn luật điều khiển hồi tiếp trạng thái u = - Kx, K là hằng số, thay vào biểu thức của J Tính K dùng phương trình Lyapunov, chọn hàm Lyapunov là J: V(x(0)) = J = xT(0)Px(0) Đạo hàm theo thời gian
ĐIỀU CHỈNH TRẠNG THÁI Gỉa sử chọn K để hệ ổn định, x() 0 Mặt khác Suy ra Ma trận P thỏa phương trình Lyapunov
ĐIỀU CHỈNH TRẠNG THÁI Các bước giải bài toán tối ưu • Giải phương trình Lyapunov ta được các phần tử của ma trận P theo các phần tử của ma trận K chưa biết • Sau đó ta tính J = V(x(0)) = là hàm theo các phần tử của ma trận K • Để J cực tiểu ta giải phương trình hay • Suy ra ma trận K, luật điều khiển u = - Kx • Xét ổn định của ma trận A-BK • Nêú muốn điêù chỉnh ngõ ra y=cx ta chọn
PHƯƠNG TRÌNH ĐẠI SỐ RICCATI Đặt R = T , là ma trận vuông không suy biến Phương trình Lyapunov viết lại là: Lấy đạo hàm phương trình theo kij và dùng tính chất Ta suy ra Cực tiểu xảy ra khi số hạng trong ngoặc là 0 Phương trình Lyapunov trở thành phương trình đại số Riccati
VÍ DỤ1 Các thông số của bài toán: A = -1, B = 1, Q = 2, R = 2 Phương trình Riccati ATP + PA - PBR-1BTP + Q = 0 -P – P - 0.5 P2 + 2 = 0 Giải phương trình bậc hai theo P và chọn nghiệm dương Luật điều khiển tối ưu : Phương trình hệ kín:
VÍ DỤ2 Tìm luật điều khiển u duy trì x1= r, x2 = 0 u = - k1(x1-r) - k2x2 cực tiểu chỉ tiêu Đặt biến mới Phương trình Riccati: ATP + PA - PBR-1BTP + Q = 0
VÍ DỤ2 Cuối cùng :
VÍ DỤ 3Điều khiển tối ưu với tích phân Trở lại ví dụ 1 ta muốn thêm vào khâu tích phân để tính chống nhiễu tốt hơn Đặt biến mới z(t)
VÍ DỤ 3Điều khiển tối ưu với tích phân Phương trình Riccati Kết quả
VÍ DỤ 4 Tìm hệ số đệm sao cho cực tiểu e y r Phương trình liên hệ y và r Phương trình vi phân của e Phương trình trạng thái của e
VÍ DỤ 4 Phương trình Riccati: ATP + PA + Q = 0 Giải pt Đạo hàm theo suy ra trị tối ưu ứng với
VÍ DỤ 5 e u k1 100/s2 y r sk2 Tìm k1 và k2 cực tiểu Phương trình trạng thái:
VÍ DỤ 5 GiảI phương trình Riccati
MATLAB Hàm [K, P, e] = lqr (A, B, Q, R) giải bài toán cực tiểu Phương trình Riccati ATP + PA - PBR-1BTP + Q = 0 u = -Kx e là nghiệm riêng của ma trận A-BK k = 1.0000 1.4142 p = 2.8284 2.0000 2.0000 2.8284 e = -0.7071 + 0.7071i -0.7071 - 0.7071i Ví dụ 4: Lấy lại ví dụ 2 >> A = [0 1; 0 0]; >> B = [0; 1]; >> C = [1 0]; >> Q = [2 0; 0 0]; >> R = [2]; >> [k ,p, e] = lqr (A, B, Q, R)
MATLAB Điều kiện đầu là [5 0], điều khiển sao cho y 2 >> ptttk = ss (A - B*k, B*k(1,1), C, 0) >> t = 0:0.1:10; >> r = 2*ones (size(t)); >> [y, t, x] = lsim (ptttk, r, t, [5 0]); >> plot (t, y) >> hold on >> u = -k*x' + k (1,1) *r; >> plot(t,u) Điều kiện đầu là [5 0], điều khiển sao cho y 0 >> ptttk = ss (A - B*k,[0; 0], C, 0) >> [y, t, x] = lsim (ptttk, r, t, [5 0]); >> plot (t, y) >> hold on >> u = -k*x‘; >> plot (t,u)
ĐIỀU KHIỂN TỐI ƯU HỆ RỜI RẠC Phương trình Riccati rời rạc Dùng Matlab [K, P, e] = dlqr (F, G, Q, R)
VÍ DỤ 6 K ZOH 1/s r=1(t) T=1s Tìm K cực tiểu Pttt: y(k+1) = y(k) + u(k) ; u(k) = - K[y(k) - r] Giải pt Riccati rời rạc, suy ra
VÍ DỤ 7 • Điêù khiển đối tượng 1/(s+1) với tín hiệu đặt yr = hằng số, cực tiểu G(z)=0.632/(z-0.368) y(k+1)=0.368y(k)+0.632u(k) F=0.368, G=0.632, Q=1, R=1 Phương trình Riccati: P=Q+FTPF-FTPG (R+GTPG) -1 GTPF =1+0.135P-0.054P2/(1+0.4P) P=1.11 K= (R+GTPG) -1 GTPF=0.18 1/N=-C(F-GK-1) -1 G N=1.18
VÍ DỤ 8 • Điêù khiển con lắc ngược, vơí pttt tuyến tính hóa Tính luật điều khiền trạng thái vớí khâu tích phân, cực tiểu
clear all • close all • A=[0, 1, 0, 0;4.4537, 0, 0, 0; 0,0, 0, 1;-0.5809, 0, 0, 0]; • b=[0; -0.3947; 0; 0.9211]; • c=[0, 0, 1, 0]; • sys=ss(A,b,c,0); • T=0.1 • sysd=c2d(sys,T); • [F,g,c,d]=ssdata(sysd); • FI=[F(1,:) ,0; F(2,:) ,0; F(3,:) ,0; F(4,:) ,0; c*F,1]; • gI=[g(1);g(2);g(3);g(4);c*g]; • cI=[c,0]; • U=ctrb(FI,gI); • rankU=rank(U) • Q=[10,0,0,0,0;0,1,0,0,0;0,0,100,0,0;0,0,0,1,0;0,0,0,0,1]; • R=1; • K=dlqr(FI,gI,Q,R); • Kp=[K(1),K(2),K(3),K(4)] • Ki=K(5) • FI_cl=FI-gI*K; • syscl=ss(FI_cl,[0;0;0;0;-1],cI,0,T); • t=[0:0.1:20]; • [y,t,X]=step(syscl,t); • plot(t,y);grid; hold on; plot(t,X)