Tải bản đầy đủ (.docx) (31 trang)

Lời giải các bài tập Matlab LQR và LQG nhóm 4 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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (0 B, 31 trang )

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM

BÁO CÁO MÔN ĐIỀU KHIỂN TỐI ƯU VÀ
BỀN VỮNG
Người thực hiện: Nguyễn Duy Quốc Thái
Nguyễn Thanh Lưu
Tên lớp: TD2201
Giảng viên hướng dẫn: PGS.TS Đặng Xuân Kiên

TP. Hồ Chí Minh, tháng 03 năm 2023


MỤC LỤC

2


Môn học: Điều khiển tối ưu và bền vững

GVHD:PGS.TS Đặng Xuân Kiên

PHẦN 1: BÀI TẬP CHƯƠNG 1
1. BÀI TẬP 8.1.
1.1. Đề bài:

1.2. Lời giải:
Giải:


Môn học: Điều khiển tối ưu và bền vững
KiênMôn học: Điều khiển tối ưu và bền vững


Kiên

GVHD:PGS.TS Đặng Xuân
GVHD: PGS.TS Đặng Xuân

1.3. Mô phỏng MATLAB.
 Câu a: Thiết kế bộ điều khiển thảo mãn chỉ tiêu chất lượng J.

Nhập lệnh LQR để tìm hệ số khuếch đại tối ưu (K) và nghiệm của phương trình Ricacti.
Để mơ phổng trên matllab ta gán cho biến số a và ρ với giá trị lần lượt là a= 1 và ρ= 3, với
điều kiện là a và ρ đều lớn hơn 0.
Tính tốn bằng cách giải tay ta được:
Nghiệm của phương trình Ricacti:
, thay a= 1 và ρ= 3 ta được S= 6,464
Hệ số tối ưu K:
, thay a= 1 và ρ= 3 ta được K= 2,1547

4


Môn học: Điều khiển tối ưu và bền vững
Dùng Matlab để kiểm tra kết quả:
% cac he so a, p duoc chon voi a>0, P>0
a=1;
p=3;
%cac gia tri A, B, Q, R theo phuong trinh trang thai:
A=a;
B=1;
Q=1;
R=p;

% nghiem p cua phuong trinh ricado la:
[p]=care(A,B,Q,R)
%He so K se duoc tinh:
[k]=lqr(A,B,Q,R)
>> BT8_1a
p = 6.4641
k = 2.1547
Câu b: Xét ảnh hưởng tới hệ thống khi p ->0 và p->∞
- Khi p->0 (R ->0): làm hệ số K ->∞
%voi cac he so a, p duoc chon thoa a>0, b>0
a=1;
p=0.00000000000001;
%cac gia tri A,B,Q,R theo pttt là
A=a;
B=1;

GVHD:PGS.TS Đặng Xuân Kiên


Môn học: Điều khiển tối ưu và bền vững
KiênMôn học: Điều khiển tối ưu và bền vững
Kiên
Q=1;
R=p;
%nghiem p cua phuong trinh ricado la:
[p]=care(A,B,Q,R)
%he so k la
[k]=lqr(A,B,Q,R)
>> BT8_1b1
p = 1.0000e-07

k = 1.0000e+07
- Khi p->∞ (R->∞): làm hệ thống mất ổn định.
%voi cac he so a, p duoc chon thoa a>0, b>0
a=1;
p=1000000000000;
%cac gia tri A,B,Q,R theo pttt là
A=a;
B=1;
Q=1;
R=p;
%nghiem p cua phuong trinh ricado la:
[p]=care(A,B,Q,R)
%he so k la
[k]=lqr(A,B,Q,R)
>> BT8_1b2
6

GVHD:PGS.TS Đặng Xuân
GVHD: PGS.TS Đặng Xuân


Môn học: Điều khiển tối ưu và bền vững
p = 2.0000e+12
k = 1.9999
2. BÀI TẬP 8.2.
2.1. Đề bài:

2.2. Lời giải:

GVHD:PGS.TS Đặng Xuân Kiên



Môn học: Điều khiển tối ưu và bền vững
KiênMôn học: Điều khiển tối ưu và bền vững
Kiên
2.3. Mô phỏng MATLAB:
Khi thay y(t)= (5 5)x(t) vào phương trình J ta được:

% Giá trị khởi tạo
A = [1,0;
1,0;];
B = [2,1;
0,0;];
C = [5,5;];
D = [0];
Q = C'*C;
R = [5,0;
0,5;];
%% Chương trình
[K,S] = lqr(A, B, Q, R)
sys=ss(A-B*K,B,C,D);
P = eig(A-B*K)
pzmap (sys)
J= x0'*S*x0
grid on
>> BT8_2
K=

2.8000


1.4000

2.0000

1.0000

8

GVHD:PGS.TS Đặng Xuân
GVHD: PGS.TS Đặng Xuân


Môn học: Điều khiển tối ưu và bền vững
S=

7.0000

5.0000

5.0000

5.0000

P = -5.0000
-1.0000
J=

2

% J=2 là tối ưu nhất


3. BÀI TẬP 8.3.
3.1. Đề bài:

