基于COM技术的MATLAB与Aspen Plus接口及高级应用
责任编辑:chineselng    浏览:25892次    时间: 2008-04-06 10:09:28      

免职声明:本网站为公益性网站,部分信息来自网络,如果涉及贵网站的知识产权,请及时反馈,我们承诺第一时间删除!

This website is a public welfare website, part of the information from the Internet, if it involves the intellectual property rights of your website, please timely feedback, we promise to delete the first time.

电话Tel: 19550540085: QQ号: 929496072 or 邮箱Email: Lng@vip.qq.com

摘要: 摘要: 基于COM技术研制开发了MATLAB和Aspen Plus的接口工具箱MAP,实现了在MATLAB环境下对Aspen Plus中数据进行读写操作,并控制模拟的运行。MAP接口将MATLAB计算能力和Aspen Plus的模拟能力结合在一起,扩展了Aspen Plus的高级应用。通过精馏塔进料软测量的示例,阐述..

分享到:

 摘要: 基于COM技术研制开发了MATLABAspen Plus的接口工具箱MAP,实现了在MATLAB环境下对Aspen Plus中数据进行读写操作,并控制模拟的运行。MAP接口将MATLAB计算能力和Aspen Plus的模拟能力结合在一起,扩展了Aspen Plus的高级应用。通过精馏塔进料软测量的示例,阐述了如何通过MAP接口来调用自主开发的禁忌搜索优化算法,解决由于Aspen Plus中的优化算法的局限性所无法实现的模拟与优化问题。

 

1 引 言

Aspen Plus作为美国AspenTech公司开发的大型通用流程模拟系统,已在全世界许多大型化工、石化企业及著名工程公司得到广泛应用。该软件通过准确地模拟流程工业工艺过程、快速的循环计算、设计新工艺以及全系统的优化,可为用户解决工程设计和运行过程中的问题。同时, Aspen Plus使用了最新的软件工程技术,具有MicrosoftWindows图形界面和交互式客户2服务器模拟结构。

除了提供Microsoft Windows 图形操作界面,Aspen Plus中的某些信息有时又需要与其它程序进行交互,Aspen Plus模拟的输入和结果需要被传递到其它设计程序或数据库中;一些高级用户还希望通过其它应用程序调用Aspen Plus以扩展其功能,Aspen Plus的序贯模拟中其内置算法不能求解某些问题时,需要使用其它环境下(MATLAB)编写的先进优化算法。基于COM技术开发了MAT2LABAspen Plus接口工具箱(MAP) [ 1 ] ,MAT2LAB平台环境下实现对Aspen Plus数据的读写,Aspen Plus模拟程序的运行控制,可解决某些AspenPlus序贯模拟方法所不能求解的问题,MATLAB的计算能力和Aspen Plus的仿真能力充分结合到一起。

2 COMAspen Plus ActiveX自动化服务器

COM,即微软组件对象模型,是所有ActiveX组件的基础,提供了使多个应用程序或组件对象协同工作并相互通信的能力。组件对象就是完成特定功能的一个可执行的软件单位( EXEDLL) COM技术促进了软件重用和Windows应用程序间的基本接口。它是独立于平台的,分布式的,面向对象的系统,用于创建可交互的二进制软件组件。COM的一个重要特性就是它支持多接口,其中一些为标准接口,它们被定义为ActiveX的组成部分,而另一些为用户自定义的接口,由各个开发商定义。

ActiveX是一种基于MicrosoftWindows操作系统的组件集成协议,通过ActiveX,开发者和终端用户可以选择由不同的开发商发布的面向应用程序的ActiveX组件,并将它们无缝地集成到自己的应用程序中,从而完成特定的目的。ActiveX组件,可以分为以下六种类型:自动化服务器、自动化控制器、Ac2tiveX控件、COM对象、ActiveX文档、ActiveX容器。MAP接口工具箱的开发涉及了自动化服务器和自动化控制器这两种类型ActiveX组件。

