【发布时间】:2021-08-29 02:16:42
【问题描述】:
我通过外部 C 函数在模拟环境(OpenModelica,在此上下文中)中部署我的机器学习模型(已经训练)取得了一些成功。
但是,为了标准化流程,我的目标是使用 FMI 标准而不是外部 C 函数。因此,我需要将我的 ML 模型包装为 FMU。
有什么办法可以做到吗?我读过 PyFMI,但是,它似乎只控制 Python 环境中的协同仿真,而不是将您的 ML 模型包装为 FMU。
目标是从经过训练的 ML 模型生成 FMU,然后在模拟环境(例如 OpenModelica)中部署该 FMU。任何帮助将不胜感激。
谢谢
【问题讨论】:
-
很难弄清楚您要做什么。你能提供一个最小的工作示例吗?我不确定你想在 FMU 中包装什么部分。您不能仅将外部函数调用包装为 FMU。 FMI 标准用于以某种标准化方式包装整个仿真模型(常微分方程组)。查看规范概述github.com/modelica/fmi-standard/releases/download/v2.0.2/…
-
嗨,安,从昨天开始,我的问题又增加了,所以我会试着解释一下。我有 2 个用 Modelica 编写的组件模型。 A 的状态受 B 的状态影响。B 接收 Real 输入(标量),这些输入用于计算 B 的状态。为此,在 B 内,外部 C 函数调用预训练的神经网络,并传播 Real 输入以计算 B 的状态。不使用外部 C 调用,是否可以用 FMU 替换整个组件 B(内部有神经网络)?
-
您可以将模型 A 和 B 替换为 FMU,因为它们是完整的模型。 FMU B 可以有外部函数调用,只要它们包含在 FMU 内部,它们来自哪里都没有关系。但是为一个外部函数创建一个 FMU 是没有意义的。
标签: python machine-learning openmodelica fmi