本科毕业设计说明书(论文)
u(t)---------PID回路输出
第 11 页 共 28 页
Kp----------比例系数P Ti-----------积分系数I Td-----------微分系数D PID调节的传输函数为
D(s)?U(s)1?Kp[1??TdS] (3-3) E(s)TiS数字计算机处理这个函数关系式,必须将连续函数离散化,对偏差周期采样后,计算机输出值。其离散化的规律如表3.1所示:
表3.1 模拟与离散形式
模拟形式 e(t)?r(t)?c(t) de(t) dTtn离散化形式 e(n)?r(n)?c(n) e(n)?e(n?1) Te(t)dt 0?e(i)T?T?e(i) i?0i?0n所以PID输出经过离散化后,它的输出方程为:
Tu(n)?Kp{e(n)?Ti式中,
?e(i)?i?0nTd[e(n)?e(n?1)]}T (3-4)
?up(n)?ui(n)?ud(n)?u0up(n)?Kpe(n) 称为比例项 Tui(n)?KpTiud(n)?Kp?e(i) 称为积分项
i?0nTd[e(n)?e(n?1)] 称为微分项 T上式中,积分项是包括第一个采样周期到当前采样周期的所有误差的累积值。计算中,没有必要保留所有的采样周期的误差项,只需要保留积分项前值,计算机的处理就是按照这种思想。故可利用PLC中的PID指令实现位置式PID控制算法量。
本科毕业设计说明书(论文)
3.1.2 PID在PLC中的回路指令
西门子S7-200系列PLC中使用的PID回路指令,见表3.2
表3.2 PID回路指令
第 12 页 共 28 页
名称 指令格式 指令表格式 梯形图 PID运算 PID PID TBL,LOOP 使用方法:当EN端口执行条件存在时候,就可进行PID运算。指令的两个操作数TBL和LOOP,TBL是回路表的起始地址,本文采用的是VB100,因为一个PID回路占用了32个字节,所以VD100到VD132都被占用了。LOOP是回路号,可以是0~7,不可以重复使用。PID回路在PLC中的地址分配情况如表3.3所示。
表3.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之间 3.1.3 回路输入输出变量的数值转换方法
本文中,设定的温度是给定值SP,需要控制的变量是炉子的温度。但它不完全是过程变量PV,过程变量PV和PID回路输出有关。在本文中,经过测量的温度信号被转化为标准信号温度值才是过程变量,所以,这两个数不在同一个数量值,需要他们
本科毕业设计说明书(论文)
第 13 页 共 28 页
作比较,那就必须先作一下数据转换。传感器输入的电压信号经过EM235转换后,是一个整数值,但PID指令执行的数据必须是实数型,所以需要把整数转化成实数。使用指令DTR就可以了。如本设计中,是从AIW0读入温度被传感器转换后的数字量。其转换程序如下:
MOVW AIW0 AC0 DTR AC0 AC0 MOVR AC0 VD100 3.1.4 实数归一化处理
因为PID中除了采样时间和PID的三个参数外,其他几个参数都要求输入或输出值0.0~1.0之间,所以,在执行PID指令之前,必须把PV和SP的值作归一化处理。使它们的值都在0.0~1.0之间。单极性的归一化的公式:
Rnoum?(Rraw/32000) (3-5) 3.1.5 PID参数整定
PID参数整定方法就是确定调节器的比例系数P、积分时间Ti和和微分时间Td,改善系统的静态和动态特性,使系统的过渡过程达到最为满意的质量指标要求。一般可以通过理论计算来确定,但误差太大。目前,应用最多的还是工程整定法:如经验法、衰减曲线法、临界比例带法和反应曲线法。
经验法又叫现场凑试法,它不需要进行事先的计算和实验,而是根据运行经验,利用一组经验参数,根据反应曲线的效果不断地改变参数,对于温度控制系统,工程上已经有大量的经验,其规律如表3.4所示
表3.4 温度控制器参数经验数据
被控变量 温度 规律的选择 滞后较大 比例度 20~60 积分时间(分钟) 微分时间(分钟) 3~10 0.5~3 根据反复的试凑,调处比较好的结果是P=15,I=2.0,D=0.5
本科毕业设计说明书(论文)
3.2 S7-200程序设计流程图
第 14 页 共 28 页
主程序
运行PLC 子程序0
设定温度 初始化运行指示灯 设定PID值 初始化PID 每100ms调用一次中断程序 调用子程序0 返回 中断程序
读入温度并转换 把实际温度值放入VD100 调用PID指令 输出PID值
图3.2 设计流程图
本科毕业设计说明书(论文)
3.3 内存地址分配与PID指令回路表
3.3.1 内存地址分配
表3.5 内存地址分配
第 15 页 共 28 页
地址 VD0 VD4 VD30 3.3.2 PID指令回路表
说明 实际温度存放 设定温度存放 实际温度的存放 表3.6 内存地址分配
地址 VD100 VD104 VD108 VD112 VD116 VD120 VD124 VD128 VD132 名称 过程变量(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之间 3.4 S7-200程序设计梯形图
3.4.1 初次上电
1)读入模拟信号,并把数值转化显示锅炉的当前电压
2)判断炉温是否在正常范围,打亮正常运行指示灯/温度越上限报警指示灯