uesoft 发表于 2016-5-4 21:33:27

功能模拟接口 Functional Mock-up Interface

功能模拟接口FMI Functional Mock-up Interface
功能样机单元FMU Functional Mock-up Unit

https://en.wikipedia.org/wiki/Functional_Mock-up_Interface

功能模拟接口(或FMI)定义了一个标准化的接口,用于计算机模拟来开发复杂的网络物理系统。

FMI的愿景是支持这种做法:如果真实产品是一系列以复杂的方式相互作用的部分组合而成,每个部分各由一套复杂的物理规律控制,那么就有可能创造一个从一组模型装配的虚拟的产品,每个模型代表一组部件,每一个模型的物理规律也是(采用电子、液压、数字软件..)数字化组装的模型的控制系统。FMI标准也提供了基于模型的系统开发方法,并用于在车辆里面的电子设备(例如ESP控制器、主动安全系统、燃烧控制器)驱动的功能设计示例。FMI方法可以覆盖系统建模、仿真、验证和测试等活动。

为了创建FMI标准,大量的软件企业和研发中心已工作在一个合作项目,这项目由达索系统Dassault Systèmes主导的欧洲联盟以MODELISAR名称建立。MODELISAR项目开始于2008年,定义FMI规格,提供技术研究,通过合作伙伴详尽描述的用例证明FMI概念,和使能工具供应商建立先进的原型或在某些情况下甚至产品。

FMI规格发展由戴姆勒Daimler AG协调。

2011年MODELISAR项目结束后,FMI被管理和开发作为一个Modelica协会项目Modelica Association Project (MAP)。

创造能够组装的模型所需的FMI四个方面已经被包括在MODELISAR项目:

FMI模型交换,

FMI协同仿真,

FMI应用,

FMI用于PLM(产品生命周期管理相关数据和模型的集成)。

在实践中,通过软件建模工具的FMI实现使得可以创建互相连接的仿真模型或创建一个软件库FMU(功能样机单元)。

[ 1 ]

内容

1FMI方法

2许可证

3架构

4例子

5比较Simulink S-函数

6工具支持

7参见

8参考文献

9外部链接

FMI方法

典型的FMI方法是在以下几个阶段的描述:

建模环境通过微分或代数或离散时间的方程、状态和步骤事件描述一个产品子系统。这些模型可以是大的用在离线或在线仿真,或可小的用在嵌入式控制系统;

作为一种替代,一种工程工具定义了用于控制车辆系统的控制器代码;

这样的工具生成并导出组件在FMU(功能样机单元);

然后,一个FMU可以导入在另一个环境被执行;

几个FMU可以顺便地通过协同仿真环境在运行时合作,由于其接口FMI的定义。

许可证

FMI规范分发在开放源代码许可证:

规范被许可在CC-BY-SA (Creative Commons Attribution-Sharealike 3.0 Unported) CC_BY_SA 3.0

符合这文档的c-header和XML Schema文件,可用在扩展的BSD许可证,即,其修改也必须提供在BSD许可证。

架构

每个FMU(功能样机单元)模型分发在zip文件带扩展名.fmu,它包括:[ 1 ]

一个XML文件,包含在其他东西里FMU使用的变量定义;

模型所用的所有方程(定义为一组c函数);

可选的其他的数据,如参数表,用户界面,模型可能需要的文档。

例子

下面是Modelica发布的一个FMI模型描述实例。
<?xml version="1.0" encoding="UTF8"?>
<fmiModelDescription
fmiVersion="1.0"
modelName="ModelicaExample"
modelIdentifier="ModelicaExample_Friction"
...
<UnitDefinitions>
   <BaseUnit unit="rad">
      <DisplayUnitDefinition displayUnit="deg" gain="23.26"/>
   </BaseUnit>
</UnitDefinitions>
<TypeDefinitions>
   <Type name="Modelica.SIunits.AngularVelocity">
      <RealType quantity="AngularVelocity" unit="rad/s"/>
   </Type>
</TypeDefinitions>
<ModelVariables>
   <ScalarVariable
      name="inertia1.J"
      valueReference="16777217"
      description="Moment of inertia"
      variability="parameter">
      <Real declaredType="Modelica.SIunits.Torque" start="1"/>
   </ScalarVariable>
...
</ModelVariables>
</fmiModelDescription>

Simulink的S-函数的比较

FMI经常被与Simulink的S-函数比较,因为二者技术都可用于集成第三方工具。S-函数是用来规定一个动态系统的一种计算机语言描述。它们被编译成MEX文件,需要时动态链接到matlab。函数使用一个调用语法与Simulink的方程求解器进行交互。这种相互作用类似于内置的Simulink模块和求解器之间的相互作用。[ 2 ]

FMI的支持者解释,FMI模型比Simulink的S-函数有几个优势:【3】

S函数的格式是专有的,而FMI架构授权在BSD许可证下。

S函数建立的块比FMI复杂得多,使得很难集成在其他仿真模拟器除了Simulink本身。

此外,S函数格式是Simulink特定的。

