原标题:SimCube对FMI联合仿真标准的实现
发展简史
在2010年的时候,我们承担了一个大项目的一部分,将搭建一个仿真平台集成多家高校自研的计算程序进行某个基于时间的动态过程仿真计算。
彼时,FMI标准刚刚发布了1.0版本。我们的项目在2014年交付时,FMI发布了2.0版本,估计在今年FMI将发布3.0版本。
在当时的项目里我们没有采用FMI标准,该项目成果后来转化为SimCube软件产品,在2015年1月正式发布1.0版本,也在同年的4月份SimCube1.2版本中,我们实现了FMI1.0,2.0两个版本中的联合仿真(Co-Simulation)标准,在16,17两年里我们又进一步完善了对该标准的支持。
纯真年代
回到刚才提到的仿真平台项目,基本需求如下图所示(使用SimCube建模的流程图):集成四个不同学科的计算模块,前三个是使用C语言开发的,第四个是使用Matlab开发的,包裹四个计算模块的大模块是总控中心,它将根据业务逻辑调度底下四个子模块的运行。
大概简述下当时的业务逻辑:从t=0开始,计算模块1将以一个时间步被调度起来持续迭代运行,当上层的联合仿真探测其某个输出满足某个条件时,将调度计算模块1与2一起计算,它们之间通过上层的联合仿真有数据通信,两个计算模块的时间步长不一致,因此