PID控制器
![本页使用了标题或全文手工转换](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
PID控制器(比例-积分-微分控制器),由比例单元(Proportional)、积分单元(Integral)和微分单元(Derivative)组成[1]。可以透过调整这三个单元的增益,和来调定其特性。PID控制器主要适用于基本上线性,且动态特性不随时间变化的系统。
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/4/40/Pid-feedback-nct-int-correct.png/300px-Pid-feedback-nct-int-correct.png)
PID控制器是一个在工业控制应用中常见的回授回路部件。这个控制器把收集到的数据和一个参考值进行比较,然后把这个差别用于计算新的输入值,这个新的输入值的目的是可以让系统的数据达到或者保持在参考值。PID控制器可以根据历史数据和差别的出现率来调整输入值,使系统更加准确而稳定。
PID控制器的比例单元(P)、积分单元(I)和微分单元(D)分别对应目前误差、过去累计误差及未来误差。若是不知道受控系统的特性,一般认为PID控制器是最适用的控制器[2]。借由调整PID控制器的三个参数,可以调整控制系统,设法满足设计需求。控制器的响应可以用控制器对误差的反应快慢、控制器过冲的程度及系统震荡的程度来表示。不过使用PID控制器不一定保证可达到系统的最佳控制,也不保证系统稳定性。
有些应用只需要PID控制器的部份单元,可以将不需要单元的参数设为零即可。因此PID控制器可以变成PI控制器、PD控制器、P控制器或I控制器。其中又以PI控制器比较常用,因为D控制器对回授杂讯十分敏感,而若没有I控制器的话,系统不会回到参考值,会存在一个误差量。
反馈回路基础
PID回路是要自动实现一个操作人员用量具和控制旋钮进行的工作,这个操作人员会用量具测系统输出的结果,然后用控制旋钮来调整这个系统的输入,直到系统的输出在量具上显示稳定的需求的结果,在旧的控制文档里,这个过程叫做“复位”行为,量具被称为“测量”,需要的结果被称为“设定值”而设定值和测量之间的差别被称为“误差”。
一个控制回路包括三个部分:
- 系统的传感器得到的测量结果
- 控制器作出决定
- 通过一个输出设备来作出反应
控制器从传感器得到测量结果,然后用需求结果减去测量结果来得到误差。然后用误差来计算出一个对系统的纠正值来作为输入结果,这样系统就可以从它的输出结果中消除误差。
在一个PID回路中,这个纠正值有三种算法,消除目前的误差,平均过去的误差,和透过误差的改变来预测将来的误差。
比如说,假如利用水箱在为植物提供水,水箱的水需要保持在一定的高度。可以用传感器来检查水箱里水的高度,这样就得到了测量结果。控制器会有一个固定的用户输入值来表示水箱需要的水面高度,假设这个值是保持65%的水量。控制器的输出设备会连在由马达控制的水阀门上。打开阀门就会给水箱注水,关上阀门就会让水箱里的水量下降。这个阀门的控制信号就是控制变量。
PID控制器可以用来控制任何可被测量及可被控制变量。比如,它可以用来控制温度、压强、流量、化学成分、速度等等。汽车上的巡航定速功能就是一个例子。
一些控制系统把数个PID控制器串联起来,或是连成网络。这样的话,一个主控制器可能会为其他控制输出结果。一个常见的例子是马达的控制。控制系统会需要马达有一个受控的速度,最后停在一个确定的位置。可由一个子控制器用来管理速度,但是这个子控制器的速度是由控制马达位置的主控制器来管理的。
连合和串联控制在化学过程控制系统中相当常见。
历史及应用
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/e/e5/Scross_helmsman.jpg/220px-Scross_helmsman.jpg)
PID控制器可以追溯到1890年代的调速器设计[2][3]。PID控制器是在船舶自动操作系统中渐渐发展。1911年Elmer Sperry开发的控制器是最早期PID型控制器的其中之一[4],而第一个发表PID控制器理论分析论文的是俄裔美国工程师尼古拉斯·米诺尔斯基(Minorsky 1922)。米诺尔斯基当时在设计美国海军的自动操作系统,他的设计是基于对舵手的观察,控制船舶不只是依目前的误差,也考虑过去的误差以及误差的变化趋势[5],后来米诺尔斯基也用数学的方式加以推导[6]。他的目的是在于稳定性,而不是泛用的控制,因此大幅的简化了问题。比例控制可以在小的扰动下有稳定性,但无法消除稳态误差,因此加入了积分项,后来也加入了微分项。
当时在新墨西哥号战舰上进行测试,利用控制器控制舵的角速度,利用PI控制器可以角度误差维持在±2°以内,若加上D控制,角度误差维持在±1/6°,比最好的舵手还要好[7]。
不过因为海军人员的抗拒,海军那时候未使用这套系统,在1930年代也有其他人作出类似的研究。
在自动控制发展的早期,用机械设备来实现PID控制,是由杠杆、弹簧、阻尼及质量组成,多半会用压缩气体驱动。气动控制器还一度是工业上的标准。
电子的类比控制器可以用电晶体、真空管、电容器及电阻器组成。许多复杂的电子系统中常会包括PID控制,例如磁碟的读写头定位、电源供应器的电源条件、甚至是现代地震仪的运动侦测线路。现代电子控制器已大幅的被这些利用单晶片或FPGA来实现的数位控制器所取代。
现代工业使用的PID控制器多半会用PLC或有安装面板的数位控制器来实现。软体实现的好处是相对低廉,配合PID实现方式调整的灵敏度很大。在工业锅炉、塑胶射出机械、烫金机及包装行业中都会用到PID控制。
变化的电压输出可以用PWM来实现,也就是固定周期,依要输出的量去调整周期中输出高电位的时间。对于数位系统,其时间比例有可能是离散的,例如周期是二秒,高电位时间设定单位为0.1秒,表示可以分为20格,精度5%,因此存在一量化误差,但只要时间解析度够高,就会有不错的效果。
理论
PID是以它的三种纠正算法而命名。受控变数是三种算法(比例、积分、微分)相加后的结果,即为其输出,其输入为误差值(设定值减去测量值后的结果)或是由误差值衍生的信号。若定义为控制输出,PID演算法可以用下式表示:
其中
- :比例增益,是调适参数
- :积分增益,也是调适参数
- :微分增益,也是调适参数
- :误差=设定值(SP)- 回授值(PV)
- :目前时间
- :积分变数,数值从0到目前时间
用更专业的话来讲,PID控制器可以视为是频域系统的滤波器。在计算控制器最终是否会达到稳定结果时,此性质很有用。如果数值挑选不当,控制系统的输入值会反复振荡,这导致系统可能永远无法达到预设值。
PID控制器的一般转移函数是:
- ,
其中C是一个取决于系统带宽的常数。
比例控制项
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/a/a3/PID_varyingP.jpg/320px-PID_varyingP.jpg)
比例控制考虑当前误差,误差值和一个正值的常数Kp(表示比例)相乘。Kp只是在控制器的输出和系统的误差成比例的时候成立。比如说,一个电热器控制器是在目标温度和实际温度差10°C时有100%的输出,而其目标值是25°C。那么它在15°C的时候会输出100%,在20°C的时候会输出50%,在24°C的时候输出10%,注意在误差是0的时候,控制器的输出也是0。
比例控制的输出如下:
若比例增益大,在相同误差量下,会有较大的输出,但若比例增益太大,会使系统不稳定。相反的,若比例增益小,若在相同误差量下,其输出较小,因此控制器会较不敏感的。若比例增益太小,当有干扰出现时,其控制信号可能不够大,无法修正干扰的影响。
稳态误差
比例控制在误差为0时,其输出也会为0。若要让受控输出为非零的数值,就需要产生一个稳态误差或偏移量[a]。
积分控制项
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/c0/Change_with_Ki.png/320px-Change_with_Ki.png)
积分控制考虑过去误差,将误差值过去一段时间和(误差和)乘以一个正值的常数Ki。Ki从过去的平均误差值来找到系统的输出结果和预定值的平均误差。一个简单的比例系统会震荡,会在预定值的附近来回变化,因为系统无法消除多余的纠正。通过加上负的平均误差值,平均系统误差值就会渐渐减少。所以,最终这个PID回路系统会在设定值稳定下来。
积分控制的输出如下:
积分控制会加速系统趋近设定值的过程,并且消除纯比例控制器会出现的稳态误差。积分增益越大,趋近设定值的速度越快,不过因为积分控制会累计过去所有的误差,可能会使回授值出现过冲的情形。
微分控制项
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/c7/Change_with_Kd.png/320px-Change_with_Kd.png)
微分控制考虑将来误差,计算误差的一阶导,并和一个正值的常数Kd相乘。这个导数的控制会对系统的改变作出反应。导数的结果越大,那么控制系统就对输出结果作出更快速的反应。这个Kd参数也是PID被称为可预测的控制器的原因。Kd参数对减少控制器短期的改变很有帮助。一些实际中的速度缓慢的系统可以不需要Kd参数。
微分控制的输出如下:
微分控制可以提升整定时间及系统稳定性[8][9]。不过因为纯微分器不是因果系统,因此在PID系统实现时,一般会为微分控制加上一个低通滤波器以限制高频增益及杂讯[10]。实际上较少用到微分控制,估计PID控制器中只有约20%有用到微分控制[10]。
参数调试
PID的参数调试是指透过调整控制参数(比例增益、积分增益/时间、微分增益/时间)让系统达到最佳的控制效果。稳定性(不会有发散性的震荡)是首要条件,此外,不同系统有不同的行为,不同的应用其需求也不同,而且这些需求还可能会互相冲突。
PID只有三个参数,在原理上容易说明,但PID参数调试是一个困难的工作,因为要符合一些特别的准则,而且PID控制有其限制存在。历史上有许多不同的PID参数调试方式,包括齐格勒-尼科尔斯方法等,其中也有一些已申请专利。
PID控制器的设计及调试在概念上很直觉,但若有多个(且互相冲突)的目标(例如高稳定性及快速的暂态时间)都要达到的话,在实际上很难完成。PID控制器的参数若仔细的调试,会有很好的效果,相反的,若调适不当,效果会很差。一般初始设计常需要不断的电脑模拟,并且修改参数,一直达到理想的性能或是可接受的妥协为止。
有些系统有非线性的特性,若在无载下调试的参数可能无法在满载下动作,可以利用增益规划的方式进行修正(在不同的条件下选用不同的数值)。
稳定性
若PID控制器的参数未挑选妥当,其控制器输出可能是不稳定的,也就是其输出发散,过程中可能有震荡,也可能没有震荡,且其输出只受饱和或是机械损坏等原因所限制。不稳定一般是因为过大增益造成,特别是针对延迟时间很长的系统。
一般而言,PID控制器会要求响应的稳定,不论程序条件及设定值如何组合,都不能出现大幅振荡的情形,不过有时可以接受临界稳定的情形[来源请求]。
最佳性能
PID控制器的最佳性能可能和针对过程变化或是设定值变化有关,也会随应用而不同。
两个基本的需求是调整能力(regulation,干扰拒绝,使系统维持在设定值)及命令追随 (设定值变化下,控制器输出追随设定值的反应速度)。有关命令追随的一些准则包括有上升时间及整定时间。有些应用可能因为安全考量,不允许输出超过设定值,也有些应用要求在到达设定值过程中的能量可以最小化。
各方法的简介
有许多种调试PID控制器参数的方法,最有效的方式多半是建立某种程序,再依不同参数下的动态特性来调试参数。相对而言人工调试其效率较差,若是系统的响应时间到数分钟以上,更可以看出人工调试效率的不佳[来源请求]。
调试方法的选择和是否可以暂时将控制回路“离线”有关,也和系统的响应时间有关。离线是指一个和实际使用有些不同的条件(例如不加负载),而且控制器的输出只需考虑理论情况,不需考虑实际应用。在线调试是在实际应用的条件,控制器的输出需考虑实际的系统 。若控制回路可以离线,最好的调试方法是对系统给一个步阶输入,量测其输出对时间的关系,再用其响应来决定参数[来源请求]。
方法 | 优点 | 缺点 |
---|---|---|
人工调试 | 不需要数学,可以在线调试 | 需要有经验的工程师[来源请求] |
齐格勒-尼科尔斯方法 | 被证实有效的方法,可以在线调试 | 会影响制程,需要试误,得到的参数可能使响应太快[来源请求] |
软体工具 | 调适的一致性,可以在线调试或离线调试,可以配合计算机自动设计,包括阀及感测器的分析,可以在下载前进行模拟,可以支援非稳态(NSS)的调试 | 需要成本或是训练[11] |
Cohen–Coon | 好的程序模型 | 需要一些数学,需离线调试,只对一阶系统有良好效果[来源请求] |
人工调整
若需在系统仍有负载的情形进行调试(线上调试),有一种作法是先将及设为零,增加一直到回路输出震荡为止,之后再将设定为“1/4振幅衰减”(使系统第二次过冲量是第一次的1/4)增益的一半,然后增加直到一定时间后的稳态误差可被修正为止。不过若可能会造成不稳定,最后若有需要,可以增加,并确认在负载变动后回路可以够快的回到其设定值,不过若太大会造成响应太快及过冲。一般而言快速反应的PID应该会有轻微的过冲,只是有些系统不允许过冲。因此需要将回授系统调整为过阻尼系统,而比造成震荡的一半还要小很多。
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/3/33/PID_Compensation_Animated.gif)
调整PID参数对系统的影响如下
调整方式 | (on) 上升时间 | 超调量 | 安定时间 | 稳态误差 | 稳定性[10] |
---|---|---|---|---|---|
↑ Kp | 减少 ↓ | 增加 ↑ | 小幅增加 ↗ | 减少 ↓ | 变差 ↓ |
↑ Ki | 小幅减少 ↘ | 增加↑ | 增加 ↑ | 大幅减少↓↓ | 变差↓ |
↑ Kd | 小幅减少 ↘ | 减少↓ | 减少↓ | 变动不大→ | 变好 ↑ |
齐格勒-尼科尔斯方法
齐格勒-尼科尔斯方法是另一种启发式的调试方式,由John G. Ziegler和Nathaniel B. Nichols在1940年代导入,一开始也是将及设定为零,增加比例增益直到系统开始等振幅振荡为止,当时的增益称为,而振荡周期为,即可用以下的方式计算增益:
控制器种类 | |||
---|---|---|---|
P | - | - | |
PI | - | ||
PID |
PID调试软体
大部份现代的工业设备不再用上述人工计算的方式调试,而是用PID调试及最佳化软体来达到一致的效果。软体会收集资料,建立模型,并提供最佳的调试结果,有些软体甚至可以用参考命令的变化来进行调试。
数学的PID调试会将脉冲加入系统,再用受控系统的频率响应来设计PID的参数。若是响应时间要数分钟的系统,建议用数学PID调试,因为用试误法可能要花上几天才能找到可让系统稳定的参数。最佳解不太容易找到,有些数位的回路控制器有自我调试的程序,利用微小的参考命令来计算最佳的调试值。
也有其他调试的公式,是依不同的性能准则所产生。许多有专利的公式已嵌入在PID调试软体及硬体模组中[12]。
一些先进的PID调试软体也可以在动态的情况下用演算法调整PID回路,这类软体会先将程序建模,给微扰量,再根据响应计算参数。
PID控制的限制
PID控制可以应用在许多控制问题,多半在大略调整参数后就有不错的效果,不过有些应用下可能反而会有差的效果,而且一般无法提供最佳控制。PID控制的主要问题是在于其为回授控制,系数为定值,不知道受控系统的资讯,因此其整体性能常常是妥协下的结果。在没有受控系统模型的条件下,PID控制最佳的控制器[2],但若配合系统模型,可以有进一步的提升。
当PID控制器单独使用时,若因应用需求,需调整PID回路增益使控制系统不会过冲,其效果有可能很差。PID控制器的缺点还包括无法处理受控系统的非线性、需在反应时间及调整率之间妥协、无法针对参数的变动而反应(例如系统在暖机后特性会改变)、以及大扰动下的波形落后。
PID控制器最显著的提升是配合前馈控制,加入有关系统的资讯,只用PID控制器来控制误差。另外,PID控制器也有一些小幅的改善方式,例如调整参数(增益规划或是依性能进行适应性的调整)、提升性能(提高取样率、精度及准度,若有需要加入低波滤波器),或是用多个串接的PID控制器。
线性
PID控制器常见的问题是在于其线性且对称的特性,若应用在一些非线性的系统,其效果可能会有变化。以暖通空调中常见的温度控制,可能是采用主动加热(用加热器加热),但冷却是使用被动冷却(不加热,自然冷却),其冷却速度比加热速度慢很多,输出若有过冲,下降速度很慢,因此PID控制需调整为不会过冲的过阻尼,以减少或避免过冲,但这也延长了整定时间,使性能变差。
杂讯对微分器的影响
微分器的问题在于对量测或程序产生的高频杂讯会有放大效果,因此会对输出造成大幅的变动。因此真实的控制器不会有理想的微分器,只有一个有限频宽的微分器或高通滤波器。一般为了移除高频的杂讯,会在量测时加入低通滤波器,若低通滤波器和微分器对消,滤波效果也就受限了,因此低杂讯的量测设备相当重要。实务上可以使用中值滤波器,调昇滤波效率及实际上的性能[13]。有时可以将微分器关闭,对控制性能的影响不大,此时称为PI控制器。
PID演算法的修改
基本的PID演算法在一些控制应用的条件下有些不足,需进行小幅的修改。
积分饱和
积分饱和是理想PID演算法实现时常见的问题。若设定值有大的变动,其积分量会有大幅的变化,大到输出值被上下限限制而饱和,因此系统会有过冲,而且即使误差量符号改变,积分量变小,但输出值仍被上下限限制,维持在上限(或下限),因此输出看似没有变化,系统仍会持续的过冲,一直要到输出值落在上下限的范围内,系统的回授量才会开始下降。此问题可以用以下方式处理:
PI控制器
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/a/af/PI_controller.svg/300px-PI_controller.svg.png)
PI控制器(比例-积分控制器)是不用微分单元的PID控制器。
控制器的输出为
其中为设定值SP和量测值PV的误差:
- .
PI控制器可以用Simulink或Xcos之类的软体进行建模,方式是使用“flow chart”图框,其中用以下的拉氏运算子:
其中
- = 比例增益
- = 积分增益
值的选择需在减少过冲以及增加安定时间之间取舍。
微分单元对输入中的高频信号格外敏感,PI控制器因为没有微分单元,在讯号杂讯大时,在稳态时会更加稳定。但对状态快速变化的反应较慢,因此相较于调适到最佳值的PID控制器,PI控制器会较慢到达设定值,受干扰后也比较慢恢复到正常值。
PDF控制(pseudo-derivative feedback control)可以视为是PI控制器的变体,比例控制器的输入由误差值改为回授值[15]。
不动作区
许多PID回路是控制机械元件(例如阀)。机械保养是一笔可观的费用,磨损会使得机械在有输入信号时出现静摩擦或是不动作区,都会导致控制性能的下降。机械损耗的速度主要和设备多常改变其状态有关。若磨损是主要考量的话,PID回路可以有输出的迟滞现象以减少输出状态的改变。若变化小,仍在不动作区内,让控制器的输出维持上一次的值。变化要大到超过不动作区,实际的状态才会随之变化。
设定值的步阶变化
若系统的设定值有步阶变化,比例单元和微分单元也会有对应的变化,特别是微分单元对于步阶变化的输出特别的大,因此有些PID演算法会配合以下的修改来处理设定值的变化。
- 设定值斜坡变化
- 此修改方式下,设定值会用线性或是一阶滤波的方式,由原始值变到新的值,避免因为步阶变化产生的不连续。
- 只对程序变数(回授量)微分
- 此修改下,PID控制器只针对量测的程序变数(PV)微分,不对误差微分。程序变数是实际的物理量,较不易有瞬间的变化,而误差可能因为设定值的步阶变化而有瞬间变化。这也是一种简单的设定值加权法。
- 设定值加权
- 设定值加权分别调整在比例单元及微分单元中的误差量,误差量的设定值乘以一个0到1之间的加权,积分单元的误差量需使用真实的设定值,以避免稳态误差。这两个参数不影响对负载变化及量测杂讯的响应,可以提升对设定点变化的响应。
前馈控制
PID控制器若再配合前馈控制(开回路控制),可以再提升其控制性能。在前馈控制中考虑系统的已知资讯(例如理想加速度或是惯量),再将输出加到PID控制器的控制输出,以提升整体的系统性能。前馈量可能是控制输出主要的部份,而PID控制器只用来补偿目标值和开回路控制器输出之间的误差。因为前馈输出不会受到回授的影响,因此也不会造成系统的振荡,可以在不影响稳定性的条件下提升系统的响应。前馈可以依目标值及其他量测到的干扰量来产生,目标值加权是一种简单的前馈控制方式。
例如,在大部份的运动控制系统中,为了要使机械负载加速,致动器要产生更大的力。若用速度环的PID控制器来控制负载速度,比较理想的方式是先得到理想的瞬间加速度值,适量调整加权后再加到PID的输出中。因此控制器输出中有一部份是不随机械速度而改变的输出,再用PID根据实际输出和目标的差异去增加或是减少输出。这类有前馈控制的PID控制器可以加快控制系统的反应速度。
无冲击运转
有时PID控制器会规划为无冲击(bumpless)的特性,在参数变化时重新计算适当的积分累计值,使输出不会因参数变化有不连续的改变[16]。
串级PID控制器
二个PID控制器可以组合在一起,得到较佳的效果,这称为串级PID控制。以两个PID控制器组成的串级PID控制为例,其中一个PID控制器在外回路,控制像液面高度或是速度等主要的物理量,另一个PID控制器是内回路,以外回路PID控制器的输出做为其目标值,一般是控制较快速变化的参数,例如流量或加速度等。若利用串级PID控制,可以增加控制器的工作频率,并降低其时间常数。
例如一个温控的循环水浴设备有二个串级的PID控制器,分别有各自的热电偶温度感测器。外回路的控制器控制水温,其感测器距加热器很远,直接量测整体水温,其误差量是理想水温及整体水温的差值。外回路PID控制器的输出即为内回路控制器的目标值,内回路控制器控制加热器,其感测器是在加热器上,其误差量是加热器的理想温度及量测到温度的差值,其输出会使加热器维持在设定值附近。
内外回路控制器的参数可能会差很多,外回路的PID控制器有较长的时间常数,对应所有的水加热或是冷却需要的时间。内回路的PID控制器反应会比较快。每个控制器可以调整到符合其真正控制的系统,例如水槽中所有的水,或是加热器本身。
其他PID的形式及其表示法
理想的PID及标准形PID
工业上常看到PID控制器,而许多工业相关资料中看到的都是“标准形”的PID,其中比例增益也作用在及两项,和上述“理论”段落看到的形式不同。“标准形”的PID为:
其中
- 为积分时间
- 为微分时间
在标准形中,每一个参数有其明确的物理意义,输出是根据现在误差、过去误差及未来误差而决定,加上微分项可以预测若控制系统不改变的话,时间后的误差,而积分项是用过去所有误差的和来调整输出,希望在时间后可以完全消除误差,而输出的值会再乘以单一的增益。
在理想的平行式PID中,其方程如下:
其中的增益和标准形PID系数的关系是:及。平行式PID中的参数都视为单纯的增益,最泛用,灵活性也最高,但较没有物理意义,因此只用在PID的理论处理中,标准形PID虽在数学上比较复杂,在工业中较常使用。
倒数增益
许多情形下,PID控制器处理的变数是无因次的量,是某个最大值的比例,介于0到100%之间,而转换为实际物理量(如泵浦速率或是水加热的功率)是在PID控制器外,而这些控制变数是有因次的物理量(例如温度)。此时增益多半不会表示为“每变化一度的输出”,而会以温度的形式表示,代表“100%输出下的温度(变化)”,代表输出由0变到1(0%变为100%)下的温度变化。
只针对过程变数进行微分控制
在大部份的商业控制系统中,是用过程变数取代误差作为微分项的输入,其原因是当目标值有不连续变化时,微分控制会产生很大的突波,若目标值不变,改变过程变数的效果和改变误差相同,因此有些PID控制器会用过程变数作为微分项的输入,不会影响控制器控制过程变数,抗杂讯的能力。
只针对过程变数进行微分及比例控制
大部份的商业控制系统也提供选择,让过程变数作为微分控制及比例控制的输入,因此误差只作为积分控制的输入,这也不会影响控制器控制过程变数,抗杂讯的能力。
上述的修改可以避免目标值有不连续变化时,输出值有对应不连续的变化,若目标值有步阶变化,这项调整就相当重要。
也有些双自由度(2-DoF)PID控制架构除了一般的PID控制外,再加上只针对过程变数进行的微分及比例控制,再分别用增益进行调整,目标是同时对目标步阶响应以及杂讯抑制都有良好的性能[17]。
PID控制器的拉氏转换
有关会将PID控制器进行拉氏转换:
PID控制器的拉氏转换也代表著控制器的传递函数,因此可以确认整体系统的传递函数。
PID的极零点对消
PID控制器可以写成以下的形式
若受控设备的传递函数如下:
又令
则
因此若受控设备有不稳定的极点,看似可以用此方式消除,不过实际上有些差异,由干扰到输出的闭回路传递函数中仍有不稳定的极点,因此仍可能会发散。
串级型或交互型
另一种PID控制器的表示法为串级型(series)或称为交互型(interacting)
其中参数和标准型的参数有以下的关系
- ,
而
- .
上述作法可表示为二个串级的PD控制器及PI控制器,在早期类比电路的时代较容易实现,虽然控制器已经数位化,不过仍有些维持此形式。
离散化的控制器
若要在微处理机(MCU)或是FPGA中实现PID控制或是分析其性能,就需要将控制器离散化[18]。一阶微分可以用后向有限差分表示,积分项也离散化,若取样时间为,积分项可以用下式近似
微分项可近似为
因此PID控制器的离散化可以将微分,再用一阶导数及二阶导数的定义求得,可以得到
其中
伪代码
以下是一段实现PID演算法的伪代码:[19]
previous_error = 0 integral = 0 start: error = setpoint - measured_value integral = integral + error*dt derivative = (error - previous_error)/dt output = Kp*error + Ki*integral + Kd*derivative previous_error = error wait(dt) goto start
此例中有两个变数在回圈前需初始化为0,然后开始回圈。目前的误差(error)是用目前目标值(setpoint)减去系统反馈值(measured_value)而得,然后再进行积分和微分运算,比例项、积分项及微分项乘以各自参数后得到输出(output)。在实际系统中,这会透过数位类比转换器转换为类比讯号,作为受控系统的控制量。目前的误差量及积分会储存,以便下次计算微分及积分时使用,程式会等待dt秒后开始,回圈继续进行,透过类比数位转换器读取新的系统反馈值及目标值,再计算误差量及输出[19]。
参见
注释
参考文献
- ^ Li, Y., Ang, K.H., and Chong, G.C.Y. (2006) Patents, software and hardware for PID control: an overview and analysis of the current art. IEEE Control Systems Magazine, 26 (1). pp. 42-54. ISSN 0272-1708 (doi:10.1109/MCS.2006.1580153)[永久失效链接]
- ^ 2.0 2.1 2.2 Bennett, Stuart. A history of control engineering, 1930-1955. IET. 1993: p. 48. ISBN 978-0-86341-299-8.
- ^ Bennett, Stuart. Nicholas Minorsky and the automatic steering of ships (PDF). IEEE Control Systems Magazine. November 1984, 4 (4): 10–15. ISSN 0272-1708. doi:10.1109/MCS.1984.1104827. (原始内容 (PDF)存档于2011-06-08).
- ^ A Brief Building Automation History. [2011-04-04]. (原始内容存档于2011-07-08).
- ^ (Bennett 1993,p. 67)
- ^ Bennett, Stuart. A brief history of automatic control (PDF). IEEE Control Systems Magazine (IEEE). 1996, 16 (3): 17–25 [2014-12-24]. (原始内容 (PDF)存档于2016-08-09).
- ^ Bennett, Stuart. A history of control engineering, 1800-1930. IET. June 1986: 142–148. ISBN 978-0-86341-047-5.
- ^ Introduction: PID Controller Design. University of Michigan. [2014-12-28]. (原始内容存档于2012-10-23).
- ^ Tim Wescott. PID without a PhD (PDF). EE Times-India. October 2000 [2014-12-28]. (原始内容 (PDF)存档于2010-11-22).
- ^ 10.0 10.1 10.2 Ang, K.H., Chong, G.C.Y., and Li, Y. (2005). PID control system analysis, design, and technology, IEEE Trans Control Systems Tech, 13(4), pp.559-576. http://eprints.gla.ac.uk/3817/1/IEEE3.pdf (页面存档备份,存于互联网档案馆)
- ^ Li, Y., et al. (2004) CAutoCSD - Evolutionary search and optimisation enabled computer automated control system design, Int J Automation and Computing, vol. 1, No. 1, pp. 76-88. ISSN 1751-8520. http://userweb.eng.gla.ac.uk/yun.li/ga_demo/ (页面存档备份,存于互联网档案馆)
- ^ Y Li, KH Ang, GCY Chong, Patents, software, and hardware for PID control: An overview and analysis of the current art, Control Systems, IEEE, 26 (1), 42-54. http://eprints.gla.ac.uk/3816/1/IEEE2pdf.pdf (页面存档备份,存于互联网档案馆)
- ^ Li, Y. and Ang, K.H. and Chong, G.C.Y. (2006) PID control system analysis and design - Problems, remedies, and future directions. IEEE Control Systems Magazine, 26 (1). pp. 32-41. ISSN 0272-1708 (PDF). [2014-02-02]. (原始内容存档 (PDF)于2014-03-27).
- ^ Cooper, Douglas. Integral (Reset) Windup, Jacketing Logic and the Velocity PI Form. [2014-02-18]. (原始内容存档于2013-06-29).
- ^ PID and PDFF Compensators for Motion Control (PDF). [2016-10-01]. (原始内容 (PDF)存档于2012-09-01).
- ^ Cooper, Douglas. PI Control of the Heat Exchanger. Practical Process Control by Control Guru. [2014-02-27]. (原始内容存档于2014-02-28).
- ^ Two-Degree-of-Freedom PID Controllers Mituhiko Araki and Hidefumi Taguchi (PDF). [2016-09-29]. (原始内容存档 (PDF)于2016-09-10).
- ^ Discrete PI and PID Controller Design and Analysis for Digital Implementation. Scribd.com. [2011-04-04]. (原始内容存档于2012-01-11).
- ^ 19.0 19.1 PID process control, a "Cruise Control" example. CodeProject. 2009 [4 November 2012]. (原始内容存档于2014-12-24).
- Minorsky, Nicolas. Directional stability of automatically steered bodies. J. Amer. Soc. Naval Eng. 1922, 34 (2): 280–309. doi:10.1111/j.1559-3584.1922.tb04958.x.
外部链接
- 改善PID微分和积分的方法及其它控制系统的计算机自动设计CAutoD
- 学习PID和其他系统调试是如何工作的(页面存档备份,存于互联网档案馆)
- PID控制器实验室,PID调试的Java applets(页面存档备份,存于互联网档案馆)
- 一系列的PID调试的Java Applets
- PID调试的问答
- PID控制系统算法的信息和教程
- 用Excel模拟基本的PID
- 如果用电子部件制作一个PID控制器查看22页
- 关于PID控制器的文章,教材[失效链接]
- 一个控制系统的一部分
- PID定速控制应用(页面存档备份,存于互联网档案馆)
- PID马达定速与定角控制公式比较(页面存档备份,存于互联网档案馆)
- Ang, K.H., Chong, G.C.Y., and Li, Y. (2005), PID control system analysis, design, and technology. IEEE Transactions on Control Systems Technology, 13 (4). pp. 559-576. ISSN 1063-6536(页面存档备份,存于互联网档案馆)
- Understanding Servo Tune(其中包括PID调整方法范例) (页面存档备份,存于互联网档案馆)
- LabView360技术文章 PID(页面存档备份,存于互联网档案馆)
|