Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 18

BỘ GIÁO DỤC & ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH


KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN
-----------------⸙∆⸙-----------------

BÁO CÁO BÀI TẬP


MÔN HỌC: HỆ THỐNG ĐIỀU KHIỂN TỰ ĐỘNG NÂNG
CAO
ĐỀ TÀI: XÂY DỰNG BỘ ĐIỀU KHIỂN LQG CHO HỆ CON
LẮC NGƯỢC

GVHD: Thầy Trần Đức Thiện


SVTH: Đặng Thanh Huy
MSSV: 20151378

Tp. Hồ Chí Minh tháng 5 năm 2023


CHƯƠNG 1: TỔNG QUAN
1.1 Mô hình hệ con lắc ngược
Xét hệ thống con lắc ngược như hình, hệ thống gồm một con lắc có trục quay
có trục quay được gắn vào xe kéo bởi động cơ điện. Chúng ta chỉ xét bài toán
trong không gian hai chiều, nghĩa là con lắc chỉ di chuyển trong mặt phẳng. Con
lắc không ổn định vì nó luôn ngã xuống trừ khi có lực tác động thích hợp. Gỉa
sử khối lượng tập trung đầu thanh như hình vẽ. Lực điều khiển F tác động vào
xe. Yêu cầu của bài toán là điều khiển vị trí của xe và giữ cho con lắc luôn
thẳng đứng. Bài toán điều khiển hệ con lắc ngược chính là mô hình điều khiển
định hướng tàu vũ trụ khi phóng vào không gian.

Hình 1: Mô hình hệ con lắc ngược


Thông số hệ con lắc ngược
𝑀 = 1.0 (kg): trọng lượng xe.
𝑚 = 0.1 (kg): trọng lượng con lắc.
𝑙 = 1.0 (m): chiều dài con lắc.
𝑢 : lực tác động vào xe [N].
𝑔 : gia tốc trọng trường [m/s2]
𝑥 : vị trí xe [m]
𝜃 : góc giữa con lắc và phương thẳng đứng [rad]

1.2Phương trình toán học mô tả chuyển động con lắc


u+mlsinθ θ̇ 2−mgcosθsinθ
ẍ = (1)
M +m−mco s2 θ

ucosθ− ( M +m ) gsinθ+ mlcosθsinθ θ̇


θ̈ = (2)
mlco s 2 θ−( M +m ) l

CHƯƠNG 2: THIẾT KẾ BỘ ĐIỀU KHIỂN LQR CHO HỆ CON LẮC


NGƯỢC
2.1 Mô hình hóa hệ con lắc ngược
Phương trình trạng thái phi tuyến của hệ con lắc ngược:
Đặt các biến trạng thái: x 1=θ; x 2=θ̇ ; x 3=x; x 4= ẋ
Phương trình trạng thái phi tuyến

[]
x˙1
x˙2
x˙3
=¿ (3)
x˙4

Phương trình trạng thái tuyến tính của hệ con lắc ngược:
Phương trình tuyến tính hóa quanh điểm cân bằng thẳng đứng (θ<1 0° )

[ ][ ][ ] [ ]
0 0
x˙1 1 0 0 x
M +m 1 −1
g 0 0 0
x˙2 Ml x2 Ml
x˙3 = 0 0 0 1 x3 + 0 u (4)
x˙4 −m 1
g 0 0 0 x4
M M
Thay cụ thể thông số hệ con lắc ngược:

[ ][ ][ ] [ ]
x˙1 0 1 0 0 x1 0
x˙2 10.78 0 0 0 x2 −1
x˙3
= 0 0 0 1 x3
+ 0
u (5)
x˙4 −0.98 0 0 0 x4 1

Từ phương trình (5), ta có:

[ ] []
0 1 0 0 0
10.78 0 0 0 −1
A= 0 0 0 1
; B= 0
(6)
−0.98 0 0 0 1

2.2 Thiết kế bộ điều khiển LQR cho hệ con lắc ngược


