浅析PID巡线算法的应用

2018-04-27 11:51龚梓贤湖南省长沙市南雅中学
数码世界 2018年4期
关键词:实体化巡线马达

龚梓贤 湖南省长沙市南雅中学

1 基本原理

1、PID巡线最核心的思想便是利用微积分思想,对每时每刻的光电传感器值进行分析,并通过与初始光感值的大小对比来使机器人在偏离线条后左转或右转来回到所巡线条。这相比其他的巡线算法来说显得更加的灵活。同时在经过简单的调整后便可以应用于其他情况。如通过调整时间与功率。

2、通过微积分的运用,我们可以得出基本公式:Turn( 转 向)= Kp*error(误 差) + Ki*integral(积 分)+Kd*derivative(导数 )。

2 PID巡线算法中的名词解释

1、在PID这一词中,P是指proportion意思是比例,I是指integral为积分,D是derivative。

2、通过对pid巡线程序进行分析,得出以下变量,见表一:

表一:变量表

3、在对变量进行阐述后,则是对PID这核心算法的名词描述:

表二:核心算法的名词描述

(Integral + Error)*0.6 -> Integral//计算积分值。为避免积分过大导致飞线,通过小系数抑制Error - LastError -> LastError //计算微分值MotoPower + MotoTurn ->PowerB// B马达功率值MotoPower + MotoTurn ->PowerC// B马达功率值end loop forever //结束循环,返回,进行下一次循环

3 案例简单的阐述

1、对整个程序简略后所形成的模块实体化。如图一所示:

图一:模块实体化

2、对每一个变量进行相应的对应后实体化。如图二所示:

图二:变量对应后的实体化

3、对巡线小车的目前所测光感值与所测量的正常光感值进行相减以读取误差,来判断巡线小车是否沿所巡线条运动。如图三所示:

图三

4、对光感值误差过后经过计算来矫正小车的巡线功率决定小车的方向改变。如图四所示:

5、整个程序的实行阶段,在对所应矫正的功率进行计算后,将所计算出的功率赋予马达,实现马达功率值为设定功率+矫正功率。如图五所示:

图五

4 案例简单的解析

通过以上五个步骤可以得出PID巡线程序的基本构成,其灵活性以及变量之间的关系也得以解释和运用。这便是该PID巡线程序的构成,该程序是在一边对光感值进行比较并计算矫正功率并赋予给马达的同时,一边在把时间或是角度与目标的时间与角度进行对比,以达到控制时间或角度的同时进行巡线的PID巡线程序。在这当中,需要运用到以下理论:

4.1 左手法则

巡线其实是让机器人沿着线的边缘走,因为如果沿着黑线本身走,当机器人偏离黑线,传感器读取到白色时,不知道机器人是在线的右边还是左边?机器人自身也很难判断。如果沿着线的边缘走,当光电传感器读取到白色,就能知道机器人在线边缘(线)的左边,当光电传感器读取到黑时,就能知道机器人在线边缘的右边(在线上)。因为机器人跟随的是线条的左边,因此这种方式被称为“左手法则”。

4.2 由P反映出马达实际功率

马达的实际功率是经过累加后得出的与原线的误差所集合计算出的功率,有Tp+Turn=实际功率,在这里设计一个error值,目的是表达与所巡线的差异。通过定义error值的正负来表现两马达的功率已达到了解其左转或右转的趋势,从而进行巡线。

4.3 虚拟的变量

这里定义一个补偿量为offset,这个值的意义是指在偏离巡线后,小车所需要加上或减去的量,它是黑值和白值的平均值。

4.4 P控制器概要

用传感器测量想控制的东西,将测量结果转换为error(误差)——对于巡线机器人来说,通过减掉黑和白光电传感器读值的平均值来实现,将error (误差)乘以Kp,就得到了系统的修正值。得到了修正值,这样就可以通过加大/减小马达的功率值来应用这个修正值。这个叫Kp的比例系数要用有根据的推测来确定,并通过反复试验进行调整。同时有Turn=Kp*(error)。

4.5 积分

积分是高等数学里面的一个量,利用它来进行动态求和变化,每次读取光电传感器的值,并计算error(误差)时,将error(误差)加到一个变量中,这个变量称之为integral(积分)。integral(积分)= integral(积分)+ error(误差),

它是一种将一系列数值累加的方法,那并不是值而是一个变量,这个“=”是赋值的意思,意味着将它右边的计算结果赋值给左边的那个变量名。Turn= Kp*(error) + Ki*(integral)

4.6 微分

同积分一样也属于数学内容,在有的pid介绍里面也说成微分,意义都是表达在两个连续点之间的误差变化量,由于一切都是一直累加的,那自然而然就与累加次数有关,那也就与时间有关,经过时间与量相乘的计算在加上之前的公式,便可以得到

Turn (转向)= Kp*error(误差) + Ki*integral(积分)+Kd*derivative(导数)

4.7 静态误差

静态误差是指系统在不受干扰的情况下运行所保持的误差,也就是理想状态下的误差,当机器人走了很长一段直线后,这个误差会逐渐减小所以对机器影响不大。但P控制器和PD控制器经常会被这种误差所误导。因此,通过增加Kp 值会降低它的影响,但有可能会加大机器人的摆动。P控制器和PD控制器在平衡状态下都会有一个恒定的误差,这是无法避免的,因此经常会在其中增加I控制,加大Ki的值,以保持稳定。

5 结语

PID靠着高等数学的知识与思想并与计算机的累加相应,通过不断对于error的调整以及对于机器人功率的控制的目的,以达到转向并且巡线。总而言之pid巡线是一种十分灵活的巡线算法。

猜你喜欢
实体化巡线马达
基于共振磁耦合供电及电磁传感定位的无人机智能巡线技术与应用
基于移动互联网的智能化巡线管理系统的建设与应用
不能怪我
无人机为仁化高山电网线路“把脉”
无人机在电力巡线中的应用模式研究
我国实体化电子商务的区域发展问题及策略探讨
枰中侠侣
农机维修服务市场化、实体化、产业化的具体措施
向阳坡