Upload
eliora
View
72
Download
0
Embed Size (px)
DESCRIPTION
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)|
Citation preview
CHỈ TIÊU CHẤT LƯỢNG
Chỉ tiêu chất lượng (Hàm mục tiêu):
dtytyISE r
2
0
)(minmin
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
0
2 )(min dttu
Chỉ tiêu chất lượng toàn phương: dttuteJ
0
22 )()(min
Ví dụ : Tìm K để cực tiểu ISE
r
e uK 1/s y
TỐI ƯU THAM SỐ
Hàm truyền sai sốKss
sRsE
)()(
Với tín hiệu vào hàm nấc: e(t) = e - Kt
KdtteISE
21
min)(minmin2
0
Kết quả là K phải vô cùng
Dùng chỉ tiêu 22
1)()(min
0
22 KK
dttuteJ
J cực tiểu khi suy ra K = 1, J = 1 0)22
1( KKdK
d
01
32
2
KJ
K
Đ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
,21
min
)0(,
0
0
dtRuuQxxJ
Cxy
xxBuAxx
TT
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
0
)(21
xdtRKKQxJ TT
Tính K dùng phương trình Lyapunov, chọn hàm Lyapunov là J:
PxxxdtRKKQxtxV T
t
TT
21
)(21
))((
Đạo hàm theo thời gian
V(x(0)) = J = xT(0)Px(0)
0
)(2
1xdtRKKQxJ TT
ĐIỀU CHỈNH TRẠNG THÁI
)()(21
)()(21
|)(21
)(
txRKKQtxxRKKQx
xRKKQxxV
TTTT
tTT
Gỉa sử chọn K để hệ ổn định, x() 0
)()(21
)( txRKKQtxxV TT
Mặt khác
xBKAPPBKAxxPxPxxxV TTTT )()(21
21
)(
Suy ra xRKKQxxBKAPPBKAx TTTT )(21
)()(21
Ma trận P thỏa phương trình Lyapunov
)()()( RKKQBKAPPBKA TT
ĐIỀU CHỈNH TRẠNG THÁI
•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
)0()0(21
PxxT
•Để J cực tiểu ta giải phương trình hay0
ijkJ
•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
Các bước giải bài toán tối ưu
0
ijkP
0
)(2
1xdtRKKQCCxJ TTT
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à:
0])([])([
0)()(111
QPBPBRPBKPBKPAPA
KKQBKAPPBKATTTTTTT
TTTTT
Lấy đạo hàm phương trình theo kij và dùng tính chất 0
ijkP
Ta suy ra 0)])(())([( 11 PBKPBKk
TTTTT
ij
Cực tiểu xảy ra khi số hạng trong ngoặc là 0
PBRPBK
PBKTTT
TT
111
1
)(
)(
Phương trình Lyapunov trở thành phương trình đại số Riccati
01 QPBPBRPAPA TT
VÍ DỤ1
kyu
dtuyJ
uyy
0
22 )(
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
)12(2 P
Luật điều khiển tối ưu : )()12()()( 1 tytPyBRtu T
Phương trình hệ kín:
)(2)( tyty
VÍ DỤ2
xy
uxx
01
1
0
00
10
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
0
221 ))(( dturxJ
Đặt biến mới 22
11
~
~
xx
rxx
2;00
02
RQ
Phương trình Riccati: ATP + PA - PBR-1BTP + Q = 0
VÍ DỤ2
00
00
00
0210
21
1
0
00
10
01
00
2212
1211
2212
1211
2212
1211
2212
1211
pp
pp
pp
pp
pp
pp
pp
pp
022
02
022
12
222
221211
212
pp
ppp
p
Cuối cùng :
21211 2)()(~2)(~)(~
222
222
xrxtxtxtxPBRu
P
T
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
kyu
dtuyJ
uyy
0
22 )(
Đặt biến mới z(t)
2,20
02
0
1,
01
01
)(
)()(
21
0
222
RQ
BA
zkyku
dtuzyJ
tytz
uyy
VÍ DỤ 3Điều khiển tối ưu với tích phân
Phương trình Riccati
00
00
20
0201
21
0
1
01
01
00
11
2212
1211
2212
1211
2212
1211
2212
1211
pp
pp
pp
pp
pp
pp
pp
pp
022
02
022
22
212
12112212
211
1211
p
pppp
ppp
Kết quả
t
T
dttytytztyu
PBRK
P
0
1
)()()()(
11
42
22
VÍ DỤ 4Tìm hệ số đệm sao cho cực tiểu
0
22 )( dteeJ
)2(1
ssr ye
Phương trình liên hệ y và r ryyy 2
Phương trình vi phân của e 02 eee
0)0(;1)0(; eeyre
Phương trình trạng thái của e
exexe
e
e
e
21 ;;
21
10
20
02;
21
)(0
22
0
21 QdtQxxdtxxJ T
VÍ DỤ 4Phương trình Riccati: ATP + PA + Q = 0
Giải pt
11
121
P
21
)0()0(21 PxxJ T
Đạo hàm theo suy ra trị tối ưu ứng với 2
1
VÍ DỤ 5
k1 100/s2
sk2
ry
ue
Tìm k1 và k2 cực tiểu dttuteJ
0
22 )(25.0)(
Phương trình trạng thái:
211
2211121~~~;~;~
0
1)0(~;
100
0~00
10~
kkkK
xKxkkxkuyxryx
xuxx
VÍ DỤ 5
5.0;00
02
RQ
GiảI phương trình Riccati
1.0;2
2.02
001.001.0
01.02.0
21
kk
K
P
MATLAB
Hàm [K, P, e] = lqr (A, B, Q, R) giải bài toán cực tiểu
dtRuuQxxJ TT
0
min
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
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)
k =
1.0000 1.4142
p =
2.8284 2.0000
2.0000 2.8284
e =
-0.7071 + 0.7071i
-0.7071 - 0.7071i
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)0 1 2 3 4 5 6 7 8 9 10
-3
-2
-1
0
1
2
3
4
5
Đ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)0 1 2 3 4 5 6 7 8 9 10
-5
-4
-3
-2
-1
0
1
2
3
4
5
ĐIỀU KHIỂN TỐI ƯU HỆ RỜI RẠC
)()(
)()()()(21
)()(
)0();()()1(
0
0
kKxku
kRukukQxkxJ
kCxky
xxkGukFxkx
k
TT
Phương trình Riccati rời rạc
PFGPGGRK
PFGPGGRPGFPFFQPTT
TTTT
1
1
)(
)(
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
0
22 )(75.0)(k
kukeJ
Pttt: y(k+1) = y(k) + u(k) ; u(k) = - K[y(k) - r]
5.1;2
)(75.0)(~
)()(~)(~)();()(~)1(~
0
22
RQ
kukxJ
rkykx
kxKkukukxkx
k
Giải pt Riccati rời rạc, suy ra
3/2
35.1
22
K
PP
PPP
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
)](~)(~[2
1 2
0
2 kukyJk
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
Tzzx
bA
9211.0
0
3947.0
0
,
0005809.0
1000
0004537.4
0010
Tính luật điều khiền trạng thái vớí khâu tích phân, cực tiểu
1,
10000
01000
0010000
00010
000010
)()()()(2
10
RQ
kRukukQxkxJk
TT
• 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)