MATLAB LECTURE - Trang 76

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)')