PID参数解释

我们在学习接触PID时,多数人对所谓的传递函数不感兴趣,毕竟实际的系统中,哪有那么多可以准确确定传递函数的系统呢?所以就特别需要对PID的参数进行通俗易懂的解释。

    举例如下:

一、比例作用

假设我们面对的系统是一个简单的水箱液位控制,要从空水箱注水直到达到某个液位高度,而你能控制的变量就是注水水龙头的开关大小,那么这个简单的数学模型就是:

u=dx,其中x为液位,u为水龙头开度大小,

对于这个简单的系统,我们只需要一个比例环节就能实现:

u=Kp*e  其中e是误差值,u是水龙头开度。

   说白了,就是水箱液位与预定高度相差较远的时候,水龙头开大点(Kp不变,u变大),离得近的时候,就开小点,随着液位逐步接近预定的高度,逐渐关掉水龙头,此时Kp的大小代表了水龙头的粗细,越粗调的越快,这也就是所谓的:

    “增大比例系数,一般会加快系统响应”的规律,如下图所示:

二、积分作用

    假设这个水箱不仅仅是装水的容器,还需要持续稳定的给用户供水,那么这个系统的数学模型就需要再增加一项:

u-c = dx,这里c是一个正的常数,

   这时候我们发现如果控制器只有一个比例环节,那么当系统稳定,也就是dx=0,(特别注意,这里的“稳定”并不是达到目标,而是系统稳定在某个液位,但是又没到目标液位),也就是u=Kp*e=c

   e = c/Kp

    e在系统稳定时不是为0,而是不变,这里要特别清楚,液位举例我们想要的高度总是差那么一点点,那么这个固定差,就是所谓的稳态误差,或者叫静态误差,这个时候c是固定的,所以Kp越大,e越小,这就是所谓的:

“增大比例系数P在有静态误差的情况下有利于减小静差”,如下图:

  但是从上面的式子 e = c/Kp可以看出,即便Kp再大,它毕竟在分母上,e只能是接近于0,不可能为0,况且P太大,会有震荡,那怎么办呢,然后就有人自然会想到,我再加一个水龙头就行了,水箱漏掉多少水,我就给他补多少水,那么这里增加的第二个水龙头的补水功能,就是下面所说的积分作用。

我们把比例环节+积分环节的表达式变为:

  积分环节的意义就相当于刚刚增加的那个水龙头,这个水龙头的开关规则是水位比预定高度低,就一直的往大拧(正向误差累加),比预定高度高了,就往小了拧(反向误差也是累计),有人可能会疑惑,这里不管是往大了拧还是往小了拧,不都是会一直往里补水,难道就不是肯定会补大了吗?这里有个小弯,注意情景,这个时候水箱还一直漏水呢,所以积分会补大,但是也会往小了补,虽然都是补,只要参数选择合适,不会一直补大了,因为误差是有正负的。所以这么一操作,静态误差就没有了,这也就是所谓的积分环节可以消除系统静差。

    积分项里有一个积分时间常数,其实就是表示积分环节前面的那个系数Ki = Kp/Ti,这个Ti就是积分常数,其实可以理解成做累计误差求和的频率,频率越大,累加的作用越大,积分的作用也就越大,频率和时间是倒数关系,所以从上面的式子也能看出来,Ti时间常数越大,积分环节的系数越小,积分环节也就越不敏感,也就是第二个水龙头越细。在具体写程序代码时,可以结合着PID的采样时间来写,毕竟数字PID的积分项表达式就是T/Ti。

   当用比例+积分,也就是用两个水龙头注水时,在没有达到预定高度前,第二个积分环节的水龙头是一致往大了拧的,因为一直是正向误差累加,只不过往大拧的幅度小了,但是整体趋势是往大拧,一直等到达到预定高度的时候,它恰好拧到了最大,由于惯性的作用,自然而然注水就会注多了,而多出来的这部分水就叫做“超调”,第二个水龙头越粗,也就是积分时间常数越小(在分母上),I越大,多注的水就越多,不过它调到恰好等于漏水速度的时间就会越快,但是同时会有更多的波折,于是老师告诉我们一个规律:增大积分时间有利于减小超调,减小震荡,使系统的稳定性增加,但是系统静差消除的时间会变长。所以我们在写程序算法时,积分时间常数Ti不能太小,积分系数I不能太大,越小越平稳,系统越平滑,当然要找到一个平衡点。如下图所示:

