TRƯỜNG ĐẠI HỌC CÔNG NGHỆ KHOA CƠ HỌC KỸ THUẬT VÀ TỰ ĐỘNG HOÁ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
KHOA CƠ HỌC KỸ THUẬT VÀ TỰ ĐỘNG HOÁ
BÁO CÁO CUỐI KÌ
MÔN: NHẬP MÔN ĐIỀU KHIỂN THÔNG MINH
ĐỀ TÀI: HỆ XE CON LẮC NGƯỢC
NHÓM 8
Đỗ Đức Thuận
Đỗ Minh Tiến Trần Văn Thịnh
Phạm Thành Trung
Hồ Thức Nhân
Hà Nội – 2022
Trang 2MỤC LỤC
I: LÍ DO CHỌN ĐỀ TÀI 2
II.GIỚI THIỆU MÔ HÌNH CON LẮC NGƯỢC 2
1.Phần cơ khí 2
2 Phần điện tử 2
3 phần chương trình 2
III Mô hình toán hệ con lắc ngược .3
IV Mô phỏng con lắc ngược sử dụng bộ điều khiển PID 8
1.Thiết kế 8
2.Kết quả mô phỏng 11
V Mô phỏng con lắc ngược sử dụng bộ điều khiển LQR 14
1 Thiết kế 14
2 Kết quả mô phỏng 16
Trang 3I: LÍ DO CHỌN ĐỀ TÀI
Hệ thống con lắc ngược là một hệ thống điều khiển kinh điển , nó được sử dụng trong giảng dạy
và nghiên cứu ở hầu hết các trường đại học trên khắp thế giới , vì lẽ đó bọn em muốn tìm hiểu và làm mô hình mô phỏng cân bằng con lắc ngược
II.GIỚI THIỆU MÔ HÌNH CON LẮC NGƯỢC
1.Phần cơ khí
Gồm 1 cây kim loại (thanh con lắc) quay quanh 1 trục thẳng đứng
Thanh con lắc được gắn gián tiếp vào một xe (xe con lắc) thông qua một encoder để đo
góc Trên chiếc xe có 1 encoder khác để xác định vị trí chiếc xe đang di chuyển Do trong
quá trình vận hành chiếc xe sẽ chạy tới lui với tốc độ cao để lấy mẫu nên phần cơ khí cần
phải được tính toán thiết kế chính xác, chắc chắn nhằm tránh gây nhiễu và hư hỏng trong quá trình vận hành
2 Phần điện tử
Điện tử: gồm cảm biến đo vị trí xe và góc con lắc, mạch khuếch đại công suất
(cầu H) và mạch điều khiển trung tâm Cảm biến đƣợc sử dụng trong đề tài là encoder
quay có độ phân giải cao Tín hiệu từ encoder sẽ đƣợc truyền về bộ điều khiển thông qua
khối eQEP (Enhanced Quadrature Encorder Pulse) của card DSP (bộ điều khiển trung tâm) Tùy thuộc vào tín hiệu đọc đƣợc từ các encoder mà DSP được lập trình để xuất tín hiệu ngõ ra điều khiển động cơ DC qua một mạch khuếch đại công suất (mạch cầu H)
3 phần chương trình
Được mô phỏng bằng matlab simulink , sử dụng 2 cách điều khiển , bộ điều khiển PID và bộ điều khiển LQR
Trang 4III Mô hình toán hệ con lắc ngược
Con lắc có thể quay tròn xung quanh trọng tâm xe góc 3600 Vì vậy có thể chia con lắc điều khiển thành 2 vùng điều khiển như sau: điều khiển swing-up và điều khiển cân bằng Ban đầu thì con lắc nằm đứng, ta tiến hành ñiều khiển Swing-up để nữa con lắc lên vị trí θ [-100 ,100 ] Tại
vị trí này, con lắc không ổn định, nó luôn ngã xuống để con lắc không bị ngã, ta tiếp tục điều khiển cân bằng
Theo phương trinhg Euler-Lagrange, ta có:
d(∂ L
∂ q)
L = hàm Lagrange
T = động năng
V = thế năng
Q= tổng ngoại lực
Đặt q=[x
θ];Q=[F
0]
Trang 5Tổng động năng của hệ thống: T=T pole +T cart (2.2)
Với động năng conlắc :T pole=12mv12+ 12J1˙θ2(2.3)
vàđộn năng xe:T cart= 1
2M v22(2.4)
Trong đó, bình phương vẫn tốc con lắc ngược: v12=˙r 1 x2 +˙r 1 y2 (2.5)
và bình phương vận tốc xe: v22= ˙x2(2.6)
Vận tốc con lắc ngược theo phương x và phương y là:
→ Vận tốc con lắc theo phương x và phương y là:
˙r 1 y =−C1˙θsin θ(2.10)
Từ (2.2) đến (2.10), ta suy ra động năng và thế năng của hệ thống xe con lắc
ngược và có dạng sau:
T= 1
2m(˙r 1x2 +˙r 1 y2 )+ 1
2J1 ˙θ2+1
2M ˙x2
¿12m(˙x2+2C1˙θ ˙xcosθ+C12˙θ2)+ 12J1˙θ2+ 12M ˙x2(2.11)
Và V =mr 1 y g=m C1g cosθ(2.12)
Từ (4.1) → Hàm Euler-Lagrange có dạng sau:
L=T−V =12m(˙x2+2C1˙θ2˙x cosθ+C12˙θ2)+ 12J1˙θ2+ 12M ˙x2(2.13)
Hệ phương trình Euler-Lagrange của hệ xe con lắc ngược:
Trang 6{ ∂ L
d
dt(∂ L
∂ L
∂ x=0
∂ L
∂ ˙θ =m C1˙θcosθ+(J1+mC12) ˙θ
d
dt(∂ L
∂ L
(2.14)
→Phương trình trạng thái hệ thống với ngõ vào là lực F tác động lên chiếc
xe:
Đặt theo dạng ma trận:
M (q) ¨q+V m (q, ˙q)+G(q)=[F
m C1cosθ
J1+m C12 ]
V m (q, ˙q)=[0
0−mC1˙θ2sin θ
−mC1g sin θ]
(2.17)
Ngõ vào điều khiển ở đây đang là lực tác dụng lên xe (cart) Tuy nhiên lực
này thì sẽ gây khó khăn cho ta khi điều chỉnh động cơ Do đó, học viên sẽ
tìm cách quy đổi để ngõ vào là áp cấp cho động cơ
Theo đúng cấu trúc thật sự, ta cần chia động cơ thành 2 phần: “điện” và “cơ”
như hình sau:
Trang 7R m: điện trở động cơ (ohm) (nhà sản xuất cung cấp)
L m: hệ số điện kháng (H) (nhà sản xuất cung cấp)
K b: hằng số phản ñiện (V/(rad/sec)) (nhà sản xuất cung cấp)
K t: hằng số momen (Nm/A) (nhà sản xuất cung cấp)
J m: momen quán tính của rôto (kgm2 ) (nhà sản xuất cung cấp)
C m : hệ số ma sát nhớt (Nm/(rad/sec)) (phải tính toán)
T f : momen ma sát (Nm) (nhà sản xuất cung cấp)
τ1: momen xoắn cản (Nm)
ω: vận tốc motor (rad/s)
τ m: mô men xoắn nội (Nm)
θ m: góc xoay trục ñộng cơ (rad)
Phần điện:
e=L m di
dt +R m i+ E b(với E b =K b ω)
Trang 8¿L m dt di +R m i+K b ω(2.18)
Phần cơ:
J m dω dt =τ m −T f −C m ω−τ1(vớiτ m =K t i)
Công suất điện: P e =E b i(W )(2.20)
Công suất cơ: P m =τ m ω(W )(2.21)
Theo định luật bảo toàn năng lượng: P e =P m →E b i=τ m ω
K b ωi=K t iω→ K b =K t(2.22)
Nếu K b và K t dùng đơn vị MKS ( K bcó ñơn vị V/rad/sec và K t có đơn vị Nm/A) Khi ñó, K b=
K t
(2.18) và (2.19) biến đổi Laplace có dạng sau:
{ (L m s+R m)I(s)+K b Ω(s)=E(s)(2.23)
K t I(s)−(J m s+C m )Ω(s)=T f (s)+τ1(s)(2.24)
Ta giả thiết T f là hằng số và T f =K f sgn(Ω)
K f là hằng số và sgn(Ω)={ 1Ω>0
0Ω=0
Khối động cơ DC được miêu tả ở hình sau:
Mô hình toán toàn hệ thống:
Bởi vì tốc độ điện nhanh hơn tốc độ cơ khí:
e≫ L m di dt →cóthể bỏqua L m dt di →e=R m i+K b ω→i= e−K b ω
R m
τ m =K t i= K t
R m (e−K b ω)= K t
R m e−(K t K b
R m )ω(2.26) Tacó : ˙x= R θ m
˙x= R θ d m
l thay vào(2.26)→ τ m=K t
R m e− K b K t
R m R ˙ x(2.28)
Trang 9τ1=−J m d l
R ¨x−d l(C m
R +
K b K t
R m R)˙x+ R K t
m
e(2.29)
Lực tác dụng lên xe:
F= d l τ1
R =
d l
R[K t
R m e−d l(C m
R +
K b K t
R m R )˙x− J m d l
Đặt k1=d l K t
k2=d l2K t K b
R2R m +
d l2C m
k3=d l2J m
Kết hợp các phương trình (4.15), (4.30), (4.34), ta được hệ phương trình động lực học hệ xe con lắc:
M f (q) ¨q+V mf (q, ˙q) ˙q+G f (q)=[k1e
{M f (q)=[m+M +k3
m C1cosθ
J1+mC12 ]
V mf=[k2
0−mC1˙θ2sin θ
−mC1gsin θ]
IV Mô phỏng con lắc ngược sử dụng bộ điều khiển PID
1.Thiết kế
- Sử dụng matlab để hạ bậc phương trình (2.35) theo 5 biến ngõ vào là teta, teta_dot, x, x_dot và tín hiệu điện áp e
- Ta được :
x_2dot =(C1*J1*m*sin(teta)*teta_dot^3 + J1*e*K1 - J1*K2*x_dot
-g*m*cos(teta)*sin(teta))/(J1*K3 - m*cos(teta)^2 + J1*m + J1*M)
Trang 10teta_2dot =(- C1*m*cos(teta)*sin(teta)*teta_dot^3 - e*K1*cos(teta) + g*K3*sin(teta) +
K2*x_dot*cos(teta) + g*m*sin(teta) + M*g*sin(teta))/(C1*(J1*K3 - m*cos(teta)^2 + J1*m + J1*M)
- Sau đó tiến hành mô phỏng khối hệ thống con lắc ngược trên xe :
Trang 11- Sau đó tiến hành bôc các khối nguyên hàm để hồi tiếp tính hiệu ngõ ra để cho hệ thống tính toá
- Thiết kế bộ điều khiển PID cho xe và con lắc
+ PID xe
Trang 12+ PID con lắc
- Mô hình Simulink của hệ thống :
- Ở đây ta sử dụng thêm khối Stop simulation , nếu hệ thống hoạt động mà làm cho con lắc lệch quá 30 độ so với vị trí cân bằng thì khối Stop simulation sẽ làm cho hệ thống ngưng để tránh mất thời gian
2.Kết quả mô phỏng
- Các thông số để mô phỏng :
Trang 13- Đặt vị trí xe mong muốn là 0.1 và xem kết quả hiển thị :
Trang 14- Đặt vị trí mong muốn là 0.5 và xem đáp ứng của hệ thống
Trang 15- Nhận xét : Sau khi đặt các giá trị ban đầu và chạy hệ thống ta thấy , hệ thống đáp ứng tương đối tốt Không mất quá nhiều thời gian để hệ thống có thể đạt được giá trị mong muốn Như vậy nhóm em đã điều khiển thành công PID hệ xe con lắc ngược
V Mô phỏng con lắc ngược sử dụng bộ điều khiển LQR
1 Thiết kế
Lý thuyết điều khiển điều khiển LQR là một phương pháp điều khiển mạnh để
điều khiển hệ thống tuyến tính được mô tả bằng phương trình trạng thái Kỹ thuật
LQR tạo ra bộ điều khiển vòng kín ổn định với năng lượng cung cấp cho hệ thống
la nhỏ nhất
Cho hệ thống với mô hình:
¨
x= Ax+Bu
Thông thường nếu hệ ổn định thì khi không bị kích thích hệ luôn có xu hướng tiến
về điểm trạng thái cân bằng, tức là điểm mà khi không có tác động từ bên ngoài ( u
=0) hệ sẽ nằm luôn tại đó ( dx dt =0) Như vậy rõ ràng điểm trạng thái cân bằng phải
là nghiệm của phương trình trạng thái : Ax = 0 Và nếu có giả thiết A là ma trận
không suy biến thì hệ tuyến tính dx dt =Ax +Bu luôn chỉ có một điểm cân bằng đó là gốc tọa độ.
Trang 16Xét bài toán tìm bộ điều khiển R tĩnh phản hồi trạng thái để điều khiển đối tượng dx dt =Ax +Bu
Phương pháp thiết kế khác sao cho sau khi bị nhiễu tác động đưa ra
khỏi vị trí cân bằng (hoặc điểm làm việc) đến một trạng thái x0 nào đó bộ điều
khiển R sẽ kéo được hệ từ điểm x0 về hệ tọa độ 0 (hay điểm làm việc cũ) và trong
qua trình trở lại này sự tổn hao năng lượng theo phương trình:
J(u)= 1
T (t¿¿f ) Mx(t f)+1
t0
t f
[ x T(t)Qx(t)+u T(t)Ru(t)]dt¿
Ta xây dựng được mô hình hệ xe con lắc ngược trên matlab:
Thiết kế bằng phản hồi trạng thái R
Trang 17Tiến tới giá trị nhỏ nhất gọi bài toán điều khiển theo LQR Trong matlab ta có thể
cấu trúc lệnh K = lqr(A,B,Q,R) để tính giá trị của K Trong đó 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à tiêu tốn năng
lượng khác nhau Muốn trạng thái đáp ứng nhanh thì tăng thành phần Q tương ứng
muốn giảm năng lượng thì tăng R
Trang 182 Kết quả mô phỏng
Các thông số mô phỏng:
- Đặt vị trí xe mong muốn là 0.1, ta được kết quả hiển thị:
- Đặt vị trí xe mong muốn là 0.5, ta được kết quả hiển thị:
Trang 19Nhận xét : Sau khi đặt các giá trị ban đầu và chạy hệ thống ta thấy , hệ thống đáp ứng tương đối tốt Không mất quá nhiều thời gian để hệ thống có thể đạt được giá trị mong muốn