您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > matlab仿真--二自由度机械臂动态仿真
机电系统的动力与运动的计算机仿真-----------基于二自由度两连杆平面机器人系统仿真马国锋梁应海周凯(武汉理工大学机电工程学院机械工程及自动化系)摘要:平面两连杆机器人(机械臂)是一种简单的两自由度的机械装置,其具有一定的复杂动力特性,对其的简单研究能够对机电系统和机器人有更好的学习了解和认识。利用matlab仿真的快捷,简洁,以及可视化操作可以使其研究更方便,以及利用PID调节,使系统具有更好的时间响应性能。关键词:matlab仿真PID控制调节平面机器人伺服直流电动机Abstract:ThePlanartwo-linkrobot(RobotArm)isasimplemechanicaldeviceoftwodegreesoffreedom,ithascomplexdynamiccharacteristics.WecangainbetterlearningandunderstandingforMechanicalandElectricalsystemsandRobotsonlythroughstudyingitsimply!UsingthesuperiorperformanceofMATLAB,wecanmaketheresearchmoreconvenient,besides,wealsocanmakethesystemhavebetterperformanceinTimeResponsethroughthePIDcorrection.0、引言随着科学技术的发展,利用计算机对控制系统进行仿真和分析,是研究控制系统的重要方法。对控制系统进行仿真,首先应该建立系统模型,然后根据系统模型进行仿真,并充分的利用计算机作为工具进行数值求解。Matlab是目前应用最为广泛的仿真语言之一。该软件具有以下特点:数值计算功能强大;编程环简单;数据可视化功能强;丰富的程序工具箱;可扩展性能强等。Simulink是MATLAB下用于建立系统框图和仿真的环境。Simulink环境仿真的优点是:框图搭建方便、仿真参数可以随时修改、可实现完全可视化编程。并且可以再仿真过程中进行系统的相关调节,利用PID校正或相位滞后校正使系统具有更优的性能。本文就从系统仿真和调节以及运动过程的可视化进行研究说明1、二自由度两连杆平面机器人系统模型介绍下图为一个两连杆平面机器人的三维示意图以及简单的平面示意图这个例子在机器人学文献中经常能够遇到,它为平面机器人最为简单的形式,由两根连杆和两个由电机(伺服直流电机)驱动的两个转动铰所组成,其具有一定的复杂动力特性,本文就将对这个系统的伺服电机进行仿真与调节,并且导出该机构的动力方程,其动力学仿真就要求再有两个输入参数下的运动问题。2、直流伺服电机系统仿真2.1直流电机的物理模型由于直流电动机具有良好的启动性能和调速性能,而机械臂由于调速要求高,正反转和启制动频繁,所以仍选用直流伺服电机来驱动。右图为直流伺服电机线路示意图。图中,Ra、La分别为电枢绕组的电阻和电感,ia为电枢电流,Rf,Lf分别为励磁电路的电阻和电感,if为励磁电流,ef为磁场励磁电压;ei为加到电枢上的电压,而eb为电枢中的反电动势;θ0为电动机的轴的角位移,Tm为电动机产生的转矩,Tn为负载;J、B分别为电动机和负载折算到电动机轴上的等效转动惯量和粘性阻尼系数。2.2直流电机的数学模型由控制输入电压ei(t)开始,系统的因果方程式为:电枢电压方程:()()()()aaaaibdLitRitetetdt电动机转矩方程:()TaTmKit转矩平衡方程:2002()()mnddJtBtTTdtdt电动机的反电动势正比于速度:0()()bbdetKtdt其中bK-------反电动势常数根据本系统,查找相关资料以及计算,设置其中电机的参数如下:J=0.016kg·m2;B=0.1N/m·s-1;K=Kb=Kt=0.04N·m/A;R=Ra=1Ω;L=La=0.01H;现利用两种方法来进行模型的建立:(1)、拉普拉斯变化和simulink相结合进行建立对上面四个方程进行变换如下:00s(s)(s)(s(s)(s)s2s(s)ss(s)s(s)aaaibTamnbbLREETmKIJBTTEK()I()()()则建立系统方框图如下:利用simulink进行建模当负载转矩为0时,由上式消去中间变量,可以得到电枢控制伺服电机以()iet为输入量、0()t为输出量的传递函数,即:o22abnn(s)(s)===i(s)s(s+)(s+B)+s(s+2+)TaTKKTGELRJKK若得到输出为角速度的传递函数时,由角速度为角度的微分,即需在上述传递函数中乘以S即可。将设置的参数带入方程中既可以得到系统传递函数方程式:当输出为角度时:250---------------------------------S(s^2+106.3s+635)当输出为角速度时:250------------------------s^2+106.3s+635(2)、可以利用空间状态方程来进行系统的建模由系统的数学模型可以得到下面的矩阵关系式:010000()10100010BKeiJJIIKRLLLIImatlab编程,并利用sys=ss(A,B,C,D)指令进行编程,程序如下:输出为角速度模型程序输出为角度模型程序得到传递函数如下:3直流伺服电机系统PID控制调节校正3.1PID简介PID控制是将设定值r(t)与输出反馈值C(t)的偏差e(t)=r(t)-C(t),按比例、积分、微分运算后,并通过线性组合构成控制量u(t),对控制对象进行控制,如图所示,所以简称为P(比例)、I(积分)、D(微分)控制器。PID控制器的结构方程()()()()piddetutKetKetdtKdt式中,e是偏差量,即输出量与设定值之间的差值;u是控制量,作用于被控制对象并引起输出量的变化;Kp是比例增益系数,其控制效果是减少响应曲线的上升时间及静态误差,但不能消除静态误差;Ki是积分部分的增益系数,控制效果是消除稳态误差;Kd是微分部分的增益系数,其控制效果是增强系统的稳定性,减少过渡时间过程,降低超调量。在应用过程中,可能会用PI、PD或PID控制,本系统只利用PI控制器进行校正优化。3.2simulink动态仿真以及系统校正本文所述电机系统要求在电压输入端输入单位阶跃电压(1V)后,直流伺服电机的转轴应能输出稳定的转角,且应同时满足下列要求:系统调整时间ts﹤0.1s,最大超调量Mp﹤15﹪,系统稳态误差ess=1%。(1)系统阶跃输入响应仿真在Simulink中建立模型如下,设置仿真环境的参数。运行后显示如图所示闭环系统对单位阶跃输入的响应,即直流伺服电机输入单位阶跃电压时,电机的输出转角速度曲线。并观察其频率响应。由得出的系统方程将仿真系统进行简化得从而得到的单位阶跃响应为:由但为阶跃响应可知,其不能满足系统的要求。现观察频域响应:通过观察,系统的时间响应明显不满足要求,而其频率性能良好,故需要通过PID调节进行控制,使其具有良好的阶跃响应性能。(2)PID调节Ⅰ.建立PID调节模型,如下图Ⅱ并利用程序进行系统阶跃响应:[a,b,c,d]=linmod2('a11');%a11是你绘制的框图名,可任意命名sys=ss(a,b,c,d);SYS=tf(sys)step(sys)Ⅲ首先,针对其稳态误差进行积分增益系数的确定,系统对阶跃响应的稳态误差为:利用matlab编程如下:J=0.016;B=0.1;K=0.04;R=1;L=0.01;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当kp=1,ki=254,kd=0时其仿真如下Ⅳ现对kp进行调节对kp取值如下并进行观察单位阶跃响应曲线:Kp=10,ki=253,kd=0Kp=20,ki=253,kd=0发现在随着kd的增加其稳定时间在减小,超调量也在减小,故仍需要增加kd比例增益系数值Kp=30,ki=253,kd=0Kp=40,ki=253,kd=0通过观察,当大于40时,随着kp增加,稳定时间在减少,但超调量在增加,故需要将kp值设置在30到40之间,通过以上分析可知,随着kp值的增加,其稳定时间在减小,但超调量先减小,后增加故对30和40之间进行试验,通过实验和调节,得到kp最佳值为33,这是的响应曲线为:系统的上升时间为0.02s,超调量为14.4%,稳定时间为0.0703,满足系统时域要求。Ⅴ分析其频率特性,观察其频域响应,其bode图如下:通过分析知其幅值裕度为无穷大,相位穿越频率为无穷大。相位裕度为54.5,幅值穿越频率为68.3rad/s,系统是稳定。对系统不再进行微分校正,通过PD校正,可知系统的时域和频域响应性能都比较好4、对利用matlab对机械臂进行动力学分析(1)模型的简介建立的模型如下:为方便对其进行分析,做一下假设:连杆的密度是均匀的,r1=0.8,rc1=0.4,r2=0.6,rc2=0.3,连杆质量m1=4kg,m2=2.8kg,并计算得到两连杆各自质心的转动惯量分别为:I1=0.16kg·m2,I2=0.063kg·m2,其所承受重量为mp1=2kg。(2)运动学方程的建立其中以第一铰链点为坐标原点,则其手部点的矢量方程为:Rp1=R1+R2需要注意的是下面所给的角度中,都是相对于前一连杆的方位,而不是相对于整体坐标系X轴的,这种习惯在机器人学中很普遍,其源于安装在及其人手臂的传感器所测得的是连杆的相对转角,而不是绝对转角。对应的标量方程为:对上式进行求导得:转化为矩阵如下:并有通过查找相关资料可以得到以下方程:(3)、动力学方程第一个连杆的受力分析和相关方程第二个连杆的受力分析及运动方程:所受负载的的动力学分析和方程:综上所分析,共有六个运动学方程,有八个动力学方程,联立这十四个方程(4)建立约束矩阵联立这14个方程如下:根据方程建立simulink框图,并进行编程仿真:其中建立的simulink模型如下:编写的仿真程序为:文件名robot.mfunctionout=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;I1=0.16;I2=0.063;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
本文标题:matlab仿真--二自由度机械臂动态仿真
链接地址:https://www.777doc.com/doc-4453462 .html