PID详解

PID在控制领域应该是应用最为广泛的算法了,在工业控制,汽车电子等诸多领域中运用
下面我用一个例子和算法过程来讲解PID的概念
PID:
P比例控制:基本作用就是控制对象以线性的方式增加,在一个常量比例下,动态输出
缺点:会产生稳态误差
I积分控制:基本作用就是用来消除稳态误差
缺点:会增加超调
D微分控制:基本作用就是减弱超调,加大惯性响应速度
1、什么是PID及其作用


上图描述: 设定一个输出目标,反馈系统传回输出值,如与目标不一致,则存在一个误差,PID 根据此误差调整输入值,直至输出达到设定值.
为什么需要PID呢,比如控制温度,我们需要设置一个要达到的目标温度值,当将温度稳定在目标温度值
例如,我们希望水的目标温度值为70°,其希望无非就是可以快速而且无抖动的达到70°,并稳定在70°
如果我们使用普通的方式加热,当温度到达70°后就以及停止加热,岂不是简单快速,当然用在要求不高的场合也可以,但是如果要求更高的场合呢,会出现温度到达70°后,由于加热器的余温会使温度继续上升,并且再加上环境的温度会散热,所以我们无法将水温很平稳的稳定在70°


总结一下:我们需要PID的作用无非就是无法通过普通控制手段快速稳定的输出到目前设定值
2、公式

经过化解后的公式

Kp-------比例常数

Ki= (Kp*T)/Ti------积分常数

Kd=(Kp*Td)/T------微分常数

3、实战例子
小明接到一个任务: 有个水桶,需要时刻保持1m 的高度,目前水桶里有0.2m 的水

那么小明采用P(比例) 的方法加水:即每次测量与1m 的误差,并加入与误差成比例的水量

设Kp=0.4
第一次,误差是 e(1)=1-0.2=0.8m,那么加入水量是 Kp0.8= 0.40.8 = 0.32m.当前水桶水位:0.2+0.32=0.52

第二次, 误差是e(2) = 1-(0.2+0.32) =0.48m 那么加入水量是 Kp*0.48=0.192m,当前水桶水位:0.52+0.192=0.712

通过P比例控制完美解决了快速稳定在目前值,但是在实际环境中得考虑各种影响问题,所以
小明的新任务: 有个水桶,但桶底漏了个洞,仍需保持1m 的高度,目前水桶里有0.2m 的水,但每次加水都会流出0.1m. 这个例子就接近我们实际工程的例子了,比如电机摩擦的阻力,损耗.
P (比例控制) u= Kp e (e为与上次差值)*
当前水量0.2m,目前值水量1m
设Kp=0.4. 则u= 0.4*e ,e=上次水量 - 当前水量

第一次,误差是 e(1)=1-0.2=0.8m,那么加入水量是 Kp0.8= 0.40.8 = 0.32m.当前水桶水位:0.2+0.32 -0.1=0.42

第二次, 误差是e(2) = 1-(0.2+0.32) =0.48m 那么加入水量是 Kp*0.48=0.192m,当前水桶水位:0.52+0.192=0.552


问题来了,水位最终在0.75m 处稳定了,但是,当误差是0.25m 时,加水量时0.1,每次加入的刚好等于漏掉的0.1.

这里就引入了稳态误差的概念:即当系统到达稳态时与目标的误差.
当我们加大KP时,增加值1

已经更接近目前值了,当我们继续增加呢

当增加值1.8时,已经非常接近1m的水量了,但是也出现了非常大的抖动
结论: 比例控制引入了稳态误差,且无法消除.比例常数增大可以减小稳态误差,但如果太大则引起系统震荡,不稳定.
为了消除稳态误差,第二次加入积分,使用PI(比例积分控制)
积分控制就是将历史误差全部加起来乘以积分常数.
一样的情况,现在设Kp=0.4,Ki= 0.3
第一次,误差是 e(1)=1-0.2=0.8m,那么加入水量是 Kp0.8 = 0.40.8 = 0.32m , KI * e(1) = 0.3 * 0.8 = 0.24 加入水量 = 0.32m + 0.256 = 0.56 当前水桶水位:0.2+ 0.276 - 0.1=0.66
第二次,误差是 e(2)=1-0.66=0.34m,那么加入水量是 Kp0.34 = 0.40.34 = 0.136m , KI * (e(2)+e(1)) = 0.3 * 0.342 = 0.342 加入水量 = 0.136m + 0.342 = 0.478 当前水桶水位:0.66+ 0.478 - 0.1=1.038

