水电电工知识
电工知识|PLC闭环控制系如何实现PID控制器
2017-01-10  浏览:39
水电之家讯:1 引言

在工业生产中,常需要用闭环控制方式来实现温度、压力、流量等连续变化的模拟量控制。无论使用模拟控制器的模拟控制系统,还是使用计算机(包括plc)的数字控制系统,PID控制都得到了广泛的应用。

PID控制器是比例-积分-微分控制的简称,具有

(1) 不需要精确的控制系统数学模型;

(2) 有较强的灵活性和适应性;

(3) 结构典型、程序设计简单,工程上易于实现,参数调整方便等优点。积分控制可以消除系统的静差,微分控制可以改善系统的动态相应速度,比例、积分、微分三者有效地结合可以满足不同的控制要求。

2 PLC实现PID的控制方式

2.1 PID过程控制模块

这种模块的PID控制程序是PLC生产厂家设计的,并存放在模块中,用户使用时序要设置一些参数,使用起来非常方便,一个模块可以控制几路甚至几十路闭环回路。

2.2 PID功能指令

现在很多PLC都有供PID控制用的功能指令,如S7-200的PID指令。它们实际上是用于PID控制的子程序,与模拟量输入/输出模块一起使用,可以得到类似于使用PID过程控制模块的效果。

2.3 用自编的程序实现PID闭环控制

有的PLC没有PID过程控制模块和PID控制用的功能指令,有时虽然可以使用PID控制指令,但是希望采用某种改进的PID控制算法。在上述情况下都需要用户自己编制PID控制程序。

3 PLC-PID控制器的实现

本文以西门子S7-200PLC为例,说明PID控制的原理及PLC的PID功能指令的使用及控制功能的实现。

3.1 PID控制器的数字化

PLC的PID控制器的设计是以连续系统的PID控制规律为基础,将其数字化写成离散形式的PID控制方程,再跟据离散方程进行控制程序设计。

在连续系统中,典型的PID闭环控制系统如图1所示。图1中sp(t)是给定值,pv(t)是反馈量,c(t)是系统的输出量,PID控制的输入输出关系式为:

式中:

M(t)—控制器的输出量,M0为输出的初始值;

e(t)=sp(t)-pv(t)-误差信号;

KC比例系数;

TI-积分时间常数;

TD-微分时间常数。

图1 连续闭环控制系统方框图



式(1)的右边前3项分别是比例、积分、微分部分,它们分别与误差,误差的积分和微分成正比。如果取其中的一项或两项,可以组成P、PD或PI控制器。

假设采样周期为TS,系统开始运行的时刻为t=0,用矩形积分来近似精确积分,用差分近似精确微分,将公式1离散化,第n次采样时控制器的输出为: (2)

式中:

en-1-第n-1次采样时的误差值;

KI-积分系数;

KD-微分系数。

基于PLC的闭环控制系统如图2所示。图中的虚线部分在PLC内。其中spn、pvn、en、Mn分别为模拟量在sp(t)、pv(t)、e(t)、M(t)在第n次采样时的数字量。

图2 PLC闭环控制系统方框图

在许多控制系统内,可能只需要P、I、D中的一种或两种控制类型。如可能只要求比例控制或比例与积分控制,通过设置参数可对回路进行控制类型进行选择。

3.2 输入输出变量的转换

PID控制有两个输入量:给定值(sp)和过程变量(pv)。多数工艺要求给定值是固定的值,如加热炉温度的给定值。过程变量是经A/D转换和计算后得到的被控量的实测值,如加热炉温度的测量值。给定值与过程变量都是与被控对象有关的值,对于不同的系统,它们的大小、范围与工程单位有很大的区别。应用PLC的PID指令对这些量进行运算之前,必须将其转换成标准化的浮点数(实数)。

同样,对于PID指令的输出,在将其送给D/A转化器之前,也需进行转换。

3.3 回路输入的转换

转换的第一步是将给定值或A/D转换后得到的整数值由16位整数转换成浮点数,可用下面的程序实现这种转换:

XORD AC0, ACO

//清除累加器

MOVW AIWO, AC0

//将待转化的模拟量存入累加器

LDW>= AC0, 0

//如果模拟量数值为正

JMP 0

//直接转换成实数

ORD 16#FFFF0000, ACO

//将AC0内的数值进行符号扩展,扩展为32位负数

LBL 0

DTR AC0, AC0

//将32位整数转换成实数