自动化服务器是一种可以由其它应用程序编程驱动的组件。自动化服务器至少包含一个或多个可由其它应用程序创建或连接的基于IDispatch 的接口。一个自动化服务器可以没有用户界面,也可以拥有,这取决于服务器的特性和功能。自动化服务器的运行方式分为三种: 进程内( in2p rocess) ,即在控制器的运行空间内运行; 本地( local) ,即在服务器自身的进程空间内运行; 远地( remote) ,即在另一台机器的进程空间内运行。

自动化控制器是那些使用和操纵自动化服务器的应用程序,它们不但可以在进程内访问自动化服务器,而且可以以本地或远程方式访问自动化服务器。

COM技术为基础的ActiveX中的自动化技术在Windows应用程序中,MicrosoftWord, Excel以及MATLAB,使用尤为广泛。这些应用程序以自动化服务器对象的方式暴露出内部的数据和功能,其它的应用程序作为客户应用程序(或自动化控制器)来访问这些自动化对象。MATLAB中的COM支持,使MATLAB可与内含的控件或服务器进程相互作用,或将MATLAB作为一个由用户的客户应用程序控制的计算服务器。

通过基于COM技术开发的MAP接口工具箱,Aspen Plus模拟的输入和输出数据结果可与MAT2LAB应用程序进行交互,可用来实现在MATLAB环境下对Aspen Plus模拟进行操作和运行,使用MAT2LAB算法求解某些Aspen Plus序贯模拟不能求解的问题。

 

3 MAP接口工具箱实现及其框架结构

MATLABCOM 技术为基础, 支持ActiveX。它具有两个方面的涵义:

(1)在其它程序下运行MATLABActiveX组件。

(2)MATLAB下运行其它ActiveX组件。

开发MAP 接口工具箱时,MATLAB 作为一个ActiveX自动化控制器,允许在MATLAB下运行其它ActiveX组件。而Aspen PlusWindows用户界面是一个ActiveX自动化服务器,它通过COM对象方式列出对象。ActiveX技术使得一个外部应用程序,MATLAB,Aspen Plus通过一个COM接口相互作用。

通过使用COM技术,可以按如下步骤来实现MATLABAspen Plus之间的高级接口[ 2 ] :

(1)MATLAB中创建并返回一个Aspen PlusCOM对象的句柄。

(2)MATLAB中操作Aspen Plus COM对象。一旦得到COM对象的句柄,就可以对此对象进行操作,如同对其它对象的操作(即获取、设置、方法和属性)一样。

(3)操作完成后,用自动化对象提供的closedelete函数来结束并释放Aspen Plus COM对象。

Aspen Plus支持的对象类型主要包括HappLS ( IHapp)Happ IP对象。一个Aspen Plus应用程序客户对象应该被声明为一个HappLSIHapp 对象,而一个Aspen Plus进程内客户对象应该被声明为一个Happ IP对象。通过上面这两种声明对象,可以访问其它对象的属性和方法。通过Aspen Plus列出的对象如表1所示。

 

1 Aspen Plus对象

对象

描 述

HappLS

Aspen Plus的应用程序客户对象

Happ IP

Aspen Plus的进程内客户对象

IHNode

Aspen Plus中用来进行输入和输出数据存储的树状结构组织的节点对象

IHNodeCol

每个IHNode节点对象可以有自己的子节点,其子节点都被组织在IHNodeCol集合对象中

IHAP Engine

这个对象给Aspen Plus的模拟引擎提供一个接口

 

  HappLS( IHapp)Happ IP对象是Aspen Plus列出的主要对象。这些对象提供了如下的方法和属性:打开一个模拟问题;控制Aspen Plus GU I(图形用户界面)的能见性;存储一个问题;外发事件。

Aspen Plus的模拟对象被显示成一个IHNode节点对象的树结构。该树的根节点将获得IHapp 的树属性。每个IHNode对象都可以有零个或更多的IHNode子对象。每个IHNode对象都有一个Dimen2sion属性,它用来决定那些子节点是怎样组织起来的。一个叶节点(没有子节点的节点)有一个零量纲。一个节点对象的所有子节点可以作为一个集合对象IHNodeCol被获得,它是来自于IHNode对象的元素属性。一旦某叶节点包含了所需的数据值,便可以从这节点的Value () 属性中获得这个数据值。

