星空体育官方网站 智能车速度控制pid(电机闭环控制算法)
智能车的电机闭环控制算法,标题未写“智能车电机PID闭环控制算法”,因为PID算法并不非常适合智能车这种变化迅速的系统,电机的速度调节可以说一直在进行,我之前描述的经典PID算法,都是针对一些惰性系统,即变化较慢的系统,所以完整使用PID算法来调节智能车电机速度,是明显不行的,即便采用,也必须进行一些调整和改进才能应用。此番阐述仅代表个人见解,倘若存在偏差,恳请各位前辈纠正。此刻或许有人会困惑,为何PID不适用于智能车的电机操控,那么何种方法才称得上适宜呢?
我早先参与过智能车项目,依我之见,P算法调控电机,即比例控制最为理想,其响应迅速,操控精准,无需考虑积分与微分影响,特别契合控制周期短暂的应用场景,不过,针对某些特定逻辑控制需求,或许得选用PD算法,借助微分进行修正,以避免系统振荡和过度调整,接下来,我将阐述电机控制算法从初步构建到最终选定所遵循的流程
首先必须确保已经安装了编码器,车速能够得到反馈,只有通过编码器,获得反馈信息,才能构成一个闭环系统。此外您也可以选用码盘,或者霍尔开关等任何能够提供车速数据的东西。
起初推荐在速度较低时运用PID算法调控电机,之所以初始阶段会建议您使用PID,目的是让您透彻认识PID算法的核心要义,以及掌握调试环节的操作技巧,这对将来钻研控制算法和撰写相关文档大有裨益。调节PID三个系数的技巧,很多资料都有介绍,这里简单阐述下:首先将所有D参数设为0,先优化P比例系数,调至速度大致符合目标值,即基本稳定在目标脉冲数,当然此时会出现明显波动,无需担忧,随后修正I系数,调整后能大幅减弱波动,但车辆速度响应会变慢,存在一定滞后,最后调整D系数星空·体育中国官方网,调整后可提升调节的灵敏度和前瞻性,在目标速度变化时,能实现平稳切换,且速度能长时间稳定在目标值附近,至此PID三个系数的大致取值范围就明确了,再根据实际车辆运行情况微调这些参数,当然在您调试PID之前,务必深入学习PID相关原理,这有助于调试和领会,当您把PID调校完毕后,就基本掌握了PID的核心要领,对今后调试大有裨益。这个指定的速率,就是前面那个关于温度的例子里提到的设定值,两者含义完全相同。
学会PID控制后,设定某个速度值,车辆就能基本维持在设定值附近运行,可以略微提升速度星空综合体育app下载,逐步观察情况,会发现速度越高时,车辆控制效果越差,调整反应迟缓,适应能力不足。现在可以尝试移除I积分这一步骤,接着重新设定参数,依照先前所述,然后持续监测状况,试着提升速度,继续观察,由于车速相对较慢,许多细节会变得清晰可见,因此能够看到PID转换为PD后,实际效果提升了多少,这算是一种提升,此时经典的PID公式已被我们简化,无需担忧,可以多进行实验多加观察,或许在这个转变过程中,会获得许多灵感,产生许多想法,这对今后调试车辆都有裨益。因此研究智能汽车,通过亲身逐步提升与学习,所收获的知识远超从特定网店购置现成方案,感悟更深,视野也更宽广。
当车辆时速不超过三米每秒时,我极力建议使用PD算法,因为这种算法最为适宜调整,也最为简便操控。当前情况下我极力建议您增加P调节功能,P调节并不仅仅是通过P乘以偏差然后得出PWM值,而是必须融入一些逻辑控制,如果不加入逻辑控制而直接使用比例公式来设定PWM数值,将会引发诸多弊端,具体的逻辑控制说明,今后我会撰写相关的资料,感谢。增量式编码器反馈的智能车电机闭环调速系统:通过我前面提到的实例,到现在,您或许已经理解闭环系统对于智能车而言是必不可少的,无法替代的。当然,您可能已经完全掌握智能车电机闭环调速系统的构建方法,并且可能已经做得比我在此阐述的更为出色,更加新颖,更加高效。所以在这里我只是简单的说说。
起初,必须将智能车的即时速度信息持续传输给单片机或ARM处理器,以便系统掌握速度状况,从而实现有效管理。
先谈谈为何要上报车辆行驶速率,又为何要了解车辆当前速率?因为中央处理器借助感应设备获取道路状况,经由中央处理器汇集并分析变动,系统便能够掌握车辆当前情形,比如是在上坡?还是在驶入弯道?又是在弯道中?抑或正在驶出弯道?又是在上坡?还是已越过分界线?掌握这些资讯后,我们首要任务是对舵机实施操控,依据道路状况决定车辆转弯,包括转向的倾向,幅度,均由这些数据来完成,此外,当前行驶速度也是影响舵机转向程度的一个辅助条件,这样做能更有效地应对各种弯道。明白了这些内容,就如同驾驶车辆,我们需要转向时,必须了解当前行驶的快慢,如何得知呢,全凭借车上的速度指示器,这样我们便能够借助调节制动或油门以及转向盘,使车子平稳地完成转弯动作,不同的弯道,不同的行驶速度,转弯的操作和制动的操作都是不一样的。若对现行速率不甚明了,转弯时速率过高,极易引发车辆倾覆,或发生侧滑,由此造成风险。智能车辆运行状况与常规车辆相似,我们必须掌握车辆即时行驶速率,例如智能车辆安全转弯速率设定为3米每秒,所谓安全速率,即车辆能够顺利安全转弯且无显著侧滑时的速率,在驶入弯道前,智能车辆速率为4米每秒,当感应系统侦测到即将进入弯道,通过与安全速率比对,发觉智能车辆速率远超安全转弯速率,此时需实施制动,迅速将车辆速率降至3米每秒,如此确保顺利且高效地完成转弯过程。这个速度并非计算所得,而是通过试验确定的,属于经验数据,它取决于赛道材质、车辆机械状况以及弯道角度,因此比赛前必须进行试车,试车最关键的部分就是了解赛道所用材料,以便为实验车辆设定安全速度。关于智能车的速度反馈,我主要讨论增量式编码器,实际上码盘和霍尔传感器的运作方式是相同的。光电增量式编码器与绝对值编码器存在差异,后者在旋转一周时每个特定位置都有明确数值输出,而前者转动一圈仅固定输出一定数量的脉冲,无法识别具体位置,其对外输出通常为方波信号,这种信号形式有利于微控制器进行数据采集。借助编码器,我们运用齿轮、皮带等部件将其与电机或传动轮相连,当电机运行时,会驱动编码器同步旋转,编码器便会产生方波信号,将此信号传输至单片机,我们即可读取编码器发出的脉冲。获得脉冲后,或许您会进一步思考,这些脉冲并无固定模式,随着转动不断累积,究竟如何计算速度?此刻您若动手检测,便会察觉到,当车辆行驶较快时,脉冲计数的增长速率也相应加快,换言之,发动机转速越高,脉冲频率就越强,每单位时间内的脉冲计数也就越密集,由此便获得了启示,我们可利用定时器设定一个中断,该中断的周期为5毫秒,那么每过5毫秒,我们便对编码器的脉冲值进行一次读取,读取完成后,立即将脉冲计数寄存器归零,这样在5毫秒的时间段内,采集到的脉冲数量越多,就表明车辆的速度越快,至此,车速的问题便得以圆满解决。人们或许会问:这还不够,还没有变成速度吗?需要将这个脉冲依据距离和时间换算成确切的XX米每秒的速率。这种思路固然不错,但实际上完全没有必要,我们根本无需耗费精力去进行这种计算,因为我们原本的目的就是获取速度,脉冲数量的多少本身就能反映速度的高低,何必再费事转换成具体数值呢?这段时间内的脉冲数量已经足够了,可以供底层硬件进行判断和计算了。我们反馈的数据类型是脉冲数星空体育app下载入口,因此设定的速度也以脉冲数来表示,例如50个脉冲对应3M/S的速度,80个脉冲则对应4M/S的速度。通过根据道路类型来设定脉冲数,就能完成电机的闭环控制了,这难道不简单吗?有人会好奇,50 个脉冲怎样换算成3M/S,80 个脉冲怎样换算成4M/S,这个计算其实很简单,很多人在制作智能车时,容易把简单问题变得复杂,实际上很多问题都能用几行代码解决,比如处理坡道的情况,有些人用了许多复杂手段,例如安装一个开关,或者增加加速度传感器,又或者添加陀螺仪,但这些完全没必要,用几行程序就能轻松处理。确定脉冲与速度的关联,您只需选定一个脉冲频率,让车辆完成一整圈行驶,记录所用时间,将跑道总长除以这个时间,即可得出该脉冲频率对应的速度值,只需获得大致关系即可,无需逐一测试,我们通常感知到的X米每秒是整体上的宏观现象,与单片机运行无关。
 鲁ICP备18019460号-4
我要评论