转换的下一步是将实数进一步转换成0.0~1.0之间的标准化实数,可用下面的式(3)对给定值及过程变量进行标准化:

RNorm=(RRaw/Span)+Offset (3)

式中:

RNorm-标准化实数值;

RRaw-标准化前的值;

Offset-偏移量,对单极性变量为0.0,对双极性变量为0.5;

Span-取值范围,等于变量的最大值减去最小值,单极性变量的典型值为32000,双极性变量的典型值为64000。

下面的程序将上述转换后得到的AC0中的双极性实数(其Span=64000)转换成0.0~1.0之间的实数:

/R 64000.0, AC0

//累加器中的实数标准化

+R 0.5, AC0

//加上偏移值,使其在0.0~1.0之间

MOVR ACO, VD100

//加标准化后的值存入回路表内

3.4 回路输出的转换

回路输出即PID控制器输出,它是标准化的0.0~1.0之间的实数。将回路输出送给D/A转换器之前,必须转换成16位二进制整数。这一过程是将pv与sp转换成标准化数值的逆过程。用下面的公式将回路输出转换成实数:

RScal=(Mn-Offset)×Span (4)

式中,RScal是回路输出对应的实数值,Mn是回路输出标准化的实数值。

下面的程序用来将回路输出转换为对应的实数:

MOVR VD108, AC0

//将回路输出送入累加器

-R 0.5, AC0

//仅双极性数才有此语句

*R 64000.0, AC0

//单极性变量乘以32000.0

用下面的指令将代表回路输出的实数转换成16位整数:

ROUND AC0, AC0

//将实数转换为32位整数

MOVW AC0, AQW0

//将16位整数写入模拟输出(D/A)寄存器

3.5 PID指令及回路表

S7-200的PID指令如图3所示:

图3 PID指令

指令中TBL是回路表的起始地址,LOOP是回路的编号。编译时如果指令指定的回路表起始地址或回路号超出范围,CPU将生成编译错误(范围错误)仪器编译失败。PID指令对回路表中的某些输入值不进行范围检查,应保证过程变量、给定值等不超限。回路表参见附表。

附表 PID指令的回路表



如果PID指令中的算术运算发生错误,特殊存储器SMI.1(溢出或非法数值)被置1,并将终止PID指令的执行。要想消除错误,在下次执行PID运算之前,应改变引起运算错误的输入值,而不是更新输出值。 4 PID指令编程举例

某一水箱里的水以变化速度流出,一台变频器驱动的水泵给水箱打水,以保持水箱的水位维持在满水位的75%。过程变量由浮在水面上的水位测量仪提供,PID控制器的输出值作为变频器的速度给定值。过程变量与回路输出均为单极性模拟量,取值范围为0.0~1.0。

本例采用PI控制器,给定值为0.75,选取控制器参数的初始值为:KC=0.25,TS=0.1s,TI=30min。编程如下:

//主程序(OBI)

LD SM0.1 //首次扫描时

CALL 0 //调用初始化子程序

//子程序

LD SM0.0

MOVR 0.75, VD104 //装入给定值75%

MOVR 0.25, VD112 //装入回路增益0.25

MOVR 0.10, VD116 //装入采样时间0.1s

MOVR 30.0 VD120 //装入积分时间30min

MOVR 0.0, VD124 //关闭微分作用

MOVB 100, SMB34

//设置定时中断0的时间间隔为100ms

ATCH 0, 10

//设定定时中断以执行PID指令

ENI

//允许中断,子程序0结束

//中断程序0

LD SM0.0

LTD AIW0, AC0

//单极性模拟量经A/D转换后存入累加器

DTR AC0, AC0

//32位整数转换为实数

/R 32000.0, AC0

//标准化累加器中的实数

MOVR AC0, VD100 //存入回路表

LD 10.0

//在自动方式下,执行PID指令

PID VB100, 0

//回路表的起始地址为VB100,回路号为0

LD SM0.0

MOVB VD108, AC0

//PID控制器的输出值送入累加器

*R 32000.0 AC0

//将累加器中的数值标准化

ROUND AC0, AC0

//实数转换为32位整数

DTI AC0, AQW0

//将16位整数写入到模拟量输出(D/A)寄存器

5 结束语

PLC实现PID控制的方法多种,直接应用PID指令来实现基于PLC的PID控制,是一种易于实现且经济实用的方法。

水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 电线 的产品:
  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 Bybc.cn SYSTEM All Rights Reserved