分布式全数字联合仿真系统与方法与流程

文档序号:15213228发布日期:2018-08-21 15:31阅读:499来源:国知局

本发明涉及数字化系统仿真技术,具体涉及分布式全数字联合仿真系统与方法。



背景技术:

基于模型的系统工程越来越多的应用于v字型产品研发流程中,数字建模仿真能够对产品的设计方案进行全面的验证和优化,显著缩短研发周期,降低成本。在新一代航空飞行器机电和能量综合化方向发展的背景驱动下,仿真需求从单一子系统、单一学科向整合控制子系统、液压子系统、燃油子系统、环控子系统和能量分配子系统等多系统、多学科的联合仿真发展。现有联合仿真主要针对两种仿真工具间,通过提供两种模型间的接口实现数据交换,模型接口不具有通用性,难于做到真正多学科全系统的数字化仿真。分布式联合仿真系统采用fmi(functionalmock-upinterface)标准,实现了异构模型间的统一接口,分布式结构可以实现基于网络通信的联合仿真,使得异地的协同仿真得以实现,分布的仿真模型均以黑盒模型形式存在,保护了知识产权。



技术实现要素:

针对上述技术不足,本发明的目的提供一种分布式全数字联合仿真系统与方法。耦合系统由多个子系统组成,并且各子系统间存在耦合关系,例如,航空飞行器机电系统包括控制子系统、液压子系统、燃油子系统和环控子系统等,各子系统间存在信号交联关系。对飞行器机电系统整体的设计进行数字化验证,需要整合各子系统完成综合仿真。本发明考虑到能够联合多种异构系统的模型,通过网络通信实现不同地域的联合仿真,提出了耦合系统的分布式联合仿真系统。

本发明解决其技术问题所采用的技术方案是:分布式全数字联合仿真方法,包括以下步骤:

分布式联合仿真子系统客户端实现fmu文件输入,并根据分布式联合仿真服务端发来的输入变量值对文件中的fmu模型进行仿真,得到当前时刻的仿真结果;将当前时刻的仿真结果作为输出变量值发送给分布式联合仿真服务端;

分布式联合仿真服务端根据每个分布式联合仿真子系统客户端的地址和变量名称,进行子系统交联关系表达和耦合系统的拓扑关系分析;将当前时刻接收到的各客户端的输出变量值,按照耦合系统的拓扑关系发送给对应的分布式联合仿真子系统客户端作为下一时刻的输入变量值;

分布式联合仿真结果可视化客户端根据需要显示的变量和分布式联合仿真子系统客户端的地址,将分布式联合仿真服务端发来的该分布式联合仿真子系统客户端输出变量值进行显示。

所述分布式联合仿真子系统客户端执行以下步骤:

客户端人机接口模块实现输入fmu文件,填写分布式联合仿真服务端的地址,并将地址发送给通信接口模块,fmu中xml和dll信息发送至客户端仿真控制模块;

客户端仿真控制模块对fmu文件中xml和dll信息表述的模型进行仿真,得到当前时刻的仿真结果交给通信接口模块,并等待下一时刻的输入变量值;

通信接口模块将分布式联合仿真服务端发来的下一时刻的输入变量值发送至客户端仿真控制模块,并将当前时刻的仿真结果发送给分布式联合仿真服务端。

所述分布式联合仿真服务端执行以下步骤:

服务端人机界面模块将端口号发送给通信接口模块;

通信接口模块监听到有分布式联合仿真子系统客户端连接该服务端时,记录下每个客户端的ip和端口号,以及每个客户端发出的输出变量和输入变量名称,并发送给联合仿真总控制模块;

联合仿真总控制模块进行子系统交联关系表达和耦合系统的拓扑关系分析;将当前时刻接收到的各客户端的输出变量值,按照耦合系统的拓扑关系发送给对应的客户端作为它们在下一时刻的输入变量值。

所述子系统交联关系表达,通过收集所有客户端发来的输入变量和输出变量名称,用一张有向图表达各子系统客户端间的数据流向关系,有向图中的顶点表示客户端,有向边表示客户端间的数据逻辑流向关系。

所述耦合系统的拓扑关系分析,当检测有向图存在环时,将环作为一个顶点处理;采用有向图进行拓扑排序,给出每个顶点的前继顶点和后续顶点,得到有向图的顶点与顶点间的有向连接关系。

所述耦合系统的拓扑关系为有向图的顶点与顶点之间的有向边关系,表示分布式联合仿真子系统客户端间的数据分发关系。

分布式全数字联合仿真系统,包括:

