《matlab仿真二自由度机械臂动态仿真ppt课件.pptx》由会员分享,可在线阅读,更多相关《matlab仿真二自由度机械臂动态仿真ppt课件.pptx(18页珍藏版)》请在三一办公上搜索。
1、小组成员:马国锋 梁应海 周凯,机电系统动态仿真,基于二自由度两连杆平面机器人仿真,指导老师:罗丹,厚德博学 追求卓越,两连杆平面机器人系统模型,最为简单的形式两根连杆两个伺服直流电机驱动,内容:1、伺服电机模型仿真 2、伺服电机的PID调节 2、 机构的运动学仿真 4、机构的动力学仿真,直流伺服电机系统仿真,J=0.016kgm2 B=0.1N/ms-1 R=Ra=1 L=La=0.01HK=Kb=Kt=0.04Nm/A,拉普拉斯变化和simulink结合法,空间状态方程来系统建模法,PID控制调节,J=0R=1;L=0.01.016;B=0.1;K=0.04;A=0,1,0;0,-B/J,
2、K/J;0,-K/L,-R/L;B=0,0,1/L;C=1,0,0;D=0;sys=ss(A,B,C,D)SYS=tf(sys)ess=0.01ki=1/dcgain(SYS)/ess则ki=254,求解增益系数,随着kd的增加其稳定时间在减小,超调量也在减小,故仍需要增加kd比例增益系数值,但当大于40时,随着kp增加,稳定时间在减少,但超调量在增加,故需要将kp值设置在30到40之间,通过实验和调节,得到kp最佳值为33,幅值裕度为无穷大,相位穿越频率为无穷大。相位裕度为54.5db,幅值穿越频率为68.3rad/s,系统是稳定。,机械臂进行运动学分析,输入欲得到轨迹,求解其两关节处的角速
3、度和角加速度,function out=robot1(u)%u(1)=w1%u(2)=s1%u(3)=w2%u(4)=s2%u(5)=tor1%u(6)=tor2r1=1;rc1=0.4;r2=1;rc2=0.3;m1=4;m2=2.8;s1=sin(u(2);s12=sin(u(2)+u(4);c1=cos(u(2);c12=cos(u(2)+u(4);a=zeros(2,2);b=zeros(2,1);a(1,1)=r1*s1+r2*s12; a(1,2)=r2*s12; a(2,1)=-r1*c1-r2*c12; a(2,2)=-r2*c12;%b(1)=-(r1*c1+r2*c12)*
4、u(1)2+r2*c12*u(3)2+2*r2*u(1)*u(3)*c12)-u(5);b(2)=-(r1*s1+r2*s12)*u(1)2+r2*s12*u(3)2+2*r2*u(1)*u(3)*s12)-u(6);%out=inv(a)*b,初始条件:如下图,这时, 1=-/3, 2=-2/3,Px=0,Py=0,x坐标不变,y方向轨迹为平滑摆线,角加速度 角速度 角度 关节一的运动参数,角加速度 角速度 角度 关节二的运动参数,机械臂进行动力学仿真,function out=robot(u)%u(1)=w1%u(2)=s1%u(3)=w2%u(4)=s2%u(5)=tor1%u(6)=t
5、or2g=9.8067;r1=0.8;rc1=0.4;r2=0.6;rc2=0.3;m1=4;m2=2.8;mp1=2;s1=sin(u(2);s12=sin(u(2)+u(4);c1=cos(u(2);c12=cos(u(2)+u(4);a=zeros(14,14);b=zeros(14,1);a(1,1)=r1*s1+r2*s12; a(1,2)=r2*s12; a(1,7)=1;a(2,1)=-r1*c1-r2*c12; a(2,2)=-r2*c12; a(2,8)=1;a(3,1)=rc1*s1; a(3,3)=1;a(4,1)=-rc1*c1; a(4,4)=1;a(5,1)=r1*
6、s1+rc2*s12; a(5,2)=rc2*s12; a(5,5)=1a(6,1)=-r1*c1-rc2*c12; a(6,2)=-rc2*c12; a(6,6)=1;a(7,3)=-m1;a(7,9)=1;a(7,11)=1;a(8,4)=-m1;a(8,10)=1;a(8,12)=1;a(9,1)=I1;a(9,11)=r1*s1;a(9,12)=-r1*c1;a(10,5)=-m2;a(10,11)=-1;a(10,13)=1;a(11,6)=-m2;a(11,12)=-1;a(11,14)=1;a(12,2)=I2;a(12,11)=rc2*s12;a(12,12)=-rc2*c12
7、;a(12,13)=(r2-rc2)*s12;a(12,14)=-(r2-rc2)*c12;a(13,7)=mp1;a(13,13)=1;a(14,8)=mp1;a(14,14)=1;,b(1)=-(r1*c1+r2*c12)*u(1)2+r2*c12*u(3)2+2*r2*u(1)*u(3)*c12);b(2)=-(r1*s1+r2*s12)*u(1)2+r2*s12*u(3)2+2*r2*u(1)*u(3)*s12);b(3)=-rc1*c1*u(1)2;b(4)=-rc1*s1*u(1)2;b(5)=-(r1*c1+rc2*c12)*u(1)2+rc2*c12*u(3)2+2*rc2*u
8、(1)*u(3)*c12);b(6)=-(r1*s1+rc2*s12)*u(1)2+rc2*s12*u(3)2+2*rc2*u(1)*u(3)*s12);b(8)=m1*g; b(9)=u(5)-u(6)-m1*g*rc1*c1;b(11)=m2*g;b(12)=u(6);b(14)=-mp1*g;%out=inv(a)*b,当系统输入转矩都为0,且处于下图所示位置时(1=/2, 2=0),在重力作用及轴承等摩擦粘滞阻尼而产生的数度损失系数为2,利用to workspace模块对仿真程序的数据进行保存。保存数组名称为simout,然后让输出的P点X方向坐标为横坐标,Y方向坐标为从坐标画图,并修
9、饰,程序如下:plot(simout(1:60,3),simout(1:60,4),b);hold on;plot(simout(60:115,3),simout(60:115,4),r);hold on;plot(simout(115:171,3),simout(115:171,4),y);hold on;plot(simout(171:201,3),simout(171:201,4),g);grid on;box off;title(P点运动轨迹);xlabel(P点横坐标);ylabel(P点纵坐标);legend(第一次顺时针运动,第一次逆时针运动,第二次顺时针运动,第二次逆时针运动);,当系统输入转矩T1=T2=0,且处于下图所示位置时(1=0, 2=0),在驱动及重力作用及轴承等摩擦粘滞阻尼而产生的数度损失系数为2,当系统输入转矩T1=5、T2=0,且处于上图位置时(1=0, 2=0),在驱动及重力作用及轴承等摩擦粘滞阻尼而产生的数度损失系数为2,当系统输入转矩T1=5、T2=0,且处于上图所示位置时(1=0, 2=0),在驱动及重力作用及轴承等摩擦粘滞阻尼而产生的数度损失系数为2,