|
功能模拟接口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 |
|