Từ phương trình (1) và (2) ta xây dựng mô hình con lắc ngược:

Hình 2: Mô hình mô phỏng hệ con lắc ngược


- Các khối Fcn có thông số như sau:
Hình 3: Khối Fcn

Hình 4: Khối Fcn1


Hình 5: Khối Fcn2

Hình 6: Khối Fcn3


- Mô hình điều khiển LQR cho hệ con lắc ngược

Hình 7: Mô hình điều khiển LQR cho hệ con lắc ngược


-Chương trình Matlab tìm thông số của bộ điều khiển LQR

%% Program by Dang Thanh Huy


%% date 13/05/2023
clc;
M=1;
m=0.1;
l=1;
g=9.81;
q11=1;
q33=1;
r1=1;
theta_dot=0;
theta=0.1;
x_dot=0;
x=0;
A=[0 1 0 0;...
10.78 0 0 0;...
0 0 0 1;...
-0.98 0 0 0];
B=[0;-1;0;1];
C=[1 0 0 0;0 0 1 0];
Q=[q11 0 0 0;...
0 1 0 0;...
0 0 q33 0;...
0 0 0 1];
R=r1;
P=care(A,B,Q,R)
K=lqr(A,B,Q,R)
Ta lần lượt khảo sát các giá trị khác nhau của ma trận Q và R:
- Trường hợp 1: q11 = 1; q33 = l; r1 = 1
Luật điều khiển tối ưu:
Ta được độ lợi hồi tiếp trạng thái: K =[-34.3620 –10.7009 -1.0000 –2.4109]
u(t) = −Kx(t) → u(t) = [34.3620 10.7009 -1.0000 -2.4109] x(t)

- Đáp ứng quá độ và năng lượng tiêu tổn của hệ thống

Hình 8: Đáp ứng quá độ và năng lượng tiêu tổn của hệ thống trong trường hợp 1
- Trường hợp 2: q11 = 1; q33= 100; r1 = 1
Ta được độ lợi hồi tiếp trạng thái: K =[-70.136 -22.1091 -10.0000 -11.0514]
Luật điều khiển tối ưu:
u(t) = −Kx(t) → (t) = [70.1356 22.1091 10.0000 11.0514] x(t)
-Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống:

Hình 9: Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống trong trường hợp 2
- Trường hợp 3: q11 = l; q33 = 100; r1 = 10
Ta được độ lợi hồi tiếp trạng thái: K = [-43.6227 -13.6214 -3.1623 -4.6147]
Luật điều khiển tối ưu
u(t)=-Kx(t) → u(t)= [43,6227 13.6214 3.1623 4.6147] x(t)
-Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống:
Hình10:Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống trong trường hợp 3

Nhận xét:
- Tùy theo độ lớn tương đối giữa trọng số Q và R mà hệ thống có đáp ứng quá
độ và năng lượng tiêu tốn khác nhau. Muốn trạng thái đáp ứng nhanh, ta tăng
thành phần Q tương ứng (tăng q11 thì góc lệch được giữ cân bằng tốt, tuy nhiên
vị trí xe dao động khá lớn; tăng 933 thì vị trí xe ít dao động hơn, tuy nhiên năng
lượng tiêu tổn tăng lên), khi ta tăng R, năng lượng tiêu tốn ít hơn tuy nhiên thời
gian đáp ứng quá độ của hệ thống lâu hơn.
- Do đó, với bài báo cáo này nhóm chúng em chọn hệ số q11 – 1; 933 – 100;
r1= 1. Bộ điều khiển LQR có 4 Ị ứng hệ thống tốt chỉ khi trong trường hợp
không có nhiễu, nếu có nhiều hệ thống hoặc nhiều đo lường thì chất lượng điều
khiển bị ảnh hưởng đáng kể.
Mô hình bộ điều khiển LQR cho hệ con lắc ngược trong trường hợp có nhiễu đo
lường:

