当前位置: 代码网 > 快讯>百科 > matlab求解微分方程组例题(matlab中ode45函数的用法)

matlab求解微分方程组例题(matlab中ode45函数的用法)

2024年07月28日 百科 我要评论
摘要:连续搅拌反应釜(cstr)在生产过程中得到了广泛应用。因其在实际生产过程中会受到许多不利因素的影响,不易实现面向性能的控制。以连续搅拌反应釜为对象,采用常规pid控制,为了达到实时修改模型参数,

摘要:连续搅拌反应釜(cstr)在生产过程中得到了广泛应用。因其在实际生产过程中会受到许多不利因素的影响,不易实现面向性能的控制。以连续搅拌反应釜为对象,采用常规pid控制,为了达到实时修改模型参数,动态显示控制曲线和变量数值的目的,设计了gui人机界面,使得用户可以方便、实时地对cstr控制系统进行监控。

0引言

连续搅拌反应釜(continuous stirred tank reactor, cstr)作为一类化学反应器,由于其成本低、热交换能力强和产品质量稳定等特点,成为生产聚合物的核心设备,在化工、发酵、生物制药、石油生产等工业生产过程中得到了广泛的应用[1]。其示意图如图1所示。

基于matlab的cstr过程仿真控制研究

在连续搅拌反应釜系统中通过控制其内部的工艺参数(如温度、浓度等)的稳定,来保证反应的正常进行,其控制质量直接影响到生产的效益和质量指标。连续搅拌反应釜的对象是高度非线性的化学反应系统,一般用一组非线性常微分方程来描述该反应釜的数学模型[2]。本实验通过采用单回路控制系统,在回路中运用基于四阶五级rungekutta的pid控制算法,通过整定pid参数实现对被控变量的控制。同时在控制系统中设置扰动,模拟现场控制中所遇到的干扰。为了能够实时监控工艺参数,本设计采用gui人机界面,动态显示被控对象及状态变量的控制结果。

1cstr模型

实验针对的化学反应是由环戊二烯(组分a)生成主产品环戊烯(组分b)和副产品二环戊二烯(组分d)以及由环戊烯继续反应生成的副产品环戊酮(组分c)。化学反应方程如下:

ak1bk2c,2ak3d。基于能量守恒定律,该cstr模型的理想动态特性可以由以下非线性微分方程组描述:

基于matlab的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控制算法

本实验采用基于四阶五级rungekutta的pid控制算法。四阶五级rungekutta算法是一种求解微分方程近似解的数值方法,实际上是间接使用泰勒级数法的一种计算方法。该算法精度高,能对误差进行抑制。在区间[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。

最后运用循环语句的形式编写基于四阶五级rungekutta法的pid控制算法。

2.2添加扰动

为模拟真实现场控制系统环境,这里需要添加3个扰动:物质a进料流量(qin)扰动,反应器入口温度扰动(to),物质a进料浓度扰动(ca0)。

2.3控制结果

将初始值设为y0=[0;1;80.7],在控制系统的作用下最终达到稳定,如图2所示。

基于matlab的cstr过程仿真控制研究

上排从左至右分别表示反应器物质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所示。

基于matlab的cstr过程仿真控制研究

然后打开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。

基于matlab的cstr过程仿真控制研究

此时pid参数为kc=0.03,ti=4 s,td=0.05 s,从反应器中物料a浓度曲线来看,控制作用响应速度快,超调小,且没有稳态误差,控制效果较好。由于cstr模型控制系统是完全用matlab进行仿真的,曲线平稳之后没有出现任何波动,这与实际现场控制状况不太相同。

在控制系统达到稳态之后,可以在gui界面上对某一参加数上一扰动(例如增加5%的物质a进料流量扰动),观察控制系统的调节能力,如图5所示。

基于matlab的cstr过程仿真控制研究
基于matlab的cstr过程仿真控制研究

从图5可以看出在加入进料流量扰动后,反应器中a浓度曲线出现一定程度的波动,这一波动的大小受扰动值大小的影响,但物质a的浓度很快又恢复到设定值,说明控制系统有较强的调节能力。另外还能发现当进料流量增加5%后,反应器中物质b的浓度在重新达到稳态后并没有回到原值(从1.046 8 mol/l增加到1.047 8 mol/l),同时反应器的温度也有所增加,因此在通过改变进料流量改变物质b浓度的时候,需要注意反应器的温度,要避免触碰到反应器温度的上下限。

5结论

本文基于matlab建立cstr对象模型,依据现实的生产环境以及各种干扰因素,通过整定pid参数完成对被控变量的控制,取得良好的控制效果。同时,为了达到实时修改模型参数、动态显示控制曲线和变量数值的目的,引入了gui人机界面,使得用户可以方便、实时地对cstr控制系统进行监控。此控制系统用于工业现场,对提升工作效率具有一定的实际意义。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com