一个Happ对象的Engine属性返回一个IHAP2Engine对象,它是一个模拟引擎的接口。Happ IHAPEngine对象提供了能使一个自动控制客户程序运行和控制模拟的方法。当整个自动化服务器不再需要时,可以通过函数来删除Aspen Plus COM对象。对象的所有接口将被自动释放,服务器被删除。

针对模拟问题, Aspen Plus中的对象除了少量只读属性外,其大多数属性可以通过接口进行更改设置。

每个Aspen Plus模拟问题的输入和结果数据都被组织在一个树状结构里。为了访问所需的AspenPlus模拟数据,必须理解并能通过树状结构的导航找到和识别出所需的变量。使用Variable Exp lorer(变量探测器)可以浏览和访问与模拟问题相关的变量。Variable Exp lorer在模拟过程中将显示出一个类似Data Browser (数据浏览器)的树状视图窗口,它显示出每个变量的属性。它们的不同在于DataBrowser能方便地显示出分组的变量,并且变量被放置在表上,表上有提示符、滚动控制、选择框和区域以便于数据输入。Variable Exp lorer则显示出在模拟问题里的重要变量。Variable Exp lorer对自动控制用户是非常重要的。因为它能显示出通过自动控制接口所访问的所有变量的名字和结构。在DataBrowser中观察到的树结构将被反映到自动控制界面。

基于COM技术,开发了MAP接口工具箱,按功能划分为如图1所示的八大类,172个函数。

 

  MAP接口工具箱函数库中函数类别及功能如表2所示。其中模块函数按照功能不同,又可具体分类,如严格蒸馏塔、闪蒸罐、加热器/冷却器、混合器、分流器、反应器等。

  另外,如果想根据错误信息诊断模拟问题,亦可据上述原理开发错误信息函数用于提取Aspen Plus中的错误信息给用户作参考。

在实现MAP接口工具箱时,由于Aspen Plus中被访问的变量常常具有物理意义,因此在MATLAB中这些变量的值及单位或相关描述通常以structure结构的形式结合起来,便于用户方便使用。MAP接口工具箱中的structure结构也可以嵌套,如对一个严格精馏塔对象可以使用函数GetRadFracT2PFQXYProfiles获取特定精馏塔的侧线分布信息,包括温度、压力、热负荷、气液相组成等。而这些信息又各自包含值、单位甚至组分名等子信息。为了方便访问,函数使用嵌套形式的structure结构实现返回用户所需各种信息。

使用按以上原则实现的这些接口函数, AspenPlus中的任何变量都可被访问(读写) ,且其用户接口界面也可被操纵。通过这些接口函数,用户可以改变输入指定,读取输出结果,进行运行控制等。基于这些函数, Aspen Plus得以与MATLAB 进行有效的交互操作。

4 MAP接口工具箱的基本功能应用

本节以苯和甲苯的精馏分离过程的仿真为例,阐明MAP接口工具箱的基本函数以及高级应用,实现在MATLAB环境下对Aspen Plus仿真程序的操作。苯和甲苯的精馏过程如图2 所示,仿真操作条件如下。

 

进料1 :

温度: 50 ;

压力: 2 kg/ cm2 ;

总流率: 1 000 kg/h;

组成(Mass Flow) :, 0. 5;甲苯, 0. 5

精馏塔:

塔板数: 27;

冷凝器:全冷凝;

再沸器:釜式;

回流量: 800 kg/h;

塔顶馏出量: 500 kg/h;

再沸器热负荷: 40 416. 611 cal/ s(1 calIT =4. 186 8 J) ;

进料位置:17块塔板

使用MAP接口工具箱,可以进行在MATLAB环境下对Aspen Plus仿真程序的调用:

(1)通过使用基本功能函数OpenAP打开AspenPlus模拟文件。

