一文读懂PID控制

PID及其衍生算法,是目前工业应用最为广泛的算法之一,是当之无愧的万能算法!

对于研发人员来讲,熟练掌握了PID算法的设计与实现过程,就足够应对一般的研发问题了。

PID概念

PID是比例(Proportional)、积分(Integral)、微分(Derivative)的缩写,将偏差的比例、积分、微分通过线性组合构成控制量,用这一控制量对被控对象进行控制。

PID的控制流程简单到不能再简单,如图1所示:
PID控制流程
通过这张流程图,可以看到PID也是反馈控制,在PID控制中:
首先根据反馈值和期望值求出误差,比如轨迹跟踪控制中,这个误差就是车辆当前位置和期望路径之间的距离;
求出误差之后,再根据这个误差值进行比例、积分和微分三项的计算,其中,和分别是这三项的系数,表示这三项对输出控制量的影响的比重。
最后将计算出来的比例、积分和微分三项进行求和,就得到最后输出的控制量了。
的结构是可以灵活改变的,因为根据实际情况,比例、积分、微分三项并不是都需要发挥作用的,所以控制器又往往可以变成控制器和控制器。
接下来我们还是以轨迹跟踪为例来分别讨论比例、积分、微分这三项的意义。

P控制

考虑一个简单的情况,假设我们希望自动驾驶小车沿着图中的路线行驶,但小车在如下图所示的位置,那么需要转多少度呢?
小车初始位置
如果我们给其输入一个固定的值来转向,那么小车的轨迹将会如下图中所示:小车会沿着车道中心线走蛇形曲线。
固定值转向的小车行驶轨迹
显然,如果我们坐在这样的车上,一定会非常不舒服,因此驾驶技术娴熟的老司机在变道或是转向时,会一直调整方向盘,偏差大的时候转动更多的角度,偏差小的时候,则转角少一点。
中的控制,也称为比例控制,就是根据不同的偏差输出不同的控制信号。控制器的输出和输入成正比,只要偏差出现,就能及时地产生与它成比例的控制信号,如下图所示。
比例控制
在轨迹跟踪控制的这个例子中可以用这个式子来表达:
在这里插入图片描述
其中的e(t)就是期望值和反馈值的偏差,在这里指的是车辆偏离期望路径的距离,Kp就是比例控制的系数,通常称为比例参数。
我们可以这样理解:方向盘应该转动的角度是车辆偏离当前车道的距离的倍数,这个倍数就是Kp。

在P控制中系数Kp会直接影响实际的控制效果。在合理的数值范围内,Kp越大控制的效果越好,小车会越快的回到期望路径附近,对比如图5所示。
不同Kp时小车行驶轨迹
但是,如果小车本身的位置距离期望路径很远,并且Kp又比较大的时候,就会出现车辆失控的情况,如图6所示:
Kp过大时车辆失控
如果单纯地使用比例控制,小车可能会不停的穿越期望路径,并且来回调整,并不能稳稳地按照车道中心线行驶。在控制领域中,称这种现象为“超调”。

PD控制

如何矫正和避免“超调”呢?

在P控制(比例控制)中,我们只考虑了车辆偏离期望路径的距离,如果我们再将偏离距离变化的快慢考虑进来,就可以减小“超调”了。

偏差的变化速率用偏差对于时间的一阶导数来表示,将它乘以一个系数加到比例控制的表达式中去:
在这里插入图片描述
那么现在的控制输出就变成了比例项和微分项的和的形式,现在控制器就由PD控制器变成了PD控制器,也就是比例微分控制器。

微分项系数:Kd,通常称为微分参数,它的大小决定了偏差的变化率对控制输出的影响。因此,在PD控制器中,我们需要调节Kp和Kd两个系数,Kp增大,车辆向着期望路径行驶的倾向变强;增大Kd,车辆向着期望路径行驶的“阻力”变大,从而使得向期望路径方向的运动变得更加平滑。

但是,如果使用过大的Kp,过小的Kd,我们称之为欠阻尼的,这种情况的小车将沿着期望路径震荡前进;反之,如果Kp过小,Kd过大,那么称之为过阻尼的,这种情况下小车将需要较长的时间才能纠正其偏差。

合适的选择Kd、Kd可以使自动驾驶小车能快速回到期望路径的同时,并使其保持在期望路径上行驶,对比如图7所示。
PD系数调节对比

PID控制

这样看来PD控制好像已经能够实现较好的控制效果了,但这只是对于正常的情况,当环境存在扰动的时候。

比如说路面不平,车辆在受到外力作用下发生轻微偏移之后,由于比例控制倾向于向车道中心线方向运动,而微分控制则希望抵消这种倾向,这时候就可能造成车辆行驶路线与期望路径之间有一个持续的偏差(如图8所示),从而使得车辆始终无法沿着期望路径行驶,这种偏差我们称作“稳态误差”。
在这里插入图片描述
为了消除稳态误差,我们需要再引入一项——积分项。我们同样把偏差的积分乘以一个系数Ki,加入到比例微分控制的表达式中去:
在这里插入图片描述

那么现在的控制输出就变成了比例项、积分项和微分项的和的形式,现在控制器就由PD控制器变成了PID控制器,也就是比例、积分、微分控制器。

积分控制其实很好理解,稳态误差持续一段时间后,车辆的真实轨迹跟期望路径会形成一个长条形的区域。这个区域可以称之为累积误差。

这个累积误差,实际上是长条形区域的面积,而这个区域的面积就可以用偏差的积分来表示。

加入积分项以后,控制函数会尽可能使车辆实际运行轨迹的积分尽可能小(也就是使车辆实际运行轨迹和期望路径之间形成的形状的面积尽可能小),那么也就能够实现消除稳态误差了。

现在我们需要调节的系数变成三个了,同样的,这里的积分项系数Ki的大小也会影响整个控制系统的稳定性,如图9所示:
不同Ki时小车形式轨迹
如果Ki过大,控制器会变得不稳定,因为正常的控制器波动会被夸大。

如果Ki太小,又会使控制的车辆脱离稳态误差需要较长的时间,这在某些情况下势必会使车辆处于一个危险的境况。

只有当Ki恰到好处时,车辆才能快速接近理想轨迹

总结

我们同时考虑了车辆的偏离程度、向期望路径靠拢快慢、持续偏离误差三个因素来控制车辆实现轨迹跟踪,这就是比例-积分-微分控制(PID)。

这是用车辆轨迹跟踪的案例来进行解释的,我们再总结PID的每一个环节:

比例控制的作用是根据偏差的大小,使控制量向减少偏差的方向变化,控制作用的强弱取决于比例系数Kp,Kp越大控制越强,但是过大的Kp会导致系统震荡,产生“超调”,破坏系统稳定性。

微分控制的作用是根据偏差的变化速率,阻止偏差的变化。有助于减小超调量,克服震荡,使系统趋于稳定。

而积分控制能够消除系统的稳态误差,同时也能够促进控制量向减少偏差的方向变化。

选择合适的Kp,Kd和Ki是使用PID控制器的关键,而三个参数的值需要通过不断尝试、调整并结合实际工作经验进行确定。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值