分布式联合仿真子系统客户端,用于实现fmu文件输入,并根据分布式联合仿真服务端发来的输入变量值对文件中的fmu模型进行仿真,得到当前时刻的仿真结果;将当前时刻的仿真结果作为输出变量值发送给分布式联合仿真服务端;

分布式联合仿真服务端,用于根据每个分布式联合仿真子系统客户端的地址和变量名称,进行子系统交联关系表达和耦合系统的拓扑关系分析;将当前时刻接收到的各客户端的输出变量值,按照耦合系统的拓扑关系发送给对应的分布式联合仿真子系统客户端作为下一时刻的输入变量值;

分布式联合仿真结果可视化客户端,用于根据需要显示的变量和分布式联合仿真子系统客户端的地址,将分布式联合仿真服务端发来的该分布式联合仿真子系统客户端输出变量值进行显示。

所述分布式联合仿真子系统客户端包括:

客户端人机接口模块,用于输入fmu文件,填写分布式联合仿真服务端的地址,并将地址发送给通信接口模块,fmu中xml和dll信息发送至客户端仿真控制模块;

客户端仿真控制模块,用于对fmu文件中xml和dll信息表述的模型进行仿真,得到当前时刻的仿真结果交给通信接口模块,并等待下一时刻的输入变量值;

通信接口模块,用于将分布式联合仿真服务端发来的下一时刻的输入变量值发送至客户端仿真控制模块,并将当前时刻的仿真结果发送给分布式联合仿真服务端。

所述分布式联合仿真服务端包括:

服务端人机界面模块,用于将端口号发送给通信接口模块;

通信接口模块,用于监听到有分布式联合仿真子系统客户端连接该服务端时,记录下每个客户端的ip和端口号,以及每个客户端发出的输出变量和输入变量名称,并发送给联合仿真总控制模块;

联合仿真总控制模块,用于进行子系统交联关系表达和耦合系统的拓扑关系分析;将当前时刻接收到的各客户端的输出变量值,按照耦合系统的拓扑关系发送给对应的客户端作为它们在下一时刻的输入变量值。

所述分布式联合仿真结果可视化客户端包括:

客户端人机界面模块,用于选择需要显示的变量,填写分布式联合仿真服务端的ip地址和端口号,将所选的变量名称发给仿真结果可视化模块,将ip和端口号发送给通信接口模块;

通信接口模块,用于接收分布式联合仿真服务端发来的输出变量值,并传给仿真结果可视化模块;

仿真结果可视化模块,用于根据所选的变量名称显示输出变量值。

本发明具有以下有益效果及优点:

1.本发明能够整合多类异构系统的数字化模型,实现多学科的耦合系统仿真;

2.能够实现跨地域的分布式联合仿真,实现跨地域间的协同仿真;

3.实现符合fmi标准的联合仿真,兼容更多种类的数字化模型,实现基于黑盒模型的仿真,保护知识产权;

4.实现仿真控制和数据交换,实现固定步长的仿真同步。

附图说明

图1分布式全数字联合仿真系统结构图;

图2分布式联合仿真子系统客户端处理流程示意图;

图3分布式联合仿真数据可视化客户端处理流程示意图;

图4分布式联合仿真服务端处理流程示意图。

图5服务端与客户端的数据通信流向图。

具体实施方式

下面结合实施例对本发明做进一步的详细说明。

本发明涉及分布式全数字联合仿真系统。尤其涉及在耦合系统设计和迭代验证阶段,使用分布式和客户端/服务端结构,实现符合fmi(functionalmock-upinterface)标准的全数字联合仿真。分布式全数字联合仿真系统由三部分组成:分布式联合仿真子系统客户端主要实现各子系统的数字仿真计算,分布式联合仿真结果可视化客户端主要实现仿真结果的可视化,分布式联合仿真服务端主要实现联合仿真的同步控制。该系统实现了异构系统模型的联合仿真,实现了跨地理区域的联合仿真,同时采用黑盒模式仿真,保护了知识产权。

分布式全数字联合仿真系统,包括以下部分组成:

分布式全数字联合仿真系统采用分布式、客户端/服务端结构,其组成包括:分布式联合仿真子系统客户端、分布式联合仿真结果可视化客户端和分布式联合仿真服务端。

所述分布式、客户端/服务端结构是指:耦合系统的各子系统仿真分别在分布式联合仿真子系统客户端进行,各子系统可以跨物理区域分布,各子系统连接至网络。分布式联合仿真子系统客户端只与分布式联合仿真服务端发生数据通信,从而间接实现分布式联合仿真子系统客户端间的通信。

