智能车PID-算法实现原理讲解.doc
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《智能车PID-算法实现原理讲解.doc》由用户(淡淡的紫竹语嫣)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 PID_ 算法 实现 原理 讲解
- 资源描述:
-
1、 为了实现 PID 控制所需要的等间隔采样,我们使用了一个定时中断,每 2ms 进行一次数据 采样和 PID 计算。与此并行,系统中还设计了一个转速脉冲检测中断,从而实现了转速检测。 为了调试的需要,程序中还在 main函数中加入了相关的调试代码,这部分代码有最低的优 先级, 可以在保证不影响控制策略的情况下实现发送调试数据等功能。检测环节对整个控制系 统的质量起到至关重要的作用 4.3.2 PID4.3.2 PID 控制调整速度控制调整速度 本系统采用的是增量式数字 PID 控制,通过每一控制周期(10ms)读入脉冲数间接测得小 车当前转速 vi_FeedBack,将 vi_FeedBack
2、 与模糊推理得到的小车期望速度 vi_Ref 比较,由 以下公式求得速度偏差 error1 与速度偏差率 d_error。 error1 = vi_Ref vi_FeedBack; (公式3) d_error = error1 vi_PreError; (公式4) 公式 4 中, vi_PreError 为上次的速度偏差。考虑到控制周期较长,假设按 2.5m/s 的平均速 度计算,则一个控制周期小车大概可以跑过 2.5cm,如果按这种周期用上述 PID 调节速度,则 会导致加速减速均过长的后果,严重的影响小车的快速性和稳定性。为了解决这个问题,可以 在 PID 调速控制中加入 BANG-BAN
3、G 控制思想:根据 error1 的大小,如果正大,则正转给全额 占空比;如果负大,则自由停车或给一个反转占空比;否则就采用 PID 计算的占空比。 PIDPID 控制算法控制算法 为了使赛车平滑得保持在黑线中央,即使赛车的偏移量平滑地保持在 0,实用了 PID 控制 算法。 P 为比例参数,D 为微分参数。基准值为 0,PID 输入为水平偏移量 X0,PID 输出为转角, 转角方向:向左转为正,向右转为负。 P 参数在智能车控制器中表示水平偏差量的权,D 参数在智能车控制器中表示水平偏差速 度的权。 水平偏差量直接反映了赛车偏离黑线的程度,例如赛车偏向黑线的左边越厉害,则赛车的 右转角度将越
4、大。水平偏差量,是 PID 控制器的 P 部分。 水平偏差速度则直接反映了赛车的运动倾向,因为有了赛车的水平偏差速度,对赛车的掌 握,将更加精确。例如赛车偏向黑线左边,然而它的运动方向是向右的,那么,他的转角将比 向左运动时的转角要小,因为,我知道赛车已经开始朝正确的方向调整了。水平偏差速度,是 PID 控制器的 D 部分。 通过两个相隔一定采样时间的水平偏差量的差,来得到赛车的水平偏差速度。然而,这个 时间间隔多少比较合适呢? 图 3.3 上述函数图像的横坐标为采样时间 t,每小格为 4ms。第 1 幅图像的纵坐标为赛车水平偏 差量;第 2 幅图像的纵坐标为间隔为 1 的时候水平偏差速度;第
5、 3 幅图像的纵坐标为间隔为 3 时候水平偏差速度;第 3 幅图像的纵坐标为间隔为 5 的时候的水平偏差速度。 由上图可知:相邻采样点越远,数据的值域越大,更有利于描述车辆的偏差程度,但是, 会降低赛车判断的响应度;相邻采样点越近,数据的值域越小,0 状态越多,不利于描述赛车 的偏差程度,但是有利于响应赛车的偏差程度,所以,这个相邻的数量要适中。上图中,间隔 3 比较合适。 Proportion 为的 P 参数,Derivative 为的 D 参数,LastError为的水平偏差量队列,水 平偏差速度即队尾-队头,队列长度为 LAST_ERROR_NUM,即表示间间隔。通过实验,长度 20 比
6、较合适。 有了偏差 Error,有了 dError=LastError0- LastErrorLAST_ERROR_NUM,输出值为 PID_Output = Proportion * Error + Derivative * dError。 3.6 PID 控制算法的改进 通过实验和软件仿真,发现,PID 控制器并不是在任何情况下,都是最优的选择,比如, 在直线上,PID 控制器的调整时间,远大于枚举调整法,而在严重偏离的时候,由于赛车的水 平偏移量已经固定不变,所以,也没有必要使用 PID 控制了。所以,将赛车的状态分成了 3 种,下面逐一介绍并说明智能车在这一状态下的控制算法。 1:赛车
7、处于直线状态:如果赛车居中,则转角=0。如果赛车在右边,则转角=2。如果赛 车在左边,则转角=-2。电机占空比均为最高。 2:赛车处于严重偏离状态:如果赛车严重偏左,则赛车右转最大角度。如果赛车严重偏 右,则赛车左转最大角度。电机占空比均反向,表示刹车。 3:赛车处于一般弯道状态(即赛车有偏移,但能检测到黑线) :则将赛车的水平偏移量作 为 PID 控制器的输入, 然后经过 PID 运算, 得出的值为转角的映射。 最后, 通过一个一次函数, 将输出映射成转角的值即可。对于电机的控制,抽象出 3 种情况。第 1 种,是稳定过弯,即水 平偏移速度很小,这时候,采用加速过完的策略。第 2 种,是极不
展开阅读全文