industrial robot ii

22
เเเเเ เเเเเเเเเเเเ 5770371321 Industrial Robot II Adaptive Control Project เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ Adaptive Control เเเเเเเเเเเเเเเเเเเเเเ (Three-links Arm Robot) เเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ Newton-Euler Formulation เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเ 45 เเเเ แแแแแแแแแแแแแแแแแแแแแแแแแแแแ เเเเเเ 1 เเเเเเเเเเเเเเเเเ

Upload: arm-jagawarn

Post on 18-Dec-2015

223 views

Category:

Documents


2 download

TRANSCRIPT

Industrial Robot IIAdaptive Control Project Adaptive Control (Three-links Arm Robot) Newton-Euler Formulation 45

1

Adaptive Control Adaptive Control Joint Space Block Scheme 2

2 Block schemem of joint adaptive control Adaptive Control

1

11.2

11.2

11.2

108

108

108

Gain 2

Adaptive Control adaptive control Cartesian Joint Level Jacobian Jacobian

SimulationAdaptive ControlTransformation (Jacobian)

Matlab Jacobian

Simulation 15 (1,1.5) 5 0.5 10 2 ()

3

Simulation Result 4 5

6

6 6 30% 5 %

5770371321

Simulink (Sims) Matlab

M file%Controllerl1=1;l2=1;l3=1;m1=5;m2=5;m3=5;g=9.807;z2=pi/4;PI=[m1 m2 m3 I1 I2 I3]';

%GainV=[1 0;0 1];Kpi=[1 0 0 0 0 0; 0 1 0 0 0 0; 0 0 1 0 0 0; 0 0 0 1 0 0; 0 0 0 0 1 0; 0 0 0 0 0 1];KD=[1 0;0 1]; %Generate Timeseries Via points in a Cartesian Space%5second to the start point and 10 second for circular pathxi=1;yi=1.52;R=0.5;t1=linspace(0,5,5000);xd1=linspace(xi,xi,5000);yd1=linspace(yi+R,yi+R,5000);

%Circle t2=linspace(5,15,10000);zeta=linspace(0,2*pi,10000);xd2=xi+R*cos(zeta+pi/2);yd2=yi+R*sin(zeta+pi/2); Xd=timeseries([xd1 xd2],[t1 t2]);Yd=timeseries([yd1 yd2],[t1 t2]); Xd_d=timeseries([diff([xd1 xd2]) 0]/0.001,[t1 t2]);Yd_d=timeseries([diff([yd1 yd2]) 0]/0.001,[t1 t2]); Xd_dd=timeseries([diff([diff([xd1 xd2]) 0]/0.001) 0]/0.001,[t1 t2]);Yd_dd=timeseries([diff([diff([yd1 yd2]) 0]/0.001) 0]/0.001,[t1 t2]);

Function Real Modelfunction qddd = fcn(q1,q3,qd1,qd3,t1,t3)l1 = 1;l2=1;l3=1;m1 = 10;m2=10;m3=10;I1 = m1*l1^2/2 ;I2 = m2*l2^2/2;I3= m3*l3^2/2;g=9.807 ;q2 = pi/4 ; % Theta 2 = 45 deg %Joint 1 Parameter A1 = I1+I2+I3+(l2^2*m2/4)+(l3^2*m3/4)+(l1*l2*m2*cos(q2))+(2*l1*l2*m3*cos(q2))+(l2*l3*m3*cos(q2+q3));A3 = I3+(l3^2*m3/4)+(l2*l3*m3*cos(q3)/2)+(l1*l3*m3*cos(q2+q3)/2) ;d1 = (3*l2*l3*m3*sin(q3)/2)-(l1*l2*m3*sin(q2))+(l1*l3*m3*sin(q2+q3));d3 = 2*l2*l3*m3*sin(q3) - 2*l1*l2*m3*sin(q2)+l1*l3*m3*sin(q2+q3) ;d6 = (l2*l3*m3*sin(q3))-(l1*l2*m3*sin(q2))+(l1*l3*m3*sin(q2+q3)/2);A4 = (l1*m1*cos(q1)/2)+(l1*cos(q1)*(m2+m3))+(l3*m3*cos(q1+q2+q3)/2)+(l2*m2*cos(q1+q2))+l1*m3*cos(q1+q2) ;%Joint 3 ParameterC1 = I3+(l3^2*m3/4)+(l2*l3*m3*cos(q3)/2)+(l1*l3*m3*cos(q2+q3));C3 = I3+(l3^2*m3/4) ;p1 = (l2*l3*m3*sin(q3))+(l1*l3*m3*sin(q2+q3)/2);p3 = l2*l3*m3*sin(q3) ;p6 = (l2*l3*m3*sin(q3))/2 ;C4 = l3*m3*cos(q1+q2+q3)/2; %EQUATION OF MOTIONB = [A1 A3;C1 C3];C=[d1*qd1+d3*qd3 d6*qd3;p1*qd1+p3*qd3 p6*qd3];G = [A4*g;C4*g];T = [t1;t3] ;Ts = T-G ;qdd = -inv(B)*C*[qd1;qd3]+inv(B)*Ts ;qddd = qdd;

