12/2/2015
15
29
Nguyen Quang Hoang
Department of Applied Mechanics
Ví dụ 2 - Matlab
Xét hệ tuyến tính sau:
Phương trình đại số Riccati
Hệ và bài toán tối ưu mô tả bởi:
2
2
1
1
1
0
,
1
(
) ,
2
u
J
x
u dt
x
x
r
¥
=
+
=
+
=
-
ò
x
Ax
B
1
0
T
T
-
-
+ +
=
SA
SBR B S
Q
A S
0 1
0
2 0
,
,
;
2
0 0
1
0 0
é
ù
é ù
é
ù
ê
ú
ê ú
ê
ú
=
=
=
=
ê
ú
ê ú
ê
ú
ê
ú
ê ú
ê
ú
ë
û
ë û
ë
û
A
B
Q
R
Lệnh lqr của matlab
>> [K, S, e] = lqr(A,B,Q,R)
30
Nguyen Quang Hoang
Department of Applied Mechanics
Ví dụ 2 - Matlab
Lệnh lqr của matlab
A = [0 1; 0 0];
B = [0; 1];
C = [1 0];
Q = [2 0; 0 0];
R = [2];
[K, S, e] = lqr (A, B, Q, R)
K =
1.0000 1.4142
S =
2.8284 2.0000
2.0000 2.8284
e =
-0.7071 + 0.7071i
-0.7071 - 0.7071i
e là trị riêng của ma trận (A - BK)
0
2
4
6
8
10
-3
-2
-1
0
1
2
3
4
5
x
1
(t)
u(t)
closed_Syst = ss(A - B*K, B*K(1,1), C, 0)
t = 0:0.1:10;
r = 2*ones (size(t));
[y, t, x] = lsim (closed_Syst, r, t, [5 0]);
u = -K*x' + K(1,1)*r;
plot (t, y, 'k', 'linewidth', 2), grid on, hold on
plot(t,u, 'r', 'linewidth', 2)
legend('x_1(t)', 'u(t)')