PID 算法

释放双眼,带上耳机,听听看~!

原标题:这是我见过最通俗易懂的PID整定理论!

PID 算法

在实际工程中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。

PID控制器问世至今以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。

当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。

PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、 积分、微分计算出控制量进行控制的。PID控制器的参数整定是控制系统设计的核心内容!

如果你从来没有接触过PID,看完这篇文章你就会明白PID控制到底是怎么回事了!

1.假设我们面对的系统是一个简单的水箱液位,要从空箱开始注水达到某个高度,而你能控制的变量就是注水笼头的开关大小。这个简单的数学模型就是:
dx=u。

对于这个系统,我们只需要一个比例环节
u=k
pe就能将其控制住。

此时,k
p的大小代表了水龙头的粗细(即出水量大小对液位误差的敏感程度,假设水龙头开度与误差正比关系),越粗调的越快,也就是所谓的"增大比例系数一般会加快系统响应"。如下图:

PID 算法

2.假设这个水箱不仅仅是装水的容器了,还需要持续稳定的给用户供水。这个系统的数学模型就需要增加一项:
dx=u-c,这里的c是个正的常数。

我们发现如果控制器只有一个比例环节,那么当系统稳定,也就是dx=0的时候,恰好e=c/k
p,在系统稳定时不为0,液位离我们想要的高度总是差那么一点,这也就是所谓的稳态误差,或者叫静差。

这时候c是固定的,那么当然k
p越大,e就越小。这也就是所谓的增大比例系数P在有静差的情况下有利于减小静差。如下图:

PID 算法

3.从上面的公式e=c/kp可以看出,kp再大也不可能把e变成0。老是调不到预定位置老板是会骂人的,这可咋办?

然后有人就想到,第二小节里头水箱跟第一小节的相比,就多了一个漏水的窟窿。它漏多少我给它补多少,那不就成了第一小节里的简单系统了么!靠谁补呢?积分环节这时候就派上用场了。

我们把之前的控制器变成比例环节+积分环节:

PID 算法

积分环节的意义就相当于你增加了一个水龙头,这个水龙头的开关规则是水位比预定高度低就一直往大了拧,比预定高度高就往小了拧。如果漏水速度不变,那么总有一天这个水龙头出水的速度恰好跟漏水的速度相等了,系统就和第一小节一样了。那时,静差就没有了。这就是所谓的积分环节可以消除系统静差。

4.什么叫积分时间常数呢?一般PID控制里,表示积分环节敏感度的那个系数
中,Ti就是积分时间常数。从这个式子我们可以看出,积分时间常数越大,积分环节系数就越小,积分环节就越不敏感(也就是第二个水龙头越细)。

当只有一个比例环节的水龙头注水的时候,是不会注水注多的,因为离得越近水龙头关的越小。

但是当用两个水龙头注水的时候,在没到预定高度前第二个积分环节的水龙头可以一直往大了拧,当到达预定高度的时候它恰好拧到最大,自然而然就会注水注多了,而多出去的这部分水叫做“超调”。第二个水龙头越粗,多注的水就会越多,它调到恰好等于漏水速度的时间就会越快,同时会多更多波折。

于是,老师告诉我们增大积分时间I有利于减小超调,减小振荡,使系统的稳定性增加,但是系统静差消除时间变长。如下图:

PID 算法

5.接下来看点有意思的东西。还是上面这个系统,假如我们选用相同的积分时间常数,但是选择不同的比例系数会如何呢?

PID 算法

看到上面这幅图,一些记性好的童鞋可能会有疑问。因为老师明明说过”过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏“,但是上面这幅图里怎么比例大的反而超调小呢?

其实上面这幅图很好解释,小节4里我们说明了PI控制器超调出现原因是积分这个水龙头在到达目标液位时也恰好开到了最大。而比例这个水龙头越粗,那么它在超出目标液位时对超调的抑制也就越明显。

这里,我想强调的是:
PID参数整定的结论是根据普遍经验总结的,但是针对某个具体的系统不一定完全适用。

6.在上面的系统中,我们假设用户用水的固定的一个值,但是实际情况中用户的用水量往往是变化的。假如我们的系统是dx=u-c(t)呢?

我们试着来分析一下:

我们的控制目标是让x=xd,系统误差的定义是:e=xd-x;

那么,误差状态方程就是:

我们设定的控制目标是个常数,所以xd=0;

,从这个式子可以看出,当e=0时,
不再变化,而c(t)是始终变化的。

此时de不恒为零,也就是说e不恒为零。

当c变成c(t)的时候,e=0就不再是系统的稳定平衡点了,经典意义上系统不再稳定。

7.这里加一个微分环节D变成PID控制会不会让系统重新稳定呢?

当加入微分环节,

PID 算法

,那么,

PID 算法

,对于任意
,微分环节都让de的变化减慢了。

这也就是“微分环节主要作用是在响应过程中抑制偏差向任何方向的变化”,“微分常数不能过大,否则会使响应过程提前制动,延长调节时间”。

至于“微分环节会提高系统抗扰动能力,降低系统抗噪声能力”,更多指的是大多数细微测量噪声造成的e很小,但瞬时的de较大,微分环节相对于PI环节更容易收到这些细微噪声的影响。

但是,无论如何选取微分参数,PID控制都不能使系统稳定。

从这里,我们可以看到PID控制的局限。

希望大家不要死记口诀,多用所学到的控制理论来针对具体问题具体分析。

给TA打赏
共{{data.count}}人
人已打赏
安全运维

MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据

2021-12-11 11:36:11

安全运维

Ubuntu上NFS的安装配置

2021-12-19 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索