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