您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 机器人PID控制算法研究与实现
收稿日期:2013-11-26修回日期:2014-03-06网络出版时间:2014-07-28基金项目:国家重点星火计划项目(2011GA690005)作者简介:王志勃(1970-),男,江苏淮安人,硕士,讲师,工程师,从事软件开发,计算机应用技术研究,机器人设计、教学等工作。网络出版地址:机器人PID控制算法研究与实现王志勃1,2,毕艳茹1(1.淮安信息职业技术学院,江苏淮安223003;2.江苏省电子产品装备与制造中心,江苏淮安223003)摘要:文中描述了如何使用PID控制器实现对巡线机器人的行走控制。针对依靠双轮直流电机驱动的机器人平台,依靠引导线进行行走的特点,设计了基于PID控制器的行走驱动算法,实现对机器人行走的控制。在算法中对比、整合PID控制器中三个参数,使其在控制过程中协调发挥作用,实现在离散状态下机器人行走巡线的精确控制。该算法多次应用在全国职业技能大赛机器人应用项目中,通过实践表明该算法具有适应性强、控制精度高、调整误差小的优点。关键词:机器人;巡线;PID控制器中图分类号:TP242.3文献标识码:A文章编号:1673-629X(2014)10-0127-04doi:10.3969/j.issn.1673-629X.2014.10.030ResearchandImplementationofRobotPIDControlAlgorithmWANGZhi-bo1,2,BIYan-ru1(1.HuaianCollegeofInformationandVocationalTechnology,Huaian223003,China;2.JiangsuProvinceElectronicProductsandManufacturingCenter,Huaian223003,China)Abstract:DescribehowtocreateaPIDcontrollerforrobottodolinefollowinginthispaper.AimingattheplatformofdoubleDCmotordrivenrobot,relyingonthecharacteristicsthattherobotworksontodolinefollowing,designthewalkdrivingalgorithmbasedonPIDcontrollerfortherobot,realizingthewalkingcontrolforrobot.ComparingandintegratingthethreeparametersinthePIDcontrollerforthecontrolprocess,makeitscoordinationintheprocessofcontrol,itcanpreciselydriveforrobotwalkinginthediscretestate.Thealgo-rithmhasbeenappliedmanytimesinthenationalvocationalskillscompetitionofrobotapplicationproject,thepracticeshowsthattheal-gorithmhastheadvantageofstrongadaptability,highprecisionandlowerror.Keywords:robot;linefollowing;PIDcontroller0引言PID控制技术广泛应用于工业控制各个领域,其控制结构简单,参数定义明确,易于实现,其中P(Pro-portional)是比例项,I(Integral)是积分项,D(Deriva-tive)是微分项[1]。当被控对象变化随机性较大,不能精确建立控制模型时,PID控制器能够很好地发挥控制作用。在实际应用中可以采用P、PI、PD或PID等控制形式,也可以加入人工智能模糊控制手段[2-4],具体要根据被控制对象系统响应变化特点进行选择与调整。PID调节器是在系统运行过程中将设定值r(t)与输出值c(t)进行比较构成控制偏差e(t)=r(t)-c(t),通过线性组合将其按比例、积分、微分运算后生成控制量,实现实时自适应控制。PID系统典型控制结构如图1所示,PID调节器的数学模型如公式(1)所示。图1PID系统典型控制结构图u(t)=KP[e(t)+1TI乙t0e(t)dt+TDde(t)dt]+u0(1)其中,u(t)为输出项;KP为比例放大系数;TI为积分时间;TD为微分时间;e(t)为误差值;u0为控制量基准值。第24卷第10期2014年10月计算机技术与发展COMPUTERTECHNOLOGYANDDEVELOPMENTVol.24No.10Oct.2014比例放大系数KP能加快系统响应速度,但容易产生超调现象,在机器人巡线行走过程中会出现左右搬动现象;积分时间参数TI主要作用是消除系统的稳态误差;微分时间参数TD作用是改善系统的动态性能,对误差趋势能够进行提前干预。1双轮巡线机器人行走结构设计文中控制的机器人依靠平台上两个直流电机(图2中A、B所示)驱动轮子行走,在机器人平台前后安装有两根巡线传感器(图2中C、D所示),每根传感器由16路采集点组成,为保证机器人平台的稳定,在机器人前后安装有万向轮(图2中E所示)。机器人在行走过程中通过巡线传感器读取场地中的引导白线完成行走动作[5]。驱动机器人的两个直流电机特性存在差异,给两个轮子电机加上相同的PWM也不能保证沿着直线行走,必须引入一定控制算法,保证机器人在不偏离引导线的前提下快速行进[6]。文中采用PID控制算法,通过反复实验整合调优PID算法中的参数,使之能够顺畅自如地以直线或曲线巡线行走。机器人平台结构如图2所示。图2机器人平台结构图2数字化PID控制算法设计文中机器人行走控制处理芯片为80C51单片机,在实现算法设计过程中首先要将理论上的PID算法进行数字化处理,其次要根据机器人行走特性做好PID算法中比例、积分、微分因子的选取和采样处理[7]。下面首先从影响PID算法最大的比例项设计入手开始进行PID方程构建分析。(1)比例项的设计。在PID控制算法中,比例因子是关键所在。首先要确定控制模型中的比例采样方法,构建比例方程。在机器人运行过程中,前后两根16路传感器不断将扫描信号传递给CUP,通过前后两根16路传感器信息能实时判定车身的位置状态,根据传感器位置与中心线的偏差e(t),再找出适当的比例因子就可以构建PID控制系统中的比例控制项。图3列出了机器人在行进过程中的四种状态类型,在图中将16路巡线传感器中心定位为刻度零,前排16路传感器在X轴方向规定为左+右-,后排16路传感器在X轴方向规定为左-右+,通过程序扫描可以得到瞬时机器人前后两根16路传感器的采集位置b1,b2值(取值范围1~16),z1,z2代表前后巡线传感器同时扫描到白线的采集点个数。通过公式(2)能够准确计算出引导白线中心点在前后16路传感器上对应点的位置信息。N1=b1+z1/2-8N2=b2+z2/2-{8(2)其中,N1为前16路传感器在引导白线中心位置信息;N2为后16路传感器在引导白线中心位置信息。当N1,N2结果都为零时,表示引导白线刚好位于机器人中心线上。图3机器人状态分类根据N1,N2的位置信息,可以构建出PID算法中的比例方程,方程中选用了不同的比例因子,前排传感器在巡线过程中起到关键作用,因此前排的比例系数x1略大于后排传感器的比例系数x2。比例因子选取要根据机器人现场具体调试决定,构建的方程如公式(3)所示。式中,根据机器人的偏差信息,能够生成控制驱动机器人电机的PWM值,根据机器人车身的状态将这个值分别影响到机器人的左右电机上[8]。PWM=N1*x1+N2*x2(3)针对P控制算法,程序算法设计如下所示。在程序中PWM电机驱动占空比最大值定义为200,motor为驱动电机转动函数,参数l,r代表驱动左右侧电机;f,b代表向前向后,其中的SB代表电机驱动的基础值,根据算出的PWM程序自动调节机器人的行走方向。for(p=0;p16;p++){//循环16次读取前后16路传感器信息a1=xinxi&0x8000;//xinxi代表前排传感器数据信息a2=xinxi2&0x8000;//xinxi2代表后排传感器数据信息if((a10)&&(b10))b1=p;//提取前排在白线的传感器起始位置if(a10)z1++;//累计前排传感器在白线上个数if((a20)&&(b20))b2=p;//提取后排在白线的传感器起始位置·821·计算机技术与发展第24卷if(a20)z2++;//累计后排传感器在白线上个数xinxi=xinxi1;//左移前排16位传感器信息xinxi2=xinxi21;//左移后排16位传感器信息}N1=b1+z1/2-8;//计算出前排传感器在白线中心位置N2=b2+z2/2-8;//计算出后排传感器在白线中心位置PWM=N1*5+N2*3;//构建比例方程,计算出控制PWM值if((SB-PWM)=200){//机器人整体偏右motor(r,f,200);motor(l,f,200+PWM*2);}elseif((SB+PWM)=200){//机器人整体偏左motor(r,f,200-PWM*2);motor(l,f,200);}else{//自动调整motor(r,f,SB-PWM);motor(l,f,SB+PWM);}PID中比例项P的作用是提高系统响应速度,随着比例控制项系数的增大,系统响应时间缩短,系统调节精度提高。但是也存在一定问题,系统易产生超调现象,在机器人行走的具体过程中表现出沿着引导白线走S型巡线轨迹。为了解决巡线过程中的S问题[9-10],引进了PID算法中的D,即微分项,对可能出现的偏差进行预先干预。(2)微分项的设计。能否对系统的偏差有预先判断并处理呢?答案是肯定的。PID算法中比例项(P)是对系统当前偏差的调整,而微分项(D)是对系统偏差的预先处理。在数字化近似处理中将一定时间内的本次偏差e(k)与上一次偏差e(k-1)相减,得出的结果能够反映出偏差变化趋势,一阶导数采用公式(4)进行表达。在实际程序控制过程中dt(T)选择程序循环一次时间为最短时间单位,根据系统调整状况选择最短时间的整数倍数作为积分时间。de(t)dt抑[e(k)-e(k-1)]T(4)(3)积分项的设计。要保证机器人巡线过程中走得非常直,偏差摆动很小,积分项也是另一个重要控制因素。积分项是将一段时间内机器人行走的误差累计作为调控依据,在数字化离散处理中使用公式(5)表达积分项。乙t0e(t)dt=T移Ki=0e(i)(5)将公式(4)、(5)带入到公式(1)中,得到离散状态下的PID控制近似值公式。u(k)=KP{e(k)+TTI移ki=0e(i)+TDT[e(k)-e(k-1)]}+u0(6)在编程控制过程中可以将T/TI用KI代替,将TD/T用KD代替[11-12],进一步简化为公式(7)。u(k)=KP*偏差+KI*积分项+KD*微分项(7)3算法调试与验证文中算法调试过程采用Z-N(Ziegler-Nichols)实验方法进行调试,首先将积分项、微分项增益设为零,单独调试比例项,将比例增益从零开始逐渐增加,直到达到最佳效果为止,具体调试过程如下:(1)设定KI、KD为零,屏蔽积分项、微分项;(2)逐渐增大KP的值,达到一个比较合理的范围,使机器人能够沿着白线行走,同时左右摆动比较小。在调整过程中如果机器人不能巡线,可增大KP值;若能巡线,但左右摆动比较大可减小KP的值。当机器人在最稳定状态时,记录下这个KP值,命名为KS;(3)当确定完KC值后,机器人基本处于稳定震荡状态,在这个状态下记录其震荡周期,记为P
本文标题:机器人PID控制算法研究与实现
链接地址:https://www.777doc.com/doc-5750953 .html