Tải bản đầy đủ (.docx) (19 trang)

Điều khiển hệ thống ball beam dùng lqr và lqg

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 (633.5 KB, 19 trang )

BÁO CÁO TIỂU LUẬN
MÔN: ĐIỀU KHIỂN CÁC CƠ CẤU THỪA HÀNH THÔNG MINH
------------------------o0o-----------------------CHỦ ĐỀ: ĐIỀU KHIỂN HỆ THỐNG BALL – BEAM DÙNG LQR VÀ LQG
GVHD: TS. Trần Việt Hồng
----------------------------------------------------------------------------------------------------------GIỚI THIỆU CHUNG:
Hệ quả bóng và thanh đỡ còn được gọi là “hệ thống căn bằng quả bóng trên
thanh đỡ Ball and Beam”. Hệ thống này được sử dụng như một bài thí nghiệm ở hầu
hết các trường đại học kỹ thuật trên thế giới vì nó khá gần gũi với các hệ thống điều
khiển thực như việc ổ định hệ thống căn bằng máy bay theo phương ngang khi hạ cánh
dưới tác động hỗn loạn của các dòng khí. Mục đích của hệ thống là điều khiển vị trí của
bóng trên thanh đỡ sao cho nó được căn bằng trên thanh dưới các ảnh hưởng từ nhiễu
bên ngoài có thể được thực hiện bằng việc đẩy nhẹ.
Một điều tất nhiên là hệ thống của chúng ta là hệ hở, phi tuyến và không ổn
định. Để giải quyết bài toán không ổn định, ta cần sử dụng phương pháp gần đúng để
tuyến tính hoá hệ. vì vậy góc alpha của thanh hợp với phương ngang phải tương đối

I.

nhỏ (

−30o ≤ α ≤ 30o

). Nếu góc alpha nằm ngoài miền trên thì kết quả thu được từ phương
pháp xấp xỉ tuyến tính sẽ không còn chính xác. Trong trường hợp đó bắt buộc ta phải dùng đến
các phương pháp điều khiển phi tuyến.
-

Ở bài báo cáo này, chúng ta sẽ lần lượt đi đến các phần sau:
Xây dựng phương trình động lực học và phương trình trạng thái cho hệ thống trên.
Khảo sát đáp ứng hệ thống vòng hở bằng các phương pháp trên phần mềm Matlab.
Ứng dụng các lệnh trên phần mềm Matlab để thiết kế bộ điều khiển LQR, LQR có bộ


quan sát và LQG cho hệ thống.
Nhận xét các kết quả đáp ứng.
Giới thiệu về giao diện GUI của hệ thống trên.

1




Mô hình toán của hệ thống trên như sau:



Các thông số của hệ thống:



STT
1
2
3

Tham số
Khối lượng bóng
Bán kính bóng
Mômen quá tính bóng

Ký hiệu
m
R

J

4
5
6

Chiều dài thanh
Khoảng cách
Góc quay của thanh đỡ

L
d

α

Đơn vị
Kg
m
Kg.m.
m
m
m
rad

7

Góc quay của động cơ

θ


rad

8

Li độ của bóng

r

m

Giá trị
0.11
0.005
10−5
1
0.15

Mục tiêu điều khiển của hệ thống trên:
STT
1

Tham số cần điều khiển
Thời gian quá độ

Giá trị
≤ 3( s)

2

Độ quá điều chỉnh


≤ 5(%)

2


II.

XÂY DỰNG PHƯƠNG TRÌNH ĐỘNG LỰC HỌC VÀ PHƯƠNG TRÌNH
TRẠNG THÁI:
1. Phương trình động lực học theo định luật II Lagrange:

Xét hệ dao động quả bóng và thanh là một hệ kín trong hệ quy chiếu toàn cục:
Động năng của hệ:
2

2
2
2
2
 r•  1
1
1
1 J
1

T = I ball  ÷ + m ( r • ) + I thanh ( α • ) =  2 + m ÷( r • ) + I thanh ( α • )
2
2
2 R

2

R 2

Thế năng của hệ (Chọn gốc thế năng tại O):
V = − mg sin(α ) * x
Lực thế trong trường hợp này bằng 0:
Q=0
Phương trình định luật II Lagrange:
d  ∂Ti  ∂Ti ∂Vi

+
= Qi
dt  ∂r • ÷
 ∂r ∂r
 J

 ••
 2 + m ÷r − mg sin α = 0   (1) 
⇒  R

 
 I α •• − mg cos α * x = 0  ( 2 ) 
 thanh

Với:

sin α ; α =

d

d
θ ⇒α• = θ•
L
L