3.2. Lời giải:

GVHD:PGS.TS Đặng Xuân Kiên


Môn học: Điều khiển tối ưu và bền vững
KiênMôn học: Điều khiển tối ưu và bền vững
Kiên

3.3. Mô phỏng MATLAB:
%voi cac he so Q1, Q2 duoc chon thoa Q1>0, Q2>0
Q1=1;
Q2=2;
%cac gia tri A,B,Q,R theo pttt la
A=[-1 0;
0 -2];
B=[3
2];
Q=Q1;
R=Q2;
%nghiem p cua phuong trinh Ricado
[P]=care(A,B,Q,R)
%he so k

10


GVHD:PGS.TS Đặng Xuân
GVHD: PGS.TS Đặng Xuân


Môn học: Điều khiển tối ưu và bền vững
>> BT8_3
P = 0.3168 -0.0472
-0.0472
K=

0.2363

0.4280

0.1655

Luật điều khiển:
u = [0.4280 ; 0.1655]x
4. BÀI TẬP 4.
4.1. Đề bài:

4.2. Lời giải:

GVHD:PGS.TS Đặng Xuân Kiên


Môn học: Điều khiển tối ưu và bền vững
KiênMôn học: Điều khiển tối ưu và bền vững
Kiên
4.3. Mô phỏng MATLAB:


GVHD:PGS.TS Đặng Xuân
GVHD: PGS.TS Đặng Xuân

% Với các hệ số Q1, Q2 được chọn thỏa Q1>0;
Q1=1;
Q2=0.001;
% Các giá trị A,B,Q,R theo phương trình trạng thái lần lượt là:
A =[1 -1
2 4];
B = [-4 8];
C = [1 1];
Q=Q1;
R=Q2;
% Nghiệm P của phương trình Ricado:
% [P] =care (A,B,Q,R);
% Hệ số K sẽ được tính:
[K]=lqr(A,B,Q,R;
disp('K computer via LQR')
Kết quả: Khơng tìm được Q, R thỏa mản để xây dựng hàm chỉ tiêu chất lượng J.
5. BÀI TẬP 5.
5.1. Đề bài:

12


Môn học: Điều khiển tối ưu và bền vững

5.2. Lời giải:


5.3. Mơ phỏng MATLAB:
Chương trình trong Matlab:
clear

GVHD:PGS.TS Đặng Xn Kiên


Môn học: Điều khiển tối ưu và bền vững
GVHD:PGS.TS Đặng Xuân
KiênMôn học: Điều khiển tối ưu và bền vững
GVHD: PGS.TS Đặng Xuân
Kiên
clc
%% khai báo
A = [0,1;
0,0;];
B = [0;
1;];
C = [1,0;];
D = 0;
Q1 = [1,0;
0,0;]
% R1, R2, R3, R4 chính là Q2 = 0.01, Q2=1, Q2= 1, Q2=1000 của 4 trường hợp.
R1 = 0.01;
Q2 = [1,0;
0,0;]
R2 = 1;
Q3 = [1,0;
0,1;]
R3 = 1;

Q4 = [1,0;
0,0;]
R4 = 1000;
t = 1:0.01:5;
%% Chương trình
%TH1
K1 = lqr(A, B, Q1, R1);
sys1 = ss(A-B*K1, B, C, D);
figure(1)
step(sys1);
title('R = 0.01');
grid on
%TH2
K2 = lqr(A, B, Q2, R2);
sys2 = ss(A-B*K2, B, C, D);
figure(2)
step(sys2);
title('R = 1');
grid on
%TH3
K3 = lqr(A, B, Q3, R3);
sys3 = ss(A-B*K3, B, C, D);
figure(3)
step(sys3);
title('R = 1');
grid on
14


Môn học: Điều khiển tối ưu và bền vững

%TH4
K4 = lqr(A, B, Q4, R4);
sys4 = ss(A-B*K4, B, C, D);

figure(4)
step(sys4);
title('R = 1000');
grid on
%KẾT QUẢ MÔ PHỎNG:

6. BÀI TẬP 6.
6.1. Đề bài:

GVHD:PGS.TS Đặng Xuân Kiên


Môn học: Điều khiển tối ưu và bền vững
KiênMôn học: Điều khiển tối ưu và bền vững
Kiên

6.2. Lời giải:

16

GVHD:PGS.TS Đặng Xuân
GVHD: PGS.TS Đặng Xuân


Môn học: Điều khiển tối ưu và bền vững


GVHD:PGS.TS Đặng Xuân Kiên

6.3. Mô phỏng MATLAB:
a) Với điều kiện đề bài, có thể viết lại hàm J như sau:

b) Mơ phỏng trên Matlab:

Thay đổi các giá trị của p = 0.01, 1, 100 vào code bằng vòng lặp for, ta xuất được 3
đồ thị theo từng giá trị
Chương trình trong Matlab:
clear
clc
A = [1 3; 4 8];


Môn học: Điều khiển tối ưu và bền vững
KiênMôn học: Điều khiển tối ưu và bền vững
Kiên
B = [1; 0.1];

