本文已参与「新人创作礼」活动,一起开启创作之路

  在进入正式话题之前需要引入四个概念:稳态误差终值定理幅角条件系统稳定的充要条件

稳态误差:系统达到稳定状态后,系统的实际输出量与系统希望的输出量之间的偏差。 终值定理:设有连续函数f(t)f(t),当t趋于无穷时,f(t)f(t)的极限存在,则有

为什么是PID控制
其中,F(s)F(s)f(t)f(t)经过拉普拉斯变换后的函数,即
为什么是PID控制

幅角条件   零点到根的夹角和与极点到根的夹角和是 180180 的倍数。表示极点,表示零点

为什么是PID控制

系统稳定的充要条件:闭环传递函数的极点位于ss的左半平面。对于某个系统的传递函数的极点为 pp1pp2 ,它们都在实轴上,即 p1 == -$$a , p2 == -$$b (aabb均为常数)对该系统一个单位冲激信号,于是系统的响应为

为什么是PID控制
pp1 << 00 , pp2 << 00
为什么是PID控制
  说明这个系统是收敛的,也就是说这个系统可以稳定。

pp1pp2 有一个大于00

为什么是PID控制
  说明这个系统是发散的,也就是说这个系统无法达到稳定。 当 pp1pp2 并没有在实轴上,即 p1 == -$$a ++ b$$i , p2 == -$$a -$$b$$i ,此时有
为什么是PID控制
在经过拉普拉斯逆变换,得
为什么是PID控制
  正弦函数是等幅振荡函数,而 ee^(-at)^ 会随 tt 得增大而减小 ,最终趋向于00,故而 X(t)X(t) 是一个振荡衰减函数,最终仍会趋向于 00。图像大概是这个样子
为什么是PID控制
如果 p1 == aa ++ bibi , p2 =a−bi= a -bi ,此时有
为什么是PID控制
  此时该函数时振荡发散的,是不稳定的,图像就是上图从右往左看。

  进入正式话题,在做实际工程或者学习自动控制原理的时候,PID控制经常被提起,大部分工程中涉及控制基本都是PID,那么PID到底是什么?它为什么可以做控制使用?又是如何控制的呢?所谓PID就是比例积分微分控制,下面我们就对33种控制稍做分析。

比例控制

  对于如下比例控制系统,输入是R(s)R(s),输出是X(s)X(s)

为什么是PID控制
为什么是PID控制
于是系统的闭环传递函数为
为什么是PID控制
  由这个传递函数可知极点p=(−1−p = ( -1 – Kp )/a) /a,我们知道,当 pp位于 ss 的左半平面时系统才会稳定,也就是说 Kp >> −1-1 时系统才会稳定。   我们给系统一个输入一个目标值,即 r(t)=rr(t)=r, 于是
为什么是PID控制
为什么是PID控制
根据中值定理,有
为什么是PID控制
那么稳态误差为
为什么是PID控制
  由上式可知,KKp 趋向于无穷大时,eess 趋向于 00,但实际工程中,KKp 不可能取太大,否则超调量会非常大(一阶系统除外),如果超过了控制器的输出范围,那也就没有意义了,但是在控制器的输出范围内,Kp又不会太大,所以稳态误差还是消除不了,故而一般不单独使用比例控制。

举个实际的例子:   对于系统:

为什么是PID控制
  通过以上的推理,该系统在 KKp >> −1-1 时才会稳定,那就在simulink中仿真一下,把输入设置为1010,示波器中的黄线代表目标值,蓝线代表输出值: KKp == −- 22 时,系统结构如下
为什么是PID控制
输出曲线如下
为什么是PID控制
  由图可以看出,输出值已经跑飞了,系统不可能会稳定下来。 看看 KKp == 22 时的情况
为什么是PID控制
  这时候系统已经稳定了,但是稳态误差很大。 再看看 KKp == 100 的情况
为什么是PID控制
  此时稳态误差已经很小了,可以忽略不计了。但是此时的 KKp 已经非常大了,如果系统此时输出为 99 ,那么偏差就为 11,比例控制输出为 100100,对于PWM调节的话,占空比最大就是100$$%,很明显这是不符合实际应用的。当然控制器的输出我们可以不当做占空比直接使用,比如在单片机的PWM的配置过程中,令计数值为10001000才代表100$$%占空比,那么比例控制输出100100,对应PWM占空比也才10$$%,看上去很合理,也符合实际应用,这样一来,系统的调节时间就会变长,同样我们也可以理解为此时 KKp 还较小。所以比例控制一般不单独使用。

