Modelica

时间:2015-09-19 05:47:29

标签: simulation modelica agent-based-modeling mason-abm

是否可以在Modelica中模拟多代理系统?我正在谈论用Java编写的MASON系统。这将是多么容易或困难? 据我所知,Modelica不是一种典型的编程语言,所以它会特别有用还是modelica语言的基本设计会造成任何阻碍?更重要的是,我们如何建立模型"消息传递"在基于代理的建模中常见的系统?

1 个答案:

答案 0 :(得分:5)

Modelica可以模拟离散事件系统。存在一些库:ModelicaDEVS,ARENALib等。

对于这个" Messaging"也许语法并不完美,但也许语言会在这个方向上得到进一步改善。

优点可能是可以创建具有实时功能的代码,因此代理可以在嵌入式系统中运行,即使是实时性很高 - 只有其他一些工具支持像Ptolemy II一样。

P.S。 (补充见第一条评论):

从一开始,Modelica就是为了创建能够实时运行的代码而设计的。因此,您可以将代理连接IO的未更改模式连接到传感器和执行器,并将其下载到实时硬件(例如PowerPC)上。然后,您的大量代理将完全填满您建模并存在于实际中的时间行为。此外,您可以在硬件中只有一个真正的代理(可能这个硬件很昂贵),并使用您未更改的模型在实时模拟器硬件上实时模拟与所有其他代理的交互。

这是Modelica的语义不那么动态的一个主要原因,例如: Java的。如果你想在真正的硬件上运行MASON代理,你就会遇到麻烦:你必须转移到例如安全关键Java,这意味着必须重写或不允许重写代码的许多构造,以及标准Java库的构造。如果没有这个,你将不得不忍受你的经纪人错过他的使命并烧毁房子的可能性......