基于COM技术的MATLAB与AspenPlus接口及高级应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机技术 化工自动化及仪表,2006,33(3):30~34
Contr ol and I nstru ments in Che m ical I ndustry
基于COM技术的M AT LAB与
A spen Plus接口及高级应用
耿大钊,陈 曦,邵之江,钱积新
(浙江大学控制系,杭州310027)
摘要: 基于C OM技术研制开发了MAT LAB和A s pen Plus的接口工具箱MAP,实现了在MAT LAB环境下对A s pen Plus中数据进行读写操作,并控制模拟的运行。MAP接口将MAT LAB计算能力和A s pen Plus的模拟能力结合在一起,扩展了A s pen Plus的高级应用。通过精馏塔进料软测量的示例,阐述了如何通过MAP接口来调用自主开发的禁忌搜索优化算法,解决由于A s pen Plus中的优化算法的局限性所无法实现的模拟与优化问题。
关键词: MAT LAB;A s pen Plus;C OM技术;接口;禁忌搜索
中图分类号:T Q021 文献标识码:A 文章编号:100023932(2006)0320030205
1 引 言
A s pen Plus作为美国A s penTech公司开发的大型通用流程模拟系统,已在全世界许多大型化工、石化企业及著名工程公司得到广泛应用。该软件通过准确地模拟流程工业工艺过程、快速的循环计算、设计新工艺以及全系统的优化,可为用户解决工程设计和运行过程中的问题。同时,A s pen Plus使用了最新的软件工程技术,具有M icros oft W indows图形界面和交互式客户2服务器模拟结构。
除了提供M icr os oft W indows图形操作界面, A s pen Plus中的某些信息有时又需要与其它程序进行交互,如A s pen Plus模拟的输入和结果需要被传递到其它设计程序或数据库中;一些高级用户还希望通过其它应用程序调用A s pen Plus以扩展其功能,如A s pen Plus的序贯模拟中其内置算法不能求解某些问题时,需要使用其它环境下(如MAT LAB)编写的先进优化算法。基于COM技术开发了MAT2 LAB和A s pen Plus接口工具箱(MAP)[1],在MAT2 LAB平台环境下实现对A s pen Plus数据的读写,对A s pen Plus模拟程序的运行控制,可解决某些A s pen Plus序贯模拟方法所不能求解的问题,将MAT LAB 的计算能力和A s pen Plus的仿真能力充分结合到一起。
2 COM及A spen Plus Acti veX自动化服务器COM,即微软组件对象模型,是所有ActiveX组件的基础,提供了使多个应用程序或组件对象协同工作并相互通信的能力。组件对象就是完成特定功能的一个可执行的软件单位(EXE或DLL)。COM 技术促进了软件重用和W indows应用程序间的基本接口。它是独立于平台的,分布式的,面向对象的系统,用于创建可交互的二进制软件组件。COM的一个重要特性就是它支持多接口,其中一些为标准接口,它们被定义为ActiveX的组成部分,而另一些为用户自定义的接口,由各个开发商定义。
ActiveX是一种基于M icros oft W indo ws操作系统的组件集成协议,通过ActiveX,开发者和终端用户可以选择由不同的开发商发布的面向应用程序的ActiveX组件,并将它们无缝地集成到自己的应用程序中,从而完成特定的目的。ActiveX组件,可以分为以下六种类型:自动化服务器、自动化控制器、Ac2 tiveX控件、COM对象、ActiveX文档、ActiveX容器。MAP接口工具箱的开发涉及了自动化服务器和自动化控制器这两种类型ActiveX组件。
自动化服务器是一种可以由其它应用程序编程驱动的组件。自动化服务器至少包含一个或多个可由其它应用程序创建或连接的基于I D is patch的接口。一个自动化服务器可以没有用户界面,也可以拥有,这取决于服务器的特性和功能。自动化服务器的运行方式分为三种:①进程内(in2p rocess),即在控制器的运行空间内运行;②本地(local),即在服务器自身的进程空间内运行;③远地(remote),即在另一台机器的进程空间内运行。
自动化控制器是那些使用和操纵自动化服务器的应用程序,它们不但可以在进程内访问自动化服
收稿日期:2006204217(修改稿)
基金项目:国家“973”计划项目(2002CB312200);浙江省自然科学基金资助项目(Y1041040)
务器,而且可以以本地或远程方式访问自动化服务器。
以COM技术为基础的ActiveX中的自动化技术在W indows应用程序中,如M icr os oft Word,Excel以及MAT LAB等,使用尤为广泛。这些应用程序以自动化服务器对象的方式暴露出内部的数据和功能,其它的应用程序作为客户应用程序(或自动化控制器)来访问这些自动化对象。MAT LAB中的COM支持,使MAT LAB可与内含的控件或服务器进程相互作用,或将MAT LAB作为一个由用户的客户应用程序控制的计算服务器。
通过基于COM技术开发的MAP接口工具箱, A s pen Plus模拟的输入和输出数据结果可与MAT2 LAB应用程序进行交互,可用来实现在MAT LAB环境下对A s pen Plus模拟进行操作和运行,使用MAT2 LAB算法求解某些A s pen Plus序贯模拟不能求解的问题。
3 M AP接口工具箱实现及其框架结构
MAT LAB以COM技术为基础,支持ActiveX。它具有两个方面的涵义:
(1)在其它程序下运行MAT LAB的ActiveX组件。
(2)在MAT LAB下运行其它ActiveX组件。
开发MAP接口工具箱时,MAT LAB作为一个ActiveX自动化控制器,允许在MAT LAB下运行其它ActiveX组件。而A s pen Plus的W indows用户界面是一个ActiveX自动化服务器,它通过COM对象方式列出对象。ActiveX技术使得一个外部应用程序,如MAT LAB,与A s pen Plus通过一个COM接口相互作用。
通过使用COM技术,可以按如下步骤来实现MAT LAB与A s pen Plus之间的高级接口[2]:
(1)在MAT LAB中创建并返回一个A s pen Plus COM对象的句柄。
(2)在MAT LAB中操作A s pen Plus COM对象。一旦得到COM对象的句柄,就可以对此对象进行操作,如同对其它对象的操作(即获取、设置、方法和属性)一样。
(3)操作完成后,用自动化对象提供的close或delete函数来结束并释放A s pen Plus COM对象。
A s pen Plus支持的对象类型主要包括HappLS (I Happ)和Happ I P对象。一个A s pen Plus应用程序客户对象应该被声明为一个HappLS或I Happ对象,而一个A spen Plus进程内客户对象应该被声明为一个Happ I P对象。通过上面这两种声明对象,可以访问其它对象的属性和方法。通过A s pen Plus列出的对象如表1所示。
表1 A spen Plus对象
对象描 述
HappLS A spen Plus的应用程序客户对象
Happ I P A spen Plus的进程内客户对象
I HNode
A spen Plus中用来进行输入和输出数据存储的
树状结构组织的节点对象
I HNodeCol
每个I HNode节点对象可以有自己的子节点,其
子节点都被组织在I HNodeCol集合对象中
I HAPEngine
这个对象给A s pen Plus的模拟引擎提供一个接
口
HappLS(I Happ)和Happ I P对象是A s pen Plus列出的主要对象。这些对象提供了如下的方法和属性:打开一个模拟问题;控制A spen Plus G U I(图形用户界面)的能见性;存储一个问题;外发事件。
A s pen Plus的模拟对象被显示成一个I HNode 节点对象的树结构。该树的根节点将获得I Happ的树属性。每个I HNode对象都可以有零个或更多的I HNode子对象。每个I HNode对象都有一个D i men2 si on属性,它用来决定那些子节点是怎样组织起来的。一个叶节点(没有子节点的节点)有一个零量纲。一个节点对象的所有子节点可以作为一个集合对象I HNodeCol被获得,它是来自于I HNode对象的元素属性。一旦某叶节点包含了所需的数据值,便可以从这节点的Value(值)属性中获得这个数据值。
一个Happ对象的Engine属性返回一个I HAP2 Engine对象,它是一个模拟引擎的接口。Happ和I HAPEngine对象提供了能使一个自动控制客户程序运行和控制模拟的方法。当整个自动化服务器不再需要时,可以通过函数来删除A s pen Plus COM对象。对象的所有接口将被自动释放,服务器被删除。
针对模拟问题,A s pen Plus中的对象除了少量只读属性外,其大多数属性可以通过接口进行更改设置。
每个A s pen Plus模拟问题的输入和结果数据都被组织在一个树状结构里。为了访问所需的A s pen Plus模拟数据,必须理解并能通过树状结构的导航找到和识别出所需的变量。使用Variable Exp l orer (变量探测器)可以浏览和访问与模拟问题相关的变量。Variable Ex p l orer在模拟过程中将显示出一个类似Data B r owser(数据浏览器)的树状视图窗口,它显示出每个变量的属性。它们的不同在于Data
・
1
3
・
第3期 耿大钊等.基于COM技术的MAT LAB与A s pen Plus接口及高级应用