当前位置: 首页 > 专利查询>三峡大学专利>正文

面向Modelica的分布式仿真方法技术

技术编号:36878178 阅读:28 留言:0更新日期:2023-03-15 20:55
本发明专利技术涉及面向Modelica的分布式仿真方法,包括:将动态库封装成可在Modelica平台使用的组件;建立仿真模型,编译生成仿真程序;生成配置文件、仿真数据,将配置文件、动态库、仿真数据打包;主控节点请求任务调度,分布式协调器收到任务调度请求后,推荐计算节点,计算节点执行分布式计算任务后将执行结果回传到主控节点。本发明专利技术实现了面向Modelica的分布式仿真计算,适用于大型复杂仿真模型的仿真计算,主控节点通过向计算节点分配主控节点的仿真计算任务,来减少主控节点的处理任务时间,提高了仿真效率;通过在分布式的计算节点上安装能运行可执行程序的执行容器进行分布式仿真计算,以动态库和运行数据作为分布式调度单位,实现计算节点轻量化。实现计算节点轻量化。实现计算节点轻量化。

【技术实现步骤摘要】
面向Modelica的分布式仿真方法


[0001]本专利技术属于计算机仿真领域,具体涉及一种面向Modelica的分布式仿真方法。

技术介绍

[0002]Modelica是一种面向对象的多领域统一建模语言,适用于大规模复杂异构物理系统的建模。使用Modelica语言描述的模型,经过解析、转换、编译后生成以微分方程为基础的可执行的仿真程序。仿真程序中包含通用的微分方程求解算法,执行求解即可得到模型变量在时间轴上的变化特性。
[0003]Modelica能够支持电气、机械、热力学、液压、生物、控制等多领域模型开发,通过统一语言来描述各领域模型,可大大减少模型集成的难度。目前Modelica语言在航空、航天、车辆、核能、能源、控制等诸多工程领域有广泛的应用。
[0004]目前的Modelica语言的仿真平台有MWorks、Dymola、OpenModelica等,平台提供的主要功能是图形化建模、基于Modelica语言的模型描述、编译生成仿真系统、运行仿真系统得到仿真结果以及仿真结果可视化等。这些平台大多没有考虑仿真性能问题,对于复杂模型使用单机运行仿真,需要耗费大量时间,效率不高。
[0005]基于上述问题,研究面向Modelica语言仿真平台的分布式仿真方法。本分布式仿真方法以组件作为调度单位,可调度到分布式系统节点计算机执行的组件,是通过对动态库函数封装而成的Modelica组件。分布式仿真系统在执行仿真时,由分布式协调器根据调度算法推荐计算节点,仿真平台将由配置文件、任务数据以及任务动态库构成的任务包分配到局域网上的分布式节点执行,分布式节点收到任务包后解压,按照配置文件描述执行后,将执行结果回传到主控节点,主控节点将结果汇总完成仿真,实现了仿真任务的分布式并行执行,从而提高了仿真性能。

技术实现思路

