0
点赞
收藏
分享

微信扫一扫

如何通过Matlab调用Aspen?

爱情锦囊 2022-03-30 阅读 848
matlab

Aspen作为一款十分强大的流程模拟软件,经常用于大规模工业流程的模拟。在利用流程模拟进行科学研究时,会涉及对整个流程的优化,无论是操作参数还是设计参数的优化,单独利用Aspen时难以完成。这时就需要利用Matlab进行优化算法的编写和运行,那么如何在Matlab中对Aspen进行调用,提取并输入参数呢?

本文使用的软件为Aspen Plus v11以及Matlab2019b。

打开Matlab,新建脚本文件并输入如下代码:

%通过Matlab已经封装好的组件对Aspen的接口(Application)进行连接。
handles.aspen = actxserver('Apwn.Document');
%第一种方式连接需要运行并操作的bkp文件(只支持这类Aspen文件)
%这种方式固定了Matlab寻找bkp文件的路径
handles.filepathname=strcat('C:\Users\28901\Desktop\Example\','simulation.bkp');
handles.aspen.InitFromFile2(handles.filepathname);
%第二种方式连接bkp文件
%这种方式可以手动选择任意路径下的bkp文件
[filename,filepath]=uigetfile('*.bkp');
handles.filepathname=strcat(filepath,filename);
handles.aspen.InitFromFile2(handles.filepathname);
%这两种方式二选一即可

%连接好Aspen后即可进行运行和提取数据等多种操作
%首先设置全局变量,以便更方便的调用功能
aspen = handles.aspen;
%运行Aspen
aspen.Run2;
%判断Aspen运行结果是否收敛,是否报错,为0收敛,不为0不收敛
if (aspen.Tree.FindNode('\Data\Results Summary\Run-Status\Output\PER_ERROR').value==0)
    
end
%重置Aspen
Reinit(aspen);
%设置Aspen是否可见,1为可见,0为不可见
aspen.Visible = 1;
%关闭Aspen
aspen.Close;
%关闭Aspen,清理内存
%注意,关闭Aspen后重新调用需要从代码最开始重新进行连接!!!
clear handles aspen;
%彻底关闭Aspen进程,如需再次调用需要重新连接!!!
system('taskkill -f -im AspenPlus.exe ');

%提取Aspen中的运算结果
%单引号中的路径为提取数据在Aspen中的存储路径,需要在Aspen中的变量资源管理器进行搜索
bianliangming = aspen.Tree.FindNode('\Data\Blocks\T01\Output\COND_DUTY').value;


%对Aspen文件进行参数输入
%单引号中的路径为提取数据在Aspen中的存储路径,同样需要在Aspen中的变量资源管理器进行搜索
aspen.Tree.FindNode('\Data\Blocks\T01\Input\NSTAGE').value=5;

上述就是Matlab调用Aspen的部分代码。

举报

相关推荐

0 条评论