Tải bản đầy đủ (.pdf) (40 trang)

Lời giải các bài tập Matlab LQR và LQG nhóm 5 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 (3.35 MB, 40 trang )

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


×