积分控制

  上面我们研究了比例控制器,他不能消除稳态误差,所以需要设计新的控制器C(s)C(s),系统结构框图如下:

为什么是PID控制
求得系统传递函数
为什么是PID控制
  我们同样令r(t)=rr(t) = r ,拉普拉斯变换后, R(s)=r/sR(s) = r / s,于是有
为什么是PID控制
  我们的目标是消除稳态误差,即 eess == 00
为什么是PID控制
继续推导
为什么是PID控制
  这个 C(s)C(s)不就是积分嘛,KKi 就是积分增益。我们来验证一下,还是拿前面的系统
为什么是PID控制
设置 KKp == 22 , KKi == 11,看看比例控制与积分控制的效果
为什么是PID控制
  黄色的直线表示目标值,蓝色的线是比例控制,橙色线是积分控制。由图可以看出,积分控制很明显的消除了稳态误差,但是积分控制的调节时间却比比例控制要长很多,那将比例控制与积分控制放在一起,同时作用,效果又是怎样的?

更改系统框图

为什么是PID控制
  最上面一个闭环是比例控制,第二个是积分控制,最下面一个是比例积分控制,为方便对比我们稍稍做下参数调整,将比例积分控制的 KKi 增加到 22,看看效果
为什么是PID控制
  这条绿色的线就是比例积分控制,其余三条不变。由图可知,比例积分控制不仅吸取了比例控制的快速响应并稳定特点,还吸取了积分控制能消除稳态误差的特点,所以比例积分控制的有点明显胜于比例控制。

引入微分控制

  设一个二阶系统的一对根为 pp1 =−a+bi= – a + bi , pp2 =−a−bi= – a – bi,对该系统输入一个单位冲激信号,那么该系统的响应为

为什么是PID控制
经过拉普拉斯逆变换后,得
为什么是PID控制
  我们知道这个函数得曲线是振荡衰减直至到00,也就是说这个系统是稳定的。我们的目标是让系统更快速稳定,也就是加快系统的收敛速度,也就是−a-a 越小,系统的收敛的速度才会越快,减小 −a-a 也就是改变根轨迹,让根左移。我们以实例来说明: 设有系统的开环传递函数为
为什么是PID控制
  该系统有22个极点,1== 00,2== −2-2,没有零点,渐近线交点a=$$-1,与实轴得交角为9090,根轨迹如下
为什么是PID控制
那么所有的根都将在实部为−1-1这条竖线上,我们要让系统快速衰减,也就是让根左移,并且越左越好,我们就让他移到实部为−2-2得这条竖线上,为便于计算,我们设这个根为k=−2+2√3ik=-2+2√3i
为什么是PID控制
根据幅角条件
为什么是PID控制
为什么是PID控制
这也就是说,k=−2+2√3ik=-2+2√3i不在原根轨迹上,如果要使这个根满足幅角条件,或者说改变原根轨迹使得kk在新的根轨迹上,该怎么办呢?那就加个30,也就是加个零点嘛,如图
为什么是PID控制
通过计算,补偿的30这个零点为−8-8,那么这个新的控制器不就是H(s)=s+8H(s)=s+8,这不就是微分控制和比例控制吗,即PDPD控制,这里就把微分控制引进来了,我们可以仿真一下
为什么是PID控制
  这个结构中,上面一个闭环是PDPD控制,下面一个就是PP控制,KpK~p~ =8=8,得到得输出响应
为什么是PID控制
蓝色的线表示PDPD控制,橙黄色得线表示PP控制,可以清楚得看到PDPD控制得超调要小的多,收敛的速度也明显比比例控制快很多。我们在修改修改参数,将KKi =2.9=2.9,看看效果
为什么是PID控制
很明显,现在的超调已经变得很小了,收敛速度更快。对于微分控制,在实际应用中,不会拿微分控制单独做一个控制器,因为微分控制对高频干扰十分敏感,比如在系统中存在这样一个干扰:D(t)=0.01sin(100t)D(t)=0.01sin(100t),它的幅值很小,频率很高,一旦遇到微分控制,于是D(t)D(t)tt求导,此时 DD^1^(t)=cos(100t)cos(100t),赋值被放大了100倍,所以微分控制在很多时候并不被使用,PIPI控制被广泛应用。