您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > matlab仿真--二自由度机械臂动态仿真
小组成员:马国锋梁应海周凯机电系统动态仿真指导老师:罗丹厚德博学追求卓越最为简单的形式两根连杆两个伺服直流电机驱动内容:1、伺服电机模型仿真2、伺服电机的PID调节2、机构的运动学仿真4、机构的动力学仿真()()()()aaaaibdLitRitetetdt()TaTmKit2002()()mnddJtBtTTdtdt0()()bbdetKtdtJ=0.016kg·m2B=0.1N/m·s-1R=Ra=1ΩL=La=0.01HK=Kb=Kt=0.04N·m/A拉普拉斯变化和simulink结合法00s(s)(s)(s)(s)(s)s2s(s)ss(s)s(s)aaaibTamnbbLREETmKIJBTTEK()I()()()o22abnn(s)(s)===i(s)s(s+)(s+B)+s(s+2+)TaTKKTGELRJKK空间状态方程来系统建模法010000()10100010BKeiJJIIKRLLLII()()()()piddetutKetKetdtKdtJ=0R=1;L=0.01.016;B=0.1;K=0.04;;A=[0,1,0;0,-B/J,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,系统是稳定。输入欲得到轨迹,求解其两关节处的角速度和角加速度functionout=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)*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方向轨迹为平滑摆线角加速度角速度角度关节一的运动参数角加速度角速度角度关节二的运动参数functionout=robot(u)%u(1)=w1%u(2)=s1%u(3)=w2%u(4)=s2%u(5)=tor1%u(6)=tor2g=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*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;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(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利用toworkspace模块对仿真程序的数据进行保存。保存数组名称为simout,然后让输出的P点X方向坐标为横坐标,Y方向坐标为从坐标画图,并修饰,程序如下:plot(simout(1:60,3),simout(1:60,4),'b');holdon;plot(simout(60:115,3),simout(60:115,4),'r');holdon;plot(simout(115:171,3),simout(115:171,4),'y');holdon;plot(simout(171:201,3),simout(171:201,4),'g');gridon;boxoff;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
本文标题:matlab仿真--二自由度机械臂动态仿真
链接地址:https://www.777doc.com/doc-1878678 .html