问题标签 [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.

0 投票
1 回答
534 浏览

modelica - 用于模型交换的大型模型和 FMU

我想将大型模型从 Openmodelica 导出到 FMU 以进行模型交换。

作为第一步,我将此模型用于测试目的:

改变“n”我们可以生成大模型。

根据 OpenModelica 版本和操作系统,最大方程数变化很大:

  • Windows 10 64 位 - OM 32 位 - 16 GB RAM - 4 CPU - i7) => n = 2600;方程 = 13000。
  • Windows 10 64 位 - OM 64 位 - 8 GB RAM - i5 => n = 100;方程式 = 500。
  • Windows 10 64 位 - OM 64 位 - 16 GB RAM - 4 CPU - i7) => n = 与前一个类似。
  • Ubuntu 17.10.1 64 位 - OM 64 位 - 虚拟机 - 8GB RAM - 1 CPU=> n = 22500;方程 = 112500

这对你有任何意义吗?

在 Windows 中是否可以达到 n = 22500?

谢谢!!!

0 投票
1 回答
810 浏览

linux - OpenModelica 和 FMU 交叉编译(Linux->Windows)

我想在 Ubuntu 中为 Windows(32 位和 64 位)编译一个 FMU。

我阅读了 OpenModelica 用户指南版本 v1.11.0 ( https://openmodelica.org/newss/179-february-6-2017-openmodelica-1-11-0-released ):

“为 FMU 交叉编译添加了 OMEdit 支持。这使得使用 Windows X 服务器在远程或虚拟 Linux 机器上启动 OMEdit 并使用 Windows 二进制文件导出 FMU 成为可能。”

“C++ FMU导出的交叉编译。与C运行时相比,C++交叉编译覆盖了模型交换的整个运行时。”

OMEdit 选项

如何进行交叉编译?

我应该安装任何东西以在“平台”部分获得 Windows 选项吗?

谢谢!!!

编辑:“sudo apt-get install mingw-w64”添加了 Mingw 编译器。是否可以添加其他编译器?例如:Windows 的 Clang。

0 投票
1 回答
130 浏览

parallel-processing - 用于模型交换的 OpenModelica FMU - 并行化?

模型交换代码(由 OpenModelica 生成)的 FMU 是否并行化?

如果我想要并行化,我必须并行运行不同的 FMU 进行联合仿真吗?

谢谢

0 投票
2 回答
307 浏览

python - 方向导数误差(用于模型交换的 FMU)

我正在使用 OpenModelica 从 FMPy 和 PyFMI 生成的 FMU。

当我尝试从 FMU 获取方向导数时,会出现崩溃(两个库)。

FMU 是从控制台生成的:

我做错了什么还是FMU代码中的错误?

fmu.mos

E10_linear.mo

pyfmi_test_script.py

谢谢!!!

0 投票
1 回答
175 浏览

modelica - JModelica FMU 中的方向导数

如何在 JModelica FMU 中启用定向导数?

我找不到有关该编译器标志的任何信息。

谢谢

0 投票
1 回答
171 浏览

fmi - Simulink 模型中的 FMU 无法处理输入?

我一直在研究一种将模型从 Simulink 导出到 FMU 的方法,当我们有一个不那么错误的版本时,我们将把它开源。我和一位同事终于得到了一个工作版本,并从一个 zip 文件中提取了我们的第一个 FMU。

事实证明,我们一定是在程序中做错了什么。我们的 FMU 工作正常,除了输入。所有输入似乎都不起作用。这已经过多次测试,例如不断退出,这是可行的,而且我还测试了由我们的其他非开源软件制成的工作 FMU,并且它们可以正常工作。我似乎无法找到他们与我们 FMU 的不同之处。

如果有人想要测试 FMU 的来源,这里是一个保管箱链接。该模型很简单,一个输入直接流向输出,一个输出从常数馈送。目前,我可以读取一个获得常量的输出,但不能读取输入。它始终为 0。dropbox 文件夹包括从模型生成的 zip 文件、model.slx 文件、生成的 FMU 以及包含 FMU 内所有内容的文件夹。我知道我们还没有包括 FMU 中的所有资源,但是当我们发现 FMU 的问题时,我会解决这个问题。源代码存在于 zip 中,因此没有遗漏任何内容。

如果任何有 FMI 经验的人以前遇到过这个问题,或者可能知道我们可能做错了什么,如果你能分享你的经验,我会非常感激。

0 投票
0 回答
200 浏览

matlab - Adams 中的 FMU 生成与 MATLAB ERROR 进行联合仿真

当我尝试将 Adams 2013.2 模型导出为 .fmu 文件以进行联合仿真时,我收到一条错误消息:“错误:生成 FMU 时出现问题。FMU 文件未正确生成。”

我试过改变变量,但无济于事。其他人遇到过这个问题吗?

0 投票
1 回答
655 浏览

c - 以结构为输入参数的 C 代码的 FMU 导出

我的研究项目组正在尝试将 matlab 代码导出为 FMU。我们想出的一种方法是从 matlab 脚本生成 c 代码并将 c 代码导出为 FMU。我很好奇是否有任何工具可以将 c 代码打包为 FMU?如果没有,还有其他方法可以实现吗?

在@mklingn 回答后更新问题
我尝试使用bouncingball.c进行编辑,但我面临的问题是,在提供的每个示例中,变量都被视为布尔或双精度数据类型。在我的情况下,输入之一是结构,例如我生成的 c 文件是

生成的 .h 文件是

所以根据您的第 2 点:FMI 2.0 版无法进行这种导出。我理解你的观点正确吗?

0 投票
1 回答
140 浏览

java - JFMI,标量变量的数量,传递字符串

我正在使用 JFMI ( https://ptolemy.berkeley.edu/java/jfmi/ ) 从 Java 与 FMI ( 在 C 中) 进行通信。

对于通信,我使用现有函数(例如,simulation.write(inPort.getName()).with((Double) value);)。

但是,我面临两个问题:

  • fmuTemplate.c 包含用于配置浮点数、整数和其他变量的全局变量。但是,配置对我来说似乎不合逻辑。例如,如果我写 NUMBER_OF_REALS 是 2,而 NUMBER_OF_INTEGERS 是 2,我只能使用两次写入实数/浮点数或两次写入整数。如果我想使用 4 个标量变量(2 个浮点数,2 个整数),我需要定义 NUMBER_OF_REALS 2 和 NUMBER_OF_INTEGERS 4。就好像顺序是递增的一样。
  • 将字符串从 Java 写入 FMI 似乎会使程序崩溃(“invalidState:fmi2SetString: Illegal call sequence.”)。

您是否遇到过类似的问题?如果是的话,你能分享你的经验吗?

最好的问候,谢谢。

0 投票
0 回答
362 浏览

parallel-processing - FMPy 和 Dymola 并行化

我正在使用 Dymola 生成一个协同仿真 FMU。FMU 由 FMPy 消耗。模型中有外部热力学调用。

当 Dymola 标志 Advanced.ParallelizeCode 设置为 false 时,可以使用 FMPy 和 Dymola 运行 FMU。当 Dymola 标志 Advanced.ParallelizeCode 设置为 true 时,FMU 可以使用 Dymola 运行,但不能使用 FMPy。

什么可能导致此问题?

谢谢!