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

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

Đ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

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

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ệ bóng đỡ gọi “hệ thống bóng đỡ Ball and Beam” Hệ thống sử dụng thí nghiệm hầu hết trường đại học kỹ thuật giới gần gũi với hệ thống điều khiển thực việc ổ định hệ thống máy bay theo phương ngang hạ cánh tác động hỗn loạn dòng khí Mục đích hệ thống điều khiển vị trí bóng đỡ cho ảnh hưởng từ nhiễu bên thực việc đẩy nhẹ Một điều tất nhiên hệ thống hệ hở, phi tuyến không ổn định Để giải toán không ổn định, ta cần sử dụng phương pháp gần để tuyến tính hoá hệ góc alpha hợp với phương ngang phải tương đối I nhỏ ( −30o ≤ α ≤ 30o ) Nếu góc alpha nằm miền kết thu từ phương pháp xấp xỉ tuyến tính không xác Trong trường hợp bắt buộc ta phải dùng đến phương pháp điều khiển phi tuyến - Ở báo cáo này, đến phần sau: Xây dựng phương trình động lực học phương trình trạng thái cho hệ thống Khảo sát đáp ứng hệ thống vòng hở phương pháp phần mềm Matlab Ứng dụng lệnh phần mềm Matlab để thiết kế điều khiển LQR, LQR có quan sát LQG cho hệ thống Nhận xét kết đáp ứng Giới thiệu giao diện GUI hệ thống • Mô hình toán hệ thống sau: • Các thông số hệ thống: • STT Tham số Khối lượng bóng Bán kính bóng Mômen tính bóng Ký hiệu m R J Chiều dài Khoảng cách Góc quay đỡ L d α Đơn vị Kg m Kg.m m m m rad Góc quay động θ rad Li độ bóng r m Giá trị 0.11 0.005 10−5 0.15 Mục tiêu điều khiển hệ thống trên: STT Tham số cần điều khiển Thời gian độ Giá trị ≤ 3( s) Độ điều chỉnh ≤ 5(%) II XÂY DỰNG PHƯƠNG TRÌNH ĐỘNG LỰC HỌC VÀ PHƯƠNG TRÌNH TRẠNG THÁI: Phương trình động lực học theo định luật II Lagrange: Xét hệ dao động bóng hệ kín hệ quy chiếu toàn cục: Động hệ: 2 2  r•  1 1 J  T = I ball  ÷ + m ( r • ) + I ( α • ) =  + m ÷( r • ) + I ( α • ) 2 2 R  R Thế hệ (Chọn gốc O): V = − mg sin(α ) * x Lực trường hợp 0: Q=0 Phương trình định luật II Lagrange: d  ∂Ti  ∂Ti ∂Vi − + = Qi dt  ∂r • ÷  ∂r ∂r  J   ••  + m ÷r − mg sin α =   (1)  ⇒  R     I α •• − mg cos α * x =  ( )    Với: sin α ; α = d d θ ⇒α• = θ• L L Ta suy ra: d  J  ••  + m ÷r = mg θ L R  Phương trình trạng thái hệ thống: Đến đây, ta xây dựng phương trình trạng thái theo cách phụ thuộc vào quy định tín hiệu đầu vào: • Theo theta:   •    r  0   r  mgd  θ = +  ••    •  r  0   r   L  J + M   ÷   R   • Theo alpha: 0 • r    ••  0 r  =  α•    ••  0 α   0  mg  J   + m÷ R  0 0 0   r  0 0  •      r  0   α  + 0 u   α •  1  0 r   r•  y = [ 0 0]   α   • α  III ĐÁP ƯNG VÒNG HỞ CỦA HỆ THỐNG TRÊN: Dùng hàm truyền liên tục Matlab: Dùng phương trình trạng thái Matlab: Dùng mô phòng Simulink Matlab: a Xây dựng mô hình cho hệ thống Ball and Beam: b Sơ đồ khối hệ thống: c Đáp ứng vòng hở hệ: IV THIẾT KẾ BỘ ĐIỀU KHIỂN LQR CHO HỆ THỐNG TRÊN: Điều khiển LQR số: a Mô hình: Cho hệ thống : Ngõ y ngõ hồi tiếp đo Ngõ z điều khiển Tín hiệu nhiễu w nhiễu hệ thống v nhiễu đo Tín hiệu v w tín hiệu nhiễu trắng Trạng thái ban đầu x(0) giả sử vecto ngẫu nhiên Nhiều giả sử khác định nghĩa trạng thái x(t) ngõ điều khiển z(t) tín hiệu ngẫu nhiên Biểu thức sai số toàn phương: trình ngẫu nhiên Vấn đề điều khiển hệ thống giá trị mong đợi tích phân: Là nhỏ Đây vấn đề điều khiển tuyến tính nhiễu loạn Khoảng thời gian [0 T] xác định thật xem xét trường hợp Tại thời gian t toàn tín hiệu đo khứ y(s) ( s> %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 0;0 m*g/(J/R^2+m) 0;0 0 1;0 0 0]; B=[0 0 1]'; C=[1 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 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 100 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 x2 0 6.998 x3 0 x4 0 0 b= u1 0 x1 x2 x3 x4 c= x1 x2 x3 x4 y1 0 d= u1 y1 Continuous-time model a= x1 0 x1 x2 x3 x4 x2 x3 x4 0.01 0.0003499 1.166e-006 0.06998 0.0003499 0.01 0 b= u1 x1 2.916e-009 x2 1.166e-006 x3 5e-005 x4 0.01 c= x1 x2 x3 x4 y1 0 d= u1 y1 Sampling time: 0.01 Discrete-time model Controllability = Observability = 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 e= 0.9801 + 0.0423i 0.9801 - 0.0423i 0.9576 + 0.0183i 0.9576 - 0.0183i a= x1 x2 x3 x4 x1 0.01 0.0003497 1.131e-006 x2 -7.749e-005 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 0 d= u1 y1 Sampling time: 0.01 Discrete-time model c Đáp ứng: 10 Thiết kế quan sát cho hệ thống: a Mô hình: Xem xét hệ thống quan sát : Hệ thống xét hệ thống nhiễu hệ thống w nhiễu đo v Trạng thái x hệ thống sử dụng trực tiếp có ngõ y đo Xây dựng lại trạng thái với xác tuỳ ý việc kết nối quan sát: ^ Tín hiệu x ước lượng trạng thái x(t) Nó thoả mãn phương trình vi phân trạng thái hệ thống với thành phần thêm vào ma trận độ lợi quan sát cần lựa chọn phù hợp Sai số quan sát 11 L khác ngõ thực tế y(t) ngõ Thành phần thêm vào cung cấp điều chỉnh chủ động sai số quan sát khác b Các lệnh 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): Mô hình: Các lệnh 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 0;0 m*g/(J/R^2+m) 0;0 0 1;0 0 0]; B=[0 0 1]'; C=[1 0 0]; D=[0]; sys=ss(A,B,C,D)% Phuong trinh trang thai a= 13 x1 x2 x3 x4 x1 0 0 x2 x3 x4 0 6.998 0 0 b= u1 x1 x2 x3 x4 c= x1 x2 x3 x4 y1 0 d= u1 y1 Continuous-time model % Tinh K K=lqry(sys,10,1) %u=-Kx 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 0 x2_e -28.56 6.998 x3_e -9.035 0 x4_e -10 0 b= u1 x1_e x2_e x3_e x4_e 0 y1 7.558 28.56 9.035 10 14 c= x1_e x2_e y1_e x1_e x2_e x3_e 0 x4_e 0 x3_e x4_e 0 0 0 0 d= u1 y1 y1_e 0 x1_e 0 x2_e 0 x3_e 0 x4_e 0 Input groups: Name Channels KnownInput Measurement Output groups: Name Channels OutputEstimate 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 0 x2_e -28.56 6.998 x3_e -9.035 0 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 Input groups: Name Channels Measurement Output groups: Name Channels Controls 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 0 0 6.998 0 0 0 0 0 0 -3.162 -3.81 -16.06 7.558 0 -7.558 28.56 0 -28.56 6.998 9.035 0 -9.035 0 10 0 -13.16 -3.81 -16.06 x4_e ? ? ? ? -5.668 x1_e x2_e x3_e x4_e -5.668 b= u1 ? ? ? ? x1_e x2_e 16 x3_e x4_e c= ? ? y1 ? 0 ? x1_e x2_e x3_e x4_e 0 0 d= u1 y1 Continuous-time model T=0:0.01:10; U=0.2*ones(size(T)); [Y,T,X]=lsim(syscl,U,T); plot(T,Y) Đáp ứng: VI NHẬN XÉT: - Đáp ứng cho hệ thống với phương pháp điều khiển điều thoả mãn với yêu cầu đặt đầu thời gian đáp ứng độ vọt lố - Với phương pháp điều khiển LQR, ta đáp ứng hệ thống tốt thời gian đáp ứng sai số vị trí chọn thông số ma trận Q phù hợp đủ lớn Với này, ta chọn ma trận Q có thông số sau: 17 5000  Q=    0 Nếu chọn ma trận Q với thông số nhỏ ta thời gian đáp ứng chậm sai số vị trí đạt tốt - Với phương pháp điều khiển LQR có thêm quan sát, ta thấy đáp ứng đầu có sai khác vị trí xác lập so với phương pháp Và điều đặc biệt sai số vị trí tăng lên khí thời gian đáp ứng dường không đổi Sự đặc biệt có lẽ cách chọn hệ số Nbar cho đ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 tốt tương tự đáp ứng hệ thống sử dụng điều khiển LQR THIẾT KẾ GIAO DIỆN GUIDE CHO HỆ THỐNG: - VII 0 0  100   0 0 0 18 VIII TÀI LIỆU THAM KHÁO: http://www.engin.umich.edu/class/ctms/examples/ball/bbss.htm http://www.mathworks.com/ Matlab ứng dụng điều khiển - Nguyễn Đức Thành Lý thuyết điều khiển đại - Nguyễn Thị Phương Hà http://www.mathworks.com/help/toolbox/control/ref/lqg.html 19 [...]... 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. .. 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 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... [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:... 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ự... 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 =... 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... 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... 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

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