>>  AspenHandle = OpenAP ( ′d: \ \MATLABAspen \ \c6h6. bkp′) ;

(2)通过使用流股函数可以读取给定的进料条件,包括温度、压力、流量和组成。

>>  T = GetStreamTemp (AspenHandle, ′1′) ;

>>  P = GetStreamPres(AspenHandle, ′1′) ;

>>  F = GetStreamFlow(AspenHandle, ′1′) ;

>>  X = GetStreamComp (AspenHandle, ′1′) ;

(3)通过使用模块函数可以读取精馏塔模块的相应信息,如塔板数、冷凝器类型、塔顶馏出流率、再沸器类型、再沸器热负荷等。

>>  Stage = GetRadFracNStage (AspenHandle, ′B1′) ;

>>  Condenser =GetRadFracCondenser(AspenHandle, ′B1′) ;

>>  D = GetRadFracD (AspenHandle, ′B1′) ;

>>  Reboiler = GetRadFracReboiler(AspenHandle, ′B1′) ;

>>  RebDuty = GetRadFracRebDuty(AspenHandle, ′B1′) ;

(4)通过使用基本功能函数RunAP, MAT2LAB环境下以后台方式运行Aspen Plus的流程模

拟。

>>  RunAP (AspenHandle) ;

(5)通过使用模块函数可以读取流程模拟完成后的精馏塔模块的相应模拟结果信息,如通过调用

函数GetRadFracTPFQXYProfiles读取沿塔板分布的温度、压力、流量及组成等结果,然后可以利用MAT2LAB的绘图功能显示塔板温度分布及苯和甲苯气相组成分布图,如图3和图4所示。

  >>  Profiles = GetRadFracTPFQXYProfiles (AspenHan2dle, ′B1′)

>>  T = Profiles. Temp. Value;

>>  p lot( T, ′r3 ′) ;

>>  xlabel( ′塔板数′) ; ylabel( ′温度( ) ′) ;

>>  for i = 127

Xbenzene ( i) = Profiles. MolarXLiquid. Nstage ( i) .

Component(1) . Value;

Xtoluene ( i) = Profiles. MolarXLiquid. NStage ( i) .

Component(2) . Value;

end

>>  p lot(127, Xbenzene, ′3 ′, 127, Xtoluene, ′+ ′) ;

>>  xlabel( ′塔板数′) ; ylabel( ′液相组成′) ;

5 基于MAP和禁忌搜索方法的精馏塔进料状况的软测量

通过开发的MAP接口工具箱,不但可以实现如上节所示的在MATLAB环境下对Aspen Plus流程模拟的基本调用,还可以通过接口先进优化算法,突破Aspen Plus自带优化算法的局限性,实现Aspen Plus本身无法解决的优化命题。

许多学者研究了精馏过程的软测量问题,但绝大多数研究都是针对分离产品组成的软测量研究,对进料状况的软测量研究则很少。在实际生产装置中,一般精馏塔的进料都是从其它设备来的中间产品,不同于设计问题中的确定性进料,实际生产装置中精馏塔进料状况经常会随着生产的波动而变化,而进料的变化又会影响到整个塔的操作。因此,精馏塔进料状况的软测量问题同样值得研究。在本文中我们提出通过温度分布来预测精馏塔进料的状况,并通过使用MAP接口工具箱和禁忌搜索优化算法,阐明其可行性。

仍以上节的苯和甲苯的精馏分离过程为例,根据开放式方程分析,当进料状况发生变化时,会影响到塔内其它变量的变化。根据开放式方程及其自由度分析,只要有足够数目的可测变量,可以预测出进料状况的变化。通过测量一系列的温度分布来实现上述进料状况的软测量。对于上述苯/甲苯的精馏分离过程,在第26101621 26 块塔板上进行温度测量(用矢量.T 表示测量值) 。如果进料的压力和组成已知,而温度( Tf )和流量( Ff )未知,通过调用Aspen Plus的流程模拟,可以建立温度分布T与未知进料状况( Tf Ff )的关系:

 T = AspenS im u ( Tf , Ff )