Ta suy ra:
d
 J
 ••
 2 + m ÷r = mg θ
L
R


3


2. Phương trình trạng thái của hệ thống:

Đến đây, ta có thể xây dựng phương trình trạng thái theo 2 cách lần lượt phụ
thuộc vào sự quy định của tín hiệu đầu vào:
• Theo theta:
0





 r  0 1   r 
mgd


θ
=
+
 ••  
 •
 r  0 0   r   L  J + M  
÷
  R 2




Theo alpha:
0

r  
 ••  0
r  = 
α•  
 ••  0
α  
0


1

0
mg
0

 J

 2 + m÷
R

0
0
0
0

0
  r  0
0  •   
  r  0
  α  + 0 u

1  α •  1 
0

r 
 r• 
y = [ 1 0 0 0]  
α 
 •
α 

III.

ĐÁP ƯNG VÒNG HỞ CỦA HỆ THỐNG TRÊN:
1. Dùng hàm truyền liên tục trong Matlab:


4


2. Dùng phương trình trạng thái trong Matlab:

3. Dùng mô phòng Simulink trong Matlab:
a. Xây dựng mô hình cho hệ thống Ball and Beam:

5


b. Sơ đồ khối chính của hệ thống:

c. Đáp ứng vòng hở của hệ:

IV.

THIẾT KẾ BỘ ĐIỀU KHIỂN LQR CHO HỆ THỐNG TRÊN:
1. Điều khiển LQR số:
a. Mô hình:

6


Cho hệ thống :

Ngõ ra y là ngõ ra hồi tiếp và đo được. Ngõ ra z là điều khiển được. Tín
hiệu nhiễu w là nhiễu hệ thống và v là nhiễu đo.
Tín hiệu v và w là những tín hiệu nhiễu trắng. Trạng thái ban đầu của

x(0) được giả sử là một vecto ngẫu nhiên.
Nhiều sự giả sử khác nhau định nghĩa trạng thái x(t) và ngõ ra điều
khiển được z(t) là những tín hiệu ngẫu nhiên. Biểu thức sai số toàn
phương:
là một quá trình ngẫu nhiên.
Vấn đề của điều khiển hệ thống là giá trị mong đợi của tích phân:

Là nhỏ. Đây là vấn đề điều khiển tuyến tính nhiễu loạn. Khoảng thời
gian [0 T] là xác định nhưng thật sự chúng ta xem xét trường hợp
. Tại bất kỳ thời gian t toàn bộ tín hiệu đo được ở quá khứ
y(s) ( s<=t) được giả sử có giá trị cho hồi tiếp. Hình (3.7) làm rõ trường
hợp này.
b. Các lệnh trong Matlab:
>> %Thiet lap phuong trinh trang thai roi rac voi nhung thong so sau:
m = 0.111;
R = 0.015;
g = 9.8;
7


J = 10^-5;
%Cac ma tran cua phuong trinh trang thai
A=[0 1 0 0;0 0 m*g/(J/R^2+m) 0;0 0 0 1;0 0 0 0];
B=[0 0 0 1]';
C=[1 0 0 0];
D=[0];
Ts=1/100;
sys=ss(A,B,C,D)
sysd=c2d(sys,Ts,'zoh')
%Xet tinh quan sat duoc va tinh dieu khien duoc

co=ctrb(A,B);
ob=obsv(A,C);
Controllability=rank(co)
Observability=rank(ob)
%Dieu khien LQR
%Chon cac thong so sau
%R=1,N=0,Q=[1 0 0 0;0 0 0 0;0 0 1 0;0 0 0 0]
[F,G,H,I]=ssdata(sysd);
T=0:0.01:10;
U=0.2*ones(size(T));
Q=[5000 0 0 0;0 0 0 0;0 0 100 0;0 0 0 0];
R=1;
[K,S,e]=dlqr(F,G,Q,R)
syscl=ss(F-G*K,G,H,I,0.01)
[Y,T,X]=lsim(syscl,U,T);
plot(T,Y)
a=
x1 x2 x3 x4
x1
0
1
0
0
x2
0
0 6.998
0
x3
0
0

0
1
x4
0
0
0
0
b=
u1
0
0
0
1

x1
x2
x3
x4
c=

x1 x2 x3 x4
y1 1 0 0 0
d=
u1
y1 0
8


Continuous-time model.
a=

x1
1
0
0
0

x1
x2
x3
x4

x2
x3
x4
0.01 0.0003499 1.166e-006
1 0.06998 0.0003499
0
1
0.01
0
0
1

b=
u1
x1 2.916e-009
x2 1.166e-006
x3
5e-005
x4