我们发现加入KI后,有效的消除了稳态误差,但是发现了超调现象

如果我们增加KI呢

超调也会增加,同样减小KI值,超调也会变小

结论:

只要存在偏差,积分就不停的累计,直到误差为0, 积分项不再累加,变成一个常数,可以抵消稳态误差.
在表中最后几项的输出已经非常接近0.1,说明消除了稳态无处,但是却出现的超调的部分
所以为了消弱超调,KD出现了
所以公式是:

设Kp=0.4,Ki= 0.3,Kd=0.3,水位0.2,目标水位1
第一次,误差是 e(1)=1-0.2=0.8m,那么加入水量是 Kp0.8 = 0.40.8 = 0.32m , KI * e(1) = 0.3 * 0.8 = 0.24 , KD = 0 (因为当前水位差就是0.8) 加入水量 = 0.32m + 0.256 = 0.56 当前水桶水位:0.2+ 0.276 - 0.1=0.66
第二次,误差是 e(2)=1-0.66=0.34m,那么加入水量是 Kp0.34 = 0.40.34 = 0.136m , KI * (e(2)+e(1)) = 0.3 * 0.342 = 0.342 , KD (e(2) - (e1))= 0.3(0.342 - 0.8) = -0.138 加入水量 = 0.136m + 0.342 -0.138 = 0.34 当前水桶水位:0.66+ 0.478 - 0.1=0.9

有明显的削弱超调

结论: 微分能够减弱超调趋势.

为了更明显对比三个系数的关系,我们进行计算对比,看下图
设初始水位0.2,目前水位1,流出水位0.1,KP=0.4,KI=0.3,KD=0.3
首先是数据对比

仔细查看三个图的最终水量的变化,
只有KP情况下,第一张图水位无法达到目标水位
有KP和KI情况下,第二张图水位达到目标水位,但是出现超调
有PID的情况下,第三张图在出现超调后,KD马上进行的减小,有效抑制了超调
说明:PID三个参数是随意设定,所以在调整时,需要不断测试及根据经验调试
下面用曲线图对比

此参数只是参考,具体PID参数的设置需要不断尝试,直到达到标准
如果运用在电机控制领域,同样在控制输出给电机的电流大小,一般通过PWM去控制输出的电流量,通过反馈的采样电阻得知当前的电机转速,也就是说,我们设定目前转速,采样当前电机转速,去调整PID三个参数,经过不断尝试达到预定状态,但是在控制电机时,会涉及到电机的开环和闭环,开环简单来说就是电机加速的过程,相当于电机从0到预定转速并平稳后的过程,而闭环就是后续稳定的运行过程,如果图中所示

