EES到Matlab,只有在手动关闭EES时才会完成

时间:2014-12-20 22:14:53

标签: matlab

我正在进行一些内燃机分析,这使我尝试通过使用EES宏(.emf文件)来生成属性,尝试将一些特定的热量从EES传递到matlab。这适用于简单的任务,其中属性只分配给宏中的变量,然后由Matlab导出和读取。

现在,我有兴趣在化学平衡计算中获得产品的属性,因此我需要在EES中求解耦合方程。这会产生一个问题,因为你不能在EES宏的右侧有未分配的东西。

通过在调节器.ees文件中求解平衡组合的方程式然后导出结果,可以快速解决上述问题。但这导致了另一个问题:

一旦我调用我的Matlab脚本,程序就会在返回特定的热量之前“挂起”。我发现手动关闭现在打开的EES窗口后脚本就完成了,但这不可行,因为我需要进行数百次导入。

使用EES宏而不是文件时不会出现问题,因为在这些中你可以直接使用Quit语句,但是如上所述,宏不是一个选项。有没有人知道你可以在EES-FILE中使用的等效声明?我还尝试在我的脚本中使用系统命令关闭EES:system('taskkill / F / IM EES.EXE');.但是这似乎无法找到EES任务,尽管它出现在任务管理器和任务栏中(该语句已经过测试,如果您手动打开EES,它仍然有效)。

非常感谢任何帮助,提前谢谢!

问候

1 个答案:

答案 0 :(得分:1)

您可以使用宏文件解析EES文件,然后退出程序。

Example.emf包含:

Open C:\Example.ees
Solve
Quit

然后是MATLAB系统调用

system('$EESPath\ees.exe C:\Example.emf');

将完成这项工作。 您需要利用$Export指令将结果放入MATLAB可以导入的外部文件中。