问题标签 [fmi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
multithreading - 使用 openMP 或 pThread 进行 FMU 协同仿真
假设我有一个车型,底盘将用作主 FMU,其发动机、变速箱、轮胎等来自第三方,我想将它们用作从 FMU。我想以这种方式并行模型,将主 FMU 放在主线程上,并在其他线程上 fork 其他所有内容。
- 我想知道这个简单的想法是否可以通过使用从 Dymola 导出的 FMU 来实现......
- 如果可能,是否值得这样做?如果并行模型在物理级别上与顺序模型一样有效,我会徘徊。(我知道一个严重并行的程序比顺序程序慢,但我只需要知道它在物理上是慢还是快)
- 最新的 Dymola 内置了 openMP 功能,有人用过吗?它是什么样子的?
我找到了一篇关于这个的论文:Master for Co-Simulation Using FMI http://www.ep.liu.se/ecp/063/014/ecp11063014.pdf
fmi - FMU 是否有 .NET 包装器?
我需要在 .NET 应用程序中共同模拟 FMU(从 OpenModelica 生成)。是否有 .NET 等效于 JFMI 或 PyFMI ?
modelica - Dymola 中的 FMU-Export:导出为 FMU / FMI 时是否可以使 Modelica 枚举类型变量“可调”
我在一个 Modelica 模型中实现了三个类似的发布,使用枚举类型变量来选择发布。目标是通过在线更改枚举类型变量的值来切换计算方法(即出版物之间)。
计算包括三个步骤,每个步骤都有自己的枚举变量。这允许混合计算方法,例如通过设置步骤 1 根据出版物 1 进行计算,并根据出版物 2 设置步骤 2 和 3。
每一步都是这样的
模型不会在 Dymola 中计算。相反,使用 Dymola 创建了一个功能模型单元 (FMU)。这将创建一个描述模型的 XML 文件。为了启用在线更改,变量必须variability="tunable"
在此 XML 中设置属性。
但是,该变量selection
是不可调整的,如下面的 XML 摘录所示:
对变量的声明使用相同的代码会factor
产生一个可调的FMU 变量:
tl;dr: 当导出为 FMU / FMI 时,是否可以使 Modelica 枚举类型变量“可调”?
Dymola 版本 2015 FD01(32 位),2014-11-04
python - FMU 导出 Python 代码或带有 FMI 标准的 Python 接口,用于 EnergyPlus 协同仿真
我的研究小组已经为我们希望与 EnergyPlus 共同模拟的新建筑组件开发了 Python 代码。对于可重用性和市场影响,我们希望这种连接对于没有经验的用户来说尽可能简单,并相信使用函数模型接口标准 (FMI)打包模型是最佳选择。
我们探索了JModelica来测试其他功能样机单元 (FMU),但发现它不会为模型交换或联合仿真执行 Python 代码的 FMU 导出。
我很好奇是否有任何方法可以将 python 代码打包为 FMU?如果没有,是否有另一种方法可以将 Python 连接到 FMI 标准或将其连接到 EnergyPlus 等建筑能源软件?
替代方法是将建筑能源模型作为 FMU 导出并导入 modelica/jmodelica 或使用 BCVTB。虽然这对我们有用,但我们担心这会让没有经验的人很难使用我们的工具。
c++ - IntelliSense:“void *”类型的值不能分配给“char *”类型的实体16
将错误作为 void * 无法分配给 char* 16 类型的实体应该做什么才能解决错误。问题存在于 xmlpath 和 dllPath
openmodelica - FMU FMI 模拟,初始化后不评估某些方程
我相信我的问题与之前的问题有关,但我无法用他们的建议解决我的问题。
这是一个最小的非工作示例。我有一个简单的电路,里面有一个换向开关(在 openModelica 中开发)。我想根据输入参数的值修改switch.control的值。为此,我有以下内容:
注意:我尝试了参数,输入等之间的许多组合......
我想做一个迭代模拟(例如模拟 60 秒的系统,但 60 次连续模拟 1 秒)。这是为了能够根据另一个 FMU 模拟更改输入值( openclose )。
因此,我可以修改来自 pyFMI 的输入值。(当我阅读它时,已将更改考虑在内)。但是,我的方程式中也没有考虑“新值”。
这是我的 pyfmi 脚本:
基本上我在 50 个单位时间内进行模拟,然后更改openclose
变量的值,然后再次模拟,再次切换并重新模拟。结果我得到:
实际上,只有在第一次调用之前创建的集合才会model.simulate(...)
在系统中传播其值。
我试图理解这里annotation(Evaluate = false)
提出的建议,但没有奏效。我不确定它是否相关,因为我实际上可以改变我的价值。问题是基于此参数的方程似乎只在初始化期间评估:-/
任何想法/帮助都会非常受欢迎......
python-2.7 - PyFMI 包的 FMIlibrary(64 位)
任何人都有为 PyFMI 包开发 FMILibrary(64 位)的想法。FMILibrary(32 位)使用 PyFMI 包成功编译。提前感谢您的有用想法
python-2.7 - 协同仿真 FMU 'ncp' 选项
如果我为simulation_options 将变量'ncp' 的值设置为400000 之类的大数字并对其进行模拟。我收到如附件所示的错误。 final_time=4.0 的模拟结果。如果我给 ncp=100000 它正在工作。我的脚本需要使用 400000。我无法知道错误的原因。提前感谢您的帮助
python - 使用 pyFMI 获取/设置 FMU 字符串
我正在使用 Modelon 的 pyFMI 在 systemC 和其他工具之间进行协同仿真,比如说 openModelica。
我们尝试获取和设置字符串类型的输入,但似乎不受支持。我们在 description.xml 文件中有什么:
在这个例子中,clock_period 是一个整数,clock_timescale 是一个字符串。如果我们快速浏览一下 pyfmi 日志,我们可以看到:
我们可以看到 clock_period 的 getter 在 fmi2doStep 之前被正确调用,但不是 clock_timescale 。
此外,如果我们尝试设置字符串,我们会得到以下错误:
有谁知道为什么它似乎不受支持?或者是否计划支持?有没有让它发挥作用的诀窍?
谢谢
python - PyFMI包相当于linux环境
谁能帮我找到适用于 Linux 环境的 PyFMI 等效包。我在windows中成功使用了PyFMI-2.2,但是在Linux环境下我不能使用同一个包。我收到错误ImportError: Cannot import PyFMI