0.01
c=
x1 x2 x3 x4
y1 1 0 0 0
d=
u1
y1 0
Sampling time: 0.01
Discrete-time model.
Controllability =
4
Observability =
4
K=
66.4432 37.5248 74.1533 12.0723
S=
1.0e+005 *
2.8238
0.7833
0.8807
0.0708

0.7833
0.3126
0.4222
0.0396

0.8807 0.0708
0.4222 0.0396
0.6888 0.0775

0.0775 0.0125
9


e=
0.9801 + 0.0423i
0.9801 - 0.0423i
0.9576 + 0.0183i
0.9576 - 0.0183i
a=
x1
x2
x3
x4
x1
1
0.01 0.0003497 1.131e-006
x2 -7.749e-005
1
0.06989 0.0003358
x3 -0.003322 -0.001876
0.9963 0.009396
x4
-0.6644
-0.3752
-0.7415
0.8793
b=
u1
x1 2.916e-009

x2 1.166e-006
x3
5e-005
x4
0.01
c=
x1 x2 x3 x4
y1 1 0 0 0
d=
u1
y1 0
Sampling time: 0.01
Discrete-time model.
c. Đáp ứng:

10


2. Thiết kế bộ quan sát cho hệ thống:
a. Mô hình:

Xem xét hệ thống quan sát :

Hệ thống được xét là hệ thống không có nhiễu hệ thống w và nhiễu đo v.
Trạng thái x của hệ thống không thể sử dụng trực tiếp như trên bởi vì chỉ
có ngõ ra y là đo được. Xây dựng lại trạng thái với sự chính xác tuỳ ý
bởi việc kết nối bộ quan sát:
^

Tín hiệu


x
là một ước lượng của trạng thái x(t). Nó thoả mãn phương trình vi

phân trạng thái của hệ thống với thành phần thêm vào
là ma trận độ lợi quan sát cần được lựa chọn phù hợp. Sai số quan sát
11

.L


là sự khác nhau giữa ngõ ra đó được thực tế y(t) và ngõ ra
. Thành phần thêm vào
cung cấp một sự điều
chỉnh chủ động ngay khi sai số của sự quan sát là khác 0.
b. Các lệnh trong Matlab:
>> %Tinh cac cuc cua he thong
poles=eig(syscl)

poles =
0.9801 + 0.0423i
0.9801 - 0.0423i
0.9576 + 0.0183i
0.9576 - 0.0183i
>> %Cac cua cua bo quan sat duoc dat xa ben trai de dat dap ung nhanh hon
%voi P=[-0.3 -0.31 -0.32 -0.33]
P=[-0.3 -0.31 -0.32 -0.33];
>> L=place(A',C',P)'
L=
1.2600

0.5951
0.0178
0.0014
>> %Cac lenh ve dap ung:
Nbar=20;
>> Fce=[F-G*K G*K;zeros(size(F)) F-L*H];
>> Gce=[G*Nbar;zeros(size(G))];
>> Hce=[H zeros(size(H))];
>> Jce=[0];
>> [Y,X]=dlsim(Fce,Gce,Hce,Jce,U);
>> stairs(T,Y)
>> legend('Ball(y)')
title('Dap ung cua he thong')
c. Đáp ứng:

12


V.

THIẾT KẾ BỘ ĐIỀU KHIỂN LQG (LINEAR QUADRATIC GAUSSIAN):
1. Mô hình:

2. Các lệnh trong Matlab:

%Thiet lap phuong trinh trang thai roi rac voi nhung thong so sau:
m = 0.111;
R = 0.015;
g = 9.8;
J = 10^-5;

%Cac ma tran cua phuong trinh trang thai
A=[0 1 0 0;0 0 m*g/(J/R^2+m) 0;0 0 0 1;0 0 0 0];
B=[0 0 0 1]';
C=[1 0 0 0];
D=[0];
sys=ss(A,B,C,D)% Phuong trinh trang thai
a=
13


x1
x2
x3
x4

x1
0
0
0
0

x2 x3 x4
1
0
0
0 6.998
0
0
0
1

0
0
0

b=
u1
x1 0
x2 0
x3 0
x4 1
c=
x1 x2 x3 x4
y1 1 0 0 0
d=
u1
y1 0
Continuous-time model.
% Tinh K
K=lqry(sys,10,1) %u=-Kx min J(u)
K=
3.1623

3.8099 16.0612

5.6677

P=sys(:,[1,1]);
% Buoc tren tach ngo vao dieu khien u va d
%Tinh mo hinh Kalman Kest
Kest=kalman(P,1,0.01)

