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