书签 分享 收藏 举报 版权申诉 / 11
上传文档赚钱

类型智能车PID-算法实现原理讲解.doc

  • 上传人(卖家):淡淡的紫竹语嫣
  • 文档编号:542536
  • 上传时间:2020-05-23
  • 格式:DOC
  • 页数:11
  • 大小:933.50KB
  • 【下载声明】
    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 种,是极不

    8、稳定的情况,即水平偏移速 度很大,这时候,采用刹车策略。第 3 种,是一般情况,此时,采用匀速通过转弯的策略。实 验证明,这种抽象可以使赛车适应几乎任何曲率半径小于 500mm 的弯道。 模拟量的采集和模拟量的采集和 PDPD 控制控制 模拟量的采集和位置、角度计 模拟量采集 传感器仍然是红外光耦传感器,接收管输出不经过施密特触发器转化成数字量,而是接到 单片机的 A/D 转换接口进行转换。 位置计算 全局求位置法 通过各个传感器的信号可以计算出连续的黑线位置,较简单的办法是用类似于长杆求重心 的方法, 将各个传感器输出分别乘以传感器位置再求和,除以所有传感器输出之和即可得到连 续的位置信息。

    9、这之前需要做一些准备工作,由于不同传感器具有差异,直接用 A/D 转换的结 果计算位置误差较大。为了避免传感器差异造成的影响,我们采用了先定标再用相对值进行加 权计算的办法,具体过程为:程序开始前让每个传感器在赛道上进行扫描,分别记录每个传感 器输出信号的最大值 max(对应读到黑线中心的情况)和最小值 min(对应远离黑线读到白色 赛道的情况) ,用最大值减去最小值得到每个传感器在赛道上的输出范围,小车行使过程中, 将每个传感器输出的信号减去最小值,再除以该传感器的输出范围即可得到其相对输出值, 再 用每个传感器的相对值与传感器位置作加权平均得到的结果即为黑线位置。公式为 11 ()/()

    10、nn nnn ii posv pv ,其中 pos 为位置, n v 为第 n 个传感器的相对输出值, n p 为第 n 个传感器的位置。 这种方法消除了传感器差异造成的影响,并能够得到相对十分连续的位置信息,相邻两次 位置间隔小于 0.5mm。然而,全局求位置法在某些入弯情况会造成计算错误,黑线与传感器排 列方向夹角越小错误越大。这是由于此时多个传感器离黑线较近,因此输出值较大,原本黑线 位置较大时经过全局加权平均计算结果将偏小,用 LCD(自制的调试手段,用 LCD 实时显示程 序变量等信息)显示测量结果,误差可达 36%(正确位置为 7cm,显示值为 4.5cm) ,这种情况 将造成小车

    11、转向不足,冲出赛道。解决办法是采用下面介绍的对称求位置法。 1.1.1.1. 对称求位置法 对称求位置法的准备工作与全局求位置法相同,使用的是传感器的相对输出值,先判断出 输出值最大的传感器,也就是离黑线最近的传感器,然后根据该传感器进行对称加权平均求黑 线位置。 对称求位置又分为奇数对称求位置和偶数对称求位置,参与计算传感器个数在传感器 总个数的约束下应尽可能大,即两端的传感器总是至少有一个参与计算。 在前面所述情况下,误差为 7%(正确位置为 7cm,显示值为 6.5cm) 。对称求位置法与全局 求位置法相比稳定性强,但由于有公式的切换,位置的连续性不如全局求位置法。但当传感器 调节得较好

    12、时,二者可以有相同的连续性,因为公式切换时被舍弃的传感器和新加入计算的传 感器输出均为 0,这一点可以通过后面介绍的去除定标误差办法实现。 1.1.2. 角度计算 1.1.2.1. 多项式逼近 双排直线传感器分别计算黑线位置,将结果之差除以传感器间距再进行反正切运算即可得 到角度值。反正切运算通过多项式逼近用多项式计算实现,我们的传感器测量角度范围约为 40,与舵机转向范围相同,在这个范围内,一次多项式对反正切函数的逼近效果很好。 1.1.3. 去除干扰 1.1.3.1. 去除定标误差 由于程序开始前确定每个传感器的最大值和最小值过程存在一定误差,即该最大值和最小 值并不分别等于小车运行时传感

    13、器读到黑线中心和读到远离黑线的白色赛道时的输出值, 这就 造成很可能所有传感器相对输出均不为 0,在用对称求位置法计算时,切换公式时会使计算结 果产生跳动,连续性变差,影响微分控制的效果。解决这一问题的办法是:扫描求出最大值和 最小值后,将最小值加上输出范围的 a%(如 10%)得到新的最小值,再计算每个传感器的输出 范围。通过调整传感器角度、位置,调节接收管上拉电阻和 a 的值,用 LCD 显示每个传感器的 相对输出值,得到以下效果为最好:相对输出不为 0 的传感器个数只为 2 或 3,若最边上的传 感器相对输出不为 0,则该个数只能为 2。这个条件不难满足,满足条件后(实际条件要更宽 松一

    14、些)对称求位置法的连续性将与全局求位置法的连续性相同。 1.1.3.2. 去除地图干扰 由于地图中的十字线、起点线和地图外的场地会导致计算出错误的黑线位置,使小车控制 出错, 通过设定以下约束可以解决这些问题:a.所有传感器输出都低于一个阈值时不计算新位 置 b.输出超过阈值的所有传感器并非连续安放的传感器时不计算新位置 c.输出最大且超过阈 值的传感器与上一个满足该要求的传感器不相邻时不计算新位置。 1.1.4. 连续性检测 用 LCD 输出位置计算结果,相邻两次位置间隔小于 0.5mm,相邻两次角度间隔小于0.1。 1.2. PD 控制 1.2.1. 比例控制 位置控制中的比例控制采用了分

    15、段比例控制,位置较小时与位置较大时设置不同的比例 带,原因是传感器宽度有限,检测的位置范围也就有限,统一的比例带过大会导致小车振荡, 过小导致最大控制量偏小,小车转向不足,过弯时冲出赛道。使用分段比例控制既方便又可以 解决以上两种问题。角度控制设置了死区,由于检测角度为 0 时,即使在直道上小车轴线与黑 线也不严格平行,因此角度控制需要设置死区,以避免由此引起的小车直道振荡。 1.2.2. 微分控制 传感器输出模拟量的情况下检测的位置连续性较好,因此不再需要不完全微分的 PD 控制, 用一般形式的位置和角度微分控制即可达到很好的效果。由于比例带过小造成小车振荡时, 适 当增加微分控制;振荡频率较高时则应该减小微分控制,因为此时 D 控制量过大。此外,加大 微分控制可以使小车稳定性和跟随性变好,防止冲出赛道。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:智能车PID-算法实现原理讲解.doc
    链接地址:https://www.163wenku.com/p-542536.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库