跳到主要内容

模型交换FMU

模型交换FMU(Model exchange)
功能模型FMU(Functional Mock-up Unit) 用于模型交换,FMU文件不含求解器。依赖于外部求解器完成仿真。
导出的FMU模型可以脱离原仿真工具(如MATLAB、AMESim)单独运行,支持单步仿真及修改原模型中各模块配置参数。
在首次部署模板前请在参数设置中上传FMU文件以及配置FMU模型的初始参数。如使用模型导出前原仿真工具默认初始参数则无需额外配置(即在此文本框填空Json字符串: {})。

您需要一个Linux系统下以模型交换模式导出的fmu文件。关于如何导出FMU文件您可以参考《AMESim导出FMU文件》文档。
一个模型输入数据csv文件。csv时间戳列名为字符串“time”,其他列的列名为FMU输入变量的名称。
关于FMU文件的输入输出名称,您可以使用第三方免费工具如FMU Simulator查看。 image.png

模型交换FMU_v1

使用说明

在算盘算法开发模式如下创建两个节点并连接。
csv上传模型输入数据

image.png 上传FMU文件 image.png 运行仿真 image.png 查看结果下载仿真输出数据 image.png image.png

下载的csv文件可以用Excel打开并画图,如下。 image.png

模型交换FMU_v2(废弃)

注:CVode变步长求解器卡死在问题已经在FMU_v1中解决。FMU_v2目前处于暂停维护状态,后续可直接使用FMU_v1。

第二版模型交换FMU组件

  • 增加至8个ODE求解器可供选择、更多求解器参数配置。
  • 解决了CVode变步长求解器卡死在(步长变得无限小以至于仿真时间无限延长)某个时间点的问题。

支持以下8个求解器:CVode, Radau5ODE, RungeKutta34, Dopri5, RodasODE, LSODAR, ExplicitEuler, ImplicitEuler。

  1. CVode:求解常微分方程的变阶变步长多步算法。适用于刚性或非刚性。
  2. Radau5ODE:Radau IIA五阶三级,具有步长控制和连续输出。单步算法。适用于刚性或非刚性。
  3. RungeKutta34:四阶自适应龙格库塔。单步算法。仅适用于非刚性系统。
  4. Dopri5:具有步长控制和连续输出的(4)5阶显式Runge-Kutta方法。基于Dormand 和Prince方法。单步算法。仅适用于非刚性系统。
  5. RodasODE:具有步长控制和连续输出的(3)4阶Rosenbrock方法。单步算法。适用于刚性或非刚性。
  6. LSODAR:一种求解显式常微分方程的多步方法,LSODAR能自动地在ADAMS方法和BDF方法之间切换,并能监测事件。适用于刚性或非刚性。
  7. ExplicitEuler:这个解算器使用显式欧拉方法求解一个显式常微分方程。单步算法。仅适用于非刚性系统。
  8. ImplicitEuler:这个解算器使用隐式欧拉方法求解一个显式常微分方程。单步算法。

image.png