链接 AnyLogic 和 Matlab

Posted

技术标签:

【中文标题】链接 AnyLogic 和 Matlab【英文标题】:Link AnyLogic and Matlab 【发布时间】:2017-04-11 03:52:46 【问题描述】:

我想知道是否可以将 AnyLogic 链接到 Matlab?

我需要一种将函数从 Matlab 调用到 Anylogic 的方法。

【问题讨论】:

【参考方案1】:

在这个层面上,AnyLogic 应该被视为 Java 应用程序,问题应该被表述为 Link Java and Matlab。您可以搜索与 MatLab 和 Java app 建立连接的不同 Java 库,允许从 app 向 Matlab 传递命令,并获取结果。此类库的示例 — matlabcontrol。还有example model。

UPD:Matlab 提供Java API for AnyLogic,因此您可以直接在 AnyLogic 中使用它。在这种情况下,不需要第三方库。为此,您需要将engine.jar 添加到模型依赖项中,该.jar 由Matlab 提供,它位于: matlab\extern\engines\java\jar

Here is the model 使用 the respective examples 从以下位置调用 Matlab: matlab\extern\examples\engines\java

【讨论】:

【参考方案2】:

我不确定你说的是哪个方向。 在 anylogic 中调用 matlab 函数: 由于 Anylogic 基于 Java,您可以使用 Java Runtime 类,并执行以下操作: Runtime rt = Runtime.getRuntime(); Process pr = rt.exec("C:\<a long path here>\matlab.exe" -nodisplay -nosplash -nodesktop -r "run('C:\<a long path here>\mfile.m');exit;"

之后,您需要从进程对象 pr 获取输出并施展您的魔法。 在matlab中调用anylogic仿真: 看看:http://help.anylogic.com/topic/com.xj.anylogic.help/html/integration/Integration.html

【讨论】:

以上是关于链接 AnyLogic 和 Matlab的主要内容,如果未能解决你的问题,请参考以下文章

SelectOutPut (AnyLogic) 中代理类型的条件

AnyLogic 组件的 Simulink 版本

获取不同代理类型 AnyLogic 的等待时间

Anylogic,将代理拆分为多种不同的代理类型

Anylogic:你能在编辑框中输入概率分布吗?

Anylogic“如何”问题