FMI、SSP、DCP简介
系统仿真技术的应用对象通常是多学科的复杂系统,在已建立各学科基础模型的基础上,构建“大”系统应用模型就必然涉及系统模型集成的问题。这可能面临以下难题,并衍生出更多对系统仿真技术在工程中应用的需求:
- 模型是多来源且异构的,其由不同的软件工具开发,导致难以在不同工具间传递和重用
- 工具之间的接口不统一,难以实现多工具的联合仿真
- 封装模型传递过程中无法有效利用已确定的仿真参数和架构信息或数据,需要二次设置参数和重新拖拽连接模型
- 数据交互的通信协议和接口不统一,联合调试需要投入过多的配置工作
- 代表非实时、软实时和硬实时系统之间的软硬件工具的联合仿真通信方法有待完善,简化应用配置工作,降低应用门槛
- ……
可见,工程中为“落地”应用系统仿真技术还有很多“工作”要做,可喜的是这些问题并不是中国系统仿真应用独有,而是世界共性问题。由于多方面的原因,欧美在解决以上系统仿真应用问题方面走在了前面,提出了一系列的解决方案,包括仿真标准和配套的软硬件产品。本期由小编整理了系统仿真相关的三个标准:FMI、SSP、DCP与大家分享。
1 FMI
当前系统仿真工作开展过程中遇到的难题如下图所示:
由于历史的原因,各单位和部门采购的仿真工具不同,各工具之间的接口不能普遍兼容,这就导致了仿真工具碎片化的问题。仿真工具碎片化带来的直接问题就是模型的重用性低,增加了在不同仿真软件中的重复建模工作量。同时,在整个V流程中模型的通用性和一致性也无法保证,使得仿真分析工作从V流程的前端到后端要不停的切换软件平台,要投入过多的精力开发联合仿真软件定制接口,这为实现模型的继承重用带来了过大的人力和物力成本支出;另一方面,各复杂系统研发单位为提高系统的设计效率和质量,都期望能在设计早期对需求进行验证和确认,但在引入仿真技术解决问题的同时,集成商和供应商的模型如何传递,如何保护知识产权,成为需要解决的急迫问题。
1.1 FMI简介
为应对工具碎片化、模型重用和知识产权保护的问题和需求,欧洲仿真届提出了FMI(Functional Mock-up Interface)标准,它是一个不依赖于工具的标准,其通过XML文件和已编译的C代码的组合来同时支持动态模型的模型交换( Model Exchange)和联合仿真(Co-Simulation)。
FMI标准的诞生来自于欧盟Modelisar项目,最初由Daimler AG发起、组织和领导,有28个欧洲伙伴参与,这包括工具供应商、工业用户和科研机构。Modelisar项目于2008年启动,第一期项目到2011年结束,第一期项目共投入经费超过3千万欧元,制定了FMI1.0标准。2012年,FMI2.0标准的制定纳入到Modelica协会管理下(Modelica协会是Modelica语义制定和维护的非营利组织),并在2014年初推出了FMI2.0的成熟标准。
当前,FMI标准已成为全球接受程度最高、应用最广泛的功能和性能模型交互重用的接口标准。截至2020年6月,已有超过百款全球领先的模型在环、软件在环、硬件在环、软件开发等软、硬件工具支持FMI标准(更多详细信息请参见FMI官网:https://www.fmi-standard.org/tools)。工业界以BOSCH、Daimler、Dassault Systèmes、dSPACE、ESI ITI、IFPEN、Maplesoft、Modelon、QTronic、Siemens、SiemensPLM、Altair、Armines、AVL、DLR、ETAS、Fraunhofer (IIS/EAS First,SCAI)、IBM、ITK Engineering AG、Open Source Modelica Consortium、Synopsys、TWT、University of Halle等各领域工业公司、研究所、高等院校使用或宣布支持FMI为里程碑,使得由欧盟主导的FMI标准已经成为全球公认的功能和性能模型重用的接口标准。
通过FMI标准的制定和推广,从技术方面比较好的解决了仿真工作开展过程中遇到的工具碎片化所带来的模型重用和知识产权保护等问题和需求。如图3所示。系统集成商和供应商都遵循FMI标准,供应商各自建立的仿真模型可以通过FMI标准导出FMU文件给集成商,使得集成商可以快速构建系统级模型。供应商之间也可根据产品设计和分析的需要互换相关联的模型,组成自己关心的系统级仿真模型。基于FMI标准的模型集成重用解决方案可以满足不同层级的复杂系统开发人员集成模型,并站在系统的角度分析所负责的系统、子系统或部件与其他相关子系统或部件耦合作用的情况,为整个系统的设计带来更丰富、更科学的分析手段,为分析跨学科和多系统交联的验证和确认提供了技术方法。同时,无论是供应商给集成商提供集成模型,还是供应商之间互换模型,都不用担心知识产权保护的问题,因为FMI标准提供了模型导出加密的方法,完全可以满足工程需要。
1.2 FMI的主要设计思想
FMI为针对功能和性能模型重用的接口标准,通过FMI标准导出的文件是一个压缩包,文件的扩展名为“.fmu”,故称依据FMI标准导出的用于模型重用的文件为FMU文件,即Functional Mock-up Unit。FMU的压缩包文件里包含了描述模型接口信息和数据的“.xml”文件、实现模型动态行为功能的文件(C代码或二进制文件)和其他用户希望包含在FMU中的文件和数据。
FMI标准共包括两种模型重用的方法:Model Exchange(模型交换)和Co-Simulation(联合仿真)。两者的区别是:依据Model Exchange方法导出的FMU文件不包含求解模型方程的求解器;依据Co-Simulation方法导出的FMU文件包含求解模型方程的求解器,是否包含求解器是两者最大的区别。
由于FMI标准是一个通用的第三方接口标准,不依赖于任何工具特有的接口形式。所以,只要是支持FMI标准的工具都可以将其他工具导出的FMU文件导入到自身的软件平台内,这时仿真软件会自动解析FMU中的“.xml”文件,并在软件的操作界面上给用户提供操作FMU的选项,例如参数设置值的调整,如果是依据Co-Simulation方法导出的FMU文件,用户还可通过界面设置此FMU的求解步长。对于描述模型动态行为的C或DLL文件,导入FMU的仿真软件会自动建立自身求解器与C或DLL文件的关联关系,并能将用户通过界面设置的一些参数和求解选型应用到稍后的求解过程中。依据FMI标准对模型导出和导入的操作简单,用户无需参与过多的软件配置即可完成,这也是FMI标准作为第三方独立接口标准得到大范围推广和应用的基础和优势。
1.3 Model Exchange方法
Model Exchange,即模型交换,此方法导出的FMU文件不包含求解器,其只包括输入/输出接口和描述物理动态行为的微分代数方程、时间、状态和离散事件等信息。FMU的求解使用导入它的工具的求解器,并与其他模型一起求解,由于使用一个求解器,提高了求解的效率和精度,此方法特别适合大规模模型集成的应用情况,同时其求解占用的系统开销很小,也适合嵌入式系统的应用。FMI标准的专家推荐模型集成和重用优选Model Exchange方法。
1.4 Co-Simulation方法
Co-Simulation即为联合仿真方法,此方法并不是FMI标准首创,而是在FMI标准的Co-Simulation方法制定之前既已存在。所以这里先介绍一下传统的Co-Simulation方法,然后介绍FMI标准的Co-Simulation方法与传统方法的区别和联系。
传统的Co-Simulation方法通常为特定软件之间制定的联合仿真接口,依赖于商业工具厂商之间的合作。如果不同的仿真工具之间没有合作开发接口,则这两款仿真工具很可能无法进行联合仿真。解决方法通常是用户自己根据需求开发定制的联合仿真接口。缺点是需要投入比较多的软件二次开发工作才能实现不同工具之间的联合仿真,同时,传统的联合仿真接口配置麻烦,依赖所使用的软件工具的版本,且超过三个工具之间的联合仿真易出错,这增加了用户使用的门槛。
传统联合仿真的定义和动机是:
1)定义:
- 几种仿真工具的耦合
- 每个工具作为模块耦合问题的一个组成部分
- 数据交互被限于离散的通信点
- 在通信点之间各子系统独立求解
2)动机:
- 异构系统的仿真
- 大系统的分割和并行化
- 多速率集成
- 硬件在环仿真
FMI标准的Co-Simulation方法作为后制定者,借鉴了传统联合仿真技术,其涵盖了传统Co-Simulation技术的全部功能点,并在此基础上做了进一步的优化和丰富,例如:
- 支持主/从架构
- 考虑不同能力的仿真工具
- 支持简单和复杂的耦合算法:
- 迭代和直接反馈算法
- 固定和变化的通信步长
- 允许(高阶)连续输入的插值
- 支持本地和分布式联合仿真方案
FMI标准的Co-Simulation方法统一了之前各仿真软件工具接口“各自为政”的乱象。作为第三方独立的接口标准,为不同仿真软件之间的联合仿真提供了便利的技术途径。
FMI标准的Co-Simulation方法按照不同的使用场景,共分为三种模式:
- 模式一:代码导出方式的Co-Simulation(Co-Simulation with generated code on a single computer)
此种模式导出的FMU文件脱离原导出工具,并在使用时无需原导出工具的License限制。将FMU导入到主控软件中,主控软件占用单独的一个进程控制多个FMU同时求解。
- 模式二:工具耦合方式的Co-Simulation(Co-Simulation with tool coupling on a single computer)
此种模式导出的FMU文件绑定原导出工具的License,FMU文件只作为联合仿真的接口封装和数据对接传递功能,模型的实际求解还在各自的软件内部进行,受到各自软件的License控制。主控软件负责各软件之间特定时间点的数据互换共享。无论是主控软件还是从属软件,它们各自占用一个进程独立进行求解。
- 模式三:分布式方式的Co-Simulation(Distributed Co-Simulation infrastructure)
模式三与模式二类似,应用模式三时导出的FMU文件绑定原导出工具的License,FMU文件只作为联合仿真的接口封装和数据对接传递功能,模型的实际求解还在各自的软件内部进行,受到各自软件的License控制。主控软件负责各软件之间特定时间点的数据互换共享。模式三与模式二的区别在于模式二是在一个计算平台上的多个进程运行各个联合仿真软件,而模式三将各个仿真软件分布于不同的计算平台,不同计算平台之间的数据互换共享除了依赖于FMU的封装接口,还需要计算平台之间的通信层传输数据。模式三为分布式仿真,各仿真软件独占各自的计算平台资源,其可仿真的系统模型规模要大于模式二。
对于FMI标准的Co-Simulation方法,FMI标准只规定了封装接口,而没有定义Co-Simulation实现的算法,未定义的部分由各软件工具厂商自行选择实现技术和路径。对于模式三,FMI标准同样没有定义分布式方案的通信技术方法,但是下文介绍的DCP可供参考或由工具厂商自行选择实现技术和路径。对于用户来说,只要联合仿真的工具都遵循FMI标准,那么用户在使用时就会感受到配置简单,使用方便。
2 SSP
SSP(SystemStructure and Parameterization)是一种与工具无关的格式,用于描述、打包和交换系统的结构及其参数化。该标准由一组基于XML格式的文件组成,这些XML使用信号流和参数化的方法描述了一个组件模型网络。该标准的XML描述文件是工具中立的,主要用于不同工具之间被仿真系统的信息交换。
基于SSP标准的压缩包文件扩展名是“.SSP”,代表System Structure Package的缩写。它是一个包含系统要交换的所有信息(FMUs、系统结构定义、参数)和相关资源的压缩文件,如下图所示。
*.SSP压缩包内部可能包含的文件含义如下:
- *.fmu:Functional Mock-up Unit
- *.ssm:SystemStructure Parameter Mapping
*.ssv:SystemStructure Parameter Values
*.ssd:SystemStructure Definition
*.ssb:SystemStructure Signal Dictionaries
SSP标准的主要目的是:
- 为组件网络(特别是FMUs)的连接结构定义标准化格式。
- 定义一种标准化的方法来存储和应用这些组件的参数。
- 所开发的标准/APIs在开发过程的所有阶段都可用(架构定义、集成、仿真、MiL、SiL、HiL中的测试)。
- 视作FMI2.0标准的拓展,与FMI在功能上有效互补。
- SSP与FMI组合使用为用户带来了极大的便捷性。FMI解决了数学方程和求解器的问题,SSP解决了参数、接口连接和仿真架构布局问题,两者相辅相成,极大的提高了系统仿真技术在系统集成和模型重用中的便利性。
3 DCP
DCP(DistributedCo-Simulation Protocol),即分布式联合仿真协议。它是一种应用层通信协议,旨在将模型或实时系统集成到仿真环境中。它支持使用底层传输协议(如UDP、TCP或CAN)交换与仿真相关的配置信息和数据。同时,DCP支持集成来自不同供应商的工具和实时系统。DCP旨在提高基于工作流仿真的效率,并减少系统集成中的调试工作量。
DCP与FMI标准一样,由众多的工业企业、研究所和高等院校参与,在欧盟ITEA3 ACOSAR项目支持下,从2015年开始,到2018年结束,累计投入790万欧元经费和60人年的工作量,最终形成了DCP规范、应用示例和检查DCP实现程度的测试套件等成果。
DCP是一个独立于特定供应商的第三方标准,这与FMI标准建立之初的目的一样。DCP作为一种通信协议,可在分布式仿真、协同仿真、硬件、软件或模型在环测试和流程自动化等应用程序中应用,实现耦合策略、高效的数据传输和支持语义数据处理等操作功能。DCP可应用于许多不同的工业行业,比如汽车、航空航天、海事或体系仿真领域。
DCP提供的集成方法可跨越整个V流程,从设计早期到设计后期,实现模型在环、软件在环、硬件在环中各工具的集成和知识复用,支撑了基于模型的系统工程中模型的连续传递和重用。DCP扩展了FMI标准在实时领域的应用范围,同时,DCP也支持实现云仿真与实时仿真系统的连接,和基于真实试验台与仿真系统的连接建立特定的测试系统。DCP的应用促进了ICT解决方案到其他领域的推广,也促进了自动驾驶、自适应耦合策略在内的先进智能技术的研究。
4 小结
FMI、SSP、DCP犹如系统仿真技术在复杂系统模型集成和仿真应用时的利器:FMI提供了统一的接口实现模型交换(ME)和联合仿真(CO)两种工作模式;SSP有效补充了基于FMI标准进行模型重用时的参数和架构信息与数据;DCP规范了通信,将FMI应用范围推广到实时应用领域,且实现了V流程下MiL、SiL、HiL模型的连续传递重用,实现了非实时、软实时和硬实时系统的通信联合仿真。