# 联合仿真(Co-Simulation)与模型交换(Model Exchange)


在 FMU(Functional Mock-up Unit)标准中,联合仿真(Co-Simulation)和模型交换(Model Exchange)是两种常见的仿真模式。它们各自有不同的使用场景和特点,适用于不同的需求和工作流程。

以下是这两种模式的详细区别:

# 联合仿真(Co-Simulation)

联合仿真模式是指 FMU 与外部仿真环境共同进行仿真,在此模式下,外部仿真工具与 FMU 之间通过实时交换数据来共同推进仿真进程。FMU 提供了部分仿真功能,但外部仿真环境负责更大的系统仿真和控制,双方协同工作。

# 特点

  • 外部仿真工具主导仿真:在联合仿真中,仿真工具(如 Sysplorer、Sysblock 等)控制整个仿真过程。FMU 作为一个模块被嵌入到仿真工具中,接受仿真工具提供的输入数据并返回计算结果。

  • 并行仿真:FMU 模块和外部仿真工具可以在不同的线程中并行运行,通过仿真步长进行同步。这意味着每个系统组件(例如不同的物理模型或不同的仿真平台)可以独立运行,并且按照时间同步交换信息。

  • 实时数据交换:FMU 与仿真工具之间通过数据接口进行实时数据交换,仿真工具可以根据需要在仿真过程中修改输入并接收 FMU 的输出结果。

  • 适用场景:

    • 在多个不同的仿真工具或模型之间进行集成仿真时。
    • 当模型中存在复杂的系统交互,且不同部分的仿真需要独立控制时。
    • 当仿真任务需要分配给多个不同的系统进行并行计算时。

# 工作流程

  • 外部仿真工具初始化仿真流程,配置仿真步长和仿真时间。

  • 外部仿真工具向 FMU 发送当前的输入数据。

  • FMU 计算并返回结果给外部仿真工具。

  • 外部仿真工具处理结果,并在下一时间步继续执行。

  • 外部仿真工具可以在仿真过程中随时暂停、修改输入并重新运行仿真。

# 优点

  • 灵活性高:适用于需要外部工具控制仿真过程的场景。

  • 可拓展性强:支持多平台、多工具的集成,可以将多个 FMU 模型整合到一个大的仿真模型中。

  • 支持实时仿真:在一些嵌入式仿真和 HIL(Hardware-in-the-loop)仿真中,联合仿真非常适用。

# 缺点

  • 相对较复杂:需要协调外部仿真工具和 FMU 之间的同步和数据交换。

  • 可能的性能开销:实时数据交换和同步可能带来性能上的负担,特别是在实时或大规模仿真时。

# 模型交换(Model Exchange)

模型交换模式是指 FMU 作为一个完整的模型被嵌入到外部仿真工具中。在此模式下,FMU 将作为独立的模块运行,外部仿真工具负责整个仿真的控制和步进。

# 特点

  • 外部仿真工具管理仿真:在模型交换模式下,仿真工具负责管理整个仿真过程,包括仿真时间步的选择和控制。FMU提供其模型的数学描述,并将模型作为一个模块嵌入到仿真工具中。

  • 不需要数据交换接口:与联合仿真模式不同,模型交换模式下,FMU 模型的内部计算和仿真完全由外部仿真工具处理。FMU 提供的模型不与外部仿真工具交换仿真数据,而是通过接口(例如输入输出端口)接收信号和返回结果。

  • 适用场景:

    • 当仿真工具需要完全控制模型的计算过程时。
    • 在模型的所有计算都可以由外部工具处理的场景。
    • 希望将 FMU 模块作为系统的一部分进行整体仿真时。

# 工作流程

  1. 外部仿真工具加载 FMU 模型。
  2. 外部仿真工具通过 FMU 提供的接口与 FMU 交互,传递输入信号并接收输出信号。
  3. 外部仿真工具根据预定的仿真步长和时间推进仿真,依次执行所有模块(包括 FMU)。
  4. 在每个仿真时间步,外部仿真工具根据需要读取 FMU 的状态,计算并更新系统状态。

# 优点

  • 简化了数据交换:外部工具与 FMU 之间只通过端口进行输入输出,不涉及复杂的数据交换工程。
  • 仿真结果结合:适用于需要将外部工具的控制功能与FMU的仿真结果相结合的场景。
  • 性能较高:由于FMU模块是直接嵌入到外部仿真工具中,外部工具可以完全控制仿真过程,减少了同步和数据交换的开销。

# 缺点

  • 灵活性较低:与联合仿真模式相比,模型交换模式的灵活性较差,特别是在涉及多个仿真工具或不同平台的集成时。
  • 不适用于实时仿真:在需要实时控制和快速响应的仿真中,模型交换模式的应用受到限制。

# 主要区别总结

特性 联合仿真(Co-Simulation) 模型交换(Model Exchange)
控制方式 外部工具与FMU协作,共同控制仿真过程 外部工具完全控制仿真过程,FMU 仅提供模型计算
数据交换方式 外部工具与FMU之间实时数据交换 外部工具通过端口与 FMU 进行输入输出数据交换
并行性 FMU 和外部工具可并行运行,通过同步仿真步长进行协作 外部工具主导仿真,FMU 作为模块被嵌入仿真工具中
适用场景 多个仿真工具和模块间协同仿真 需要外部工具控制和管理仿真流程 需要外部工具完全控制仿真过程,FMU 作为仿真模块的一部分
性能 可能存在较大的性能开销,特别是在实时仿真和大规模仿真中 性能较高,适合不需要外部控制或实时同步的仿真
复杂性 实现上较复杂,需要管理外部工具与 FMU 之间的同步和数据交换 简单,外部工具直接控制仿真,FMU 提供计算功能

# 相关主题

与现有仿真或环境集成