上图中Ti=10时,曲线更平滑,(Ti并不是最终的I)

    接下来我们来看点有意思的东西,还是上面的系统,假设我们选择使用相同的积分时间常数,但是选择不同的比例系数会如何呢,如下图所示:

   上面的图会有些疑问,因为按照前面对Kp的分析“过大的比例系数会使系统有较大的超调,并产生震荡,使稳定性变坏”,但是上面的图里怎么比例大的范儿超调小呢?其实这个也很好解释,上面的PI控制超调出现的原因是积分这个水龙头在达到目标液位时也是恰好开到了最大,而比例这个水龙头越粗,那么它在超出目标液位时,对超调的抑制也就越明显,因为此时Kp这个水龙头是往负方向调节的,积分毕竟有惯性,反应没那么快,而比例则立刻往反方向调,所以P和I的合力才会P大反而超调越小。

三、微分作用

微分的作用是“阻尼”,也就是根据现在的趋势去判断未来,进而来阻碍未来可能出现过调的趋势,相当于是提前踩点刹车,但是又不全踩刹车,所以总结为:“微分环节的主要作用是响应过程中抑制偏差任何方向的变化”,注意“任何”二字,响应大了就往回拉一点,响应小了,就往大了补点。“微分常数不能过大,否则会使响应过程提前制动,反而延长了调节时间”,其实很多的系统本身就有很大的阻尼性,比如要加热一缸水,或者整个区域的供暖系统,温度本身就是大的滞后环节,加不加微分都没太大意义,毕竟很多时候“误差的误差”是很小,或者是0(温度很长时间多不变)的。为啥好多系统不需要D控制就可以呢,那是因为浙西系统本身就有足够的阻尼了,比如温度加热控制,本身温度就是一个大的滞后缓慢系统,但是有些系统就需要积分,比如单摆运动,如果没有微分,可能就要一直震荡下去了。

四、PID变积分原理

变积分PID可以看成是积分分离的PID算法的更一般的形式。在普通的PID控制算法中,由于积分系数ki是常数,所以在整个控制过程中,积分增量是不变的。但是,系统对于积分项的要求是,系统偏差大时,积分作用应该减弱甚至是全无,而在偏差小时,则应该加强。积分系数取大了会产生超调,甚至积分饱和,取小了又不能短时间内消除静差。因此,根据系统的偏差大小改变积分速度是有必要的。

   变积分PID的基本思想是设法改变积分项的累加速度,使其与偏差大小相对应:偏差越大,积分越慢; 偏差越小,积分越快。

   备注:上面的道理刚一理解会觉得很绕,总觉得误差大的时候,增大Ki不应该是越大会越快达到目标吗?这里面容易疏忽一个道理,“积分”是“持续不断”的累加的,当偏差比较大的时候,如果积分系数Ki也比较大,那么积分效果也就会更明显,那么调控效果,起步就会太快,跳变的也大,跳变一次没什么,问题是,积分是连锁反应,后面的是累加,然后最后的结果,会越来越大,所以才有了“偏差大的时候,积分作用应该减弱,而在偏差小的时候,反而应该加强”,因为只有这个时候,才是“静态误差”出现的开始,而积分的核心作用就是专门消除静态误差的。

长期从事机器人学相关研究,涉及机械臂、轮式机器人、四足机器人的建模及仿真,可共同探讨机器人相关问题,可指导课程设计及毕业设计,详询:QQ:3531225003

转载自:PID参数通俗解释_猪哥的专栏-CSDN博客_pid通俗易懂的解释

  • 23
    点赞
  • 139
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值