我的微信公众号(ID:00后开发者)从00后的角度出发,专注但不局限于分享电气、嵌入式、机器视觉以及芯片行业的算法、技术文章和最新资讯。如果想查看更多内容,可以关注我的微信公众号。
前言
大学时期,为了备战各种电子设计竞赛,经常拿 大学生电子设计大赛 往年的题目来做练习。
2017年滚球控制系统,2013年倒立摆控制系统以及大家都调过的两轮平衡小车,四轴无人机,循迹小车、飞思卡尔赛车等,这些项目里面都包含了PID控制算法。通过这些项目,我也对PID算法有了自己的理解,希望把我的经验分享给大家。
PID算法的基本原理
PID控制算法如下图所示,输入是人为设定的方便PID控制器实现的控制量,经过比例、积分、微分环节,再由反馈环节,使得控制量无线接近于我们设定的目标量,从而达到PID控制的目的。
PID通过偏差信号控制被控量,控制器本身就是比例、积分、微分叠加组成。
在此,设定 t 时刻,输入量为 rin(t);输出量为 rout(t) ;偏差为 Δ(t)= rin(t) - rout(t) ;则PID控制器的公式如下:
比例部分P 数学表达式为 Kp×Δ(t)
在PID控制器中,比例环节的作用是对偏差迅速做出反应,比例系数Kp的值越大,比例环节的控制作用就越强,反应就越迅速,控制过程的静差就越小。Kp过大,会导致系统振荡。
对于平衡小车来说,Kp过大,系统振荡,小车就会前后摇摆,摇摆的幅度越来越大,最终会倒地不起。假如Kp的值较小,小车出现倾角,电机不能迅速反应,小车重心持续偏移(类似于比萨斜塔,重心在地基的铅直上方,就不会倾倒),此时电机反应过来也无法挽救小车的倾倒,最终也会倒地不起。
因此为了保证控制器的整体效果,比例系数Kp必须选择恰当,维持快速反应的同时,产生的静差小且系统稳定。
积分部分I 数学表达式为 Kp/Ti× ∫Δ(t)dt
从数学的角度来说,积分本质上就是累加的连续。从PID控制系统的角度来说,积分就是随着积分上下限的增大,即积分响应连续增加时间直到偏差为0,随着时间的增加,积分出来的值也增大。只有在理想条件下(偏差Δ=0)时,Δ的积分才是一个常数。只要存在偏差Δ,积分的控制作用就会不断增加。由此可见,积分在PID控制系统中的作用是不断减小系统的静差。
积分消除静态误差的理论分析,可以参考自动控制原理的书籍,对比静态误差函数和积分后的静态误差函数来分析。
积分环节的作用是消除静态误差,但会降低系统的反应时间,并增加系统的超调量。积分系数 Ti 越大,积分的时间累加作用就越弱,从而减缓静差的消除过程,即系统的反应变慢,可以减小超调量。 Ti 越小,积分的控制作用就越强,系统超调量增加,有可能会产生振荡。
PID参数整定先是比例后积分。对于倒立摆来说,在角度环中,如果积分系数越大,系统反应越慢,干扰稳定的摆杆,电机反应不及,摆杆就会受到重力的影响无法稳定,且偏差越来越大。积分系数越小,积分的作用效果就越强,系统超调量增加,可能产生振荡,电机就会抖动。
因此,为了保证积分过程尽可能的减小系统的静差,系统也能够快速反应,提高系统的鲁棒性,必须根据实际控制的具体要求来确定积分系数 Ti 。
微分部分D 数学表达式为 Kp×TD×dΔ(t)/dt
积分D,指的是Differential,微分环节作为一种“预见型”控制过程,通过计算分析出偏差的瞬时变化率,分析偏差的变化趋势,预先做出反应。微分环节响应的是偏差的变化过程, 根据偏差的变化趋势对系统进行控制。因此,引入微分环节,可以增加系统的鲁棒性,通过预知可能出现的偏差,减小超调量。
在四轴无人机的控制系统中,微分环节主要是提高系统的鲁棒性和反应快速性。当微分系数 TD 过大时,系统的噪声会放大,在无人机中的垂直升降中,无人机就会在对应的俯仰角/横滚角/偏航角上抖动;
当 TD 过小,无人机不能迅速达到稳定,同时操控方向舵和油门,可以明显看出,无人机从倾斜的姿态转为悬停稳定的时间延长。
微分会放大输入的噪声,在噪声较大的系统中,要么先进行滤波再微分,要么直接避免使用微分环节。
对于高阶控制系统,引入微分环节很有必要,方便减小超调量,克服系统振荡,使得系统迅速稳定。对于绝大多数的控制系统来说是不需要积分控制环节的。只有当某个系统存在有时间滞后的时候才加入积分环节进行修正,所以微分参数的加入要先确定系统是否存在有时间滞后。
整定PID参数的过程,实际上是通过引入PID控制器,不断调整零极点的分布,来保证系统的稳定性。具体的原理分析可以参考自动控制原理的相关书籍。
关于PID控制的相关C语言算法,将在后续的文章中介绍。
我的微信公众号(ID:00后开发者)从00后的角度出发,专注但不局限于分享电气、嵌入式、机器视觉以及芯片行业的算法、技术文章和最新资讯。如果想查看更多内容,可以关注我的微信公众号。