什么?!PID居然能这么讲?我还真是第一次见~【附调试口诀】
(一)先来彻底搞懂PID到底是啥?
啥是PID?
PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
算法是不可以吃的。
PID已经有107年的历史了
它并不是什么很神圣的东西,大家一定都见过PID的实际应用。
比如四轴飞行器,再比如平衡小车......还有汽车的定速巡航、3D打印机上的温度控制器....
就是类似于这种:需要将某一个物理量“保持稳定”的场合(比如维持平衡,稳定温度、转速等),PID都会派上大用场。
那么问题来了:
比如,我想控制一个“热得快”,让一锅水的温度保持在50℃
这么简单的任务,为啥要用到微积分的理论呢
你一定在想:
这不是so easy嘛~ 小于50度就让它加热,大于50度就断电,不就行了?几行代码用Arduino分分钟写出来。
没错~在要求不高的情况下,确实可以这么干~ But! 如果换一种说法,你就知道问题出在哪里了:
如果我的控制对象是一辆汽车呢?
要是希望汽车的车速保持在50km/h不动,你还敢这样干么。
设想一下,假如汽车的定速巡航电脑在某一时间测到车速是45km/h。它立刻命令发动机:加速!
结果,发动机那边突然来了个100%全油门,嗡的一下,汽车急加速到了60km/h。
这时电脑又发出命令:刹车!
结果,吱...............哇............(乘客吐)
所以,在大多数场合中,用“开关量”来控制一个物理量,就显得比较简单粗暴了。有时候,是无法保持稳定的。因为单片机、传感器不是无限快的,采集、控制需要时间。
而且,控制对象具有惯性。比如你将一个加热器拔掉,它的“余热”(即热惯性)可能还会使水温继续升高一小会。
这时,就需要一种『算法』:
它可以将需要控制的物理量带到目标附近它可以“预见”这个量的变化趋势它也可以消除因为散热、阻力等因素造成的静态误差....于是,当时的数学家们发明了这一历久不衰的算法——这就是PID。
你应该已经知道了,P,I,D是三种不同的调节作用,既可以单独使用(P,I,D),也可以两个两个用(PI,PD),也可以三个一起用(PID)。
这三种作用有什么区别呢?客官别急,听我慢慢道来
我们先只说PID控制器的三个最基本的参数:kP,kI,kD。
kP
P就是比例的意思。它的作用最明显,原理也最简单。我们先说这个:
需要控制的量,比如水温,有它现在的『当前值』,也有我们期望的『目标值』。
当两者差距不大时,就让加热器“轻轻地”加热一下。要是因为某些原因,温度降低了很多,就让加热器“稍稍用力”加热一下。要是当前温度比目标温度低得多,就让加热器“开足马力”加热,尽快让水温到达目标附近。这就是P的作用,跟开关控制方法相比,是不是“温文尔雅”了很多
实际写程序时,就让偏差(目标减去当前)与调节装置的“调节力度”,建立一个一次函数的关系, 就可以实现最基本的“比例”控制了~
kP越大,调节作用越激进,kP调小会让调节作用更保守。
要是你正在制作一个平衡车,有了P的作用,你会发现,平衡车在平衡角度附近来回“狂抖”,比较难稳住。
如果已经到了这一步——恭喜你!离成功只差一小步了~
kD
D的作用更好理解一些,所以先说说D,最后说I。
刚才我们有了P的作用。你不难发现,只有P好像不能让平衡车站起来,水温也控制得晃晃悠悠,好像整个系统不是特别稳定,总是在“抖动”。
你心里设想一个弹簧:现在在平衡位置上。拉它一下,然后松手。这时它会震荡起来。因为阻力很小,它可能会震荡很长时间,才会重新停在平衡位置。
请想象一下:要是把上图所示的系统浸没在水里,同样拉它一下 :这种情况下,重新停在平衡位置的时间就短得多。
我们需要一个控制作用,让被控制的物理量的“变化速度”趋于0,即类似于“阻尼”的作用。
因为,当比较接近目标时,P的控制作用就比较小了。越接近目标,P的作用越温柔。有很多内在的或者外部的因素,使控制量发生小范围的摆动。
D的作用就是让物理量的速度趋于0,只要什么时候,这个量具有了速度,D就向相反的方向用力,尽力刹住这个变化。
kD参数越大,向速度相反方向刹车的力道就越强。
如果是平衡小车,加上P和D两种控制作用,如果参数调节合适,它应该可以站起来了~欢呼吧
等等,PID三兄弟好想还有一位。看起来PD就可以让物理量保持稳定,那还要I干嘛?
因为我们忽视了一种重要的情况:
kI
还是以热水为例。假如有个人把我们的加热装置带到了非常冷 的地方,开始烧水了。需要烧到50℃。
在P的作用下,水温慢慢升高。直到升高到45℃时,他发现了一个不好的事情:天气太冷,水散热的速度,和P控制的加热的速度相等了。
这可怎么办?
P兄这样想:我和目标已经很近了,只需要轻轻加热就可以了。D兄这样想:加热和散热相等,温度没有波动,我好像不用调整什么。于是,水温永远地停留在45℃,永远到不了50℃。
作为一个人,根据常识,我们知道,应该进一步增加加热的功率。可是增加多少该如何计算呢?
前辈科学家们想到的方法是真的巧妙
设置一个积分量。只要偏差存在,就不断地对偏差进行积分(累加),并反应在调节力度上。
这样一来,即使45℃和50℃相差不太大,但是随着时间的推移,只要没达到目标温度,这个积分量就不断增加。系统就会慢慢意识到:还没有到达目标温度,该增加功率啦!
到了目标温度后,假设温度没有波动,积分值就不会再变动。这时,加热功率仍然等于散热功率。但是,温度是稳稳的50℃。
kI的值越大,积分时乘的系数就越大,积分效果越明显。
所以,I的作用就是,减小静态情况下的误差,让受控物理量尽可能接近目标值。
I在使用时还有个问题:需要设定积分限制。防止在刚开始加热时,就把积分量积得太大,难以控制。
(二)再来看看PID到底怎么调?
(PID参数调整口诀)
参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢。微分时间应加长
理想曲线两个波,前高后低四比一
一看二调多分析,调节质量不会低
若要反应增快,增大P减小I
若要反应减慢,减小P增大I
如果比例太大,会引起系统震荡
如果积分太大,会引起系统迟钝
来源:网络,侵删
往期优秀文章回顾:
【有料】漫画解释DCS、PLC、FCS控制系统的区别,真是通俗易懂!
西门子PLC的PID控制器参数整定方法
PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。
PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
PID控制器参数的工程整定方法,一般采用的是临界比例法。利用该方法进行 PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。
PID参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整P\I\D的大小。比例I/微分D=2,具体值可根据仪表定,再调整比例带P,P过头,到达稳定的时间长,P太短,会震荡,永远也打不到设定要求。
PID控制器参数的工程整定,各种调节系统中P.I.D参数经验数据以下可参照:
温度T:P=20~60%,T=180~600s,D=3-180s;
压力P: P=30~70%,T=24~180s;
液位L: P=20~80%,T=60~300s;
流量L: P=40~100%,T=6~60s。
这里介绍一种经验法,方法的基本程序是先根据运行经验,确定一组调节器参数,并将系统投入闭环运行,然后人为地加入阶跃扰动(如改变调节器的给定值),观察被调量或调节器输出的阶跃响应曲线。若认为控制质量不满意,则根据各整定参数对控制过程的影响改变调节器参数。这样反复试验,直到满意为止。
相关问答
32MR?PLC中的PID调节来控制温度,请问参数怎么整定,通过...
[最佳回答]控温建议用专用的温控模块,当然你如果有现场调试条件也可以自己整定PID参数,不过以一个过来人的忠告吧,还是自己写pid然后温控上还是结合实际工艺加...
关于PLC温度控制!!!-盖德问答-化工人互助问答社区
你的这个问题其实是个二自由度pid控制,即有两个指标,一是达到设定值,二是在规定时间内。你可以先算一下加热器的功率啊,根据能量衡算,加...你可以...
温度控制器自整定at是什么意思?
自整定at就是温控器根据系统特性自动计算出PID控制的三个参数,以达到最合理也是最准确的控制的目的,当然也可以通过人为设定PID参数。表的设置里有启用自整定...
信捷PLC温度控制问题?
看说明书呀,如果模拟量模块是挂在第一个模块,那么读取温度就是MOVID100D0,就是把第一个模块的第一个通道的模拟量读出来给d0,控制温度的话把目标温度,pid...
三菱PLC温度模块的程序如何编写?
编写三菱PLC温度模块的程序需要按照以下步骤进行:在程序中定义温度模块的输入地址和输出地址,通常使用X/Y寄存器。根据需要设置温度传感器的类型和测量范围,...
plc温度采集程序怎么编写?
第一,知道传感器的量程。二,传感器输出4-20MA的接入PLC模拟量模块。三,按照这个公式在PLC内部四则运算即可PLC的读数VW10={[(AIW0-6400)x(传感器最大值-传...
温度控制pid参数自整定怎么进行-187****6071的回答-懂得
温度控制采用PID控制器时,由于温度过程一般都存在较大的死区和滞后时间,所以设置PID参数时尽可能使用P作用和D作用进行调节,而将I作用降到最低(甚至...
欧姆龙plc温度控制程序实例?
一、概述欧姆龙PLC温度控制程序实例是一种用于控制和监控温度的程序,它可以帮助用户实现温度的自动控制,以达到更好的控制效果。二、程序实例1、程序实例一...
plc怎么采集热电阻温度?
PLC可以通过使用模拟输入模块来采集热电阻温度。热电阻是一种基于温度变化导致电阻值变化的传感器。为了采集热电阻的温度,需要使用模拟输入模块连接到PLC的适...
plc如何控制温控表接线?
控制温控表接线,需要根据实际应用的情况,选择合适的PLC输出口以及继电器、电磁阀等开关部件,具体控制步骤如下:1.确定温控表控制的继电器或电磁阀,连接到...