资讯详情

PID详解

PID应该是控制领域应用最广泛的算法,应用于工业控制、汽车电子等领域 下面我用一个例子和算法过程来解释PID的概念 PID: P比例控制:基本功能是控制对象线性增加,在常量比下动态输出 缺点:会产生稳态误差 I积分控制的基本功能是消除稳态误差 缺点:会增加超调 D微分控制:基本功能是减弱超调,增加惯性响应速度 1、什么是PID及其作用 在这里插入图片描述

上图描述: 设定输出目标,反馈系统传回输出值,如与目标不一致,则存在误差,PID 在输出达到设定值之前,根据此误差调整输入值. 为什么需要PID例如,在控制温度时,当温度稳定在目标温度值时,我们需要设置要达到的目标温度值 例如,我们希望水的目标温度值为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点,已经非常接近1点了m水量,但也有很大的抖动 为消除稳态误差,第二次加分使用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减小抖动或启动电流启动电流,只有当三个参数配合得当时,才能稳定、正常运行。当然,应考虑电机的属性、电路的设计、开关管的参数等。 谢谢

标签: 120mr采样电阻5kp90a直插二极管270mr电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台