[0006]本专利技术的技术问题是现有的Modelica仿真平台的仿真方法,对仿真模型编译生成仿真程序后,在本机执行仿真程序得到仿真结果,在进行复杂仿真时仿真耗时较长、效率较低。
[0007]现有的分布式计算框架如hadoop、Spark等,主要基于远程过程调用方式实现分布式计算,分布式的计算节点需要和主控节点一样安装计算所需的全部计算模块。对于Modelica仿真平台,由于需计算的模块由用户通过组态定义,如果采用远程过程调用,需要将所有可用模块预安装到各节点计算机上,相当于所有分布式节点必须安装Modelica仿真平台,将使得节点过于沉重,同时能够执行分布式仿真的节点也将受限,增加了计算节点的部署和扩展的难度。
[0008]本专利技术的目的是针对上述问题,提供一种面向Modelica的非基于远程过程调用技术的分布式仿真方法,在分布式的计算节点计算机上安装能运行常规可执行程序的执行容器进行分布式仿真计算;以组件作为分布式仿真的调度单位;任务以包含配置文件、动态库
和运行数据的任务包形式由主控节点计算机分发到计算节点计算机执行;避免在计算节点上安装繁冗的系统环境、调度响应模块、功能性软件模块等,实现计算节点的轻量化,提高仿真的效率,计算节点易于动态扩展。
[0009]本专利技术的技术方案是面向Modelica的分布式仿真方法,所述方法包括以下步骤:步骤1:将c/c++、fortran语言编写的函数编译成动态库,将动态库封装成可在Modelica仿真平台使用的组件;步骤2:在Modelica仿真平台中使用组件建立仿真模型,设置是否启用分布式、离线、在线仿真模式以及仿真步长、仿真变量,编译生成仿真程序;步骤3:在分布式仿真模式下,主控节点执行仿真程序时,以组件为单位进行任务调度,由动态库函数执行时的参数生成配置文件、仿真数据,将配置文件、动态库、仿真数据打包;步骤4:主控节点向分布式协调器请求任务调度,分布式协调器收到任务调度请求后,根据调度算法推荐计算节点;主控节点与计算节点通信完成任务包分发;计算节点收到任务包,执行计算任务后将执行结果回传到主控节点,主控节点将结果汇总;步骤4.1:分布式协调器启动后,通过UDP协议将自身IP地址广播到计算节点、主控节点计算机;步骤4.2:计算节点计算机根据UDP消息得到的分布式协调器的IP地址,连接分布式协调器;步骤4.3:计算节点计算机连接分布式协调器后,将其状态信息发送给分布式协调器,连接到分布式协调器的计算节点在预设端口等待主控节点的连接;步骤4.4:主控节点计算机根据UDP通信得到的分布式协调器的IP地址,连接分布式协调器;步骤4.5:主控节点计算机定期向分布式协调器请求当前在线的计算节点计算机的状态列表,有计算任务时向分布式协调器发送请求任务调度包,协调器根据调度算法将推荐的计算节点计算机的IP地址发送给主控节点计算机,主控节点计算机连接计算节点计算机;步骤4.6:主控节点计算机向计算节点计算机发送任务包,计算节点计算机接受任务包后,每隔时间T1将任务执行的百分比发送给主控节点计算机,如果主控节点计算机客户端在时间T2内没有收到运行进度包,则终止任务执行,向分布式协调器重新请求任务调度;步骤4.7:主控节点计算机接收计算节点计算机的运行进度包,更新任务的执行进度,直至接收到任务执行结果包,后断开连接;步骤4.8:主控节点计算机接收到计算节点计算机任务执行结果包,对结果进行汇总和使用,完成后续仿真。若当前仿真模式为离线仿真,仿真结束后利用仿真窗口展示仿真模型的输出结果;若当前仿真模式为实时仿真,主控节点计算机把得到的数据进行数据处理,再通过实时仿真窗口向用户展示。
[0010]优选地,分布式协调器和计算节点计算机的通信协议,具体包括:(一)计算节点计算机端:1.1)计算节点计算机启动后,使用UDP通信协议向局域网广播请求协调器的IP地
址;若计算节点计算机获取IP地址失败,则每隔时间T1重新发送UDP请求包,直到获取成功;1.2)计算节点计算机获取协调器IP地址后,在规定端口建立TCP连接,每隔时间T1向协调器发送包含CPU、内存使用情况的心跳包。
[0011](二)分布式协调器端:2.1)分布式协调器启动后,在规定端口进入等待连接状态;同时监听UDP协议包;2.2)收到计算节点计算机请求IP地址的UDP协议包后,发送响应包,返回本机IP地址;2.3)收到计算节点计算机在规定端口的连接请求,则建立TCP连接;2.4)收到计算节点计算机的心跳包,则在在线列表中记录计算节点计算机的状态,如果连续3次没有收到计算节点计算机的心跳包,则将该计算节点计算机从在线列表中删除。
[0012]优选地,分布式协调器与主控节点计算机的通信协议包括:(一)主控节点计算机端:1.1)主控节点计算机启动后,使用UDP协议向局域网广播请求协调器的IP地址;若IP地址获取失败,则每隔时间T1重新发送UDP请求包,直到获取成功;1.2)主控节点计算机获取IP地址后,作为客户端通过IP地址和规定的端口号连接协调器;若连接失败,将隔时间T1自动重连协调器;1.3)连接成功后,主控节点计算机每隔时间T2向协调器请求当前在线的计算节点列表及CPU、存储器状态,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.面向Modelica的分布式仿真方法,其特征在于,所述方法的仿真系统包括主控节点计算机、分布式协调器、计算节点计算机和计算节点计算机上运行的执行器;所述方法以组件作为调度单位,分布式仿真时分发到节点计算机执行的组件,是通过对动态库函数封装而成的Modelica组件;在执行仿真时,由分布式协调器根据调度算法推荐计算节点,仿真平台将由配置文件、任务数据以及任务动态库构成的执行任务分配到局域网上的分布式计算节点执行,分布式计算节点执行后,将执行结果回传到主控节点,主控节点将结果汇总完成仿真,实现仿真任务的分布式并行执行,提高仿真性能;所述方法包括以下步骤:步骤1:将c/c++、fortran语言编写的函数编译成动态库,将动态库封装成可在Modelica仿真平台使用的组件;步骤2:在Modelica仿真平台中使用组件建立仿真模型,设置是否启用分布式、离线或在线仿真模式以及仿真步长、仿真变量,编译生成仿真程序;步骤3:在分布式仿真模式下,主控节点执行仿真程序时,以组件为单位进行任务调度,由动态库函数执行时的参数生成配置文件、仿真数据,将配置文件、动态库、仿真数据打包;步骤4:主控节点向分布式协调器请求任务调度,分布式协调器收到任务调度请求后,根据调度算法推荐计算节点;主控节点与计算节点通信完成任务包分发;计算节点收到任务包,执行计算任务后将执行结果回传到主控节点,主控节点将结果汇总;步骤4.1:分布式协调器启动后,通过UDP协议将自身IP地址广播到计算节点、主控节点计算机;步骤4.2:计算节点计算机根据UDP消息得到的分布式协调器的IP地址,连接分布式协调器;步骤4.3:计算节点计算机连接分布式协调器后,将其状态信息发送给分布式协调器,连接到分布式协调器的计算节点在预设端口等待主控节点的连接;步骤4.4:主控节点计算机根据UDP通信得到的分布式协调器的IP地址,连接分布式协调器;步骤4.5:主控节点计算机定期向分布式协调器请求当前在线的计算节点计算机的状态列表,有计算任务时向分布式协调器发送请求任务调度包,协调器根据调度算法将推荐的计算节点计算机的IP地址发送给主控节点计算机,主控节点计算机连接计算节点计算机;步骤4.6:主控节点计算机向计算节点计算机发送任务包,计算节点计算机接受任务包后,每隔时间T1将任务执行的百分比发送给主控节点计算机,如果主控节点计算机客户端在时间T2内没有收到运行进度包,则终止任务执行,向分布式协调器重新请求任务调度;步骤4.7:主控节点计算机接收计算节点计算机的运行进度包,更新任务的执行进度,直至接收到任务执行结果包,后断开连接;步骤4.8:主控节点计算机接收到计算节点计算机任务执行结果包,对结果进行汇总和使用,完成后续仿真。2.根据权利要求1所述的面向Modelica的分布式仿真方法,其特征在于,分布式协调器和计算节点计算机的通信协议,具体包括:(一)计算节点计算机端:
1.1)计算节点计算机启动后,使用UDP通信协议向局域网广播请求协调器的IP地址;若计算节点计算机获取IP地址失败,则每隔时间T1重新发送UDP请求包,直到获取成功;1.2)计算节点计算机获取协调器IP地址后,在规定端口建立TCP连接,每隔时间T1向协调器发送包含CPU、内存使用情况的心跳包;(二)分布式协调器端:2.1)分布式协调器启动后,在规定端口进入等待连接状态;同时监听UDP协议包;2.2)收到计算节点计算机请求IP地址的UDP协议包后,发送响应包,返回本机IP地址;2.3)收到计算节点计算机在规定端口的连接请求,则建...

【专利技术属性】
技术研发人员:田卫新许爽郑胜
申请(专利权)人:三峡大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1