摘要:连续搅拌反应釜(cstr)在生产过程中得到了广泛应用。因其在实际生产过程中会受到许多不利因素的影响,不易实现面向性能的控制。以连续搅拌反应釜为对象,采用常规pid控制,为了达到实时修改模型参数,动态显示控制曲线和变量数值的目的,设计了gui人机界面,使得用户可以方便、实时地对cstr控制系统进行监控。
0引言
连续搅拌反应釜(continuous stirred tank reactor, cstr)作为一类化学反应器,由于其成本低、热交换能力强和产品质量稳定等特点,成为生产聚合物的核心设备,在化工、发酵、生物制药、石油生产等工业生产过程中得到了广泛的应用[1]。其示意图如图1所示。

在连续搅拌反应釜系统中通过控制其内部的工艺参数(如温度、浓度等)的稳定,来保证反应的正常进行,其控制质量直接影响到生产的效益和质量指标。连续搅拌反应釜的对象是高度非线性的化学反应系统,一般用一组非线性常微分方程来描述该反应釜的数学模型[2]。本实验通过采用单回路控制系统,在回路中运用基于四阶五级rungekutta的pid控制算法,通过整定pid参数实现对被控变量的控制。同时在控制系统中设置扰动,模拟现场控制中所遇到的干扰。为了能够实时监控工艺参数,本设计采用gui人机界面,动态显示被控对象及状态变量的控制结果。
1cstr模型
实验针对的化学反应是由环戊二烯(组分a)生成主产品环戊烯(组分b)和副产品二环戊二烯(组分d)以及由环戊烯继续反应生成的副产品环戊酮(组分c)。化学反应方程如下:
ak1bk2c,2ak3d。基于能量守恒定律,该cstr模型的理想动态特性可以由以下非线性微分方程组描述:

如上各参数中,ca为反应器中物质a的浓度,cb反应器中物质b的浓度,ca0为a的进料浓度,k1、k2、k3为3个化学反应的反应速率,v为物料a进料体积流量,vr为反应器体积,t为反应器温度,tk为冷却剂温度,t0为反应器入口温度,δhrab、δhrbc、δhrad分别为k1、k2、k3反应放出的热量,ρ为反应器液体密度,cρ为反应器液体热容,kw为冷却套的传热系数,ar冷却套传热面积,ei为第i个反应的反应激活能量。
该cstr模型的常微分方程组由3个微分方程组成,即将ca、cb、t作为系统3个状态变量建立微分方程,取冷却剂温度tk为控制系统的操作变量,反应器中物质浓度ca作为被控变量,反应器入口温度t0和浓度ca0、物料进料体积流量v是波动的,可以作为外部的扰动。各参数的值如表1所示。表1cstr模型常微分方程组参数表变量名变量符号参数值单位物质a进料体积流量v14.19l/h反应器入口温度t079.7℃物料a进料初始浓度ca05.1mol/l反应放出的热量δhrab-4.2kj/mol反应放出的热量δhrbc11kj/mol反应放出的热量δhrad41.85kj/mol反应器中液体的密度ρ0.934 2kg/l反应器液体热容cρ3.01kj/(kg·k)冷却套的传热系数kw4 032kj/(h·m2·k)冷却套传热面积ar0.215m2反应器体积vr10l反应速率系数k101.287×1012h-1反应速率系数k201.287×1012h-1反应速率系数k309.043 2×109h-1反应的反应激活能量e1-9 758.3k反应的反应激活能量e2-9 758.3k反应的反应激活能量e3-8 560k
根据cstr模型的微分方程,以反应器温度t、反应器中物质a的浓度ca、反应器中物质b的浓度cb三者为状态变量,以冷却剂tk为控制变量,建立关于微分方程的m文件。
2cstr过程仿真控制研究
2.1控制算法
本实验采用基于四阶五级rungekutta的pid控制算法。四阶五级rungekutta算法是一种求解微分方程近似解的数值方法,实际上是间接使用泰勒级数法的一种计算方法。该算法精度高,能对误差进行抑制。在区间[k,k+d]上用y(k)的值来估算或预测y(k+d)的值,得到预测值(k+d),将此预测值作为反馈信号与期望设定值进行比较得出偏差,作为pid控制的输入,依照pid控制律来设定控制器的输出,完成对被控对象的控制。
matlab中的ode函数专门用于求解微分方程,而ode45表示采用四阶五级runge-kutta算法,它用四阶方法提供候选解,五阶方法控制误差,是一种自适应步长(变步长)的常微分方程数值解法,本实验m文件中就采用ode45求解微分方程。
首先确定仿真的采样时间、起止时间以及每一步模型仿真的时间区间,并为龙格库塔算法设定初始值。
然后初始化pid控制器,并设定pid参数和设定值。经过pid参数的调整,得到kc=0.03;ti=4;td=0.05。
最后运用循环语句的形式编写基于四阶五级rungekutta法的pid控制算法。
2.2添加扰动
为模拟真实现场控制系统环境,这里需要添加3个扰动:物质a进料流量(qin)扰动,反应器入口温度扰动(to),物质a进料浓度扰动(ca0)。
2.3控制结果
将初始值设为y0=[0;1;80.7],在控制系统的作用下最终达到稳定,如图2所示。