所述的分布式联合仿真子系统客户端包括以下模块组成:通信接口模块、客户端仿真控制模块和客户端人机界面模块。

所述的通信接口模块实现分布式联合仿真子系统客户端与分布式联合仿真服务端的数据接收和发送。

所述的客户端仿真控制模块实现对fmu(functionalmock-upunit)文件的加载、xml文件的解析和数据的初始化。并通过调用fmi接口完成该客户端加载的子系统模型的仿真计算。

所述的客户端人机界面模块实现fmu模型变量参数的显示、修改和客户端仿真的控制操作。

所述的分布式联合仿真结果可视化客户端包括以下模块组成:通信接口模块、仿真结果可视化模块和客户端人机界面模块。

所述的通信接口模块实现分布式联合仿真结果可视化客户端与分布式联合仿真服务端的数据接收和发送。

所述的仿真结果可视化模块实现通信接口模块采集的仿真结果数据的调用,并采用图表、曲线和表格等可视化方式对该数据进行可视化。

所述的客户端人机界面模块实现对可视化方式的选择、可视化数据的选择、数据结果的保存、与分布式联合仿真服务端的连接操作。

所述的分布式联合仿真服务端包括以下模块组成:通信接口模块、联合仿真总控制模块和服务端人机界面模块。

所述的通信接口模块实现分布式联合仿真服务端与分布式联合仿真子系统客户端和分布式联合仿真结果可视化客户端间的数据发送和接收。

所述的联合仿真总控制模块实现联合仿真的同步,包括分布式联合仿真子系统客户端间交联关系表达、耦合系统的拓扑关系分析、仿真过程的数据分发同步和联合仿真的启动与停止控制。

所述分布式联合仿真子系统客户端间交联关系表达是指,采用有向图的数据结构表达分布式联合仿真子系统客户端间交联关系,有向图顶点表示分布式联合仿真子系统客户端和分布式联合仿真服务端,有向边表示分布式联合仿真子系统客户端间的逻辑数据流向关系,该关系由fmu模型中xml文件中的输入和输出变量定义。

所述耦合系统的拓扑关系分析是指,对分布式联合仿真子系统客户端间交联关系的有向图进行分析,检查有向图是否存在环,若存在则把环结构当作一个顶点处理。对有向图进行拓扑排序,给出分布式联合仿真子系统客户端间的逻辑流向关系。

所述仿真过程的数据分发同步是指,按照分布式联合仿真子系统客户端间交联关系,向各分布式联合仿真子系统客户端发送数据,向分布式联合仿真结果可视化客户端发送全部数据。

所述的服务端人机界面模块实现总体仿真的控制交互,仿真的开启、暂停和停止,仿真步长的设置、仿真周期的设置。

分布式全数字联合仿真系统采用分布式结构,即采用多台互联的高性能计算机进行并行仿真计算。同时,又采用服务器/客户端模式,由服务端同步各子系统的仿真过程。具体包括以下组成部分:

分布式联合仿真子系统客户端。该客户端包括通信接口模块、客户端仿真控制模块和客户端人机界面模块,可加载异构系统仿真模型和求解器。通信接口模块实现客户端与服务端间的数据接收和发送,客户端仿真控制模块通过调用fmi接口完成该客户端加载的子系统模型的仿真计算,包括对fmu文件的加载、xml文件的解析,数据的初始化、仿真计算处理等;客户端人机接口模块提供友好的人机界面,实现fmu模型变量参数的显示、修改和客户端仿真的控制等。fmu文件由dll文件和xml文件组成,其由各学科仿真软件输出(如simulink、amesim、ansys等),各厂商遵循fmi标准,将各自私有类型的模型转换为统一的fmu模型。dll相当于包含模型和求解器的仿真子系统黑盒,对外只提供api调用接口,实现细节不可见,实现了知识产权的保护。xml则描述了模型属性、变量定义、参数类型、初始值和单位等。

分布式联合仿真子系统客户端的处理过程是:客户端人机接口模块实现fmu文件输入,填写分布式联合仿真服务端的ip地址和端口号,并将ip地址、端口号发送给通信接口模块,fmu中xml和dll信息交给客户端仿真控制模块,客户端仿真控制模块对fmu模型进行仿真计算处理,并最终得到当前时刻的仿真结果,将结果交给通信接口模块并等待分布式联合仿真服务端通知下一时刻仿真的开始,通信接口模块将当前时刻的仿真结果通过网络发送给分布式联合仿真服务端。

