标题 | 基于分区算法的电磁智能小车的设计初探 |
范文 | 周玉媚 汪任 秦晨晨 周又强 王静 摘要:设计了一台自动识别路径的电磁智能小车,研究如何合理地运用算法从有限的道路信息中提取车身与实际跑道中心的偏差值,从而使小车自主识别路径。本人根据现已有的循迹算法进行总结与融合,构建一种能够较好识别圆环的算法——分区算法。 关键词:电磁式智能车;归一化算法;PD算法;分区算法 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)16-0194-03 1 引言 本文是以第十二届“恩智浦杯”智能车大赛为背景,设计并制作一辆基于电磁传感器的自动循迹智能小车。电磁组智能车竞赛的赛道中心有一根通有20kHz、100mA可变交流电的载流导线,智能车利用电磁感应原理检测其产生的交变磁场来进行路径判断,通过计算前方导线偏离车体中心的距离来做出相应的方向控制,进而控制小车沿赛道循线行驶[1]。如图1所示为此智能车系统的算法流程图,而本文是在现已有的循迹算法的基础上,贴合我们自身智能车的实际情况进行算法改进。 2 循迹算法设计 2.1 归一化法 归一化法是对差值法的一种改进方式[2]。差值法是将左右两个电感的采集值作差,将其差值[ΔE]来反映小车与赛道中心线的偏差量,即:([ADL],[ADR]分别为左右两边电感的采集值) [ΔE=ADL-ADR] (1) 而利用差值法计算得到的偏差量只在一定范围内具有可用度,一旦小车偏离中心线的距离超出这个范围,此时的偏差量便不再可取,此时小车具有极强的不稳定性。 归一化法在差值法的基础上,将左右两个电感的采集值差值除以它们的和值, 将所得的值Error来反映偏差量, 即: [Error=ADL-ADRADL+ADR] (2) 取经过滤波后的电感值随水平赛道位置x的距离变化曲线,为了方便比较,将[ΔE]缩小到(-1,1),与归一化之后的Error放在同一坐标系中,如图2所示。 图2 [ΔE]、Error值与距离x之间的函数 结果分析:经过差值法计算得到的偏差量[ΔE],只在一定范围内具有可用度,且波动较大,稳定性较差;与差值法相比,归一化法所得的偏差量Error的可用度取值范围有一定的增加,波动较差值法虽然略微下降,但是在稳定性的改进上也不是太明显。 2.2 PD算法 PID控制算法,通过计算并调整其比例项[Kp]、积分项[Ti]、微分项[Td]来使被控对象T很快达到定值和迅速执行超调,而且通过其计算公式: [e(k)=r(k)-c(k)] (3) [U(k)=Kp{e(k)+TTij=0ke(j)+TDTe(k)-e(k-1)}] (4) 式中[Kp]:比例系数,[Ti]:积分时间常数,[Td]:微分时间常数,T:采样周期。如图3所示。 PID 控制算法[3]中各校正环节的作用分别为: 比例环节:比例环节的作用是对偏差瞬间做出迅速反应,及时成比例地反映控制系統的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。比例环节控制作用的强弱取决于比例系数[Kp], [Kp]越大,控制作用越强,则控制过程的静态偏差就越小;反之,[Kp]越大,就越容易导致振荡,从而破坏系统的稳定性。因此,[Kp]的选择必须合适, 才能才能达到静态偏差小而又稳定的效果。 积分环节:积分环节主要作用是消除静态偏差,但同时也会降低系统的反应速度。积分作用的强弱取决于积分时间常数[Ti],[Ti]越大,积分作用越弱,反之则越强。 微分环节:微分环节的作用是阻止偏差的变化。反映偏差信号的变化趋势(变化速率),并能在该偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。微分作用的引入,有助于克服振荡,使系统趋于稳定状态,但微分的作用对输入信号的噪声很敏感,所以对那些噪声较大的系统一般不用微分,或在微分起作用之前先对输入信号进行滤波处理。 本智能车系统的舵机控制采用的就是基于位置式PID的方向控制算法[4]。通过模拟控制系统PID控制规律表达式的离散化,可得数字式 PID 表达式如下: [U(k)=Kp*e(k)+Ki*i=0ke(i)+Kd*e(k)-e(k-1)] (5) 对于本智能车系统,[Uk]即为舵机转角[ek]为车体相对于导线的偏移量。此算法响应时间快,稳态误差低,由于舵机本身就是一个延时较大的环节,而积分项会导致相应更加滞后,所以为了使舵机的响应速度加快,只使用 PD 算法。 2.3 分区算法的构建 在第十二届的恩智浦杯智能车竞赛中,新增设了圆环,环形赛道是由赛道中心半径在50厘米至150厘米的圆环组成。出入环形赛道的直线赛道夹角在90°至180°之间,直线长度不小于50厘米。对于电磁组赛道上引导线会圆环两侧都铺设导线,并联通过圆环,为了保证环路两边电流大体一致,在两支线上个子串联一个0.5至1欧姆的匹配电阻。而此前电磁类全国参赛队伍的技术报告并未详细提供关于该种圆环赛道的循迹方案,故使得采用常规算法的智能车沿着中线行驶至圆环时,由于电磁强度的对称分布而无法正确打角,此时小车可能会沿着圆环中轴线驶过赛道(图4左边),或者是进入圆环正确打角,但出圆环时不能正确及时打角,而让小车沿圆环再循环行驶数次(图4中间),更甚至于误判方向,反向打角行驶一个错误的圆环(图4右边),可见及时提供一种新型智能车空间位置结算算法,是能正常进行后续调试的前提。 故我们结合了现已有的算法与自身智能车的实际情况,构建了一种可行的融合算法——分区算法。通过合理的排布电感位置,可以通过三个并排电感当前数据与相应电感过渡值的最大值进行比较,从而将赛道划分为四个区域,再结合前瞻的两个电感值,对圆环赛道进一步识别,从而实现智能车的正常行驶。部分程序如下:
if(front-max==0&& (AD[1] <= P-transit[0] - 1)) //偏离0号传感器 { p=0; } elseif((front-max==0&& (AD[1] > P-transit[0] + 1)) || (front-max==1&& (AD[0] - AD[2]) >1)) //左侧位置 0-1号传感器之间 { p=1; } elseif((front-max==1&& (AD[2] - AD[0]) >1) || (front-max==2&& (AD[1] > P-transit[1] + 1))) //右侧位置 1-2号传感器之间 { p=2; } elseif(front-max==2&& (AD[1] <= P-transit[1] - 1)) //偏离3号传感器 { p= 3; } 经过了多次实践调整,最终采用了五个,前二后三的电感排布方式[5],如图5(左边)所示(前瞻电感外八放置,后排三个电感等距垂直放置)。 例如当智能车的位置如图5(右边)所示放置在长直赛道时,P=2左侧电感值大于右侧,当智能车放置在圆环赛道入口时,由于赛车前瞻长度的不断调整,让其P=2时,左右电感值无明显差距,此外将赛车放置于不同赛道元素,结合分区作为辅助判断,效果较好,且该程序已经运用于第十二届“恩智浦”智能车竞赛中,并且取得成绩,可操作性强。 我们对归一化、PD算法和分区算法分别在直道、弯道和圆环处进行实验对比,进行了在同一跑道各进行200次比赛 (正、反跑各100次 ),测出冲出跑道的次数,以此得到一些实验数据并绘制成如下图6所示。 结果分析:由图6可知,归一化法对赛道不敏感,稳定性差;PD算法和分区算法对直道和弯道都有较强的适应性,且稳定性佳,但是对圆环的识别效果区别明显,PD算法对圆环的识别较分区算法差,由此可知分区算法对圆环有很好的适应性,且稳定性较好。 3 总结 本文所述的智能车系统循迹算法,通过实验测试以及参加“恩智浦”杯智能车比赛证明此智能车系统的循迹算法设计是合理的,也大大提高了小车运行的稳定性。但是还有一些需要改进的地方,分区算法虽然对圆环识别较好,但是如何让分区算法高效稳定地适应整个赛道是我们下一步将要努力的方向。 参考文献: [1]卓晴.学做智能车:挑战“飞思卡尔”杯[M]北京:北京航空航天大学出版社,2007. [2]张晓峰,钟一博,李清晨,等.电磁智能车循迹算法[J].计算机系应用,2014(12):187-190. [3]李梅,金力.《智能车PID算法的设计》实验综述[J].电腦知识与术,2013(9):3826-3829. [4]段力学.PID参数整定方法分类与概述[J].现代计算机(专业版),2012(7):23-26. [5]杨建民,赵玫,杨洪勇,等.电磁导航智能寻迹小车方向控制算法的分析与应用[J].科学技术与工程,2016(33):71-78 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。