pid控制是一种算法,用于控制输出,以便将某个过程保持在精确值。一些例子包括:
控制船上的舵的位置以便驶向特定的方向。
控制提供给加热元件的功率,以保持特定的温度。
控制汽车的发动机油门以保持特定的速度(“巡航控制”)。
控制飞机副翼的位置以保持特定的旋转速度。
控制水处理厂中化学药品加入水流的速度。
pid有三个变量,即输入、输出和设定值。pid算法控制输出,以使输入与设定值相匹配。
例如,在控制船舵以驶向特定航向的场景中:
输入是指南针或gps航向。
设定点是期望的航向。
输出是舵角。
输入和设定点之间的差异称为误差,pid算法旨在消除过程中的误差。为了理解为什么需要pid,让我们先来看看更简单的过程控制方法。
棒棒控制
bang-bang控制是一种数字形式的控制,输出要么完全打开(最大值),要么完全关闭(最小值),两者之间没有任何东西。当输出也是数字时,这种控制似乎更直观;例如完全打开或关闭的阀门,或者可以打开或关闭的空调。使用空调的例子,输入将由温度传感器提供,并且设定点将是要保持的期望温度。算法很简单:
if the measured temperature is above the setpoint then we turn the air-conditioner on, otherwise we switch it off.对于某些应用程序,这可能工作得很好。然而,对于其他人来说,可能会遇到两个问题中的一个或两个:
设定点附近的读数快速变化。
第一个问题是在设定点附近相对快速波动的读数。例如,假设设定值为20 ℃,根据房间周围的气流或温度传感器的稳定性,读数可能在例如20.1℃和20.0℃之间波动;每次温度读数仅比设定值高0.1°c时,空调就会再次打开,一旦读数再次达到20.0°c时,空调就会再次关闭。这可能会很快发生,这既会让房间里的人感到讨厌,也可能会损坏空调。。如果制冷和制热都可用,我们可以想象一个场景,温度在19.9°c和20.1°c之间波动,空调和加热器相对快速地开关——两者互相干扰,浪费能源。
解决方案是在设定点附近增加一些延迟或缓冲,这称为滞后。在我们的例子中,2°c的滞后意味着一旦温度达到20°c并且空调关闭,那么空调不会再次打开,直到温度再次上升到22°c。如果也有暖气,那么在温度降到18°c之前,暖气不会打开(但是一旦打开,在温度升到20°c之前不会再次关闭)。
过冲。
可能遇到的第二个问题是超调。指令输出和输入测量输出指令结果之间存在延迟时,通常会出现过冲。以在水处理厂向水流中添加化学物质为例:化学物质需要一段时间才能溶解到水中,因此我们只能在添加化学物质的下游一点点处测量结果,也许是ph值,也就是说,在这个过程中会有一些延迟。比方说,我们开始时ph值有点太低,所以我们打开阀门向水中添加碱,以便使ph值升高一点;这开始起作用,但是当我们在传感器上读取ph中性值并关闭阀门时,大量的碱已经被添加到上游,传感器读数远远超过中性值,我们开始获得非常高的ph值读数;现在,系统通过打开阀门向水中添加酸来对高ph读数做出反应,以便再次降低ph值——但当这种影响到达传感器时,我们再次超过中性,读数再次变得过低……该过程重复,输出继续在设定点附近摆动——可能比触发纠正反应的原始误差幅度更大。
如果我们看看控制船舵位置或汽车发动机油门位置的例子,那么同样更直观明显的是,需要一个比bang-bang更好的控制系统——如果只需要一个小的航向修正,我们不想将船舵摆动到最右(右舷)或最左(左舷);或者让汽车油门在踏板到金属和完全关闭之间摆动——我们需要介于两者之间的东西。
比例控制
比例控制(pid中的p)只做它所说的,并且控制输出与输入和设定点之间的差值成比例(与误差成比例)。如果输入和设定值之间的差异很小,那么我们仅对输出进行小的调整,如果差异很大,那么我们对输出进行大的调整。如果船只是稍微偏离了航向,那么我们只是稍微转动一下方向舵——我们不会把它转到底。对于某些系统来说,比例控制可能就是所需要的。然而,对于其他系统,会遇到下一种问题:
积分
使用比例控制时,几乎总是会有一定程度的稳态误差,这意味着系统不会完全达到设定值,因为接近设定值的比例控制量太小,不足以克服影响系统的某些偏差(可能是电流或风)。在下图中,过程稳定在设定值以下一点。
pid的积分(i)部分查看系统偏离设定值多长时间,并提升输出以克服该偏差。例如,如果汽车上的巡航控制设置为60英里/小时,但仅使用比例控制时,速度停留在57英里/小时(由于空气或其他阻力),那么pid的“积分”部分将随着时间的推移增加发动机功率,以使速度达到60英里/小时的设置。同样,对于某些控制器来说,pi控制可能就是全部所需。然而,在稳定之前,pi本身倾向于在设定点附近至少有一些过冲和振荡,特别是当设定点和输入读数之间存在大的初始差异时(例如在启动时或当对设定点进行大的调整时),因为pid的积分部分将在过渡期间累积所有的误差,并因此变大(比需要的更大),并且没有任何其他东西来抑制它,那么将再次减小它的唯一事情将是在相反方向上的一些累积误差。pid的d部分解决了这个问题:
导数
微分(pid中的d)元件通过根据其接近设定值的速度来缓和/抑制输出,从而最小化或消除过冲;如果输入读数非常快地向设定值移动,那么pid的微分部分将促使输出变缓,以便最小化或消除过冲。在数学中,曲线的导数是曲线在特定点的角度或梯度,即变化率,这就是这个术语的含义。在下图中,红线代表陡峭的梯度(这将导致pid算法中的大d校正),蓝线代表浅梯度(这将导致pid算法中的小d校正)。
调谐
pid算法中的每个元素——比例元素、积分元素和微分元素——都可以调整或加权,使其在算法中产生更大或更小的影响,正确的值因应用而异。pid调节是一个很深的主题,其全部深度超出了本文的范围,但是很好地理解p、i和d中每个元素的作用是一个很好的起点。选项包括为特定类型的流程、手动调整和模拟查找一些默认值。
手动调谐主要包括按顺序调谐p、i和d元件:
首先,i和d权重设置为零,p权重增加,直到系统开始在设定点附近振荡。然后,p权重被设置为该值的一半。
接下来,增加i权重,直到任何稳态误差被足够快地校正,但是不要太多以至于系统变得不稳定。
最后,增加d权重,直到任何过冲都被充分抑制,但没有抑制到系统响应迟缓甚至变得不稳定(尤其是在输入中有一些噪声的情况下会发生这种情况)。
带pid的数字输出控制
如果pid控制的输出是数字的,例如继电器或电磁阀,则可以使用脉宽调制等技术将数字输出有效地转换为模拟输出。pwm频率根据应用来选择,并且取决于系统,可以实施额外的约束,例如仅在占空比高于特定水平时才切换输出。
这是一个使用piccolo微控制器的烤箱pid控制示例,在中模拟变形vsm.
续航对于智能手表设备将带来怎样的影响,两款产品对比
2018年4月全球手机面板共计出货2.33亿片,环比下滑4.0%
lcd接口定义
物联网产品的开发有怎样的秘密
小米展示隔空充电技术,预计在一年内有可能看到这项技术商用
带PID的数字输出控制示例解析
PCB热问题的解决方案分析
led小间距具备怎样的优势
IGBT对栅极驱动电路的要求
33张图详解TCP和UDP:打通网络和应用的中间人
ios15.0描述文件下载
双金属温度计有哪些安装要求
优必选开创人形机器人产业的新篇章
高像素带来的任性:佳能5Ds R强势对比尼康D810
汽车仪表,汽车电子产品防静电元件推荐
LoRa与NB-IoT在物联网应用的优缺点
继电保护是电力系统中的作用
乘员舱热舒适度和车辆能量管理云技术研讨会圆满结束!
洛微科技自主研发的芯片获“2020年度最具潜力IC设计企业”奖
魅族魅蓝5S发布在即 魅蓝5S升级前瞻