分布式联合仿真结果可视化客户端。该客户端包括通信接口模块、仿真结果可视化模块和客户端人机界面模块,可对仿真结果进行可视化显示。通信接口模块实现客户端与服务端间数据的接收和发送,仿真结果可视化模块调用通信接口采集的仿真结果数据,并采用图表、曲线和表格等形式对数据进行可视化。客户端人机接口模块提供友好的人机界面,实现对可视化方式的选择、显示数据的选择、数据结果的保存、与服务器的连接等操作。

分布式联合仿真结果可视化客户端的处理过程是:通过客户端人机界面模块选择需要显示的变量,填写分布式联合仿真服务端的ip地址和端口号,将所选的变量名称发给仿真结果可视化模块,将ip和端口号发送给通信接口模块。通信接口模块接收到分布式联合仿真服务端发来的数据,将数据传给仿真结果可视化模块,该模块根据所选的变量名称,以曲线、图表等形式显示该变量值随时间t变化的情况。

分布式联合仿真服务端包括通信接口模块、联合仿真总控制模块和服务端人机界面模块。通信接口模块实现服务端与客户端间数据的接收和发送;联合仿真总控制模块负责联合仿真的同步,包括子系统交联关系表达、耦合系统的拓扑关系分析、仿真过程的数据分发同步和联合仿真的启动与停止等;服务端人机界面模块,实现总体仿真的控件交互,仿真的开启、暂停和停止等操作。

分布式联合仿真服务端的处理过程是:服务端人机界面模块填写服务的端口号,并发送给通信接口模块。通信接口模块按照本机的ip和填写的端口号,开发端口监听,当有分布式联合仿真子系统客户端连接该服务端时,记录下每个客户端的ip和端口号,以及每个客户端发出的输出变量和输入变量名称,并将上述信息发送给联合仿真总控制模块。联合仿真总控制模块进行子系统交联关系表达和耦合系统的拓扑关系分析和仿真过程的数据分发同步,最后将当前时刻接收到的各客户端的输出变量值,按照耦合系统的拓扑关系发送给对应的客户端作为它们在下一时刻的输入变量值,如一个pid控制的传动机电系统中,真实速度、扭矩可作为输出变量,参考速度可作为输入变量。

子系统交联关系表达是指通过收集所有客户端发来的输入和输出变量名称,如参考速度、真实速度和扭矩,用一张有向图表达各子系统客户端间的数据流向关系,有向图中的顶点表示客户端,有向边表示客户端间的数据逻辑流向关系。

耦合系统的拓扑关系分析是指对上述有向图进行分析,检测是否存在环结构,若存在环结构,将环作为一个顶点处理;否则,不作处理。采用有向图进行拓扑排序,给出每个顶点的前继输入顶点和后续输出顶点,作为仿真过程的数据分发同步的依据。

仿真过程的数据分发同步是指将接收到的当前时刻的所有变量值,按照耦合系统的拓扑关系所表明的输入输出关系分发,即将变量分发给需要它的客户端作为下一时刻的输入值。

上述服务端和两类客户端间的通信可采用多种方式实现,如高速以太网或实时反射内存网等。

上述服务端和两类客户端间的通信是指两类客户端与服务器端发生数据通信,两类客户端间不发生数据通信。

服务器通信处理采用多线程机制,能够满足并发的连接多个客户端,并同时处理数据的收发。

本发明所述的分布式全数字联合仿真系统的结构如图1所示。

分布式联合仿真子系统客户端。该客户端包括通信接口模块、客户端仿真控制模块和客户端人机界面模块,可加载异构系统仿真模型和求解器。通信接口模块实现客户端与服务端间数据的接收和发送,客户端仿真控制模块通过调用fmi接口完成该客户端加载的子系统模型的仿真计算,包括对fmu文件的加载、xml文件的解析,数据的初始化、仿真计算处理等;客户端人机接口模块提供友好的人机界面,实现变量参数显示和修改、输出结果的可视化和存储等。fmu文件由dll文件和xml文件组成,其由各学科仿真软件输出(如simulink、amesim、ansys等),各厂商遵循fmi标准,将各自私有类型的模型转换为统一的fmu模型。dll相当于包含模型和求解器的仿真子系统黑盒,对外只提供api调用接口,实现细节不可见,实现了知识产权的保护。xml则描述了模型属性、变量定义、参数类型、初始值和单位等。

分布式联合仿真子系统客户端的处理流程如图2所示。

步骤1通信接口模块连接服务端,建立与服务端的通信链路;

步骤2客户端人机界面模块加载fmu文件,读取xml文件中的参数和fmu中的dll接口,发送给客户端仿真控制模块。

步骤3客户端仿真控制模块通知服务端该子系统的输入和输出变量;