S函数不适合嵌入式系统,由于函数的内存开销。

引用FMI/FMU时也有一些局限性:[ 4 ]

内存参数,状态,输入,和输出不直接暴露在外面,与此相反,ECU软件通常考虑如何组织有关存储器以允许透明、简单和高效。

事件处理-事件可以在不可预知的方式中增加实时系统的运行时间。

有潜在危险的特征可以包括在ECU-一些对离线模拟有感觉的功能不应当出现。FMI支持或不明确禁止的功能例子,包括记录和I/O操作如print()。

数据类型支持-优化代码时更多支持的数据类型是必要的。例如,现在没有办法区分一个uint8和uint32变量。

工具支持

截至2011.11,FMI支持以下仿真框架:[ 1 ]看全部,网页的最新的目录和详细资料。

AMESim-仿真软件,用于多领域的机电一体化系统的建模和分析,来自Siemens PLM Software

ANSYS SCADE Display -人机界面的嵌入式软件设计

ANSYS SCADE Suite -用于关键系统的基于模型的嵌入式软件开发

ANSYS Simplorer -多域系统建模仿真环境

ASIM – AUTOSAR生成器,来自达索系统Dassault Systèmes

Adams - 高端多体动力学仿真软件,来自MSC软件

Atego Ace – 协同仿真环境和仿真,带AUTOSAR and HIL支持

CANoe - 综合性的软件工具,用于开发、测试与分析整个ECU的网络和单个的ECU

CATIA V6R2012 – 产品设计和创新环境,包括基于Modelica的系统工程工具,来自达索系统

coreDS for FMI -工具,整合FMI/FMU成一个高级架构High-Level Architecture (HLA)或分布式交互仿真Distributed Interactive Simulation (DIS)模拟。

Cybernetica CENIT - Industrial product for nonlinear Model Predictive Control (NMPC) from Cybernetica.非线性模型预测控制(NMPC)工业产品,来自Cybernetica

Cybernetica ModelFit - 软件用于模型验证,状态和参数估计,使用记录的过程数据。by Cybernetica

ControlBuild-IEC 61131-3标准控制应用环境,来自达索系统Dassault Systèmes

cosimate–协同仿真环境,来自ChiasTek

DSHplus –流体动力仿真软件,来自FLUIDON

Dymola 7.4 – Modelica环境,来自达索系统Dassault Systèmes

Flowmaster - 建模热流体系统的仿真软件

FMI Add-In for Excel –批模拟FMU在微软Excel

FMU compliance checker – 软件,用于验证FMU符合FMI标准

FMI Library – C库导入自定义应用的FMU

FMU Trust Centre - 密码保护和安全产品包括存储模型签名;安全认证和保护授权(合作)模拟

FMU SDK – FMU软件开发工具包,来自qtronic

GT-SUITE -动力系统和车辆系统的多物理仿真平台

Hopsan -采用TLM方法的分布式系统仿真工具

ICOS Independent Co-Simulation – 独立协同仿真环境,来自虚拟汽车研究中心Virtual Vehicle Research Center

IPG CarMaker–通过建模和协同仿真环境,来自Modelon

JModelica.org – 开源Modelica环境,来自Modelon

MapleSim -通过Maplesim连接器对FMI,来自Maplesoft

MATLAB –通过Modelon提供的 FMI Toolbox或通过Dassault Systèmes提供的 FMU 导出从 Simulink

OPTIMICA Studio – Modelica环境,来自Modelon

MWorks 2.5 – Modelica环境,来自苏州同元

NI VeriStand – 实时测试与仿真软件,来自国家仪器NI

LabVIEW – 图形化编程环境用于测量、试验和控制系统,来自国家仪器NI

OpenModelica –Open source Modelica environment from OSMC

Python–通过Modelon提供的PyFMI,也可作为JModelica.org的部分

Silver 2.0 –软件在环路(SIL)虚拟集成平台,来自QTronic

SIMPACK 9 – 高端多体动力学仿真软件,来自SIMPACK AG

SimulationX 3.4 – Modelica environment from ITI

Simulink – via Dymola 7.4 using Real-Time Workshop

Simulink – via @Source

Simulink – via FMI Toolbox from Modelon

TISC – 协同仿真环境,来自TLK-Thermo

TWT Co-Simulation Framework - 通信层工具用于灵活插接模型一起进行联合仿真;前端设置、监测和后处理包括

TWT Matlab/Simulink FMU Interface - FMI兼容的即插即用接口到MATLAB/Simulink,可作为一个集成块

Virtual.Lab Motion -是一个高端的多体软件,来自LMS International

Wolfram SystemModeler - Modelica环境,来自Wolfram Research

xMOD - 异构模型集成环境与虚拟仪器和实验室,法国石油与新能源研究院(IFPEN)的子公司D2T发布。

ePHASORsim - 来自OPAL-RT Technologies Inc.,通过OpenModelica对电力系统暂态稳定仿真

参见

Modelica

Simulink
页: [1]
查看完整版本: 功能模拟接口 Functional Mock-up Interface