PID实例讲解(适合小白),PID三个变量的作用与关系

故事案例

下故事摘自其他文章

小明接到这样一个任务:有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置(100%),一旦发现水面高度低于要求位置(85%),就要往水缸里加水。



小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每30分钟来检查一次水面高度。水漏得太快,每次小明来检查时,水都快漏完了,离要求的高度相差很远,小明改为每3分钟来检查一次,结果每次来水都没怎么漏,不需要加水,来得太频繁做的是无用功。几次试验后,确定每10分钟来检查一次。这个检查时间就称为采样周期

开始小明用加水,水龙头离水缸有十几米的距离,经常要跑好几趟才加够水,于是小明又改为用加,一加就是一桶,跑的次数少了,加水的速度也快了,但好几次将缸给加溢出了,不小心弄湿了几次鞋,小明又动脑筋,我不用瓢也不用桶,老子用,几次下来,发现刚刚好,不用跑太多次,也不会让水溢出。这个加水工具的大小就称为比例系数

小明又发现水虽然不会加过量溢出了,有时会高过要求位置比较多,还是有打湿鞋的危险。他又想了个办法,在水缸上装一个漏斗,每次加水不直接倒进水缸,而是倒进漏斗让它慢慢加。这样溢出的问题解决了,但加水的速度又慢了,有时还赶不上漏水的速度。于是他试着变换不同大小口径的漏斗来控制加水的速度,最后终于找到了满意的漏斗。漏斗的时间就称为积分时间

小明终于喘了一口,但任务的要求突然严了,水位控制的及时性要求大大提高,一旦水位过低,必须立即将水加到要求位置,而且不能高出太多,否则不给工钱。小明又为难了!于是他又开努脑筋,终于让它想到一个办法,常放一盆备用水在旁边,一发现水位低了,不经过漏斗就是一盆水下去,这样及时性是保证了,但水位有时会高多了。他又在要求水面位置上面一点将水凿一孔,再接一根管子到下面的备用桶里这样多出的水会从上面的孔里漏出来。这个水漏出的快慢就称为微分时间


过程分析

1.第一步,小明同学确认了一个好的采样周期,开始30分钟太长,后3分钟太短,多次试验后,选择了10分钟。我们可以把采样周期作为一个提前量,采样周期的选定直接影响后续变量值。我们这里讨论恒定采样周期,复杂些的非恒定采样周期后面文章再讨论。

2.第二步,在确定恒定采样周期为10分钟后,我们在瓢、盆、桶几个工具中选择了盆,思路为:用瓢装水次数太多,用桶容易装满导致溢出,用盆恰好。(好,到这里又要讨论一下采样周期,我们刚才说了在恒定采样周期为10分钟时,我们最佳选择是盆,但如果采样周期为30分钟一次,盆就不是最佳选择)。而选择盆的的数学意义就是控制比例系数。如果把瓢、盆、桶比例化,大致为5%、15%、30%。在现实中,存在一个问题为,我们很难选择到合适的工具,使得比例符合要求,比如我们要能装15%水量的盆,但现实中可能只有14%或16%的盆,达不到15%的标准,而差异的这部分我们叫做稳态误差,即只要在恒定采样周期,使用同一比例系数,总会产生的误差,叫做稳态误差。

  

3.第三步,到目前为止,我们仅用到了PID中的P,即比例系数,理想情况下,假设采样周期恒定,比例恒定,仅仅P就足够了,如缸中水线低于85%加水,使用盆(15%)调整后重新回到达到100%,10分钟后水位回到85%,继续加水如此往复。但现实情况为,因为稳态误差的问题,我们找不到合适大小的盆,无法控制比例一定为15%(且缸的漏水速度不一致,但采用周期是恒定的)。假设现实中,我们的盆比例大小为16%,每次加水总会漏1%,我们利用缸自身漏水这一点,加入一个元素控制倒水的速度,使得在盆中多出的1%在倒水时间中恰好等于缸自身的漏水值。小明选择的用漏斗(调整口径)来控制水流速度。在这里,漏斗口径大小(控制水流速度)为积分系数,通常,积分I就是为了消除稳态误差而存在