上排从左至右分别表示反应器物质a浓度(被控变量),反应器物质b的浓度和反应器温度,即3个状态变量。下排从左至右分别表示冷却剂的温度(操纵变量)和控制误差(即控制器的输入)。可发现由于加了积分作用,控制系统的余差为0,并且控制效果较好。
3gui界面的设计
为了能够实时改变控制系统模型的参数,在程序运行过程中添加扰动,并使被控对象及状态变量的控制结果动态显示,需要添加一个gui界面来实现这些功能。
首先在命令窗口中键入guide,guide实际上是一套matlab工具箱[3]。启动guide后,会出现guide quick start 对话框,选择新建一个gui界面,这里选用gui with axes and menu模板,点击ok后进入版面设计窗口。利用窗口左侧的工具箱可以选择需要添加的组件,用来输入扰动和采样时间,同时显示控制系统变量的数值和曲线。完成版面设计后,以cstr_gui文件名保存,此时设计内容会保存在两个文件中,一个是fig文件,一个是m文件。gui界面设计如图3所示。

然后打开m文件cstr_gui.m,对gui进行编程。设置并启动0.2 s定时器,
另外,需要编写定时器中断响应函数timercallback,里面包含对界面扰动参数和采样时间的读取,同时实现对gui人机界面中变量值的更新。
4cstr模型控制结果
设定初始值:反应器中物质a的浓度ca=2.14 mol/l,反应器中b的浓度cb=1.05 mol/l,反应器温度t=80.7 ℃,即y0=[2.14;1.05;80.7]。
在无扰动的情况下,控制结果如图4。

此时pid参数为kc=0.03,ti=4 s,td=0.05 s,从反应器中物料a浓度曲线来看,控制作用响应速度快,超调小,且没有稳态误差,控制效果较好。由于cstr模型控制系统是完全用matlab进行仿真的,曲线平稳之后没有出现任何波动,这与实际现场控制状况不太相同。
在控制系统达到稳态之后,可以在gui界面上对某一参加数上一扰动(例如增加5%的物质a进料流量扰动),观察控制系统的调节能力,如图5所示。


从图5可以看出在加入进料流量扰动后,反应器中a浓度曲线出现一定程度的波动,这一波动的大小受扰动值大小的影响,但物质a的浓度很快又恢复到设定值,说明控制系统有较强的调节能力。另外还能发现当进料流量增加5%后,反应器中物质b的浓度在重新达到稳态后并没有回到原值(从1.046 8 mol/l增加到1.047 8 mol/l),同时反应器的温度也有所增加,因此在通过改变进料流量改变物质b浓度的时候,需要注意反应器的温度,要避免触碰到反应器温度的上下限。
5结论
本文基于matlab建立cstr对象模型,依据现实的生产环境以及各种干扰因素,通过整定pid参数完成对被控变量的控制,取得良好的控制效果。同时,为了达到实时修改模型参数、动态显示控制曲线和变量数值的目的,引入了gui人机界面,使得用户可以方便、实时地对cstr控制系统进行监控。此控制系统用于工业现场,对提升工作效率具有一定的实际意义。
发表评论