1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

19 1,1K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 571,97 KB

Nội dung

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

Trang 1

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

-I. 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

) 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

Trang 2

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 Tham số Ký hiệu Đơn vị Giá trị

m

5

10−

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

STT Tham số cần điều khiển Giá trị

Trang 3

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

  Thế năng của hệ (Chọn gốc thế năng tại O):

sin( )*

V = −mg α x

Lực thế trong trường hợp này bằng 0:

0

Q=

Phương trình định luật II Lagrange:

( )

2

i

thanh

d

Q

dt r r r

J

m r mg R

α

••

••

∂ ÷ ∂ ∂

 

 

 

Với:

α α; = θ ⇒α•= θ•

Ta suy ra:

2

m r mg

Trang 4

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:

2

0

0 1

0 0

r

R

θ

••

          

• Theo alpha:

2

0

0 0

r

r J

u

α

α α

••

••

 =  + ÷    +

    

[1 0 0 0]

r r y

α α

 

 

 

=

 

 

 

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:

Trang 5

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:

Trang 6

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:

Trang 7

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;

Trang 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];

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

x1 0

x2 0

x3 0

x4 1

c =

x1 x2 x3 x4

y1 1 0 0 0

d =

u1

y1 0

Trang 9

Continuous-time model.

a =

x1 x2 x3 x4

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

x4 0 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.4222 0.6888 0.0775

0.0708 0.0396 0.0775 0.0125

Trang 10

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:

Trang 11

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

là ma trận độ lợi quan sát cần được lựa chọn phù hợp Sai số quan sát

Trang 12

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:

Trang 13

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 =

Trang 14

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

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 y1

x1_e 0 7.558

x2_e 0 28.56

x3_e 0 9.035

x4_e 1 10

Trang 15

c =

x1_e x2_e x3_e x4_e

y1_e 1 0 0 0

x1_e 1 0 0 0

x2_e 0 1 0 0

x3_e 0 0 1 0

x4_e 0 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 =

y1

x1_e 7.558

x2_e 28.56

x3_e 9.035

x4_e 10

c =

x1_e x2_e x3_e x4_e

Trang 16

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 ? 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 x1_e 7.558 0 0 0 -7.558 1 0 x2_e 28.56 0 0 0 -28.56 0 6.998 x3_e 9.035 0 0 0 -9.035 0 0 x4_e 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

Trang 17

x3_e 0

x4_e 0

c =

? ? ? ? x1_e x2_e x3_e x4_e

y1 1 0 0 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:

Trang 18

5000 0 0 0

Q

=

- 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

VII. THIẾT KẾ GIAO DIỆN GUIDE CHO HỆ THỐNG:

Trang 19

VIII. TÀI LIỆU THAM KHÁO:

1. http://www.engin.umich.edu/class/ctms/examples/ball/bbss.htm

2. http://www.mathworks.com/

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. http://www.mathworks.com/help/toolbox/control/ref/lqg.html

Ngày đăng: 28/04/2016, 20:09

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w