Simulink建模:PID控制-应用
本文总结一些工作中在使用PID控制时积累的经验。>>返回个人博客总目录。
本文总结一些工作中在使用PID控制时积累的经验。
1 引入
之前已经写过两篇关于PID控制的文章,主要从建模的角度描述如何搭建出来PID控制算法。在实际工程项目中,PID的调试可能会比仿真更加麻烦。因此,博主希望专门写一篇用来总结一下自己开发调试的经验,以供日后参考,或者其他同行参考。
由于不同工程师所面对的被控对象的特性不同,博主的一些经验不一定适合所有的应用场景。
2 PID控制的应用
对于基础的三个PID参数的理解,已经有很多资料(包括控制理论教科书上的推导公式),博主不再赘述。这一章主要讲讲在工程中对PID算法进行的一些延申和调试经验,以适应复杂的工程问题。
2.1 动态PID参数
假设在实车车速为30km/h的时候通过调整PID参数使得制动模块达到了性能需求,但是车速在60km/h的时候这套参数又不满足需求,经调试后又获得一套不同的PID参数可以满足60km/h的速度。
针对上面的情况,就可以通过以车速为断点,查表得到不同车速下的PID参数,满足不同车速下的控制性能指标。模型示意如下:
图中的Kp信号不再是一个固定的标定量,而是随着车速变化的Kp值,也就是动态参数,是非常实用的调参手段。
博主还见过一种动态调参方式是通过偏差值查表得出参数,如下图所示。
该项目试图通过这种方式,解决偏差值较小的情况下响应迟缓的问题,可以取得较好的效果。
2.2 前馈-反馈控制
PID是反馈控制,也就是需要根据偏差来进行控制,这就造成了一定会有延迟。如果在产生偏差之前就预判到应该大致发出多少的控制量,在这个基础上再通过PID的反馈控制来弥补一些偏差,就能响应得更快。
例如ADAS的车道居中功能,在进入弯道之前没有横向位移的偏差。如果进入弯道之后产生了偏差再去利用PID的反馈控制,就会有延迟,会有偏离车道的风险。
如果结合前馈控制就能很好地解决上述问题。当摄像头检测到前方弯道时,可以根据预定好的弯道-方向盘转角关系表提前请求方向盘打一个角度(就像老司机开车的预判一样),在这个基础上如果有微小的横向位移偏差或者角度方向偏差,再反馈控制弥补。
模型示意如下:
如图中,最终请求的方向盘转角由前馈角度和反馈角度相加得到。
2.3 积分饱和
积分器如果不限制上下限,可能会累积得过大。当超过了系统所能承载的控制量的上下限时,就会到达饱和状态,此时系统产生了超调。超调后由于Err符号相反,会有回正趋势,但是因为积分项积累过大,积分项和比例项想抵消以前的累计更加困难,必须等到控制量进入系统上下限范围的时候才会开始回正,所以这个回正过程会非常迟缓。
基于以上问题,在实际PID控制中需要对积分饱和的情况进行处理。常用方式是积分项限值和复位的处理。
图中包含了对积分项的复位和限幅的处理。
3 总结
本文总结一些工作中在使用PID控制时积累的经验。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)