Hình 11: Mô hình mô phỏng điều khiển LQR cho hệ con lắc ngược khi có nhiễu
Đáp ứng quá độ và năng lượng tiêu tốn của hệ thống khi có nhiều đo lường:
Hình 12: Đáp ứng quá độ và năng lượng tiêu tốn khi có nhiễu đo lường

CHƯƠNG 3:THIẾT KẾ BỘ ĐIỀU KHIỂN LQG CHO HỆ CON LÁC


NGƯỢC
3.1. Tính toán thông số cho bộ điều khiển LQG
Giả thiết:
- Hệ thống hoạt động trong miền tuyến tính.
- Giả sử chỉ đo được góc lệch và vị trí xe.
- Có nhiễu tác động vào hệ thống. Nhiễu đo vị trí xe có phương sai là 0.01;
nhiễu đo góc lệch con lắc có phương sai là 0.001.
→ Dùng lọc Kalman để ước lượng trạng thái và lọc nhiễu.
Dựa theo nguyên lý tách rời: bài toàn tối ưu LQG có thể giải bằng cách giải
riêng bài toán điều khiển tối ưu tiền định và bài toán ước lượng trạng thái tối
ưu:
LQG= LOR+ Kalman
-Chương trình Matlab tìm thông số của bộ điều khiển LQG

%% Program by Dang Thanh Huy


%% date 13/05/2023
clc;
M=1;
m=0.1;
l=1;
g=9.81;
theta_dot_init=0;
theta_init=0.1;
x_dot_init=0;
x_init=0;
A=[0 1 0 0;...
10.78 0 0 0;...
0 0 0 1;...
-0.98 0 0 0];
B=[0;-1;0;1];
C=[1 0 0 0;0 0 1 0];
Q=[1 0 0 0;...
0 1 0 0;...
0 0 100 0;...
0 0 0 1];
R=1;
G=diag([1 1 1 1]);
Qn=diag([0.000001 0.000001 0.000001 0.000001]);
P=care(A,B,Q,R)
K=lqr(A,B,Q,R)
Rn=[0.001 0;0 0.01];
L=lqe(A,G,C,Qn,Rn)

Bộ điều khiển LQR

[ ]
1 0 0 0
0 1 0 0
Q= 0 0 100 0
=>K=[ -70.1356 -22.1091 -10.0000 -11.0514]
0 0 0 0

R=1
Bộ lọc Kalman:
Ta giả sử không có nhiều hệ thống nên chọn Qn rất bé. Hai thành phần của Rn
chính là phương sai của nhiễu đo lường.
Qn=0.000001
[ ]
6.5617 −0.0571

[
0.001
Q= 0
0
0.01 ] 21.5437 −0.1876
=> Q= −0.5713 0.1470
−1.9568 0.0271

3.2. Khảo sát bộ lọc Kalman


Ta có mô hình Simulink khảo sát bộ lọc Kalman:

Hình 13: Mô hình mô phỏng khảo sát bộ lọc kalman


Hình 14: So sánh tín hiệu trước và sau khi qua bộ lọc Kalman cho góc lệch
Hình 15: So sánh tin hiệu trước và sau khi qua bộ lọc Kalman cho vị trí xe
Nhận xét: Tín hiệu sau khi vào bộ lọc Kalman ổn định và bớt nhiễu.
3.3. Mô phỏng điều khiển LQG cho hệ con lắc ngược
Ta có mô hình Simulink điều khiển tối ưu cho hệ con lắc ngược sau khi gắn bộ
lọc Kalman như sau:
Hình 16: Mô hình mô phỏng điều khiển LQG cho hệ con lắc ngược
-Kết quả mô phỏng điều khiển LQG cho hệ con lắc ngược:

-Nhận xét: Bộ lọc Kalman ước lượng trạng thái và lọc nhiễu, nhờ vậy mà đáp
ứng của hệ thống điều khiển LQG tốt hơn LQR trong trường hợp hệ thống có
nhiễu.
TÀI LIỆU THAM KHẢO
[1] TS. Trần Đức Thiện, “Slide bài giảng môn Nhận dạng và Điều khiển hệ
thống”

You might also like