Function Convert to Catesianfunction p = fcn(q1,q3)q2= pi/4;l1=1;l2=1;l3=1;x = l1*cos(q1)+l2*cos(q1+q2+q3)+l3*cos(q1+q2+q3) ;y = l1*sin(q1)+l2*sin(q1+q2+q3)+l3*sin(q1+q2+q3);p = [x;y];

Function Y*Pi (Calculate Y)function y = fcn(q1,q3,qdd1,qdd3,qd1,qd3)g =9.81 ;q2 = pi/4; l1 = 1.2;l2=1.2;l3 =1.2;y11 = l1*g*cos(q1)/2 ;y12 = ((l2^2/4)+(l1*l2*cos(q2)))*qdd1+(l1*cos(q1)+(l2*cos(q1+q2)/2))*g;y13 = ((l3^2/4)+2*l1*l2*cos(q2)+l2*l3*cos(q2+q3))*qdd1;y13 = y13+((l3^2/4)+(l2*l3*cos(q3)/2)+(l1*l3*cos(q2+q3)/2))*qdd3;y13 = y13+((3*l2*l3*sin(q3)/2)-l1*l2*sin(q2)+l1*l3*sin(q2+q3))*qd1^2;y13 = y13+(2*l2*l3*sin(q3)-2*l1*l2*sin(q2)+(l1*l3*sin(q2+q3)))*qd1*qd3;y13 = y13+(l2*l3*sin(q3)-l1*l2*sin(q2)+(l1*l3*sin(q2+q3)/2))*qd3^2 ;y13 = y13+(l1*cos(q1)+(l3*cos(q1+q2+q3)/2)+l1*cos(q1+q2))*g;y14 = qdd1;y15 = qdd1 ;y16 = qdd1+qdd3 ; y21 = 0;y22 = 0;y23 = ((l3^2/4)+(l2*l3*cos(q3)/2)+(l1*l3*cos(q2+q3)/2))*qdd1+(l3^2/4)*qdd3+(l2*l3*sin(q3)+(l1*l3*sin(q2+q3)/2))*qd1^2+(l2*l3*sin(q3)*qd1*qd3)+(l2*l3*sin(q3)/2)*qd3^2 ;y24 = 0;y25 = 0 ;y26 = qdd1+qdd3 ; y = [y11 y12 y13 y14 y15 y16;y21 y22 y23 y24 y25 y26];

Function Jacobian Transform 2 (Position)function qe = fcn(xe,ye,q1,q3)l1=1.2;l2=1.2;l3=1.2;z2=pi/4;Ja=[-l2*sin(q1+z2)-l1*sin(q1)-l3*sin(q1+z2+q3) -l3*sin(q1+z2+q3); l3*cos(q1+z2+q3)+l2*cos(q1+z2)+l1*cos(q1) l3*cos(q1+z2+q3)]; qe = inv(Ja)*[xe;ye];

Function Jacobian Transform (Velocity)function qe = fcn(xe,ye,q1,q3)l1=1.2;l2=1.2;l3=1.2;z2=pi/4;Ja=[-l2*sin(q1+z2)-l1*sin(q1)-l3*sin(q1+z2+q3) -l3*sin(q1+z2+q3); l3*cos(q1+z2+q3)+l2*cos(q1+z2)+l1*cos(q1) l3*cos(q1+z2+q3)]; qe = inv(Ja)*[xe;ye];

Function Jacobian Transform 1 (Acceleration)function qdd = fcn(xdd,ydd,q1,q3,qd1,qd3)q2 = pi/4 ;l1 = 1.2 ; l2 = 1.2 ;l3=1.2 ;J = [-l1*sin(q1)-l2*sin(q1+q2)-l3*sin(q1+q2+q3) -l3*sin(q1+q2);l1*cos(q1)+l2*cos(q1+q2)+l3*cos(q1+q2+q3) l3*cos(q1+q2+q3)] ;Jd = [-l1*cos(q1)*qd1^2-l2*cos(q1+q2)*qd1^2 -l3*cos(q1+q2+q3)*(qd1+qd3)^2;-l1*sin(q1)*qd1^2-l2*sin(q1+q2)*qd1^2 -l3*sin(q1+q2+q3)*(qd1+qd3)^2] ;C = Jd*[qd1;qd3];qdd = inv(J)*([xdd;ydd]-C);