GVHD:PGS.TS Đặng Xuân
GVHD: PGS.TS Đặng Xuân

C = [0 1];
P = ss(A,B,C,0);
Q1 = [1 0; 0 2];
Q2_vector = [0.01 1 100];
clf
for i=1:length(Q2_vector)
[L,S,E] = lqr(P,Q1,Q2_vector(i));

% Calculating Lr (static gain to output should be 1)
Lr = 1/(C/(B*L-A)*B);
% Closed loop from r to u:
Gur = ss(A-B*L,B*Lr,-L,Lr);
% Closed loop from r to y:
Gyr = ss(A-B*L,B*Lr,C,0);
% Plotting step responses
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{:}

Kết quả mô phỏng:
18


Môn học: Điều khiển tối ưu và bền vững

7. BÀI TẬP 7.
7.1. Đề bài:

GVHD:PGS.TS Đặng Xuân Kiên



Môn học: Điều khiển tối ưu và bền vững
KiênMôn học: Điều khiển tối ưu và bền vững
Kiên
7.2. Lời giải:

GVHD:PGS.TS Đặng Xuân
GVHD: PGS.TS Đặng Xuân

7.3. Mô phỏng MATLAB:
a) Để mô phỏng trên Matlab ta cho η= 0.01, 1 và 100:
%chương trình
clear
clc
A = [0 1; 0 0];
B = [0; 1];
C = [1 0; 0 1];
Q = [1 0; 0 0];
n = [0.01 1 100];

clf
for i=1:length(n)
R = n(i);
[K,S] = lqr(A,B,Q,R);
20


Môn học: Điều khiển tối ưu và bền vững
S
end

%Kết quả
S=
0.4472

0.1000

0.1000

0.0447

S=

1.4142

1.0000

1.0000

1.4142

S=
4.4721 10.0000
10.0000 44.7214
b) Mơ phỏng trên matlab:

% chương trình:
clear
clc
A = [0 1; 0 0];
B = [0; 1];

C = [1 0; 0 1];
Q = [1 0; 0 0];
n = [0.01 1 100];
clf
for i=1:length(n)
R = n(i);
[K,S] = lqr(A,B,Q,R);
S
sys = ss(A-B*K,B,C,0);
E = eig(A - B*K);
pzmap(sys)
legend('n=0.01','n=2.5','n=99')
hold on
grid on
end

GVHD:PGS.TS Đặng Xuân Kiên


Môn học: Điều khiển tối ưu và bền vững
KiênMôn học: Điều khiển tối ưu và bền vững
Kiên

GVHD:PGS.TS Đặng Xuân
GVHD: PGS.TS Đặng Xn

%kết quả mơ phỏng:

Nếu giảm η thì khoảng cách giữa hai cực và gốc tọa độ sẽ tăng lên.
Điều này có nghĩa là kích thước của u(t) sẽ tăng lên.


PHẦN 2: BÀI TẬP CHƯƠNG 2
1. BÀI TẬP 1.
Bài toán: Thiết kế bộ điều khiển LQR với nhiệm vụ đưa con lắc ổn định tại vị trí mà ta
muốn cân bằng
Ta có mơ hình hệ thống như sau:

22


Môn học: Điều khiển tối ưu và bền vững

GVHD:PGS.TS Đặng Xuân Kiên

Trong đó:
M: Trọng lượng xe (kg)
m: Trọng lượng con lắc (kg)
l: chiều dài con lắc (m)
J: là momen quán tính con lắc

G: gia tốc trọng trường (m/s2)
B: hệ số ma sát (Ns/m)
X: vị trí xe (m)
ɵ: góc giữa con lắc và phuong thẳng đứng

(kg/m2)
u: lực tác động vào xe (N)

(rad)



Môn học: Điều khiển tối ưu và bền vững
KiênMôn học: Điều khiển tối ưu và bền vững
Kiên

GVHD:PGS.TS Đặng Xuân
GVHD: PGS.TS Đặng Xuân

Xây dựng ngõ in và ngõ out cho hệ thống:

Từ đó ta xây dựng được khối động lực cho hệ con lắc ngược với 1 tín hiệu đầu vào là u và 4
tín hiệu đầu ra là theta, x, theta dot, x dot như sau:

24


Môn học: Điều khiển tối ưu và bền vững

GVHD:PGS.TS Đặng Xuân Kiên

Cấu trúc của bộ điều khiển LQR được mô tả bởi phương trình:
ẋ=ax+bu
Ta tìm ma trận K của vector điều khiển tối ưu: u(t) = -Kx(t) thoả mãn tiêu chí chất lượng J
đạt giá trị cực tiểu.
J = + Ru)dt
Q là ma trận xác định dương ( hoặc bán xác định dương)
R là ma trận xác định dương
Giả sử ta có thơng số điều khiển cho hệ LQR trên xe như sau:
Ký hiệu


Mô tả

Giá trị

Đơn vị

m

Khối lượng con lắc

0.1

Kg

M

Khối lượng xe con lắc

1

Kg

L

Chiều dài con lắc

1

m


g

Gia tốc trọng trường

9.81

m/s2

Ta được ma trận


×