PID控制策略在轮式机器人电子竞赛中的应用

作者: 刘旭东

摘 要:针对电子竞赛中轮式机器人的电机转速控制,本文搭建了带有反馈的电机控制系统,采用增量式数字PID算法,对控制参数进行优化匹配,目的是使直流电机的转速控制效果得到优化。作者还通过计算机模拟仿真软件进行数据测试,选取最优参数,再通过硬件调试,结果证明加入PID控制策略对于轮式机器人的电机转速控制问题的解决是切实可行的,最后对优化结果进行分析。

关键词:PID; 轮式机器人; 电机控制

中图分类号:TP242.1 文献标识码:A 文章编号:1006-3315(2014)09-131-002

一、引言

近年来,轮式机器人的发展十分迅速,已经广泛的应用于工厂电气设备、医疗与公共服务的自动化设备、学校中有关教学的模拟仿真教学仪器中,甚至各国军方都在致力于自行战斗小车的研究与开发。以此为契机,我国很多电子类竞赛也以机器人或者类机器人的自行小车作为竞技的主要载体和方式,影响力比较大的包括专科类的全国职业院校技能大赛中的机器人技术应用赛项,本科类有全国大学生“飞思卡尔杯”智能小车竞赛,近几年的全国电子设计大赛也多次出现和自行小车或者电机控制有关的赛题,这些关于轮式机器人的控制最重要的一点就是对电机转速的控制。本文研究的就是以这类比赛的专用赛道作为使用环境,以直流电机作为控制对象,建立一个带有反馈的闭环系统,基于AVR单片机采用PID控制的方式保证系统稳定和转速无静差,确保电机动态响应快,抗干扰能力强,进而使轮式机器人更加的稳定可靠。

二、增量式数字PID

电机控制算法是当代技术人员热衷的一门议题,各种先进的控制算法层出不穷,如PID控制、模糊控制、神经网络控制等等,对于应用于竞赛的轮式机器人,如果采用过于复杂的算法,由于其控制核心一般为单片机、ARM等芯片,没有达到计算机的水平,运算速度和位数大多难以满足要求,并且在调试过程中仿真的难度也比较大。如果采用的算法过于简单或者仅依靠软件程序判断,一般情况下调节的偏差较大,相应时间也无法满足。实际的经验和以往的理论分析表明,PID算法由于其原理简单,使用方便,单片机等控制芯片适应性强,鲁棒性强和抗干扰能力强等一系列优点,再加上参赛学生都上过自控课程,对其原理有初步了解,上手快,基本能满足大多数竞赛轮式机器人的控制要求。

PID控制分为两种:位置式PID和增量式PID。由于位置式PID输出和以往所有的输入状态有关,并且计算时要考虑到每一次的绝对控制误差,但对于机器人小车电机控制器来说,输出量是一个相对量,这样就和位置式PID的反馈要求不符。一般采用增量式PID,对于电机来说,这种算法根据本次检测到的转速与设定值比较得到偏差e(n),通过调节单片机输出的PWM方波的占空比对偏差进行PID补偿,实际就是调节电机两端的电压,使转速逐级逼近设定值,从而实现了控制电机的转速。运算公式如下:

其中:

上式中,e(n)、e(n-1)、e(n-2)均为第n次、n-1次、n-2次的偏差, u(n)表示第n次的输出电压,实际上对应的是PWM方波的占空比。Kp是比例系数P,增加就会提高系统的响应速度,但Kp过大会产生较大的超调量,稳定性降低,一般取值范围在1-10之间。TI决定积分环节,主要用于消除静差,1/TI就是积分系数I的值,一般取在0-5之间。Td就是微分系数D值,取在0.1-1之间。

三、电机转速检测与控制方案

电机的PID控制系统是一个闭环系统,所以对于电机转速检测必不可少。无论采用电子元器件搭建,还是现成传感器,都可以实现。常见方案主要有以下几类:采用光电对管检测车轮上圆盘明暗相间的条纹,这种方法设计简单,但对环境光线要求较高;采用转速传感器,常见的比如霍尔传感器、光电传感器等,这种方法可靠性高,检测精度好,但是成本较高;采用编码器或者测速电机,比较常见于大型电机的转速与方向的检测,而且是精度要求较高的情况下。本设计选择光电对管的方式,将输出连接到单片机I/O口。

