n 理解PID
比例-积分-微分控制规律是工业上最常用的控制规律。人们一般根据比例-积分-微分的英文缩写,将其简称为PID控制。即使在更为先进的控制规律广泛应用的今天,各种形式的PID控制仍然在所有控制回路中占85%以上。
在PID 控制中,积分控制的特点是:只要还有余差(即残余的控制偏差)存在,积分控制就按部就班地逐渐增加控制作用,直到余差消失。所以积分的效果比较缓慢,除特殊情况外,作为基本控制作用,缓不救急。
微分控制的特点是:尽管实际测量值还比设定值低,但其快速上扬的冲势需要及早加以抑制,否则,等到实际值超过设定值再作反应就晚了,这就是微分控制施展身手的地方了。作为基本控制使用,微分控制只看趋势,不看具体数值所在,所以最理想的情况也就是把实际值稳定下来,但稳定在什么地方就要看你的运气了,所以微分控制也不能作为基本控制作用。
比例控制没有这些问题,比例控制的反应快,稳定性好,是最基本的控制作用,积分、微分控制是对比例控制起增强作用的,极少单独使用。在实际使用中比例和积分一般一起使用,比例承担主要的控制作用,积分帮助消除余差。微分只有在被控对象反应迟缓,需要在开始有所反应时,及早补偿,才予以采用。只用比例和微分的情况很少见。
A5系列PLC支持浮点数运算,可以在A5上方便地实现PID功能。
n 程序工作原理
Ø PID方程式
Mn = MPn + Min + MDn
输出 = 比例项 + 积分项 + 微分项
其中: Mn 第n采样时刻的计算值
MPn 第n采样时刻的比例项值
MIn 第n采样时刻的积分项值
MDn 第n采样时刻的微分项值
Ø PID方程的比例项
比例项MP是增益(Kc)和偏差(e)的乘积,其中Kc决定输出对偏差的灵敏度,偏差(e)是给定值(SP)与过程变量(PV)之差,求比例项的算式是:
MPn = Kc * ( SPn - PVn )
其中: MPn 第n采样时刻的比例项值
Kc 增益
SPn 第n采样时刻的给定值
PVn 第n采样时刻的过程变量值
Ø PID方程的积分项
积分项值MI与偏差和成正比,求积分项的算式是:
MIn = Kc * Ts / Ti * (SPn - PVn ) + MX
其中: MIn 第n采样时刻的积分项值
Kc 增益
Ts 采样时间间隔
Ti 积分时间
SPn 第n采样时刻的给定值
PVn 第n采样时刻的过程变量值
MX 第n-1采样时刻的积分值(积分项前值,也称积分和或偏置)
Ø PID方程的微分项
微分项值MD与偏差的变化成正比,求解微分项的算式是:
MDn = Kc * Td / Ts * ((SPn-PVn) - ( SPn-1 - PVn-1))
为了避免给定值变化的微分作用而引起的跳变,假定给定值不变(SPn=SPn-1),这样,可以用过程变量的变化替代偏差的变化,计算算式可改进为:
MDn = Kc * Td / Ts * (PVn-1 - PVn)
其中: MDn 第n采样时刻的微分项值
Kc 增益
Ts 采样时间间隔
Td 微分时间
SPn 第n采样时刻的给定值
SPn-1 第n-1采样时刻的给定值
PVn 第n采样时刻的过程变量值
PVn-1 第n-1采样时刻的过程变量值
第一次采样设定PVn-1= PVn
n 程序实例
下面,我们举一个例子,用A5-CPU224XP来实现一个PID调节。假设输入的信号为AIW2,输出为AQW2,给定值为16000。首先,分步来计算各个变量。
l 地址分配
地址 |
变量名 |
格式 |
类型 |
范围 |
说明 |
VD1000 |
PVn |
实数 |
输入 |
0.0--1.0 |
过程变量 |
VD1004 |
SPn |
实数 |
输入 |
0.0--1.0 |
设定值 |
VD1008 |
Mn |
实数 |
输入/输出 |
0.0--1.0 |
输出值 |
VD1012 |
Kc |
实数 |
输入 |
可正可负 |
增益常数 |
VD1016 |
Ts |
实数 |
输入 |
必须为正 |
采样时间,单位为秒 |
VD1020 |
Ti |
实数 |
输入 |
必须为正 |
积分时间,单位为分钟 |
VD1024 |
Td |
实数 |
输入 |
必须为正 |
微分时间,单位为分钟 |
VD1028 |
MX |
实数 |
输入/输出 |
0.0--1.0 |
积分项前项 |
VD1032 |
PV(n-1) |
实数 |
输入/输出 |
0.0--1.0 |
前一次采样过程变量值 |
VD1036 |
MPn |
实数 |
输入/输出 |
0.0--1.0 |
比例项 |
VD1040 |
MIn |
实数 |
输入/输出 |
0.0--1.0 |
积分项 |
VD1044 |
MDn |
实数 |
输入/输出 |
0.0--1.0 |
微分项 |
VW1048 |
|
|
|
|
Round(Ts*10),定时器用时间长度 |
VD1060 |
|
实数 |
|
|
临时变量 |
VD1064 |
|
实数 |
|
|
临时变量 |
VD1068 |
|
实数 |
|
|
临时变量 |
l 用户预先指定值
用户需要预先指定如下变量(均为实数):
VD1008 |
Mn |
VD1012 |
Kc |
VD1016 |
Ts |
VD1020 |
Ti |
VD1024 |
Td |
VD1028 |
MX |
l 将AIW2进行标准化得到PVn
LD SM0.0
ITD AIW2 , VD1060
DTR VD1060 , VD1064
/R VD1064 , 32767.0 , VD1000
l 注意到第一次采样设定PVn-1= PVn
LD SM0.0
MOVR VD1000 , VD1032
l 将给定值进行标准化得到SPn(若给定值不变,仅计算一次即可),也可以通过文本等设定给定值,但一定要设定为标准化的给定值(0.0—1.0之间)
LD SM0.0
/R 16000 , 32767 , VD1004
l 计算MPn
MPn = Kc * ( SPn - PVn )
LD SM0.0
-R VD1004 , VD1000 , VD1060
*R VD1060 , VD1012 , VD1036
l 计算MIn
MIn = Kc * Ts / Ti * (SPn - PVn ) + MX
LD SM0.0
*R VD1036 , VD1016 , VD1060
/R VD1060 , VD1020 , VD1064
/R VD1064 , 60.0 , VD1068
+ R VD1068 , VD1028 , VD1040
l 将MIn保存为下一次的MX
LD SM0.0
MOVR VD1040 , VD1028
l 计算MDn
MDn = Kc * Td / Ts * (PVn-1 - PVn)
LD SM0.0
-R VD1032 , VD1000 , VD1060
*R VD1060 , VD1024 , VD1064
*R VD1064 , VD1012 , VD1068
*R VD1068 , 60.0 , VD1060
/R VD1060 , VD1016 , VD1044
l 计算Mn
Mn = MPn + MIn + MDn
LD SM0.0
+R VD1036 , VD1040 , VD1060
+R VD1060 , VD1044 , VD1008
l 输出值(将标准化的Mn转换为AQ值输出)
LD SM0.0
*R VD1008 , 32000.0 , VD1060
ROUND VD1060 , VD1064
DTI VD1064 , AQW2
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@mmsonline.com.cn。
- 暂无反馈