BỘ GIÁO DỤC VÀ ĐÀO TẠO
BỘ GIAO THÔNG VẬN TẢI
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM
--------- oOo --------
BÀI TẬP VỀ ĐIỀU KHIỂN TỐI ƯU
MÔN HỌC: ĐIỀU KHIỂN TỐI ƯU VÀ RÀNG BUỘC
TP.HCM, 2023
MỤC LỤC
MỤC LỤC ........................................................................................................................... 2
mục lục viết tắt .................................................................................................................... 4
1. bài tập tổng hợp ............................................................................................................... 5
Bài 8.1 ................................................................................................................................................. 5
Câu a) .............................................................................................................................................. 5
Câu b) .............................................................................................................................................. 6
Bài 8.2 ................................................................................................................................................. 9
Câu a) .............................................................................................................................................. 9
Bài 8.3 ............................................................................................................................................... 14
Bài 8.4 ............................................................................................................................................... 15
Bài 8.5 ............................................................................................................................................... 16
Bài 8.6 ............................................................................................................................................... 18
Câu a) ............................................................................................................................................ 18
Câu b) ............................................................................................................................................ 19
Bài 8.7 ............................................................................................................................................... 20
Câu b) ............................................................................................................................................ 21
2. bài tập tự chọn ............................................................................................................... 23
bài 1: điều khiển con lắc ngược bằng phương pháp LQR ................................................................. 23
a.
Thiết lập mơ hình tốn học ................................................................................................... 23
b. Mô phổng trên Matlab và Simulink .......................................................................................... 24
c. Kết luận...................................................................................................................................... 29
Bài 2: điều khiển con lắc ngược bằng phương pháp lqg................................................................... 29
a.
Mơ hình tốn và phương án ................................................................................................. 29
b. Mơ phổng trên Matlab và Simulink .......................................................................................... 31
c. Kết luận...................................................................................................................................... 32
bài 3: Bộ Lộc Kalman cho hệ con lắc ................................................................................................. 32
a.
Chương trình Matlab ............................................................................................................ 32
b. Mơ phổng trên Simulink ........................................................................................................... 33
c. Kết luận...................................................................................................................................... 36
bài 4: thiết kết thông số cho bộ điều khiển LQG .............................................................................. 37
a.
Chương trình Matlab ............................................................................................................ 37
TP.HCM, 2023
Nhóm 5
Điều khiển tối ưu và bền vững
Kết quả trả về từ Matlab ............................................................................................................... 37
b. Mô phổng trên Simulink ........................................................................................................... 38
c. Kết luận...................................................................................................................................... 39
tài liệu tham khảo .............................................................................................................. 40
Nhóm thực hiện: Nhóm 5
Trang 3 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
MỤC LỤC VIẾT TẮT
LQR: Linear Quadractic Regulator.
LQG: Linear Quadratic Gaussian.
Nhóm thực hiện: Nhóm 5
Trang 4 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
1. BÀI TẬP TỔNG HỢP
BÀI 8.1
Câu a)
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= 2.5
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= 2.5 và ρ= 3 ta được S= 15.1974
Hệ số tối ưu K:
, thay a= 2.5 và ρ= 3 ta được K= 5.0658
Hình 1 thay a và p vào cơng thức ta có kết quả của K và S
Dùng Matlab để kiểm tra kết quả:
clear
clc
Nhóm thực hiện: Nhóm 5
Trang 5 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
%% khai báo
a = 2.5; %bài toán yêu c?u a>0
p = 3;
%bài toán yêu c?u p>0
A = [a;];
B = [1;];
Q = [1;];
R = [p];
%% ch??ng trình
%tìm nghi?m c?a ph??ng trình Ricacti
[K,S] = lqr(A, B, Q, R)
Hình 2 Kết quả của K và S trả về từ Matlab
Câu b)
Nhóm thực hiện: Nhóm 5
Trang 6 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Trong Matlab ta nhập thêm lệnh:
sys = ss(A-B*K, B, C, D);
Pole = A-B*K
pzplot(sys);
grid on
Kết quả trả về:
Hình 3 Kết quả trả về Pole từ Matlab
Nhóm thực hiện: Nhóm 5
Trang 7 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Hình 4 Đồ thị Zeros Poles của hệ thống
Đối chiếu khi giải tay ta có cực của hệ thống được cho bởi:
Hình 5 Kết quả được tính tay
Nhận định: Cực nằm trong nửa mặt phẳng bên trái với mọi ρ > 0. Khi ρ → 0,
điều khiển ít dần và độ lợi tiến tới ∞, trong khi cực tiến tới −∞. Khi
ρ → ∞, điều khiển đắt tiền và độ lợi tiến gần đến a, trong khi cực
tiến tới –a.
Để chứng minh điều trên bằng Matlab thì ta thay ρ= 0.001 tương đương với
trường hợp ρ → 0 và ρ= 99 tương đương với việc ρ → ∞.
Nhóm thực hiện: Nhóm 5
Trang 8 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Hình 6 K = 34.22 khi p= 0.001
Hình 7 K = 5 (bằng 2 lần a) khi p= 99
BÀI 8.2
Câu a)
Với phương trình ban đầu:
Nhóm thực hiện: Nhóm 5
Trang 9 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Với yêu cầu tối ưu J:
Thay y(t) = C.x(t) và u(t) = (u1 u2) vào phương trình bên trên ta được:
Hình 8 Giải tay để tìm ma trận Q và R
Nhóm thực hiện: Nhóm 5
Trang 10 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Hình 9 Giải phương trình Ricacti tìm K và S
Dùng Matlab để kiểm tra kết quả trên:
clear
clc
%% khai bá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)
Nhóm thực hiện: Nhóm 5
Trang 11 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Nhóm thực hiện: Nhóm 5
Điều khiển tối ưu và bền vững
Trang 12 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Hình 10 Kết quả K và S tính trên Matlab
Để J là nhỏ nhất thì ta: *chua_giai_thich_duoc
Sau đó tìm được λ, cuối cùng J nhỏ nhất sẽ bằng:
Dùng Matlab để kiểm tra:
Nhóm thực hiện: Nhóm 5
Trang 13 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Hình 11 Thơng qua Matlab ta thấy J = 2 là tối ưu nhất
BÀI 8.3
Chương trình trong Matlab:
clear
clc
%% khai báo
A = [-1,0;
0,-2;];
B = [3;
2;];
L = [2, 3;];
num = 6;
den = [1, 3, 2];
%% Ch??ng trình
nyquist(num,den);
Nhóm thực hiện: Nhóm 5
Trang 14 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
grid
on
Hình 12 Biểu đồ Nyquist
Đường cong Nyquist bắt đầu trên trục thực dương và sẽ tiệm cận với gốc tọa độ
dọc theo trục thực âm với pha −180○ là ω → ∞. Đây là khơng phù hợp với mức
tăng vịng lặp tối ưu LQ, sẽ ln duy trì ở mức khoảng cách ≥ 1 từ điểm tới hạn
−1 và do đó sẽ có một tiệm cận pha của −90○. Do đó, L khơng thể là vectơ phản
hồi trạng thái tối ưu LQ.
Tóm lại hàm L này khơng tối ưu vì đường cong đi vào phần âm của trục tọa độ
(tức không giữ đủ khoảng cách là >=1 với trục -1).
BÀI 8.4
Mô phổng bằng Matlab
Nhóm thực hiện: Nhóm 5
Trang 15 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
H ình 13 Ceylays và Rank được tính trên Matlab
Do hạng của Hàm C= 1 cho nên chỉ có thể điều khiển được 1 trong 2 biến Q1
hoặc Q2.
BÀI 8.5
Chương trình trong Matlab:
clear
clc
%% khai báo
A = [0,1;
0,0;];
B = [0;
1;];
C = [1,0;];
D = 0;
Q1 = [1,0;
0,0;]
Nhóm thực hiện: Nhóm 5
Trang 16 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
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
%TH4
K4 = lqr(A, B, Q4, R4);
sys4 = ss(A-B*K4, B, C, D);
figure(4)
step(sys4);
title('R = 1000');
grid on
Nhóm thực hiện: Nhóm 5
Trang 17 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Hình 14 Kết quả mô phổng bằng Matlab của 4 trường hợp của R
BÀI 8.6
Câu a)
Giải tìm hàm J:
Nhóm thực hiện: Nhóm 5
Trang 18 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
15 Giải tìm Q và R của hàm J thông qua x1 vafx2 đã cho
Câu b)
Mô phổng trên Matlab
clear
clc
A = [1 3; 4 8]; B = [1; 0.1]; 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)
Nhóm thực hiện: Nhóm 5
Trang 19 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
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{:}
Hình 16 Kết quả mơ phổng của các R khác nhau
BÀI 8.7
Câu a)
Để mô phổng trên Matlab ta cho η= 0.01, 1 và 100:
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
end
Nhóm thực hiện: Nhóm 5
Trang 20 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Hình 17 Kết quả giải nghiệp S của n= 0.01, 1, 100
Câu b)
Mô phổng trên Matlab:
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);
Nhóm thực hiện: Nhóm 5
Trang 21 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
pzmap(sys)
legend('n=0.01','n=2.5','n=99')
hold on
grid on
end
Hình 18 Kết quả mô phổng cực của hệ thống theo từng giá trị khác nhau của n
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.
Nhóm thực hiện: Nhóm 5
Trang 22 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
2. BÀI TẬP TỰ CHỌN
BÀI 1: ĐIỀU KHIỂN CON LẮC NGƯỢC BẰNG PHƯƠNG PHÁP LQR
a. Thiết lập mơ hình tốn học
Con lắc ngược bao gồm một quả nặng được gắn với xe bằng một thanh thẳng
đồng chất. Mục tiêu đặt ra là điều khiển chiếc xe bên dưới để quả lắc hướng lên
trên cao sao cho nó được cân bằng tại một điểm và khơng bị ngã xuống. Lý
thuyết và chương trình tham khảo tại [2].
Hình 19 Hình ảnh mơ tả xe lắc và các thơng số tác động lên nó
Trong đó:
- x: là vị trí của xe (m).
- u: lực điều khiển tác động lên xe (N).
- g: gia tốc trọng trường (m/s2).
- l: độ dài thanh nối (m).
- ⱺ: độ lệch của con lắc so với vị trí cân bằng (độ).
Phân tích phương trình động lực học của các hệ tác động lên vật ta được các
phương trình sau:
Nhóm thực hiện: Nhóm 5
Trang 23 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Tiếp tục làm gọn lại ta được các hệ sau:
Phương trình trạng thái hệ phi tuyến:
b. Mô phổng trên Matlab và Simulink
Trước hết ta mô tả một hệ con lắc bằng các hàm đã tính tốn để tính ra
các thơng số của vị trí và góc lệch của xe và con lắc. Để thực hiện việc đó ta
đưa các cơng thức vào khối “Fcn” và xếp gon chúng vào trong một khối
“Subsystem”.
Nhóm thực hiện: Nhóm 5
Trang 24 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên
Nhóm 5
Điều khiển tối ưu và bền vững
Hình 20 Tạo một khối mô tả hệ con lắc với biến đầu vào u biến đầu ra là x và teta
Hình 21 Nhập hàm của x đạo hàm bậc hai vào function 1
Nhóm thực hiện: Nhóm 5
Trang 25 trên 40
GVHD: PSG.TS. Đặng Xuân Kiên