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

Điều khiển thích nghi đối tượng phi tuyến bằng phản hồi đầu ra636

150 5 0

Đ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

B GIÁO DC VÀ ĐÀO TO TRNG ĐI HC BÁCH KHOA HÀ NI NGUYN VN CHÍ ĐIU KHIN THÍCH NGHI ĐI TNG PHI TUYN BNG PHN HI ĐU RA LUN ÁN TIN S K THUT Hà Ni – Nm 2012 B GIÁO DC VÀ ĐÀO TO TRNG ĐI HC BÁCH KHOA HÀ NI NGUYN VN CHÍ ĐIU KHIN THÍCH NGHI ĐI TNG PHI TUYN BNG PHN HI ĐU RA Chuyên ngành: LÝ THUYT ĐIU KHIN VÀ ĐIU KHIN TI U Mã s: 62.52.60.50 LUN ÁN TIN S K THUT NGI HNG DN KHOA HC: PGS.TS NGUYN DOÃN PHC PGS.TS PHAN XUÂN MINH Hà Ni – Nm 2012 ii LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cu ca riêng tơi da hng dn ca tp th hng dn khoa hc tài liu tham kho trích dn Kt qu nghiên cu trung thc cha công b bt c mt cơng trình khác Nghiên cu sinh NGUYN VN CHÍ iii MỤC LỤC DANH MC CÁC KÝ HIU vii DANH MC CÁC T VIT TT viii DANH MC CÁC BNG BIU ix DANH MC CÁC HÌNH V x LI CM N xiv M ĐU Tính cp thit ca đ tài Mc đích nghiên cu Đi tng phm vi nghiên cu Ý ngha khoa hc thc tin ca đ tài 5 Nhng đóng góp ca lun án 6 B cc ca lun án T Ổ NG QUAN V Ề Đ I Ề U KHI Ể N Ổ N ĐỊ NH H Ệ PHI TU Y Ế N B Ằ NG PH Ả N H Ồ I ĐẦ U R A 1.1 Gii thiu v điu khin n đnh h phi tuyn bng phn hi đu 1.2 Điu khin n đnh phn hi đu tnh 1.3 Điu khin n đnh phn hi đu đng 11 1.3.1 Điu khin phn hi đu bù đng hc phi tuyn 12 1.3.2 Điu khin phn hi đu da quan sát trng thái 13 1.4 Tr ngi điu kin ca toán thit k b điu khin n đnh phn hi đu theo nguyên lý tách 19 1.4.1 Hin tng FET - “Finite escape time” 19 1.4.2 Lp h phi tuyn có hin tng FET 22 1.5 Các điu kin cn lp đi tng n đnh đc bng b điu khin phn hi đu da nguyên lý tách 22 1.5.1 Các điu kin cn 22 1.5.2 Lp đi tng n đnh đc bng phn hi đu theo nguyên lý tách 23 1.6 Kt lun chng 25 QUAN SÁT TR Ạ NG THÁI H Ệ PHI TU Y Ế N V Ớ I TH Ờ I GIAN H Ữ U H Ạ N ĐẶ T TR ƯỚ C 2.1 Gii thiu chung v quan sát trng thái cho h phi tuyn 26 iv 2.1.1 Mt s khái nim đnh ngha 27 2.1.2 Cu trúc chung ca b quan sát trng thái 28 2.2 B quan sát FTO cho h tuyn tính 29 2.2.1 B quan sát FTO cho h tuyn tính tin đnh 29 2.2.2 Quan sát FTO bn vng cho h tuyn tính ngu nhiên 31 2.3 Thit k b quan sát FTO cho h phi tuyn 33 2.3.1 Đt vn đ 33 2.3.2 Xây dng b quan sát FTO bn vng cho lp h phi tuyn dng chun 33 2.3.3 M rng b quan sát FTO cho mt h phi tuyn MISO có th bin đi v dng chun 38 2.3.4 M rng b FTO cho h phi tuyn MIMOcó th bin đi đc v dng chun 40 2.3.5 B quan sát FTO cho mt lp h phi tuyn Lipschitz 45 2.4 Kt lun chng 53 Đ I Ề U KHI Ể N THÍC H NGHI KHÁNG NHI Ễ U VÀ Ổ N ĐỊ NH ISS CHO M Ộ T L Ớ P H Ệ PHI TU Y Ế N CÓ THAM S Ố B Ấ T ĐỊ NH VÀ NHI Ễ U 3.1 Đt vn đ 54 3.2 Điu khin thích nghi cho h phi tuyn có tham s bt đnh 56 3.2.1 H phi tuyn có tham s bt đnh 56 3.2.2 Phng pháp điu khin thích nghi gi đnh rõ cho h phi tuyn có tham s hng bt đnh mt đu vào 57 3.2.3 Điu khin thích nghi gi đnh rõ bng mơ hình ngc cho mt lp h phi tuyn có tham s hng bt đnh nhiu đu vào 59 3.2.3.1 Điu khin tuyn tính hóa xác bng mơ hình ngc trng hp khơng có tham s bt đnh 60 3.2.3.2 Điu khin thích nghi gi đnh rõ da tuyn tính hóa xác mơ hình ngc trng hp có tham s bt đnh 61 3.3 Điu khin tuyn tính hóa xác mơ hình ngc gi đnh rõ trng hp có tham s bt đnh mơ hình nhiu tác đng da ngun tc hiu chnh thích nghi theo nhiu n đnh ISS 64 3.4 Minh ha phng pháp cho toán điu khin bám qu đo cho h c đin t mô t bng h Euler - Lagrange 73 3.4.1 Điu khin bám qu đo cho h robot polar hai bc t 74 3.4.2 Điu khin bám qu đo cho h robot planar hai bc t 79 3.4.3 Điu khin bám qu đo cho h robot cylinder ba bc t 85 v 3.5 Kt lun chng 91 Đ I Ề U KHI Ể N PH Ả N H Ồ I ĐẦ U R A THÍCH NGHI C HO M Ộ T L Ớ P H Ệ PHI TU Y Ế N D Ự A TRÊ N NGUYÊ N LÝ TÁC H 4.1 Điu khin thích nghi phn hi đu da nguyên lý tách s dng quan sát trng thái 93 4.2 Tính tha mãn nguyên lý tách ca b quan sát FTO 95 4.2.1 Tính tha mãn nguyên lý tách ca b quan sát FTO bn vng cho h phi tuyn dng chun có nhiu 96 4.2.2 Tính tha mãn nguyên lý tách ca b quan sát FTO Lipschitz 96 4.3 Điu khin thích nghi phn hi đu da nguyên lý tách cho mt lp h phi tuyn Lipschitz có tham s bt đnh nhiu s dng quan sát FTO 96 4.4 Minh ha cho toán bám qu đo đt cho h tay máy có tham s bt đnh nhiu tác đng lên đu vào 99 4.5 Kt lun chng 104 KẾT LUẬN VÀ KIẾN NGHỊ 105 Kt lun 105 Kin ngh vn đ nghiên cu tip 106 TÀI LIỆU THAM KHẢO 107 DANH MỤC CÁC CÔNG TRÌNH ĐÃ CƠNG BỐ CỦA LUẬN ÁN 113 PHỤ LỤC 114 vi DANH MỤC CÁC KÝ HIỆU x F (.) véc t bin trng thái Ma trn hàm phi tuyn η (t ) Min hp dn ca sai lch bám tín hiu đt Véc t đu ca h thng Véc t đu vào ca h thng Véc t tham s bt đnh Véc t nhiu tác đng lên h thng f (.) , g ( ), h (.) Các véc t hàm phi tuyn exp(.) xˆ , z1 , z2 T ,D i v (t ) Θ n ×n In e O y u θ ( ) Các véc t trng thái quan sát Thi gian quan sát Tín hiu hiu chnh thích nghi Ma trn có phn t có kích thc n × n Ma trn đn v có kích thc n vii DANH MỤC CÁC TỪ VIẾT TẮT FET Finite escape time HGO High gain observer LTI FTO Linear time invariable Bilinear matrix inequality Multi input multi output Muilti input Single Output Peaking Phenomenon Finite Time Observer ALI Analytic Linear Inputs UCO Uniformly Completely Observable Input to State Stability Certainty Equivalence Linear Matrix Inequality Multiple Lyapunov Function Lyapunov Function Control Lyapunov Function Separation Principle Global Asymptotic Stabilization Algebraic Ricatti Equation Degrees of freedom BMI MIMO MISO PE ISS CE LMI MLF LF CLF SP GAS ARE DOF Hin tng thoát vô khong thi gian hu hn B quan sát có h s khuch đi ln H tuyn tính tham s hng Bt đng thc ma trn lng tuyn tính H nhiu vào nhiu H nhiu đu vào mt đu Hin tng đnh nhn B quan sát trng thái thi gian hu hn Các đu vào tuyn tính hình thc Quan sát đc đu hồn tồn n đnh vào trng thái Phng pháp gi đnh rõ Bt đng thc ma trn tuyn tính Đa hàm Lyapunov Hàm Lyapunov Hàm điu khin Lyapunov Nguyên lý tách n đnh tim cn tồn cc Phng trình Ricati đi s Bc t viii DANH MỤC CÁC BẢNG BIỂU Bảng 2.1 Các tham số mô tay máy robot hai khớp đàn hồi [82] 43 Bảng 2.2 Các tham số thời gian trễ mong muốn 43 Bảng 4.1 Tổng kết thuật toán thiết kế điều khiển thích nghi phản hồi đầu thích nghi theo nguyên lý tách dựa kháng nhiễu ổn định ISS cho lớp hệ phi tuyến Lipschitz có tham số bất định nhiễu đầu vào 98 ix DANH MỤC CÁC HÌNH VẼ Hình 1.1 Điều khiển ổn định phản hồi trạng thái (a) điều khiển ổn định phản hồi đầu (b) Hình 1.2 Điều khiển phản hồi đầu tĩnh 10 Hình 1.3 Điều khiển phản hồi đầu động 12 Hình 1.4 Điều khiển phản hồi đầu bù động học phi tuyến 12 Hình 1.5 Điều khiển phản hồi đầu dựa quan sát trạng thái 13 Hình 1.6 Điều khiển phản hồi đầu dựa quan sát trạng thái 14 Hình 1.7 Điều khiển phản hồi đầu thích nghi dựa quan sát trạng thái 14 Mơ ví dụ 1.1, trường hợp ε=0.01, điều kiện đầu x ( ) = ( 0,1.5) , xˆ (0 ) = ( 0, ) 20 Hình 1.8 Mơ ví dụ 1.1, trường hợp ε=0.01, điều kiện đầu x ( ) = ( 0,1.7 ) , xˆ (0 ) = (0, ) 21 Hình 1.9 Hình 1.10 Minh họa miền ổn định dùng phản hồi trạng thái phản hồi đầu dựa nguyên lý tách cho ví dụ 1.1 21 Hình 2.1 Minh họa cấu trúc quan sát Finite – time Engel Kreisselmeirer 29 Hình 2.2 Bộ FTO cho hệ tuyến tính tham số 30 Hình 2.3 Biến trạng thái x , x3 hai trường hợp quan sát thực với T = 0.5s trường hợp khơng có nhiễu 36 Hình 2.4 Biến trạng thái x , x3 hai trường hợp quan sát thực với T = 0.1s trường hợp khơng có nhiễu 37 Hình 2.5 Biến trạng thái x trường hợp quan sát quan sát bền vững với T = 0.1s trường hợp có nhiễu 37 Hình 2.6 Biến trạng thái x trường hợp quan sát quan sát bền vững với T = 0.1s trường hợp có nhiễu 38 Hình 2.7 Bộ quan sát thời gian hữu hạn cho hệ phi tuyến MISO 39 Hình 2.8 Mơ hình tay máy robot hai nối có khớp đàn hồi 42 Hình 2.9 Vị trí góc thực vị trí góc quan sát khớp 44 Hình 2.10 Vận tốc góc thực vận tốc góc quan sát khớp 44 Hình 2.11 Vận tốc motor vận tốc motor quan sát khớp 44 Hình 2.12 Gia tốc motor gia tốc motor quan sát khớp 44 Hình 2.13 Vận tốc thực vận tốc quan sát khớp với T = 0.05s 51 x II Phụ lục chương a Mơ hình tay máy 2DOF polar robot function [sys,x0] = Robot2LPolar(t,x,u,flag,g,mt,phi0,l0) % Model link Robot Planar % Written by: Nguyen Van Chi - PhD in Progress at HUT - VietNam % Define: q1==phi==x1;q2=l==x2 % q1c=x3; q2c =x4 switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes(phi0,l0); case 1, sys=mdlDerivatives(t,x,u,g,mt); Trang 122 case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error([ 'Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes(phi0,l0) % sizes = simsizes; % sizes.NumContStates = 4; % sizes.NumDiscStates = 0; % sizes.NumOutputs = 4; % sizes.NumInputs = 2; % sizes.DirFeedthrough = 0; % sizes.NumSampleTimes = 0; % sys = simsizes(sizes); sys=[4;0;4;2;1;0]; x0 = [phi0;l0;0;0]; str = []; ts = [0 0]; %end mdlInitializeSizes function sys=mdlDerivatives(t,x,u,g,mt) % return state derivatives M=[mt*x(2)^2 0;0 mt]; g11=2*mt*x(2)*x(4)*x(3)+mt*g*x(2)*cos(x(1)); g12=mt*g*sin(x(1))-mt*x(2)*x(3)^2; G=[g11;g12]; sys(1)=x(3); sys(2)=x(4); tempStates=inv(M)*(u-G); sys(3)=tempStates(1,1); sys(4)=tempStates(2,1); % end mdlDerivatives function sys=mdlUpdate(t,x,u) sys = []; % end mdlUpdate function sys=mdlOutputs(t,x,u) sys=[x(1) x(2) x(3) x(4)]; % end mdlOutputs function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1; % Example, set the next hit to be one second later sys = t + sampleTime; % end mdlGetTimeOfNextVarHit function sys=mdlTerminate(t,x,u) sys = []; %end mdlTerminate Trang 123 b Mơ hình tay máy 2DOF planar robot function [sys,x0,str,ts] = Robot2Lplanar(t,x,u,flag,g,m1,m2,l1,l2,q10,q20) switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes(t,x,u,q10,q20); case 1, sys=mdlDerivatives(t,x,u,g,m1,m2,l1,l2); case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error([ 'Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes(t,x,u,q10,q20); sizes = simsizes; sizes.NumContStates = 4; sizes.NumDiscStates = 0; sizes.NumOutputs = 4; sizes.NumInputs = 2; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; sys = simsizes(sizes); x0 = [q10;q20;0;0]; str = []; ts = [0 0]; function sys=mdlDerivatives(t,x,u,g,m1,m2,l1,l2) %m1=1;m2=1.5;l1=1.5;l2=1;g=9.8; Trang 124 c1=cos(x(1)); c2=cos(x(2)); c12=cos(x(1)+x(2)); s2=sin(x(2)); M=[m2*l2^2+2*m2*l1*l2*c2+(m1+m2)*l1^2 m2*l2^2+m2*l1*l2*c2;m2*l2^2+m2*l1*l2*c2 m2^l2^2]; G=[-2*m2*l1*l2*s2*x(4) -m2*l1*l2*s2*x(4);m2*l1*l2*s2*x(3) 0]*[x(3);x(4)]+[m2*l2*g*c12+(m1+m2)*l1*g*c1;m2*l2*g*c12]; sys(1)=x(3); sys(2)=x(4); tempStates=inv(M)*(u-G); sys(3)=tempStates(1,1); sys(4)=tempStates(2,1); function sys=mdlUpdate(t,x,u) sys = []; function sys=mdlOutputs(t,x,u) sys=[x(1) x(2) x(3) x(4)]; function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1; sys = t + sampleTime; function sys=mdlTerminate(t,x,u) sys = []; % end mdlTerminate Trang 125 c Mơ hình tay máy 3DOF Cylinder robot function [sys,x0] = Robot3LCylin(t,x,u,flag,g,m1,m2,J,theta0,h0,r0) % Model Link Cylindrical Arm % Written by: Nguyen Van Chi - PhD in Progress at HUT - VietNam % Define: theta=x1, h = x2, r=x3 % dtheta=x4, dh=x5, dr=x6 switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes(theta0,h0,r0); case 1, sys=mdlDerivatives(t,x,u,g,m1,m2,J); case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error([ 'Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes(theta0,h0,r0) % sizes = simsizes; % sizes.NumContStates = 6; % sizes.NumDiscStates = 0; Trang 126 % % % % % sizes.NumOutputs = 6; sizes.NumInputs = 3; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 0; sys = simsizes(sizes); sys=[6;0;6;3;1;0]; x0 = [theta0;h0;r0;0;0;0]; str = []; ts = [0 0]; %end mdlInitializeSizes function sys=mdlDerivatives(t,x,u,g,m1,m2,J) % return state derivatives M=[J+m2*x(3)^2 0;0 m1+m2 0;0 m2]; G=[2*m2*x(3)*x(6)*x(4);(m1+m2)*g;-m2*x(3)*x(4)^2]; sys(1)=x(4); sys(2)=x(5); sys(3)=x(6); tempStates=inv(M)*(u-G); sys(4)=tempStates(1,1); sys(5)=tempStates(2,1); sys(6)=tempStates(3,1); % end mdlDerivatives function sys=mdlUpdate(t,x,u) sys = []; % end mdlUpdate function sys=mdlOutputs(t,x,u) sys=[x(1) x(2) x(3) x(4) x(5) x(6)]; % end mdlOutputs function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1; % Example, set the next hit to be one second later sys = t + sampleTime; % end mdlGetTimeOfNextVarHit function sys=mdlTerminate(t,x,u) sys = []; %end mdlTerminate Trang 127 d Bộ điều khiển thích nghi cho 2DOF Polar function [sys,x0] = BuISSPolar(t,x,u,flag,p,g,a,E,epsilon) robot switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u,p,g,a,E,epsilon); case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u,p,g,a,epsilon); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error([ 'Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes sys=[1;0;4;12;1;1]; x0 = [0]; str = []; ts = [0 0]; function sys=mdlDerivatives(t,x,u,p,g,a,E,epsilon) phi_d=u(1); dphi_d_dt=u(2); l_d=u(4); dl_d_dt=u(5); phi=u(7); dphi_dt=u(8); d2phi_dt=u(9); l=u(10); dl_dt=u(11); d2l_dt=u(12); Trang 128 %E=1; d11=l^2*d2phi_dt+2*l*dl_dt*dphi_dt+g*l*cos(phi); d12=d2l_dt+g*sin(phi)-l*dphi_dt^2; D=[d11;d12]; M_estima=[p*l^2 0;0 p]; B=[0 0;0 0;inv(M_estima)]; K11=a;K12=a; K1=[K11*epsilon 0;0 K12*epsilon]; K2=[sqrt((K11+1)*K11) 0;0 sqrt((K12+1)*K12)]; P=[2*K1*K2 K1;K1 K2]; error=[phi_d-phi;l_d-l]; derivative_error=[dphi_d_dt-dphi_dt;dl_d_dt-dl_dt]; X=[error;derivative_error]; sys= (1/E)*D'* B'*P*X; function sys=mdlUpdate(t,x,u) sys = []; function sys=mdlOutputs(t,x,u,p,g,a,epsilon) phi_d=u(1); dphi_d_dt=u(2); d2phi_d_dt=u(3); l_d=u(4); dl_d_dt=u(5); d2l_d_dt=u(6); phi=u(7); dphi_dt=u(8); d2phi_dt=u(9); l=u(10); dl_dt=u(11); d2l_dt=u(12); d11=l^2*d2phi_dt+2*l*dl_dt*dphi_dt+g*l*cos(phi); d12=d2l_dt+g*sin(phi)-l*dphi_dt^2; D=[d11;d12]; vnhieu=D*x; M_estima=[p*l^2 0;0 p]; g11=2*p*l*dl_dt*dphi_dt+p*g*l*cos(phi); g12=p*g*sin(phi)-p*l*dphi_dt^2; G_estima=[g11;g12]; K11=a;K12=a; K1=[K11*epsilon 0;0 K12*epsilon]; K2=[sqrt((K11+1)*K11) 0;0 sqrt((K12+1)*K12)]; % ============================ error=[phi_d-phi;l_d-l]; derivative_error=[dphi_d_dt-dphi_dt;dl_d_dt-dl_dt]; A=[d2phi_d_dt;d2l_d_dt]+K1*error+K2*derivative_error; sys=[M_estima*A+G_estima;vnhieu]; function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1; sys = t + sampleTime; function sys=mdlTerminate(t,x,u) sys = []; Trang 129 e Bộ điều khiển thích nghi cho 2DOF Planar robot function [sys,x0] = BuISSPlanar(t,x,u,flag,p,g,m1,l1,l2,a,E,epsilon) switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u,p,g,m1,l1,l2,a,E,epsilon); case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u,p,g,m1,l1,l2,a,E,epsilon); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error([ 'Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes sys=[1;0;4;12;1;1]; x0 = [0]; str = []; ts = [0 0]; function sys=mdlDerivatives(t,x,u,p,g,m1,l1,l2,a,E,epsilon) q1_d=u(1); dq1_d=u(2);d2q1_d=u(3); q2_d=u(4); dq2_d=u(5);d2q2_d=u(6); q1=u(7); dq1=u(8);d2q1=u(9); q2=u(10); dq2=u(11);d2q2=u(12); c1=cos(q1); c2=cos(q2); c12=cos(q1+q2); Trang 130 s2=sin(q2); d11=(l2^2+2*l1*l2*c2+l1^2)*d2q1+(l2^2+l1*l2*c2)*d2q2(2*l1*l2*s2*dq1*dq2+l1*l2*s2*dq2^2)+(l2*g*c12+l1*g*c1); d12=(l2^2+l1*l2*c2)*d2q1+l2^2*d2q2+l1*l2*s2*dq1^2+l2*g*c12; D=[d11;d12]; M_estima=[p*l2^2+2*p*l1*l2*c2+(m1+p)*l1^2 p*l2^2+p*l1*l2*c2;p*l2^2+p*l1*l2*c2 p^l2^2]; B=[0 0;0 0;inv(M_estima)]; K1=[a*epsilon 0;0 a*epsilon]; K2=[sqrt((a+1)*a) 0;0 sqrt((a+1)*a)]; P=[2*K1*K2 K1;K1 K2]; error=[q1_d-q1;q2_d-q2]; derivative_error=[dq1_d-dq1;dq2_d-dq2]; X=[error;derivative_error]; sys= (1/E)*D'* B'*P*X; function sys=mdlUpdate(t,x,u) sys = []; function sys=mdlOutputs(t,x,u,p,g,m1,l1,l2,a,E,epsilon) q1_d=u(1); dq1_d=u(2);d2q1_d=u(3); q2_d=u(4); dq2_d=u(5);d2q2_d=u(6); q1=u(7); dq1=u(8);d2q1=u(9); q2=u(10); dq2=u(11);d2q2=u(12); c1=cos(q1); c2=cos(q2); c12=cos(q1+q2); s2=sin(q2); d11=(l2^2+2*l1*l2*c2+l1^2)*d2q1+(l2^2+l1*l2*c2)*d2q2(2*l1*l2*s2*dq1*dq2+l1*l2*s2*dq2^2)+(l2*g*c12+l1*g*cos(q1)); d12=(l2^2+l1*l2*c2)*d2q1+l2^2*d2q2+l1*l2*s2*dq1^2+l2*g*c12; D=[d11;d12]; vnhieu=D*x; M_estima=[p*l2^2+2*p*l1*l2*c2+(m1+p)*l1^2 p*l2^2+p*l1*l2*c2;p*l2^2+p*l1*l2*c2 p^l2^2]; G_estima=[-2*p*l1*l2*s2*dq2 -p*l1*l2*s2*dq2;p*l1*l2*s2*dq1 0]*[dq1;dq2]+[p*l2*g*c12+(m1+p)*l1*g*c1;p*l2*g*c12]; K1=[a*epsilon 0;0 a*epsilon]; K2=[sqrt((a+1)*a) 0;0 sqrt((a+1)*a)]; % ============================ error=[q1_d-q1;q2_d-q2]; derivative_error=[dq1_d-dq1;dq2_d-dq2]; A=[d2q1_d;d2q2_d]+K1*error+K2*derivative_error; sys=[M_estima*A+G_estima;vnhieu]; function sys=mdlGetTimeOfNextVarHit(t,x,u) Trang 131 sampleTime = 1; sys = t + sampleTime; function sys=mdlTerminate(t,x,u) sys = []; f Bộ điều khiển thích nghi cho 3DOF cylinder function [sys,x0] = BuISSCilinder(t,x,u,flag,p,g,m1,J,a,E,epsilon) robot switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u,p,g,m1,J,a,E,epsilon); case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u,p,g,m1,J,a,E,epsilon); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error([ 'Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes Trang 132 sys=[1;0;6;18;1;1]; x0 = [0]; str = []; ts = [0 0]; function sys=mdlDerivatives(t,x,u,p,g,m1,J,a,E,epsilon) theta_d=u(1); dtheta_d=u(2);d2theta_d=u(3); h_d=u(4); dh_d=u(5);d2h_d=u(6); r_d=u(7); dr_d=u(8);d2r_d=u(9); theta=u(10); dtheta=u(11);d2theta=u(12); h=u(13);dh=u(14);d2h=u(15); r=u(16);dr=u(17);d2r=u(18); d11=r^2*d2theta+2*r*dr*dtheta; d12=d2h+g; d13=d2r-r*dtheta^2; D=[d11;d12;d13]; M_estima=[J+p*r^2 0;0 m1+p 0;0 p]; B=[0 0;0 0;0 0;inv(M_estima)]; K1=[a*epsilon 0;0 a*epsilon 0;0 a*epsilon]; K2=[sqrt((a+1)*a) 0;0 sqrt((a+1)*a) 0;0 sqrt((a+1)*a)]; P=[2*K1*K2 K1;K1 K2]; error=[theta_d-theta;h_d-h;r_d-r]; derivative_error=[dtheta_d-dtheta;dh_d-dh;dr_d-dr]; X=[error;derivative_error]; sys= (1/E)*D'* B'*P*X; function sys=mdlUpdate(t,x,u) sys = []; function sys=mdlOutputs(t,x,u,p,g,m1,J,a,E,epsilon) theta_d=u(1); dtheta_d=u(2);d2theta_d=u(3); h_d=u(4); dh_d=u(5);d2h_d=u(6); r_d=u(7); dr_d=u(8);d2r_d=u(9); theta=u(10); dtheta=u(11);d2theta=u(12); h=u(13);dh=u(14);d2h=u(15); r=u(16);dr=u(17);d2r=u(18); d11=r^2*d2theta+2*r*dr*dtheta; d12=d2h+g; d13=d2r-r*dtheta^2; D=[d11;d12;d13]; vnhieu=D*x; M_estima=[J+p*r^2 0;0 m1+p 0;0 p]; G_estima=[2*p*r*dr*dtheta;(m1+p)*g;-p*r*dtheta^2]; Trang 133 K1=[a*epsilon 0;0 a*epsilon 0;0 a*epsilon]; K2=[sqrt((a+1)*a) 0;0 sqrt((a+1)*a) 0;0 sqrt((a+1)*a)]; % ============================ error=[theta_d-theta;h_d-h;r_d-r]; derivative_error=[dtheta_d-dtheta;dh_d-dh;dr_d-dr]; A=[d2theta_d;d2h_d;d2r_d]+K1*error+K2*derivative_error; sys=[M_estima*A+G_estima;vnhieu]; function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1; sys = t + sampleTime; function sys=mdlTerminate(t,x,u) sys = []; III Phụ lục chương Sơ đồ mô Matlab/Simulink (liên hệ với tác giả luận án) Các chương trình viết M Files a Mơ hình tay máy robot khớp - giống phần phụ lục chương b Bộ điều khiển thích nghi BuIS.m cho robot Planar 2DOF function [sys,x0,str,ts] =BuISS(t,x,u,flag,p,g,m1,l1,l2,a,E,epsilon) switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes(t,x,u); case 1, sys=mdlDerivatives(t,x,u,p,g,m1,l1,l2,a,E,epsilon); Trang 134 case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u,p,g,m1,l1,l2,a,E,epsilon); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error([ 'Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes(t,x,u); sizes = simsizes; sizes.NumContStates = 1; sizes.NumDiscStates = 0; sizes.NumOutputs = 4; sizes.NumInputs = 12; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; sys = simsizes(sizes); x0 = [0]; str = []; ts = [0 0]; function sys=mdlDerivatives(t,x,u,p,g,m1,l1,l2,a,E,epsilon) q1_d=u(1); dq1_d=u(2);d2q1_d=u(3); q2_d=u(4); dq2_d=u(5);d2q2_d=u(6); q1=u(7); dq1=u(8);d2q1=u(9); q2=u(10); dq2=u(11);d2q2=u(12); c1=cos(q1); c2=cos(q2); c12=cos(q1+q2); s2=sin(q2); d11=(l2^2+2*l1*l2*c2+l1^2)*d2q1+(l2^2+l1*l2*c2)*d2q2(2*l1*l2*s2*dq1*dq2+l1*l2*s2*dq2^2)+(l2*g*c12+l1*g*c1); d12=(l2^2+l1*l2*c2)*d2q1+l2^2*d2q2+l1*l2*s2*dq1^2+l2*g*c12; D=[d11;d12]; M_estima=[p*l2^2+2*p*l1*l2*c2+(m1+p)*l1^2 p*l2^2+p*l1*l2*c2;p*l2^2+p*l1*l2*c2 p^l2^2]; B=[0 0;0 0;inv(M_estima)]; K1=[a*epsilon 0;0 a*epsilon]; % sua chut K2=[sqrt((a+1)*a) 0;0 sqrt((a+1)*a)]; P=[2*K1*K2 K1;K1 K2]; error=[q1_d-q1;q2_d-q2]; derivative_error=[dq1_d-dq1;dq2_d-dq2]; X=[error;derivative_error]; sys= (1/E)*D'* B'*P*X; function sys=mdlUpdate(t,x,u) sys = []; function sys=mdlOutputs(t,x,u,p,g,m1,l1,l2,a,E,epsilon) q1_d=u(1); dq1_d=u(2);d2q1_d=u(3); q2_d=u(4); dq2_d=u(5);d2q2_d=u(6); q1=u(7); dq1=u(8);d2q1=u(9); q2=u(10); dq2=u(11);d2q2=u(12); c1=cos(q1); c2=cos(q2); Trang 135 c12=cos(q1+q2); s2=sin(q2); d11=(l2^2+2*l1*l2*c2+l1^2)*d2q1+(l2^2+l1*l2*c2)*d2q2(2*l1*l2*s2*dq1*dq2+l1*l2*s2*dq2^2)+(l2*g*c12+l1*g*cos(q1)); d12=(l2^2+l1*l2*c2)*d2q1+l2^2*d2q2+l1*l2*s2*dq1^2+l2*g*c12; D=[d11;d12]; vnhieu=D*x; M_estima=[p*l2^2+2*p*l1*l2*c2+(m1+p)*l1^2 p*l2^2+p*l1*l2*c2;p*l2^2+p*l1*l2*c2 p^l2^2]; G_estima=[-2*p*l1*l2*s2*dq2 -p*l1*l2*s2*dq2;p*l1*l2*s2*dq1 0]*[dq1;dq2]+[p*l2*g*c12+(m1+p)*l1*g*c1;p*l2*g*c12]; K1=[a*epsilon 0;0 a*epsilon]; % sua chut K2=[sqrt((a+1)*a) 0;0 sqrt((a+1)*a)]; % ============================ error=[q1_d-q1;q2_d-q2]; derivative_error=[dq1_d-dq1;dq2_d-dq2]; A=[d2q1_d;d2q2_d]+K1*error+K2*derivative_error; sys=[M_estima*A+G_estima;vnhieu]; function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1; sys = t + sampleTime; function sys=mdlTerminate(t,x,u) sys = []; % end mdlTerminate c Bộ quan sát FTO để quan sát vận tốc cho tay máy Planar 2DOF - chương Trang 136 ... Hình 1.2 Điều khiển phản hồi đầu tĩnh 10 Hình 1.3 Điều khiển phản hồi đầu động 12 Hình 1.4 Điều khiển phản hồi đầu bù động học phi tuyến 12 Hình 1.5 Điều khiển phản hồi đầu dựa... đu Đối tượng điều khiển y Đối tượng điều khiển x 1, x , , xn u Bộ điều khiển y x1 , x2 , , xn u x (a) Bộ điều khiển (b) Hình 1.1 Điều khiển ổn định phản hồi trạng thái (a) điều khiển ổn định phản. .. Bộ điều khiển thích nghi giả định rõ cho hệ phi tuyến bất định đầu vào 58 Hình 3.2 Bộ điều khiển thích nghi giả định rõ cho hệ phi tuyến bất định 59 Hình 3.3 Bộ điều khiển thích

Ngày đăng: 12/03/2022, 02:51

Xem thêm: