FMU/FMI
FMU/FMI是用于机电一体化设计的最新标准与接口,对于正向设计而言,它会对于复杂的系统设计带来很大的便利,虽然它最初来源于汽车这样的复杂设计,但同样可以被其它领域所采用。
1 FMU/FMI背景与基本概念
1.1 FMU/FMI背景
在汽车工业、航空、机电装备等领域都会存在着不同的应用、建模系统,用于解决不同的问题,为了仿真整个系统,往往需要在不同的仿真程序之间进行交互,而且系统的集成必须将来自不同供应商的仿真环境协同工作才能完整的调试,这产生了模型交互的需求,但却没有标准化的接口,因此为了解决这个问题,开发了FMU/FMI。
工具独立的标准用于支持动态模型的交互以及联合仿真,用于解决汽车工业中模型互操作问题,最初是由欧盟资助的Modelisar项目,由戴姆勒公司承担该项目,而第一个版本是在2010年发布,改善的版本在2014年发布,由Modelica协会积极的主持开发。
1.2 FMU/FMI基本概念与功能
1.2.1 FMI是什么?
功能打样接口(FMI)是一个工具独立的标准,通过XML文件与编译的C代码的融合来支持动态模型的交互和联合调试。
图2所示的就是FMI的XML格式描述文件。
1.2.2 FMU
FUM是一个压缩文件(*.fmu)包含了XML格式接口数据描述和功能(采用C代码或二进制实现)。
所谓的FMU就是采用FMI接口而开发的软件组件。
FMU主要干两件事情:
(1)FMI用于模型交互
其意图是建模环境可以以输入/输出模块形式生成一个动态系统模型的C代码,可以被其他建模和仿真环境使用。模型(没有求解器)用微分,代数和离散方程来描述,包括时间,状态和速度。
(2)FMI用于协同仿真
目的是在协同仿真环境中将两个或更多模型与解算器耦合。子系统之间的数据交换仅限于离散通信点。 在两个通信点之间的时间内,子系统通过各自的解算器彼此独立解决。主算法控制子系统之间的数据交换和所有从模拟求解器的同步。该接口允许标准以及高级主算法,例如可变通信步长的使用,更高阶信号外推和错误控制。
2 FMU/FMI实现过程
在2016年贝加莱即投入在FMU/FMI接口的研发,由于之前在2008年贝加莱即推出MATLAB/Simulink的接口导入,即,贝加莱的Automation Studio作为一个控制系统的集成开发平台,与建模仿真的MATLAB/Simulink进行了接口的开发,包括MapSim-来自Maple公司的建模仿真软件,因此,贝加莱可以支持与他们相关的FMU,如图,在建模仿真平台如MapleSim上生成的FMU就可以被Automation Studio导入。
2.1 基于建模仿真软件的导出FMU
在其软件中会有FMU Component Code Deneration这样的工具,即可生成FMU模块。
对于MATLAB/Simulink也是同样如此,其FMI Target for Simulink® Coder™用于实现FMU的生成,这样的FMU就可以为Automation Studio所导入。
对于客户而言,其基于建模仿真软件所开发的模型或算法,可以导出FMU的方式形成一个ZIP文件,包括了XML的描述与代码文件两个部分,然后导入到Automation Studio中。
2.2 基于3D建模的导出仿真
对于机电一体化对象的开发而言,如果可以对机械的三维模型直接导入到MapleSIM即可实现便捷的对象快速建模,并直接仿真其控制工艺,生成FMU在直接到控制器来实现硬件在环测试,这样就可以节省整个测试验证的过程。
3 FMU/FMI与数字孪生
那么,我们就可以理解Digital Twin是为了解决客户的问题,而采用的一种解决问题的方法系统,那么,在过去有各种CAD/CAE/CAM/CAPP等软件,本身就是在完成Digital Twin的事情,而今天面对数字时代,需要更多的软件的协同开发,那么,就会需要按照数字时代而统一命名为“Digital Twin”。
Digital Twin就像阳明所说的“知行合一”,“知”可以被理解为虚拟世界,而“行”可以被理解为物理世界,阳明先生说“知之真切笃实处即为行,行之明觉精察处即为知”,也就是说,理论指导实践,实践反馈又来优化理论,两者之间为一体,均服务于“致良知”—你可以理解为这个良知,即为“本心”—创新的源头,是为了解决客户的问题。