简介功能模拟单元(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的示意图如下图所示:
*Figure 1 *Data flow between the environment and an FMU
02
Saber导入FMU的方法
通过拖放方法将FMU导入库
导入FMU最简单的方法是拖放方法。要将一个FMU导入到库中,请遵循以下步骤:
1.打开文件浏览器,选择要导入的FMU (*. FMU),并将其拖放到现有库中。见下图。
*Figure 2 *Import of an FMU by Drag-and-Drop method
2.将FMU放入库后,将FMU文件复制到库中。
在库中自动创建一个新的等效MAST模型。生成的模型的名称与FMU的modelDescription.xml中定义的< modelelldentifier >相同,并且是小写字母。同时还创建了原理图符号。在此过程中,符号辅助向导将打开,如下图所示。从符号助手向导中,可以重新排列引脚的位置,旋转符号方向,并查看转换模型的日志信息。
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手动添加到库的方法如下图所示。
*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枚举类型和状态单元。
-
二进制
+关注
关注
2文章
792浏览量
41592 -
仿真器
+关注
关注
14文章
1016浏览量
83621 -
模拟器
+关注
关注
2文章
865浏览量
43156 -
FCC
+关注
关注
0文章
201浏览量
25813
发布评论请先 登录
相关推荐
评论