a=
x1_e x2_e x3_e x4_e
x1_e -7.558
1
0
0
x2_e -28.56
0 6.998
0
x3_e -9.035
0
0
1
x4_e -10
0
0
0
b=
u1
x1_e
x2_e
x3_e
x4_e

0
0
0
1

y1

7.558
28.56
9.035
10
14


c=
x1_e x2_e
y1_e 1 0
x1_e 1 0
x2_e 0 1
x3_e 0 0
x4_e 0 0

x3_e x4_e
0 0
0 0
0 0
1 0
0 1

d=
u1 y1
y1_e 0 0
x1_e 0 0
x2_e 0 0
x3_e 0 0
x4_e 0 0
Input groups:

Name
Channels
KnownInput
1
Measurement
2
Output groups:
Name
Channels
OutputEstimate
1
StateEstimate 2,3,4,5
Continuous-time model.
%Tao bo dieu khien LQG=LQ gain+Kalman filter
F=lqgreg(Kest,K)
a=
x1_e x2_e x3_e x4_e
x1_e -7.558
1
0
0
x2_e -28.56
0 6.998
0
x3_e -9.035
0
0
1
x4_e -13.16 -3.81 -16.06 -5.668
b=

x1_e
x2_e
x3_e
x4_e

y1
7.558
28.56
9.035
10

c=
x1_e

x2_e x3_e

x4_e
15


u1 -3.162 -3.81 -16.06 -5.668
d=
y1
u1 0
Input groups:
Name
Channels
Measurement
1
Output groups:

Name
Channels
Controls
1
Continuous-time model.
%Tao vong hoi tiep duong cho he thong
clsys=feedback(sys,F,+1)
a=
?
?
?
?
x1_e
x2_e
x3_e
x4_e

?
?
?
? x1_e x2_e x3_e
0
1
0
0
0
0
0
0
0 6.998

0
0
0
0
0
0
0
1
0
0
0
0
0
0
0 -3.162 -3.81 -16.06
7.558
0
0
0 -7.558
1
0
28.56
0
0
0 -28.56
0 6.998
9.035
0
0
0 -9.035

0
0
10
0
0
0 -13.16 -3.81 -16.06

x4_e
?
0
?
0
?
0
? -5.668
x1_e
0
x2_e
0
x3_e
1
x4_e -5.668
b=
u1
?
0
?
0
?
0

?
1
x1_e 0
x2_e 0
16


x3_e 0
x4_e 0
c=
?

?

y1

1

?
0

0

? x1_e x2_e x3_e x4_e
0 0 0 0 0

d=
u1
y1 0
Continuous-time model.

T=0:0.01:10;
U=0.2*ones(size(T));
[Y,T,X]=lsim(syscl,U,T);
plot(T,Y)
3. Đáp ứng:

VI.

NHẬN XÉT:
- Đáp ứng cho hệ thống trên với các phương pháp điều khiển điều thoả mãn với
các yêu cầu đặt ra ở đầu bài về thời gian đáp ứng và độ vọt lố.
- Với phương pháp điều khiển LQR, ta được đáp ứng của hệ thống tốt về thời gian
đáp ứng và sai số vị trí khi chọn các thông số của ma trận Q phù hợp và đủ lớn.
Với bài này, ta chọn ma trận Q có các thông số như sau:

17


5000
 0
Q=
 0

 0

0
0

Nếu như chọn ma trận Q với các thông số nhỏ hơn ta sẽ được thời gian đáp ứng
chậm hơn mặc dù sai số về vị trí đạt được là tốt.

- Với phương pháp điều khiển LQR có thêm bộ quan sát, ta thấy đáp ứng đầu ra có
sự sai khác về vị trí xác lập so với phương pháp trên. Và một điều đặc biệt là sai
số về vị trí tăng lên trong khí thời gian đáp ứng dường như không đổi. Sự đặc
biệt này có lẽ là do cách chọn hệ số Nbar cho bộ điều khiển. Ở đây, ta chọn
Nbar = -61.55.
- Với phương pháp điều khiển LQG, ta thấy đáp ứng rất tốt và cũng tương tự như
đáp ứng của hệ thống nếu sử dụng bộ điều khiển LQR.
THIẾT KẾ GIAO DIỆN GUIDE CHO HỆ THỐNG:
-

VII.

0
0

0 100 0 

0 0 0

0
0

18


VIII.

TÀI LIỆU THAM KHÁO:
1. />2. />3. Matlab và ứng dụng trong điều khiển - Nguyễn Đức Thành.
4. Lý thuyết điều khiển hiện đại - Nguyễn Thị Phương Hà.

5. />
19



×