您好,欢迎访问一九零五行业门户网

模糊控制在SIEMENSPLC系统中的实现

计算机集散控制系统(dcs)从广义上讲,有仪表型、plc型和pc型3种类型。其中,plc由于具有非常高的工业可靠性而被广泛应用,特别是90年代以来,许多厂商的plc增加了模拟量处理及pid控制功能。因而使其更具有竞争力,针对工业合成革生产dmf回收过程,设计开发了基于plc-ipc结构的计算机集散式控制系统,并在实际应用中取得了良好的效果。然而,由于dmf回收工艺的特殊性,使得某些关键的工艺参数基于pid控制算法的控制效果并不理想,模糊控制在plc上的实现方式基本分两种:一是通过的硬件实现,但其价格昂贵,并且需要使用编程设备,另一种实际采用较多的是通过软件实现,把模糊控制程序作为整个plc控制程序的一个子程序,包括数据的读取、模糊推理和控制信号输出,通过中断调用子程序完成模糊控制。
本文针对dmf回收过程中蒸发罐液位控制不稳定的现象,采用模糊控制方案,设计了一种通用的模糊控制器,利用step7软件,采用模块化编程方法,使用梯形图及语句表编制程序实现模糊控制算法,使模糊控制策略在s7-300plc上得以较好地实现,
一、dmf回收工艺过程
dmf回收过程属于典型的化工精馏过程,一般采用双塔精馏,包括脱水塔、蒸发罐和精馏塔等主要设备。采用原料预热、常压脱水、一段浓缩、汽相进料、真空精馏的工艺过程。
从工艺流程来看,蒸发罐处于两个塔之间,其内部状态受两塔影响较大。其恃点是工艺参数关联程度大,非线性程度高。对于蒸发罐的液位控制,从目前的情况来看,常规pid控制难于做到实时有效的监控,经常会出现控制不稳定、成份超标的情况。针对这种情况,设计了模糊控制方案,以此来提高控制效果。
二、plc一ipc控制系统
dmf回收过程计算机控制系统以siemenss7-300plc作为控制站,实现工艺过程参数的数据采集和控制算法的实施,采用ipc(工业控制计算机)作为上位机,在工业组态系统环境下实现对控制系统的监控操作。系统组成分为4部分:中央处理单元(cpu)、信号模块(sm)、通讯处理器(cp)、功能模块(fm)。系统结构如图1所示。
sm334为模拟量输入/输出模块,实现模拟参数的数据采集和输出;sm321为数字输入模块,采集现场开关参数数据;fm355c为智能控制模块,实现参数的pid控制。
三、模糊控制器的设计
dmf回收过程蒸发罐液位的模糊控制器主要由模糊化接口、知识库、模糊推理、清晰化接口4部分组成,蒸发罐液位模糊控制器以液位偏差e和偏差变化率ec作为输入变量,它们能够比较严格地反映受控过程中输入变量的动态特性,同时控制器设计简单,规则容易理解。输出控制量为u(阀门开度),采用增量式算法。
模糊化接口通过尺度变换,将输入参数变换到各自的论域范围,再对其进行模糊化处理,基于对现场数据的分析以及液位的控制经验,e、ec的论域设计为[-6,-5,……,+5,+6],u的论域为[-7,……,+7],均分为7个档级[nb,nm,ns,o,ps,pm,pb]。采用三角形函数作为隶属函数确定模糊语言变量的隶属度,可分别得到模糊变量e、ec和u的隶属度赋值表。
清晰化接口把模糊量转为执行机构可执行的量,采用zui大隶属度法,即μ(u*)≥μ(u),u∈u,μ是u的隶属度函数,u*是与zui大隶属度对应的模糊控制量的值。
知识库由数据库和规则库组成。控制规则采用基于if-then(条件-结果)的产生式规则,其结构简单,易于修改和掌握,比较适合plc编程,如:ife=nbandec=nbthenu=pb表示为:r1=nbe×nbec×pbu。
总结液位控制经验,得出7×7=49条控制规则。
总的模糊关系为:r=r1∪r2∪…∪r49,r是模糊关系矩阵,∪表示取大。采用合成推理法u=(e×ec)or,×表示求值积,0是合成运算符,这里采用zui大-zui小合成法。整个模糊推理过程计算量大,比较烦琐,借助计算机完成,zui后获得模糊控制量查询表,如表1所示。
四、step7实现的模糊控制算法
siemenss7-300plc的编程系统step7提供了丰富的功能模块,为模糊控制算法的实现提供了方便。为了简化程序编写量,提高程序的通用性并且方便调试,plc程序设汁采用了模块化编程方法。编程语言采用梯形图(lad)和语句表(stl)结合的形式。主模块ob1实现对子程序块的调用和数据的传递,0b35为中断服务程序模块。fbl模块为模糊控制器,完成整个模糊控制功能。它由fcl~fc44个子程序块组成。其中fcl完成e(液位偏差)和ec(偏差变化率)的计算;fc2进行模糊化处理,即完成量e,ec到模糊量e,ec的转换;fc3完成控制量表的查询功能;fc4完成模糊控制量u到量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主循环程序:
lpiw256//从sm334读入液位数据,外设地址为piw256//
tmd0//将采集的液位数据存入m存储区//
ldb2.dbd14//把db2中量化因子ke存入m存储区//
tmd8
ldb2.dbd18//把db2中量化因子kec存入m存储区//
tmd12
ldb2.dbd22//把db2中量化因子ku存入m存储区//
tmd16
……
ob35中断子程序:调用fb1实现模糊控制
callfb1,db2//调用fb1//
fuzzy_on:=1
db_no:=db1
n:=6
pv:=md0
sp:=md4
ke:=md8
kec:=md12
ku:=md16
hlm_e:=1.000000e+001//误差上限值//
llm_e:=-1.000000e+001//误差上限值//
……
e:=md20//液位误差值存入m存储区//
ec:=md24//液位误差变化率存入m存储区//
u:=pqw258//把控制量的值输出到sm334,地址为pqw258//
……
fc3子程序:实现模糊控制量表查询功能
lp#0.0//利用指针寻址//
l#q4//q4中存放控制量的地址//
sld3
+d
t#p1
ldbw[#p1]
tmw10//将控制量u的值存入mw10//
zui后由fc4功能块实现控制量u从模糊量到量的转换,即u乘以量化因子ku再经过限幅,将zui终计算结果送到模拟量输出模块实现控制作用。
应用了基于plc的模糊控制器,蒸发罐液位控制效果较以前有很大改善,整定时间缩短,超调量缩小,控制稳定。比较结果如图2,图3所示。
五、结论
基于siemensplc实现模糊控制算法,既保留plc控制的可靠、灵活等特点,又提高了控制系统的智能化程度。采用离线计算在线查询的方法将复杂的模糊控制计算融进查询表中,在实际控制中节省计算时间,使得控制算法简单明了。对于那些非线性、大滞后、数学模型难以建立的控制系统,基于plc的模糊控制不失为一种较理想的可选方案.
其它类似信息

推荐信息