而未知进料状况的软测量问题则可以转换为如下的优化命题:

对于上述优化命题,如果以上节的进料状况下的温度分布作为实际测量值,则最优解应为T*f =50, F*f = 1 000 。在Aspen Plus 10. 1中经过验证无法准确求解,其主要原因是由于该优化命题的曲面在相当大的范围内都非常平缓,使用基于梯度的优化算法容易陷入局部极小。通过调用MAP接口工具箱,可以计算观察未知进料对优化目标函数的灵敏度,得到优化命题的曲面如图5 所示。然后利用MATLAB中的绘图功能,可以获得目标函数的等高线图,如图6所示。从上述图中可以看出,在最优点(虚线交叉处)附近的较大范围内,曲面非常平缓,导致梯度算法陷入局部极小。图5中的短线交叉处所示为调用MATLAB中的SQP算法时得到的不同的局部极小点。

 

  鉴于此优化命题曲面较为平缓,开发了不基于梯度的禁忌搜索算法。禁忌搜索算法是一种启发式迭代算法,最初由Glover提出[ 3, 4 ] ,主要用于解决组合优化问题。近来,一些学者开始尝试用它解决连续问题[ 5, 6 ] ,同样取得了一些成果。本文作者也提出了对连续禁忌搜索算法的一些改进,并将其成功应用到连续系统辨识领域[ 79 ]。通过使用Tabu Seach禁忌搜索算法和MAP接口工具箱,对上述优化命题进行求解,得到最优解为X3= [ 50. 01 1 000. 09 ] ,与全局最优解非常吻合。

6 结 论

基于COM技术,设计开发了MAP接口工具箱,实现了在MATLAB环境下同Aspen Plus流程模拟进程的交互调用,可以从Aspen Plus中读取数据,Aspen Plus中写入数据, 并控制模拟的运行; 此外MAP接口工具箱可用来借助MATLAB 的计算能力求解Aspen Plus本身优化算法的局限性所不能求解的问题,有助于增强化工、石油等流程工业的模拟及优化。

参考文献:

[ 1 ]  浙江大学. MATLAB2AspenPlus接口工具箱软件V1. 0:中国软著登字第034580[ Z]. 2005203229.

[ 2 ]  沈小燕,王 乘. COM /DCOM接口技术及其在MATLAB中的应用[ J ]. 计算机工程与设计, 2002, 23 (8) : 58261.

[ 3 ]  GLOVER F. Tabu Search2 Part [ J ]. ORSA Journal on Com2puting, 1989, 1 (3) : 1902206.

[ 4 ]  GLOVER F. Tabu Search2 Part [ J ]. ORSA Journal on Com2puting, 1990, 2 (1) : 4232.

[ 5 ]  BATTITI R, TECCH IOLL I G. The Continuous Reactive TabuSearch: Blending Combinatorial Op timization and Stochastic

Search for Global Op timization [ J ]. Annals of Operations Re2seach, 1996, 63: 532188.

[ 6 ]  SIARRY P, BERTH IAU G. Fitting of Tabu Search to Op timizeFunctions of ContinuousVariables [ J ]. International Journal forNumericalMethods in Engineering, 1997, 40: 244922457.

[ 7 ]  WANGMing2xing, CHEN Xi,Q IAN J i2xin. Delay System Iden2tification Using Global Op timization Methods [ C ] / /The ThirdInternational Conference onMachine Learning and Cybernetics,

2004: 7012705.

[ 8 ]  WANGMing2xing, CHEN Xi, Q IAN J i2xin. An Imp rovement ofContinuous Tabu Search for Global Op timization [ C ] / /The 5th World Congress on Intelligent Control and Automation, 2004:

3752377.

[ 9 ]  WANGMing2xing, CHEN Xi. Global Op timization Methods for Time Delay Estimation[ C ] / /The 5 thWorld Congress on Intel2 ligent Control and Automation, 2004: 2122215.

 

】【打印繁体】【投稿】 【收藏】 【推荐】 【举报】 【评论】 【关闭】【返回顶部