当前课程知识点:电气控制技术与PLC > 第8章 模拟量控制程序设计 > 8.3PID控制指令 > PID控制指令
大家好
这一讲我们一起学习PID的控制指令
在工业控制过程中
对温度 压力 流量 液位等模拟量的闭环控制
通常采用PID控制
通用PLC一般都具有PID控制功能
如西门子PLC就有PID指令及PID向导等功能器件
并有PID自整定功能
本讲我们就一起讨论一下PID算法
以及PID回路指令
首先 我们讨论本讲第一部分内容
PID算法
典型的PID模拟量控制系统如图所示
图中
PID控制器根据给定值SP和过程变量PV的偏差e
调节回路输出值
以保证偏差e为0或趋于0
使系统达到稳定状态
如果PID回路的输出变量M(t)是时间t的函数
则可以看作是比例 积分 微分三项之和
如下面这个公式所示
其中 M(t)为PID回路的输出
是随时间t连续变化的模拟量
Kc为PID回路的增益
Ki为积分项系数
e为PID回路偏差
M initial为PID回路输出的初始值
Kd为微分项系数
我们知道
计算机在处理连续函数时
必须对其进行数字化即离散化
因此
将上式离散化后
第n次采样时控制器的输出如下
其中 Mn为第n个采样时刻PID回路输出的计算值
e(n)为第n次采样时刻的偏差值
e(n-1)为第n-1次采样时刻的偏差值
也称偏差前值
M initial为PID回路输出的初值
Kc Ki Kd分别为回路的增益 积分项 微分项系数
注意 其中积分项是包括从第1次采样
到当前采样的所有偏差
实际计算时
没有必要也不可能保存所有采样的偏差
只需保存上一次采样的偏差值
和上一次积分项MX即可
利用迭代运算
可转化为递推方程如下
式中
MPn MIn MDn为第n个采样时刻的比例项
积分项和微分项
其中 比例项是增益Kc和偏差e(n)的乘积
增益Kc决定输出对偏差的灵敏度
提高调节速度
减少误差
但不能消除误差
SPn为第n个采样时刻的给定值
PVn为反馈值
积分项与历次采样时刻偏差的累加和成正比
Ti为积分时间常数
控制积分项在整个输出结果中影响的程度
Ts为采样周期
每次计算完MIn之后
都要用MIn去更新MX
积分项能够消除稳态误差
但使系统的动态响应变慢
微分项与偏差的变化成正比
假定给定值不变
微分项的计算式为
其中 Td为微分时间常数
PVn-1为第n-1个采样时刻的过程变量值
每次采样结束
应将本次的过程变量值PVn存储起来
作为下一次的过程变量前值PVn-1
因此 再加上输出值Mn
进行PID运算总共需要这9个参数
接下来 我们来看下第二部分内容PID回路指令
先来学习下PID回路指令的格式如图所示
PID回路指令有两个操作数
TBL(TABLE)和LOOP
其中 TBL是回路表的起始地址
操作数限用VB区域
回路参数表存储9个参数
用于监控闭环控制指令的执行
包括过程变量 给定值 输出 增益
采样时间 积分时间 微分时间
积分项前值(偏差)及过程变量前值
如表所示
为连续的36个字节
LOOP是回路号
可以是0-7的整数
进行PID运算的前提条件是
逻辑堆栈栈顶值必须为1
一个程序中最多可用8条PID指令
PID回路指令不可重复使用同一个回路号
否则PID计算会相互干扰
结果难以预料
再来看下控制方式
当允许输入端检测到一个正跳变信号
PID回路就从手动方式无扰动地切换到自动方式
无扰动切换时
系统把手动方式的当前输出值
填入回路表中的Mn栏
用来初始化输出值Mn
且进行一系列的操作
对回路表中的值进行组态
包括置给定值SPn = 过程变量PVn
置过程变量前值PVn-1 =过程变量当前值PVn
置积分项前值MX = 输出值Mn
即用Mn去更新MX
注意 梯形图中
若PID指令的EN端直接接至左母线
在启动CPU或CPU从STOP模式
转换到RUN模式时
PID使能位默认值为1
可以执行PID指令
但并无0到1的正跳变
不会自动执行无扰动切换
最后我们讨论下回路输入/输出量的转换及归一化
由于PID可以调节温度 压力
流量 液位等许多对象
但它们各自都是由工程量表示的
需要一种通用的数据表示方法
才能被PID功能块识别
PID功能块只接受0.0 - 1.0之间的实数
作为反馈 给定与控制输出的有效数值
如果是直接使用PID功能块编程
必须保证数据在这个范围之内
其他如增益 采样时间 积分时间
微分时间都是实数
因此 必须把外围实际的物理量
与PID功能块需要的(或者输出的)数据之间进行转换
这就是所谓输入/输出的转换与归一化处理
先来讨论一下回路输入量的转换与归一化
步骤如下
第一步
将实际物理数值从16位整数值转换为浮点型实数
我们来看这段范例程序
先读取模拟量输入至AC0
然后转换输入16位整数到32位双字整数
最后转换32位整数到实数
第二步
实数转换为标准化的0.0和1.0之间的实数
公式如下
其中 Rnorm为标准化的实数值
Rraw 未标准化的实数值
Span 是最大可能的数值减去最小可能的数值
比如单极性典型值27648
双极性55296
Offset(偏移量)
对单极性数值是0.0
对双极性数值是0.5
双极性实数归一化范例程序如下
先用累加器AC0中的实数值除以55296.0
然后加上偏置
使其数值落在0.0~1.0之间
最后将归一化的结果存入回路表
下面再来讨论下回路输出值转换成刻度整数值
输出要用来控制外部设备
在传送给D/A模拟量单元之前
必须把回路输出变量转换为16位的整数值
从AQW送出去
这一过程其实就是输入变量标准化的反向转换
第一步 为回路输出值的刻度化
公式为
其中Rscal是回路输出的刻度实数值
Mn是回路输出的标准化实数值
Offset Span定义同前
范例程序如下
对于双极性数据的转换
首先是将输出结果送AC0
然后减去偏置
按工程量标定
乘以55296.0
对于单极性而言
减去偏置这一步就不需要了
其他一样
第二步 将实数转换为16位整数
范例程序如下
先将实数转换为32位整数
然后转换到16位整数
最后将该16位整数输出至模拟量输出寄存器
好 本讲到此结束
谢谢大家
-1.1 低压电器简介
--低压电器简介
-1.2 低压开关电器
--低压开关电器
-1.3 主令电器
--主令电器
-1.4 接触器
--接触器
-1.5 熔断器
--熔断器
-1.6 继电器(一)热继电器和速度继电器
-1.7 继电器(二)时间继电器
-小测验
-2.1 三相异步电动机的直接起动控制
-2.2 三相异步电动机点动控制和长动控制
-2.3 三相异步电动机降压起动控制(一)
-2.4 三相异步电动机降压起动控制(二 )
-2.5 三相异步电动机的多点控制和顺序控制
-2.6 三相异步电动机的调速控制
-2.7 三相异步电动机的制动控制(一)
-2.8 三相异步电动机的制动控制(二)
-2.9 三相异步电动机正反转控制(一)
-2.10 三相异步电动机正反转控制(二)
-2.11 电气控制线路的设计方法
-小测验
-3.1 电气控制电路图的绘制(一)
-3.2 电气控制电路图的绘制(二)
-3.3 电气控制电路图的绘制(三)
-3.4 电气控制电路的设计方法 (一)
-3.5 电气控制电路的设计方法 (二)
-小测验
-4.1 认识PLC
--认识PLC
-4.2 PLC组成及工作原理
-4.3 S7-200 SMART PLC硬件介绍(上)
-4.4 S7-200 SMART PLC硬件介绍(下)
-4.5 STEP 7-Micro/WIN SMART编程软件(上)
--STEP 7-MicroWIN SMART编程软件(上)
-4.6 STEP 7-Micro/WIN SMART编程软件(下)
--STEP 7-MicroWIN SMART编程软件(下)
-小测验
-5.1 PLC编程语言与程序结构
-5.2 指令基础
--指令基础
-5.3 位逻辑指令
--位逻辑指令
-5.4 PLC编程规则与技巧
-5.5 定时器指令的工作原理
-5.6 定时器指令应用举例
-5.7 计数器指令的工作原理
-5.8 计数器指令的应用
--计数器指令应用
-小测验
-6.1 功能指令概述
--功能指令概述
-6.2 数据处理指令(一):比较指令与数据传送指令
-6.3 数据处理指令(二):数据转换指令
--数据转换指令
-6.4 数据处理指令(三):表格指令和时钟指令
-6.5 算术运算指令及其应用
-6.6 逻辑运算指令及其应用
-6.7 程序控制指令:跳转指令、循环指令
-6.8 子程序的编写与调用
-6.9 中断程序与中断指令
-6.10 高速计数器指令与高速脉冲输出指令(一)
-6.11 高速计数器指令与高速脉冲输出指令(二)
-小测验(一)
-小测验(二)
-小测验(三)
-7.1 梯形图的经验设计法
-7.2 顺序控制设计法与顺序功能图概述
-7.3 顺序功能图的基本结构和绘制方法
-7.4 使用SCR指令的顺序控制梯形图设计方法
-7.5 使用起保停电路的顺序控制梯形图设计方法
-7.6 使用置位复位指令的顺序控制梯形图设计法
-小测验
-8.1模拟量控制概述
--模拟量控制概述
-8.2模拟量输入输出配置及数值的规范化
-8.3PID控制指令
--PID控制指令
-8.4水箱水位PID控制程序举例
-小测验