问题标签 [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.
matlab - Simulink 中的 EnergyPlus FMU
我正在尝试在 Simulink 中集成以 EnergyPlus 为模型的建筑物。
想从简单的开始,我从.fmu软件LINK的开发者提供的示例文件开始,成功生成了一个建筑物的.fmu文件。
然后我设计了一个简单的 simulink 软件来测试集成,但每次尝试运行程序时都会立即崩溃,我没有收到任何错误消息用作调试的线索。
有没有人已经尝试过这种集成?
我正在使用 Matlab r2016b、EnergyPlus 8.6 和 EnergyPlusToFmu 2.0.2 的 Windows10 机器上工作。
simulation - FMI(功能模型接口):Matlab / Simulink 导入/导出
我想使用 FMI 接口将 Matlab 和 Simulink 与其他程序耦合。我的问题:是否有可用的开源 FMU 导入/导出包?我刚刚找到https://www.fmi-standard.org/tools。
非常感谢你!
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 ) 似乎没有给出提示。
python - forrtl 严重(193):运行时检查失败。变量 \'TRNSYSFUNCTIONS_mp_GETOUTPUT VALUE$GETOUTPUT VALUE\' 正在使用但未启动
我正在尝试使用 pyFMI 模拟从 TRNSYS 创建的 FMU。当我尝试模拟它时,它会提示以下消息:
“forrtl 严重(193):运行时检查失败。变量 \'TRNSYSFUNCTIONS_mp_GETOUTPUT VALUE$GETOUTPUT VALUE\' 正在使用而未启动”
我的代码如下所示:
任何人都可以预测错误的原因。好像有初始化错误。
simulation - 计算 FMU 中的非线性迭代次数
你好
我正在直接使用 FMILibrary 运行 FMU 模型。该模型具有一定规模的非线性系统。我想获得每个时间步需要多少非线性迭代的信息。选择 SimulationSetup-->Debug-->Nonlinear Iterations 时 Dymola 返回的类似内容会很好。
知道如何获取这些信息吗?
谢谢
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 文件,它们必须使用与目标机器上安装的相同或更旧版本的库进行编译?
simulation - 功能样机接口 (FMI):松耦合与强耦合
我是联合仿真这个话题的新手。我熟悉这些定义(基于 Trcka “COMPARISON OF CO-SIMULATIONAPPROACHES FOR BUILDING ANDHVAC/R SYSTEM SIMULATION”):
- 准动态耦合,也称为松散耦合,orping-pongcoupling,其中分布式模型按顺序运行,一个模型使用耦合模型的已知输出值,基于先前时间步的值。
- 全动态耦合,也称为强耦合、oronion 耦合,其中分布式模型在每个时间步长内迭代,直到误差估计落在预定义的容差范围内。
我的问题:FMI/协同仿真是一种松耦合的方法吗?什么是 FMI/模型交换?据我了解,这不是一种强耦合方法。我是否正确理解在模型交换中,导入 FMU 的工具正在收集所有 ODE 和代数方程,并且该工具使用单个求解器求解整个系统。所以更多的是一种标准,以统一的方式描述模型,以便它们可以集成到不同的仿真环境中?
非常感谢您的帮助
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 中总是有所有文件。
如果有人可以帮助我,那就太好了。谢谢!
python - 隐藏代码和其他文件的 Jupyter 笔记本
我有一个正在进行的项目,其中 Modelica 中的物理建模是 FMU 提取的。这些功能模型单元与 PyFMI 一起使用来实现模拟。为此,我还编写了一些 Python 模块。我想要做的是在不暴露我的模型(.fmu 文件)和我的模块的情况下展示一些模拟结果的例子。用户将能够更改模型中的参数并进行相应的仿真。总而言之,我希望它是一个只有输入参数和输出图的黑匣子。
我一直在尝试使用 Jupyter notebook 这样做(我对任何其他解决方案持开放态度)。我将 Python 模块提取为 .pyd 文件以隐藏代码,现在我将它们导入笔记本。到目前为止,这对我来说似乎是合理的。但我不知道如何隐藏 .fmu 文件。如果可能,我会将模型导入 Python 工作区,然后保存整个工作区。
总结一下,
1) 我的代码作为 .pyd 文件是否安全?
2) 是否可以在 Python 中保存工作区?或者您对我的 .fmu 文件有其他解决方案吗?
3) 是否有其他工具比 Jupyter 更适合此目的?毕竟,我希望任何人都可以通过网络访问它,并按照他们的意愿进行尝试。但是模型本身是不允许分发的。
fmi - 在 fmu_sdk 中使用 FMU
我有一个 C 中的小代码,我想用它来调用 IMF 函数,fmu_sdk
以便能够在 FMU 中导出我的模型。
如果你能告诉我我需要如何使用这些功能,这是我的程序:
最好的问候玛丽