计算机集散控制系统(DCS)从广义上讲,有仪表型、PLC型和PC型3种类型。其中,PLC由于具有非常高的工业可靠性而被广泛应用,特别是90年代以来,许多厂商的PLC增加了模拟量处理及PID控制功能。因而使其更具有竞争力,针对工业合成革生产回收过程,设计开发了基于PLC-IPC结构的计算机集散式控制系统,并在实际应用中取得了良好的效果。然而,由于回收工艺的特殊性,使得某些关键的工艺参数基于PID控制算法的控制效果并不理想,模糊控制在PLC上的实现方式基本分两种:一是通过专用的硬件实现,但其价格昂贵,并且需要使用专用编程设备,另一种实际采用较多的是通过软件实现,把模糊控制程序作为整个PLC控制程序的一个子程序,包括数据的读取、模糊推理和控制信号输出,通过中断调用子程序完成模糊控制。
本文针对回收过程中蒸发罐液位控制不稳定的现象,采用模糊控制方案,设计了一种通用的模糊控制器,利用STEP7软件,采用模块化编程方法,使用梯形图及语句表编制程序实现模糊控制算法,使模糊控制策略在s7-300PLC上得以较好地实现,
一、回收工艺过程
回收过程属于典型的化工精馏过程,一般采用双塔精馏,包括脱水塔、蒸发罐和精馏塔等主要设备。采用原料预热、常压脱水、一段浓缩、汽相进料、真空精馏的工艺过程。
从工艺流程来看,蒸发罐处于两个塔之间,其内部状态受两塔影响较大。其恃点是工艺参数关联程度大,非线性程度高。对于蒸发罐的液位控制,从目前的情况来看,常规PID控制难于做到实时有效的监控,经常会出现控制不稳定、成份超标的情况。针对这种情况,设计了模糊控制方案,以此来提高控制效果。
二、PLC一IPC控制系统
回收过程计算机控制系统以Siemens S7-300 PLC作为控制站,实现工艺过程参数的数据采集和控制算法的实施,采用IPC(工业控制计算机)作为上位机,在工业组态系统环境下实现对控制系统的监控操作。系统组成分为4部分:中央处理单元(CPU)、信号模块(SM)、通讯处理器(CP)、功能模块(FM)。
SM334为模拟量输入/输出模块,实现模拟参数的数据采集和输出;SM321为数字输入模块,采集现场开关参数数据;FM355C为智能控制模块,实现参数的PID控制。
三、模糊控制器的设计
回收过程蒸发罐液位的模糊控制器主要由模糊化接口、知识库、模糊推理、清晰化接口4部分组成,蒸发罐液位模糊控制器以液位偏差E和偏差变化率EC作为输入变量,它们能够比较严格地反映受控过程中输入变量的动态特性,同时控制器设计简单,规则容易理解。输出控制量为U(阀门开度),采用增量式算法。
模糊化接口通过尺度变换,将输入参数变换到各自的论域范围,再对其进行模糊化处理,基于对现场数据的分析以及液位的控制经验,E、EC的论域设计为[-6,-5,……,+5,+6],U的论域为[-7,……,+7],均分为7个档级[NB,NM,NS,O,PS, PM,PB]。采用三角形函数作为隶属函数确定模糊语言变量的隶属度,可分别得到模糊变量E、EC和U的隶属度赋值表。
清晰化接口把模糊量转为执行机构可执行的jingque量,采用大隶属度法,即μ(u*)≥μ(u),u∈U ,μ是u的隶属度函数,u*是与大隶属度对应的模糊控制量的值。
知识库由数据库和规则库组成。控制规则采用基于IF-THEN(条件-结果)的产生式规则,其结构简单,易于修改和掌握,比较适合PLC编程,如: if E=NB and EC=NB then U=PB表示为:R1=NBE×NBEc×PBu。
总结液位控制经验,得出7×7=49条控制规则。
总的模糊关系为:R=R1∪R2∪…∪R49,R是模糊关系矩阵,"∪"表示取大。采用合成推理法U=(E×EC)oR,"×"表示求值积,"0"是合成运算符,这里采用大-小合成法。整个模糊推理过程计算量大,比较烦琐,借助计算机完成,后获得模糊控制量查询表。
四、STEP7实现的模糊控制算法
Siemens s7-300PLC的编程系统STEP7提供了丰富的功能模块,为模糊控制算法的实现提供了方便。为了简化程序编写量,提高程序的通用性并且方便调试,PLC程序设汁采用了模块化编程方法。编程语言采用梯形图(LAD)和语句表(STL)结合的形式。主模块OB1实现对子程序块的调用和数据的传递,0B35为中断服务程序模块。FBl模块为模糊控制器,完成整个模糊控制功能。它由FCl~FC4 4个子程序块组成。其中FCl完成e(液位偏差)和ec(偏差变化率)的计算;FC2进行模糊化处理,即完成jingque量e,ec到模糊量E,EC的转换;FC3完成控制量表的查询功能;FC4完成模糊控制量U到jingque量u的转化,并输出u。FBl依次调用4个子模块完成模糊控制各部分的功能,并实现他们之间的数据传递。FBl模糊控制器编制完成后,保存在STEP7标准库中,其具有很强的灵活性和通用性,如同STFP7中PID控制器(FB41)一样,方便调用。针对不同的被控变量,只要对FBl输入输出端进行正确的组态即可对变量进行模糊控制。数据块DB2作为FBl的背景数据块,存储量化因子Ke、Kec、Ku及其他参数。
整个程序设计的关键是模糊控制量表的查询部分,即FC3子程序块。在编程之前,将模糊控制量表中U的值按由上到下,由左到右的顺序依次置入数据块DBl中。数据类型为WORD型。首地址为DBWO,依次为DBW2、DBW4、…、DBW336(U的个数是13×13)。采用指针寻址的查表方法。为了简化设计,将输入模糊论域的元素[一6,…,+6]转化为[0,…,12]。控制量的基址为0,偏移地址为2×(l3×EC+E),由EC和E可以确定控制量的地址为0+2×(13×EC+E)。
通过指针变量获得地址中存储的U的模糊值。
以下给出主要程序部分示例:
OB1主循环程序:
L PIW256https://从SM334读入液位数据,外设地址为PIW256https://
T MD0https://将采集的液位数据存入M存储区https://
L DB2.DBD14https://把DB2中量化因子Ke存入M存储区https://
T MD8
L DB2.DBD18https://把DB2中量化因子Kec存入M存储区https://
T MD12
L DB2.DBD22https://把DB2中量化因子Ku存入M存储区https://
T MD16
……
OB35中断子程序:调用FB1实现模糊控制
CALL FB1,DB2https://调用FB1https://
Fuzzy_On:=1
DB_No:=DB1
N:=6
PV:=MD0
SP:=MD4
Ke:=MD8
Kec:=MD12
Ku:=MD16
HLM_e:=1.000000e+001https://误差上限值https://
LLM_e:=-1.000000e+001https://误差上限值https://
……
e:=MD20https://液位误差值存入M存储区https://
ec:=MD24https://液位误差变化率存入M存储区https://
u:=PQW258https://把控制量的值输出到SM334,地址为PQW258https://
……
FC3子程序:实现模糊控制量表查询功能
L P#0.0 https://利用指针寻址https://
L #q4 https://q4中存放控制量的地址https://
SLD 3
+D
T#P1
L DBW [#P1]
T MW 10 https://将控制量U的值存入MW 10https://
后由FC4功能块实现控制量U从模糊量到jingque量的转换,即U乘以量化因子Ku再经过限幅,将终计算结果送到模拟量输出模块实现控制作用。
应用了基于PLC的模糊控制器,蒸发罐液位控制效果较以前有很大改善,整定时间缩短,超调量缩小,控制稳定。
五、结 论
基于SIEMENS PLC实现模糊控制算法,既保留PLC控制的可靠、灵活等特点,又提高了控制系统的智能化程度。采用离线计算在线查询的方法将复杂的模糊控制计算融进查询表中,在实际控制中节省计算时间,使得控制算法简单明了。对于那些非线性、大滞后、数学模型难以建立的控制系统,基于PLC的模糊控制不失为一种较理想的可选方案.
西门子代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理,西门子中国代理商