步骤4fmu实例化过程。客户端仿真控制模块完成xml中的内部参数和dll中接口函数的初始时刻初始化;

步骤5步进仿真过程,客户端仿真控制模块执行本通信步进区间内的仿真计算,并根据仿真结束的状态返回值,确定客户端在本步骤后的状态是完毕、失败或取消。获得输出变量,若状态为完毕,则保存本次仿真的状态和结果;

步骤6数据同步过程。客户端仿真控制模块根据客户端的仿真状态,将本次步进区间的仿真结果发送至分布式联合仿真服务端;

步骤7客户端仿真控制模块等待分布式联合仿真服务端发出下一时刻的仿真计算的命令和输入参数;

步骤8客户端仿真控制模块若接收到仿真结束命令,则停止仿真过程。

分布式联合仿真结果可视化客户端。该客户端包括通信接口模块、仿真结果可视化模块和客户端人机界面模块,可对仿真结果进行可视化显示。通信接口模块实现客户端与服务端间的数据接收和发送,仿真结果可视化模块调用通信接口采集的仿真结果数据,并采用图表、曲线和表格等形式对数据进行可视化。客户端人机接口模块提供友好的人机界面,实现对可视化方式的选择、显示数据的选择、数据结果的保存、与服务器的连接等操作。

分布式联合仿真结果可视化客户端处理流程如图3所示。

步骤1通信接口模块连接服务器,建立与服务端的通信链路;

步骤2客户端人机界面模块完成数据可视化初始化,包括选择可视化的参数,可视化的方式等;

步骤3通信接口模块接收来自服务器端的变量值,保存至缓存中;

步骤4仿真结果可视化模块以选择的可视化方式显示数据;

步骤5仿真结果可视化模块接收服务端仿真结束命令,则关闭客户端;

步骤6若缓存中数据全部显示,仿真结果可视化模块关闭可视化。

分布式联合仿真服务器端包括通信接口模块、联合仿真总控制模块和服务端人机界面模块。通信接口模块实现服务端与客户端间数据的接收和发送;联合仿真总控制模块负责联合仿真的同步,包括子系统交联关系表达、耦合系统的拓扑关系分析、仿真过程的数据分发同步和联合仿真的启动与停止等;服务端人机界面模块,实现总体仿真的控件交互,仿真的开启、暂停和停止等操作。

分布式联合仿真服务端处理流程如图4所示。

步骤1启动联合仿真服务。通信接口模块与两类客户端建立通信链路,确保与各客户端通信正常;

步骤2启动联合仿真。联合仿真总控制模块查看各客户端链路是否正常,进行子系统拓扑关系分析,检查客户端间的输入输出关系是否正确;

步骤3分布式联合仿真子系统客户端间交联关系表达。联合仿真总控制模块采用有向图的数据结构表达分布式联合仿真子系统客户端间交联关系,有向图顶点表示分布式联合仿真子系统客户端和分布式联合仿真服务端,有向边表示分布式联合仿真子系统客户端间的逻辑数据流向关系,该关系由fmu模型中xml文件中的输入和输出变量定义;

步骤4耦合系统的拓扑关系分析,联合仿真总控制模块对分布式联合仿真子系统客户端间交联关系的有向图进行分析,检查有向图是否存在有环,若存在则把环结构当作一个顶点处理。对有向图进行拓扑排序,给出分布式联合仿真子系统客户端间的逻辑流向关系;

步骤5联合仿真总控制模块通知子系统客户端启动仿真;

步骤6收集所有子系统的仿真后的输出值。服务端通信接口模块采集子系统客户端的输出值,提供当前各子系统的输出变量,输出的各阶导数,计算出本地变量和下一时刻的方向导数;

步骤7仿真同步控制。联合仿真总控制模块按照分布式联合仿真子系统客户端间交联关系,分发给对应的客户端作为下一时刻的输入值,提供当前各子系统的输入变量、输入的各阶导数,并按照设置的步长准备执行下一个固定步长的仿真;

步骤8本步长的所有子系统完成仿真后,联合仿真总控制模块通知客户端进行下一时刻的仿真计算;

步骤9仿真结束后,联合仿真总控制模块通知客户端关闭仿真过程。

联合仿真服务端完成两个主要工作:子系统间(联合仿真客户端)的数据交换,子系统间的数据交换是通过联合仿真主控服务端间接实现,子系统间不存在直接的数据间交换;联合仿真的客户端同步调度,完成从仿真开始时刻到结束时刻,以指定仿真步进的所有子系统间仿真的同步。服务端与客户端的数据通信流向如图5所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1