问题标签 [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 回答
339 浏览

matlab - Simulink 中的 EnergyPlus FMU

我正在尝试在 Simulink 中集成以 EnergyPlus 为模型的建筑物。

想从简单的开始,我从.fmu软件LINK的开发者提供的示例文件开始,成功生成了一个建筑物的.fmu文件。

然后我设计了一个简单的 simulink 软件来测试集成,但每次尝试运行程序时都会立即崩溃,我没有收到任何错误消息用作调试的线索。

有没有人已经尝试过这种集成?

我正在使用 Matlab r2016b、EnergyPlus 8.6 和 EnergyPlusToFmu 2.0.2 的 Windows10 机器上工作。

0 投票
1 回答
1293 浏览

simulation - FMI(功能模型接口):Matlab / Simulink 导入/导出

我想使用 FMI 接口将 Matlab 和 Simulink 与其他程序耦合。我的问题:是否有可用的开源 FMU 导入/导出包?我刚刚找到https://www.fmi-standard.org/tools

非常感谢你!

0 投票
1 回答
229 浏览

linux - FMU 合规性检查器:FMICAPI:未定义符号:va_start (Linux)

在 FMI 包装器中,我们使用可变参数函数进行日志记录。在使用 gcc 4.9.2 编译的 FMU(用于 Co-Sim)上运行 linux64 的 FMU 合规性检查器(2.0.3)时,合规性检查器在加载 *.so 文件时抛出错误:

我想知道是否禁止在 Linux 的 FMI 中使用va_start ?FMI 规范 ( 1 , 2 ) 似乎没有给出提示。

0 投票
0 回答
561 浏览

python - forrtl 严重(193):运行时检查失败。变量 \'TRNSYSFUNCTIONS_mp_GETOUTPUT VALUE$GETOUTPUT VALUE\' 正在使用但未启动

我正在尝试使用 pyFMI 模拟从 TRNSYS 创建的 FMU。当我尝试模拟它时,它会提示以下消息:

“forrtl 严重(193):运行时检查失败。变量 \'TRNSYSFUNCTIONS_mp_GETOUTPUT VALUE$GETOUTPUT VALUE\' 正在使用而未启动”

我的代码如下所示:

任何人都可以预测错误的原因。好像有初始化错误。

0 投票
0 回答
74 浏览

simulation - 计算 FMU 中的非线性迭代次数


你好

我正在直接使用 FMILibrary 运行 FMU 模型。该模型具有一定规模的非线性系统。我想获得每个时间步需要多少非线性迭代的信息。选择 SimulationSetup-->Debug-->Nonlinear Iterations 时 Dymola 返回的类似内容会很好。

知道如何获取这些信息吗?

谢谢

0 投票
1 回答
335 浏览

linker - FMI - C 标准库版本差异导致链接错误

我有一个公开可用的 FMU,我正在尝试将嵌入式 .so 文件与我的程序的其余部分链接起来。(如果您将其视为存档,则该文件包含在 .fmu 文件中。)在链接阶段,我收到以下未定义的参考错误:

RoomHeating_OM_RH.so: undefined reference to '__longjmp_chk@GLIBC_2.11'

RoomHeating_OM_RH.so: undefined reference to '__fread_chk@GLIBC_2.7'

如果我使用类似的工具查看 RoomHeating_OM_RH.so 的内容nm -a,我会看到很多未定义的这种形式的引用,它们在链接时不会导致错误。以下是nm -a输出中的几行:

U __vsnprintf_chk@@GLIBC_2.3.4

U _setjmp@@GLIBC_2.0

但是,导致错误的错误与其他错误的区别在于它们的名称中有更新版本的 GLIBC。这是我 /lib 目录中用于 libc 库的内容(是的,我意识到这些是旧版本,但这是我现在所坚持的):

/lib/libc-2.5.so

/lib/libc.so.6

所以我的猜测是我没有足够新的 libc 版本来链接。是否要求 libc 的版本与 .so 文件所调用的版本完全相同?还是只需要等于或高于调用的版本?此外,FMI 规范是否甚至涵盖了兼容性的这一方面?还是假设FMU 中提供了IF .so 文件,它们必须使用与目标机器上安装的相同或更旧版本的库进行编译?

0 投票
2 回答
239 浏览

simulation - 功能样机接口 (FMI):松耦合与强耦合

我是联合仿真这个话题的新手。我熟悉这些定义(基于 Trcka “COMPARISON OF CO-SIMULATIONAPPROACHES FOR BUILDING ANDHVAC/R SYSTEM SIMULATION”):

  • 准动态耦合,也称为松散耦合,orping-pongcoupling,其中分布式模型按顺序运行,一个模型使用耦合模型的已知输出值,基于先前时间步的值。
  • 全动态耦合,也称为强耦合、oronion 耦合,其中分布式模型在每个时间步长内迭代,直到误差估计落在预定义的容差范围内。

我的问题:FMI/协同仿真是一种松耦合的方法吗?什么是 FMI/模型交换?据我了解,这不是一种强耦合方法。我是否正确理解在模型交换中,导入 FMU 的工具正在收集所有 ODE 和代数方程,并且该工具使用单个求解器求解整个系统。所以更多的是一种标准,以统一的方式描述模型,以便它们可以集成到不同的仿真环境中?

非常感谢您的帮助

0 投票
2 回答
917 浏览

modelica - Dymola FMU 导出/导入错误

我正在使用 Dymola 2017(编译器是 Visual Studio 2013/VisualC++ 2013 express Edition (12.0))。

我尝试将不同的 MSL 示例(例如 Modelica.Electrical.Analog.Examples.CauerLowPassAnalog)导出为 FMU(co-sim 和模型交换)。我将 FMU 导入 Dymola。当我尝试模拟 FMU 时,总是会收到类似的错误消息: 在此处输入图像描述在此处输入图像描述

这里是 FMU 设置:

在此处输入图像描述

当我创建示例的 FMU 时:Modelica.Electrical.Analog.Examples.CauerLowPassAnalog

将创建以下文件:

在此处输入图像描述

但是当我打开文件“LowPass.fmu”(作为 .zip 文件)时,里面只有一个文件:

在此处输入图像描述

这是我第一次使用 2017 版本 - 当我使用 2016 版本创建 FMU 时,FMU 中总是有所有文件。

如果有人可以帮助我,那就太好了。谢谢!

0 投票
2 回答
754 浏览

python - 隐藏代码和其他文件的 Jupyter 笔记本

我有一个正在进行的项目,其中 Modelica 中的物理建模是 FMU 提取的。这些功能模型单元与 PyFMI 一起使用来实现模拟。为此,我还编写了一些 Python 模块。我想要做的是在不暴露我的模型(.fmu 文件)和我的模块的情况下展示一些模拟结果的例子。用户将能够更改模型中的参数并进行相应的仿真。总而言之,我希望它是一个只有输入参数和输出图的黑匣子。

我一直在尝试使用 Jupyter notebook 这样做(我对任何其他解决方案持开放态度)。我将 Python 模块提取为 .pyd 文件以隐藏代码,现在我将它们导入笔记本。到目前为止,这对我来说似乎是合理的。但我不知道如何隐藏 .fmu 文件。如果可能,我会将模型导入 Python 工作区,然后保存整个工作区。

总结一下,

1) 我的代码作为 .pyd 文件是否安全?

2) 是否可以在 Python 中保存工作区?或者您对我的 .fmu 文件有其他解决方案吗?

3) 是否有其他工具比 Jupyter 更适合此目的?毕竟,我希望任何人都可以通过网络访问它,并按照他们的意愿进行尝试。但是模型本身是不允许分发的。

0 投票
3 回答
769 浏览

fmi - 在 fmu_sdk 中使用 FMU

我有一个 C 中的小代码,我想用它来调用 IMF 函数,fmu_sdk以便能够在 FMU 中导出我的模型。

如果你能告诉我我需要如何使用这些功能,这是我的程序:

程序C

最好的问候玛丽