麦雪凤
(广西科技大学电气与信息工程学院,广西柳州545006)
随着生产规模的不断扩大及自动化程度的不断提高,生产工艺对控制系统的快速响应、可靠性、控制精度等提出了越来越高的要求[1-2],对于被控对象存在滞后大、非线性、时变等特点的复杂场合常规PID控制难以满足要求[3],因此模糊控制等智能控制在冶金、化工、电力和家电等工业部门都得到了逐步的发展[4]。而我院现有的A3000高级过程控制实验装置只能进行单回路、串级、单闭环比值等常规控制实验,无法开展模糊控制等的实践教学。为满足智能控制实践教学及创建智能控制科研平台的需要,在A3000装置上开发了双容液位模糊-PI双模控制系统。
设计的双容液位模糊-PI双模控制系统以A3000的双容水箱为被控对象,控制参数是下水箱的液位,由液位变送器、模糊-PI双模控制器(用西门子S7-300 PLC来实现)、电动调节阀等组成。
控制系统工作过程如下:液位变送器输出的4~20 mA信号送到PLC的模拟量输入模块,经过PLC程序进行模糊-PI双模控制运算处理后,得到精确控制量u(0~27 648的数字量),该数字量经模拟量输出模块转换为4~20 mA信号送至电动调节阀,调节上水箱的进口流量,进而控制下水箱液位。
双容液位模糊-PI双模控制系统结构如图1所示。当系统的偏差|e|>2 cm时(取e=2 cm为边界值),为克服系统滞后大、PID调节不够及时的缺点,采用模糊控制;当|e|<2 cm时,为克服模糊控制器稳态精度较低的缺点,采用PI控制器。
该控制系统的核心是二维模糊控制器,以液位偏差e和偏差变化率Δe为输入量,以控制量u为输出变量[5],模糊控制器由模糊化、知识库、模糊推理和清晰化四部分组成。
(1)模糊化。模糊化的第一个任务是进行论域变换,e、Δe和 u的变化范围分别取[-10 cm,10 cm]、[-1 cm,1 cm]和[0,27 648数字量],它们的论域均取为[-6,+6],取区间内的整数值和0。则量化因子分别为:k1=n/e=6/10=0.6,k2=n/Δe=6/1=6,k3=u/n=27 648/6=4 608。K1、K2和 K3对系统性能有较大影响,如果不合适还可调试时在线调整。e、Δe首先进行尺度变换,将其变换到要求的论域范围:e*=k1×e、Δe*=k2×Δe,再对 e*、Δe*值采用均匀量化处理变为离散的论域值 x0、y0∈[-6,+6]。
模糊化的第二个任务是求得输入对应于语言变量的隶属度,e、Δe和u的语言变量x、y和z均分割为7个模糊语言,分别为负大(NB)、负中(NM)、负小(NS)、零(0)、正小(PS)、正中(PM)、正大(PB)。模糊集合的隶属度函数采用离散方式,只取论域中的离散点(整数值)及这些点的隶属度来描述一个语言变量,用数值描述的x、y和z的隶属度函数均采自表1。
表1 语言变量x、y和z的隶属度函数
(2)模糊推理和清晰化。模糊推理是模糊控制器的核心,该推理过程是基于模糊逻辑中的蕴含关系及推理规则来进行的。总结过程控制实践教学对该液位控制的手动操作经验,例如:当液位值低很多,且液位值有进一步快速降低的趋势时,应加大入口流量,可用模糊语句(Ri:IF x=NB AND y=NB THEN z=PB)[6]实现这条规则,本设计采用的模糊控制规则如表2所示。
表2 模糊控制规则表
由于x、y的模糊分割数均为7,该表中共包含最大可能的规则数49条,对于第i条规则“如果x是Aiand y 是 Bi,则 z是 Ci”(Ai、Bi和 Ci分别是语言变量x、y和z在其论域X、Y、Z上的语言变量值)的模糊蕴含关系 Ri为[7]:
则所有规则的总模糊蕴含关系为R。根据已知输入x0和y0,模糊化采用单点模糊集合,根据模糊推理方法及性质,可求得输出量的模糊集合C'为(在此:and用求交法,also用求并法,合成用最大-最小法,模糊蕴含用求交法):
据此计算出x0、y0为某个输入组合时,分别在不同规则下的 C'1,C'2,…,C'49进而得出模糊集合 C',再用最大隶属度法进行清晰化计算,将模糊推理得到的控制量(模糊量)变换为清晰量z0。按照同样的步骤,可以计算出当x0、y0为其他组合时的输出量z0,最后列出实际查询的控制表如表3。
表3 控制表
根据图1模糊-PI控制原理,采用西门子STEP7编程软件开发应用程序,其中PI控制器直接调用PID功能块FB41[8]即可实现,而STEP7中没有模糊控制功能块,因此需根据模糊控制原理自行开发模糊控制程序。为此创建三个自定义功能块[9]FB1、FB2和FC2并编写相应的程序。其中:
(1)FB1(背景数据块DB2)是实现模糊化的功能块,完成对e、Δe的模糊化;
(2)FC2用来存放控制表并实现模糊推理的功能,其编程思路是:首先将模糊控制表3中z0的169个控制结果按从左至右、从上到下的顺序逐个存放到MW100~MW338寄存器中,然后采用公式[(x0×26+y0×2)+100]计算z0所对应的寄存器地址,如x0=4、y0=5,寄存器首址为MW100,那么z0寄存器地址为MW214,从而确定z0值(编程时为计算方便将 x0、y0和 z0的论域[-6,6]均加上6变为[0,12])。
(3)FB2(背景数据块DB3)是实现解模糊化的功能块,将清晰值z0转化为精确控制量u,采用线性变换:u=k3×Z0。FB2程序图2所示:首先在DB3中定义输入变量MOU数据类型为INT;输出变量SHIU数据类型为WORD。输入变量#MOU(即z0)先通过I-DI功能块由整数转换为双整数,再通过DI-R转换为实数并通过乘法块MUL-R乘上k3,最后用MOVE指令送给输出变量#SHIU,这样就把取值为[0,12]的z0转换为精确值u。
图2 解模糊化程序
OB1主程序块采用循环执行的方式实现对整个程序的控制,并通过调用FB1、FC2、FB2实现模糊控制算法。需在OB1中编写程序实现的功能主要有:计算e和Δe;模糊/PI控制功能切换;调用FB1将e和Δe模糊化;计算z0的寄存器地址;调用FC2得到清晰量z0;调用FB2将z0解模糊化得到精确控制量u。其中Δe的计算和模糊/PI控制功能切换是较关键的两个部分,下面分别介绍。
(1)偏差变化率Δe(=ek-ek-1)值的求取,程序如下:
Network1:用减法块 SUB-R 将变量'MYDATA'.SP与变量'MYDATA'.PV相减,结果存放到变量'MYDATA'.e;并用 MOVE指令将 e值存放到寄存器MD10中,如图3所示。
图3 Network1程序
Network2:用减法块SUB-R将MD10值(=ek)与MD14 值(=ek-1)相减,结果存放到'MYDATA'.ec,如图4所示。
图4 Network2程序
Network3:用 MOVE指令将 MD10值存放到MD14,如图5所示。
图5 Network3程序
通过Network1~Network3程序可求得Δe值,并存放在变量'MYDATA'.ec 中。
(2)模糊/PI控制功能切换的实现。方法是在PID块的EN端串联一个M1.0常开触点和一个M3.0常闭触点,当|e|>2 cm时,M3.0线圈接通,其常闭触点断开,PID0不运行,转到模糊控制;当|e|≤2 cm时,M1.0线圈接通,其常开触点闭合,PID0模块运行进行PI控制,程序如图6所示。
图6 模糊/PI控制功能切换程序
将开发的双容液位模糊-PI双模控制系统在A3000实验装置[10-11]调试,在组态王监控界面记录系统运行曲线。系统实际运行过程如下:液位设定值为25 cm,开始投运时测量值为0,由于e很大采用模糊控制,系统快速相应,使测量值很快接近设定值,并在3~4min趋于稳定且|e|<2 cm进入PI控制。第6 min后即可获得较满意的控制效果,这时液位测量值与设定值曲线几乎完全重合,系统运行稳定可靠,控制精度达到±1%以内,系统超调也在1%以内。系统稳定运行一段时间后(约在第16 min)做扰动实验,方法是打开另一条支路往水箱中加水使液位出现一个较大的波动,如图7所示。从曲线可以看出,模糊-PI双模控制系统能迅速平稳地改变调节阀的开度,使测量值约在2 min内很快重新稳定在设定值范围,可见系统稳定性很好且抗干扰能力很强。由于双容液位系统滞后大,采用常规PID控制难以获得满意的控制效果,因此,上述实际运行表明,采用模糊-PI双模控制,极大地提高了系统的动态特性和稳态特性,在响应速度、控制精度、抗干扰能力、缩短调试时间[12]等方面均优于常规PID控制。
图7 系统运行曲线
本文介绍的在A3000装置上开发模糊-PI双模控制的方法简单易行、可靠性高、控制效果好、开发成本低[13],可在高校同类实验装置中推广使用。本实验项目弥补了传统A3000过程控制实验装置的不足[14],通过本实验项目可使学生掌握模糊一PI双模控制的原理及特点、提高学生综合应用PLC、编程组态软件及现场仪表构建智能控制系统的能力,为“过程控制工程”、“智能控制”等课程提供了更好的的实验平台[15]。
[1] 高 鹏.螺旋扁管换热器温度串级模糊控制试验研究[J].石油机械,2008,36(11):9-11.
[2] 金以慧.过程控制[M].北京:清华大学出版社,2005.
[3] 韩大平,林国海,等.模糊PID控制算法在回转窑温度控制中的应用[J].材料与冶金学报,2005,4(4):321-325.
[4] 邵裕森,戴先中.过程控制工程[M].北京:机械工业出版社,2000.
[5] 李士勇,夏承光.模糊控制与智能控制理论与应用[M].哈尔滨:哈尔滨工业大学出版社,1990.
[6] 刘金琨.智能控制[M].北京:电子工业出版社,2005.
[7] 李国勇.智能控制及其MATLAB实现[M].北京:电子工业出版社,2005.
[8] 陈海霞.西门子S7-300/400编程技术及工程应用[M].北京:机械工业出版社,2012.
[9] 西门子自动化与驱动集团.深入浅出西门子S7-300 PLC[M].北京:北京航空航天大学出版社,2004.
[10] 北京华晟高科教学仪器有限公司编制[Z].A3000高级过程控制系统实验指导书V3,2005.
[11] 北京华晟高科教学仪器有限公司编制[Z].A3000过程控制系统使用说明和产品维护V2,2005.
[12] 马克茂,朱奕.带有前馈补偿的模糊控制系统及其在锅炉水位控制中的应用[J].计算机测量与控制,2004,12(6):537-539.
[13] 高宏岩.用controllogix实现双容水箱液位系统的模糊控制[J].PLC&FA,2004(8):105-106.
[14] 王 娟.A3000系统在化工自动化及仪表实验中的应用[J].实验室研究与探索,2006,25(9):1079-1080.
[15] 任俊杰,李红星.基于PLC和组态王的过程控制实验系统[J].实验室研究与探索,2010,29(5):16-18.