所以对于电机的调试一般开环转闭环的过程会比较麻烦一些,当在调试过程中你会发现你设定转速达不到预定转速,这时你就要想到出现了稳态误差,需要KI的帮助,当你加入了KI后,可能转速达到了预定转速,但是可能出现启动抖动的想象或者出现启动电流很大这样的想象,所以可以加入KD去削弱超调减小抖动或启动电流,只有三个参数配合得当时,才会启动稳定,运行正常,当然要考虑电机的属性,以及电路的设计,开关管的参数等等。
————————————————
版权声明:本文为CSDN博主「Mr.Fu!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_48435215/article/details/125261840

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 西门子1200是一种数字化的智能控制器,具备先进的PID控制功能。 PID是Proportional-Integral-Derivative的缩写,是一种控制方法,广泛应用于工业自动化领域中。 在西门子1200中,PID控制用于调节和稳定系统的输出值,以使其达到预设的目标值。PID控制器有三个组成部分:比例控制、积分控制和微分控制。 比例控制通过与目标值的误差成比例的方式,调节输出值,其作用是根据误差的大小进行调节,使之对应比例地更改输出值。比例增益因子决定了比例控制的强度。 积分控制通过对误差的积分累计,逐渐减小误差,并降低系统的超调。积分项对于去除系统静态误差和提高系统稳定性非常重要。 微分控制根据误差变化率的快慢来调节输出值,其作用是对系统的超调进行抑制,使系统的响应更加平滑。微分项可以帮助系统更好地响应变化,减少过程中的振荡。 在西门子1200中,可以通过参数设置PID控制的各项参数,如比例增益因子、积分时间和微分时间等,来满足不同系统的要求。PID控制器可以根据系统的实际情况进行调整和优化,以实现更准确、稳定的控制效果。 总之,西门子1200的PID控制功能是一种高级的控制方法,可以根据系统的需求和实际情况,调节和稳定系统的输出值,实现精确的控制效果。它在工业自动化中起着重要的作用。 ### 回答2: 西门子1200是一种PID控制器,用于实现过程控制系统的自动控制。PID代表比例(Proportional)、积分(Integral)和微分(Derivative)控制。 比例控制(P)是PID控制的基本部分,它通过测量变量(例如温度或压力)与设定值之间的差异,并乘以一个比例系数来产生一个控制输出。这个输出与被控变量的变化有直接关系,但有可能存在稳态偏差(steady-state error)。 积分控制(I)用于消除稳态偏差。它将控制输出与时间的积分累加,并乘以积分系数,以增加输出对于稳态偏差的修正。 微分控制(D)通过测量变量的变化率,即变量的导数,并乘以微分系数来影响控制输出。它用于减小系统动态响应中的震荡或过冲。 在西门子1200中,PID控制可以通过设置比例系数、积分时间和微分时间来参数化。比例系数决定了控制输出与误差之间的线性关系,积分时间决定了积分控制的响应速度和稳态精度,微分时间决定了微分控制对于变化率的响应速度。 PID控制的优点是简单且易于实现,可以适应不同的过程要求,并能够通过调整参数来优化系统性能。然而,PID控制也有其局限性,例如在非线性系统或具有大的滞后效应的系统中,可能会出现控制精度不高的问题。 总之,西门子1200的PID控制器提供了一种灵活且可调节的方法来实现自动控制,并可以根据系统要求进行优化。 ### 回答3: 西门子1200的pid,是指西门子公司生产的一种PID控制器,适用于工业自动化控制领域。PID是Proportional-Integral-Derivative的缩写,中文译为比例-积分-微分控制。 首先,比例(Proportional)控制是指根据误差的大小来调节输出信号的幅度,即误差越大,输出信号变化幅度越大,反之亦然。比例控制能迅速地消除误差,但可能会产生震荡。 其次,积分(Integral)控制是指根据误差的累积值来调节输出信号的幅度,以消除系统静态误差。积分控制能够消除较小的误差,但可能导致系统响应时间延长。 再次,微分(Derivative)控制是指根据误差变化的速率来调节输出信号的幅度,以预测系统响应趋势。微分控制能够提高系统的稳定性和响应速度,但对测量噪声敏感,并可能引入额外的抖动。 西门子1200的PID控制器具有以下特点: 1. 响应速度快:采用高性能的处理器和算法,能够实时地对控制信号进行计算和调节,实现较快的响应速度。 2. 精度高:采用精密的测量和控制算法,能够实现精确的控制,提高系统的稳定性和精度。 3. 稳定性好:通过合理地调节比例、积分和微分参数,能够实现系统的稳定控制,避免过度调节和震荡。 4. 用户友好:具有友好的用户界面和操作方式,便于用户进行参数设置和监控。 总之,西门子1200的PID控制器是一种高性能的控制设备,能够广泛应用于各种工业领域,实现对系统的精确控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值