SaberRD导入FMU的步骤概述

电子说

1.2w人已加入

描述

简介功能模拟单元(Functional Mock-up Unit, FMU)是一种模拟模型,它描述了由微分方程、代数方程和离散时间方程构成的动态系统。功能模拟接口(Functional Mock-up Interface, FMI)是为在不同仿真环境下对这些方程进行评估而定义的标准接口。

Saber支持导入FMU 2.0,通过将扩展为. FMU的FMU模型转换为等效的MAST模型,FMU 2.0是模型交换接口之一。生成的MAST模型继承了MAST的所有特征,适用于所有分析,如DC(工作点分析)、AC(小信号分析)、TR(瞬态分析)以及高级环路分析,如MC(统计蒙特卡罗分析)和Vary(确定性参数扫描分析)。

01

FMI概述

  • FMl是一个独立于工具的标准,使用xml文件和c代码(在DLL/共享库中编译或在源代码中编译)的组合来支持模型交换和动态模型的联合模拟。它的目标是改善供应商和原始设备制造商之间的仿真模型交换。FMUs的应用非常有限,它在交换信号流数据方面非常有用。FMUs不能用于跨越守恒能量边界。因此,如果在FMU和导入模拟器之间存在加载效应的情况下使用FMU,则它将不起作用。
  • FMI模型交换标准定义了在工具之间交换动态模型的接口。Saber支持FMU导入功能。
  • FMU以zip文件的形式发布。zip文件包含:
    lFMI描述文件(XML格式)。

下列一项或两项:

  • FMU的C源和所需的运行时库。
  • 一个或多个目标计算机的二进制文件,例如Windows动态链接库(.dll)或Linux共享对象库(.so)。
  • FMU特定文件格式的附加FMU数据,例如表或图。
    注意:如果FMU提供者希望隐藏源代码以保护敏感数据,则特别需要提供二进制文件而不是C源代码。FMU还可以包含物理参数或几何尺寸,这些参数不应该是开放的,而应该以二进制格式共享。以二进制格式提供库还可以在另一个模拟环境中实现FMU的全自动导入。另一方面,有些功能需要源代码。
  • FMU的示意图如下图所示:

FCC

*Figure 1 *Data flow between the environment and an FMU

02

Saber导入FMU的方法

通过拖放方法将FMU导入库

导入FMU最简单的方法是拖放方法。要将一个FMU导入到库中,请遵循以下步骤:

1.打开文件浏览器,选择要导入的FMU (*. FMU),并将其拖放到现有库中。见下图。

FCC

*Figure 2 *Import of an FMU by Drag-and-Drop method

2.将FMU放入库后,将FMU文件复制到库中。

在库中自动创建一个新的等效MAST模型。生成的模型的名称与FMU的modelDescription.xml中定义的< modelelldentifier >相同,并且是小写字母。同时还创建了原理图符号。在此过程中,符号辅助向导将打开,如下图所示。从符号助手向导中,可以重新排列引脚的位置,旋转符号方向,并查看转换模型的日志信息。

FCC

Figure 3**Symbol Assistant Wizard

3.右键单击添加了新FMU模型的库。从弹出式菜单选择编译库…或Update Library…。编译库后,新的FMU模型就可以进行仿真了。新的MAST模型的文档在更新库之后也可以得到。

手动将FMU导入库

手动将FMU导入库要手动将FMU添加到库中,执行以下步骤:

1.右键单击要添加FMU的库,在弹出菜单中选择add Items…。打开文件浏览器。

2.在“文件名”列表中选择文件类型FMU Models (*. FMU)。

3.选择FMU,单击Open。所选的FMU被添加到库中。另外,在库中生成一个新的MAST模型和一个符号。

4.编译新模型。右键单击添加了新FMU模型的库。从弹出式菜单选择编译库…或Update Library…。库被编译,新的FMU模型已经准备好进行仿真。此外,在更新库之后,可以获得新的MAST模型的文档。将FMU手动添加到库的方法如下图所示。

将FMU手动添加到库的方法如下图所示。

FCC

*Figure 4 *Manual Addition of an FMU to a Library

**使用AIM命令将FMU转换为MAST模型
**

本实例将考虑FCC和CISPR标准,以检查设计是否符合标准。图2所示为本标准对a类设备规定的传导辐射限值作为频率的函数。

也可以通过AIM命令导入FMU: FMU2MAST。AIM命令格式如下:

FMU:FMU2MAST foo.fmu -output dirname -statepin discretelnu -debug onloff

上述语法中各选项的说明如下:

  • -output:指定保存新生成的MAST模型的目录名。如果未指定输出目录名,则新生成的MAST模型保存在当前目录中。
  • -statepin:指定FMU导入过程中用于状态引脚的单元类型。默认选项是离散的。使用此选项,状态引脚将使用FMU中定义的相同单元创建。如果该选项指定为nu,则创建状态引脚时不带任何单位,并且忽略FMU中定义的端口类型的单位。
  • -debug:将调试信息记录在日志文件中。如果设置为on,则详细的调试信息将记录在日志文件中。默认为关闭。

使用AIM命令FMU:FMU2MAST,只生成等效的MAST模型,不需要为其生成符号和文档。要使该模型可用于模拟器,您需要将该模型添加到库并编译库,以便创建符号和文档。有关如何将MAST模型添加到库的更多信息,请参阅库管理器用户指南。

03

支持的模拟分析

支持的分析

  • 工作点分析
  • DT(工作点扫描分析)
  • 交流小信号分析
  • PAC(周期交流分析)
  • 瞬态分析
  • Alter(参数变更)
  • 并行模式
  • 蒙特卡罗统计分析
  • 参数扫描分析
  • 多变量分析
  • PZ(零点极分析)
  • 灵敏度分析

不支持的分析

  • 应力分析:由于FMU中没有可用的应力信息,因此在应力分析中不支持生成的MAST模型。然而,如果需要为导入的FMU模型支持应力分析,您可以将应力测量添加到生成的MAST模型的control_section中。
  • 故障分析:故障分析不支持导入的FMU模型。

04

模型局限性

由FMU生成的MAST模型有以下几个限制:

  • Saber不支持FMI 1.0。Saber只支持FMI 2.0。
  • FMI有两个接口:模型交换和联合仿真。
  • Model-Exchange接口标准中有导入和导出两种模式。
  • FMU可以在一个FMU中为多个平台提供二进制库。目前,FMU导入仅支持Windows和Linux上32位格式的FMU。这两个平台都不支持64位fmu。
  • 在FMI中,用字符串类型定义端口是合法的。但是,Saber不支持字符串类型的端口。因此,具有字符串端口的FMU不能转换为MAST模型。FMU中具有枚举单元的离散端口被转换为具有单元的等效状态引脚。但是,FMU中没有为用于离散端口的枚举单元定义冲突解决函数。因此,等效的MAST状态引脚没有冲突解决功能。如果需要将这种引脚连接到具有分辨率功能的MAST引脚上,则可以开发转换模型,将没有分辨率功能的逻辑转换为具有分辨率功能的逻辑。FMI目前不支持电、液压等节能接口。
  • 在FMU导入过程中,不可能使用能量保守引脚创建MAST模型。但是,如果系统没有能量保守变量作为端口,并且系统在模型内部满足KCL和KVL定律,则可以将能量保守FMU系统转换为单个MAST模型。
  • FMI和MAST都有一个物理单元定义。但是,FMI物理单位并不转换为等效单位。所有连续变量都转换为MAST,没有nu(无单位)单位。然后将枚举单元转换为等效的MAST枚举类型和状态单元。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分