江西理工大学2011届本科生毕业设计(论文)
2.1.2软件方案设计
软件基本结构由主/副控器PID,控制对象温度调功器、检测元件温度变送器等部分组成。其基本工作原理:首先计算出两个控制器PID的有关参数,进行PID初始化,把夹套温度变送器和内胆温度变送器传送回来0~100mV的电压信号通过模拟量输入模块EM235的A/D转换变为0~32000的数字量,然后进行变换变为0~1的过程量形参,然后给定一个夹套温度给定量SV和夹套温度过程量PV1传送给主控制器PID运算,得到的结果OUT1作为副控制器的给定量SV与内胆温度过程量PV0传送给副控制器 PID运算,得到的结果OUT0经过标度变换和模拟量输出模块EM235的A/D转换变为0~5V的控制信号传送给温度调功器,对炉内加热器进行控制,同时对内胆温度和夹套温度进行检测,形成双闭环回路控制。其组成图如图2-2所示,流程图如图2-3所示。
图2-2 加热炉软件控制部分组成图
5
江西理工大学2011届本科生毕业设计(论文)
图2-3 系统流程框图
2.2 PID控制算法
模拟量闭环控制较好的方法之一是PID控制,PID在工业领域的应用已经有60多年,现在依然广泛地被应用。人们在应用的过程中积累了许多的经验,PID的研究已经到达一个比较高的程度。
比例控制(P)是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。其特点是具有快速反应,控制及时,但不能消除余差。
在积分控制(I)中,控制器的输出与输入误差信号的积分成正比关系。积分控制可以消除余差,但具有滞后特点,不能快速对误差进行有效的控制。
在微分控制(D)中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。微分控制具有超前作用,它能预测误差变化的趋势。
6
江西理工大学2011届本科生毕业设计(论文)
避免较大的误差出现,微分控制不能消除余差。
PID控制,P、I、D各有自己的优点和缺点,它们一起使用的时候又和互相制约,但只有合理地选取PID值,就可以获得较高的控制质量。
2.2.1 PID算法
图 2-4 带PID控制器的闭控制系统框图
如图2-4所示,PID控制器可调节回路输出,使系统达到稳定状态。偏差e和输入量r、输出量c的关系:
控制器的输出为:
e(t)=r(t)-c(t) (2-1)
t?1u(t)?Ke(t)? P?Ti??0e(t)dt?Tdde(t)?? (2-2) dt?上式中, u(t)——PID回路的输出;Kp——比例系数P;Ti ——积分系数I;
Td——微分系数D;PID调节器的传输函数为: D(S)???U(S)1?KP?1??TdS? (2-3) E(S)?TiS?数字计算机处理这个函数关系式,必须将连续函数离散化,对偏差周期采样后,计算机输出值。其离散化的规律如表2-1所示。
表 2-1 模拟与离散形式 模拟形式 离散化形式 e(t)?r(t)?c(t) de(t) dTe(n)?r(n)?c(n) e(n)?e(n?1) T?e(t)dt 0t?e(i)T?T?e(i) i?0i?0nn 7
江西理工大学2011届本科生毕业设计(论文)
所以PID输出经过离散化后,它的输出方程为;
??TdTnu(n)?KP?e(n)??e(i)??e(n)?e(n?1)???u0Tii?0T (2-4) ???uP(n)?ui(n)?ud(n)?u0T式2-4中, uP(n)?KPe(n) 称为比例项;ui(n)?Kpe(i) 称为积分项; ?Tii?0nud(n)?KpTd?e(n)?e(n?1)?称为微分项; Tn上式中,积分项?e(i)是包括第一个采样周期到当前采样周期的所有误差的
i?1累积值。计算中,没有必要保留所有的采样周期的误差项,只需要保留积分项前值,计算机的处理就是按照这种思想。故可利用PLC中的PID指令实现位置式PID控制算法量。
2.2.2PID在PLC中的回路指令
现在很多PLC已经具备了PID功能,STEP 7 Micro/WIN就是其中之一有的是专用模块,有些是指令形式。西门子S7-200系列PLC中使用的是PID回路指令见表2-2。
表2-2 PID回路指令
名称 指令格式 指令表格式 梯形图
PID运算 PID PID TBL,LOOP 使用方法:当EN端口执行条件存在时候,就可进行PID运算。指令的两个操作数TBL和LOOP,TBL是回路表的起始地址,本文采用的是VB100,因为一个PID回路占用了32个字节,所以VD100到VD132都被占用了。LOOP是回路号,可以是0~7,不可以重复使用。PID回路在PLC中的地址分配情况如表2-3所示。
8
江西理工大学2011届本科生毕业设计(论文)
表2-3 PID指令回路表
偏移地址 0 4 8 12 16 20 24 28 32 名称 过程变量(PVn) 给定值(SPn) 输出值(Mn) 增益(Kc) 采样时间(Ts) 采样时间(Ti) 微分时间(Td) 积分项前值(MX) 过程变量前值(PVn-1) 数据类型 实数 实数 实数 实数 实数 实数 实数 实数 实数 说明 必须在0.0~1.0之间 必须在0.0~1.0之间 必须在0.0~1.0之间 比例常数,可正可负 单位为s,必须是正数 单位为min,必须是正数 单位为min,必须是正数 必须在0.0~1.0之间 必须在0.0~1.0之间
1) 回路输入输出变量的数值转换方法
本设计中回路的输入为两个温度模拟量输入,夹套和内胆温度经过温度检测模块,传送给EM235经过A/D转换后得到的是16为整数,而设计中所需要的过程变量为实数,所以我们需要将整数转换为实数,这里就要用到I_DI,DI_R指令,就如在标度变换中的转换一样,得到实际的温度值。输出为0~5V的电压信号,所以我们输入到EM235的数值也为16位整数类型,而经过PID回路运算后得到的数据为32为实数,这里我就要用到ROUND,DI_I指令,就如在副控制器中断程序一样,得到的数据从模拟量输出端口输出。 2) 实数的归一化处理
因为PID中除了采样时间和PID的三个参数外,其他几个参数都要求输入或输出值0.0~1.0之间,所以,在执行PID指令之前,必须把PV和SP的值作归一化处理。使它们的值都在0.0~1.0之间。归一化的公式为:
Rnoum?Rraw/Span?Offest (2-5)
式中, Rnoum ——标准化的实数值;Rraw ——未标准化的实数值;Span——补偿值或偏置,单极性为0.0,双极性为0.5;Offest ——值域大小,为最大允许值减去最小允许值,单极性为32000,双极性为6400。
本文中采用的是单极性,故转换公式为:
??Rnoum?(Rraw/32000) (2-6)
因为温度经过检测和标度变换后,得到的值是实际温度值,所以为了SP值
9