4.第四步,到目前为止,我们用到了PID中的PI,比例系数和积分系数。我们能做到让水线控制在100%,并且倒水也不会溢出了。如果不考虑响应时间,仅PI就可以满足需求了,但新的需求是,必须在一定时间内响应,用漏斗水流速度太慢,需要15s才能完全将水倒入,而系统要求2s内完成响应,此时也可以调整I积分系数,选择大口径的漏斗,考虑到现实中可能没有这么大口径的漏斗(工具无法满足),我们引入一个新的影响因素:D微分系数。上文说的“在水面位置上面一点将水凿一孔”,由于水位要求为100%(我修改了一下原文),所以改为:不使用漏斗向其中倒水,溢出的水量用容器承载,倒水前在盆中舀出容器大小水量。于是乎,我们不使用漏斗,提前舀出水量,这样倒入后也不会溢出了。于是,我们仅凭PD就可以控制水线,那I是不是可以不用了呢?回答这个问题前,我们先做一次总结。

5.总结,整个过程为:选择恒定采样周期后,选择合适的比例系数(如盆),使用盆发现水总是溢出(过调),多次观察为稳态误差,为了消除问题误差,我们加入漏斗放慢倒水速度,缩减过调程度,这一过程为调整积分系数。但因为要求倒水速度要加快,于是拿掉漏斗,以打提前量的方式在盆中舀出可能溢出的水量。

以上总结会产生几个疑问,其一是:使用PI或PD,或PID都使用,这些组合分别有什么区别,哪一种最好?

首先,我们可以确认P比例是必须有的,使用比例后可能产生超调,为了消除超调,我们控制盆倒水速度(即控制比例调整速度),水量还是那个水量,只是因为调整速度变慢了,在倒水过程中,由于缸自身存在漏水速度,恰好抵平盆的过调量,此时系统趋于稳定。但加入漏斗后调整速度太慢了,达不到要求响应时间,于是取消漏斗,测量过调量,再调整前舀出溢出水量,以此在响应时间内达到要求,但也产生了一个问题,缸的漏水速度是匀速吗?我们在事件还未发生前,怎么确定舀出量呢?参考上一次吗?我们把缸漏水速度称为扰动(或噪声)因素(之一),此时系统虽比仅有P时稳定,但任存在扰动,难以做到精准控制。

PI组合可能产生的问题:响应速度慢

PD组合可能产生的问题:抗扰动能力弱

若使用PID三个一起作用呢:通过使用P控制了倒水量,产生过调,使用I控制倒水速度,消除过调,但响应时间过慢,加入D不取消漏斗,但需要调整I的大小(增大漏斗半径,对应为积分系数减小),使得系统再次趋于不稳定,但比仅P时稳定性好,测量溢出水量(即调整合适的D大小),使得整体的输入量减小,此时系统再次趋于稳定。

在这个案例中,我们将实际动作做一层抽象,形成抽象名词:

  • 设定值:水缸85%水线
  • 实际值:水缸实际水线
  • 输入值:倒水量(盆)
  • 测量传感器:人眼,载水容器
  • 测量值:水是否溢出,水是否在水线以下,水溢出量
  • 执行者:人
  • 执行动作:倒水,舀水
  • 误差:缸漏水速度
  • 可调变量:总倒水量,倒水周期,倒水速度,舀水量
  • 正作用:倒水
  • 方作用:舀水

我们对PID有以下总结:

  • 增大比例系数P一般将加快系统的响应,但是过大的比例系数会使系统有比较大的超调(若误差恒定即为稳态误差),并产生振荡,使稳定性变坏。
  • 增大积分时间I有利于减小超调(消除稳态误差),减小振荡,使系统的稳定性增加,但会使得调整时间变长。
  • 增大微分时间D有利于加快系统的响应速度,使系统超调量减小,稳定性增加,但系统对扰动的抑制能力减弱。

 我们对PID的调节有以下总结:

  • 增大P,系统响应速度变快,但系统不稳定。
  • 增大I,系统趋于稳定,但响应速度慢。
  • 调小I,响应速度变快,但系统趋于不稳定,增大D,使系统尽可能稳定。

参考:

比例(P)控制

比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。

积分(I)控制

在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

微分(D)控制

在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。 自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。

  • 8
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值