在各类的电子大赛中,直流电机驱动方式的选择是多样的。大致可以分为以下三种方案:采用大功率三极管级联总称驱动电路,这种方法灵活性较强,适用于各种不同种类的直流电机,但是由于大量三极管的使用,需要设计者有着较强的硬件设计和调试经验,而且晶体管的数量较多,也必然造成可靠性较差、抗干扰能力不强;采用专用的电机驱动芯片,电子大赛中比较常用的包括L298N和L297N、33886芯片等等,这种芯片可以减少对硬件电路设计的考虑,安全性能等参数也无须担心,缺点就是此类芯片都带有局限性,对于一些极端使用条件或者大功率直流电机的驱动就无能为力了;最后一类就是一些大赛指定用的电机驱动设备,比如全国高职高专技能大赛机器人赛项,原因是电机额定功率大,小型驱动芯片无法满足。由于本设计驱动的是小型直流电机,所以选取33886驱动芯片,连接到单片机定时器PWM输出管脚。

四、算法实现

根据硬件电路与设计需要,对于算法的实现主要分为以下几个子函数模块:

1、电机转速检测子函数。电机转速计算公式为:v=■×60r/min。N是相见条纹数为40,t是采样时间为50ms,n就是单片机检测到的脉冲数。

2、键盘输入与显示子函数。矩阵键盘的输入负责设定PID初始值,采用常用芯片BC7281驱动,显示模块采用12864液晶显示屏,显示实时速度和时间。

3、PID算法子函数。负责定义PID参数结构体,计算当前误差,存储误差,根据PID参数通过以上公式计算增量,并且返回给主函数。

4、主函数。负责I/O初始化,定时器1初始化程序,调用以上子函数,显示转速与时间。

五、系统调试与结果分析

限于篇幅,以上的硬件电路结构简单,搭建过程不再赘述,我们将算法程序下载到ATmega16单片机中,分别在所限范围中改变PID系数,测试超调量、调节时间和误差。具体过程如下:



本文为全文原貌 未安装PDF浏览器用户请先下载安装
原版页码:131,132原版全文

1.首先需要为P去一个预设值。设定方法是将I、D设为零,将P逐步增大。初调时,选小一些,然后慢慢调大,直到系统波动足够小。可以加入阶跃信号扰动,观察输出波形,直到最佳为止,并记录下当前P值。

2.将以上所得到的P值乘以0.83,再由小到大增加I值,重复上述步骤,直到输出波形满足要求为止,并记录下当前I值。

3.在可接受的范围内将P的预设值提高,并在此过程中调整I值,直到得到满意的结果。具体步骤是先保持I值不变,调整P值,观察调整效果。如果结果有变好的趋势则继续调整,如果没有效果,则将P值稍微增大一点,再去调整I值。这种方法就是“经验法”,在一定规则下将不同的P、I值反复组合,直到满意为止。并记下最终的P、I值,实际上到此步骤为止调节效果已经很明显了。

4.最后调整D值,一般可以先把之前得到的P、I值调大一些,再去逐渐增加D值。重复上述步骤直到控制效果最佳。

通过以上方法,由计算机仿真软件Proteus7Professional进行数据测试,对PID参数进行匹配。下表抽样出7组数据对匹配过程进行演示,得出优化结果较好的三个值分别为Kp=3.5,KI=2.2,KD=0.3,将此参数带入PID算法子函数中,进行硬件调试,优化效果明显。

表PID参数匹配抽样数据

六、总结与展望

一般来说,加入闭环电机控制策略,可以有效提高电机转速控制效果。本文针对电子竞赛中的轮式机器人设备,采用增量式数字PID算法,合理匹配Kp、TI、Td参数,并且进行了计算机模拟仿真和实际电路搭建,结果证明直流电机的转速控制效果得到了相对优化。虽然由于PID算法的原理简单所带来的局限性,优化效果还能提升空间,但是考虑到参赛大学生甚至还有高职高专学生的实际能力和接受水平,这种方法如果能够得到彻底掌握,事实证明对于提高比赛成绩还是有着重要的作用的。在后续研究中,可以讨论的方面是针对小车转弯或者颠簸路面时,传感器检测到的波形会受到干扰,需要对PID算法进行改进,在前向通道加入预处理算法,与传统PID算法相结合,将更加符合实际情况,优化效果也更显著。

参考文献:

[1]Li Xiaoli,Shi Longhui,Li Ji. Neural network PID control for a water level system[J]. International Journal of Modelling,Identification and Control, 2010,11(1-2):124-129

[2] Ziegler J G,Nichols N B. Optimum settings for automatic controllers[J]. Trans.ASME,1942,11(64):759-768

[3]Cominos P, Munro N. PID controllers: Recent tuning methods and design to specification [J] IEE Proceedings: Control Theory and Applications,2002,149(1):46-53

[4]彭露群,解仑,李崇坚等.自抗扰控制器在同步电机调速系统中的应用[J]北京科技大学学报,2012,34(1):107-111

[5]车立志.智能PID控制算法的研究与实现[D]济南:山东科技大学,2008:12-15



本文为全文原貌 未安装PDF浏览器用户请先下载安装
原版页码:131,132原版全文

经典小说推荐

杂志订阅