基于动态步长实时调度的仿真推进方法及仿真平台技术

技术编号:39132226 阅读:10 留言:0更新日期:2023-10-23 14:51
本发明专利技术涉及一种基于动态步长实时调度的仿真推进方法及仿真平台,属于仿真技术领域,解决多仿真组件的仿真推进调度问题;方法包括,仿真引擎对以独立模型形式存在的多个仿真组件进行初始化,获得各仿真组件的预设仿真步长;仿真引擎根据预设仿真步长对各仿真组件的仿真步长进行排序,生成时间序列表;从仿真开始计时时刻起,仿真引擎对各仿真组件仿真推进;实现各模型的周期性仿真和因果关系控制;在仿真推进过程中,仿真引擎以时间序列表为基础,结合各模型的可变长前瞻量和误差补偿距离精度值对时间序列表中的预设仿真步长进行动态调整。本发明专利技术实现了兼顾模型的细节捕获和运算效能,提升推进效能。提升推进效能。提升推进效能。

【技术实现步骤摘要】
基于动态步长实时调度的仿真推进方法及仿真平台


[0001]本专利技术涉及仿真
,涉及一种基于动态步长实时调度的仿真推进方法及仿真平台。

技术介绍

[0002]针对多模型的并行仿真系统,固定步长下的同步仿真推进存在资源管控和调度耗损问题。采用固定混合步长调度的异步仿真推进,虽然提高了仿真驱动效率,但是仍存在下述两项问题:1)高性能模型数据频率失衡。各个模型仿真步长的推进将伴随产生对应的模型解算数据,仿真分辨率过低将导致成员的数据输出频率过低,在数据呈随机性或变化幅度较大时,应用数据平滑等预处理方式将带来较大的预推偏差;反之,若仿真分辨率过高,将加重内存处理负担,影响并行仿真整体运算性能。
[0003]2)体系实体运行精度误差累积。在本地实时调度机制和各个模型共用一个线程的方式下,成员通过周期性地调用tick函数来获得数据和事件输入。仿真分辨率局部过高或过低会导致联邦内的体系实体运动状态差异过大,从而造成精度误差累积,降低仿真的真实感和仿真结果的可信度。

技术实现思路

[0004]鉴于上述的分析,本专利技术旨在公开了种基于动态步长实时调度的仿真推进方法及仿真平台,解决多仿真组件的仿真推进调度问题。
[0005]本专利技术公开了一种基于动态步长实时调度的仿真推进方法,其特征在于,包括:步骤S1、仿真引擎对以独立模型形式存在的多个仿真组件进行初始化,获得各仿真组件的预设仿真步长;步骤S2、仿真引擎根据预设仿真步长对各仿真组件的仿真步长进行排序,生成时间序列表;步骤S3、从仿真开始计时时刻起,仿真引擎对各仿真组件仿真推进;实现各模型的周期性仿真和因果关系控制;在仿真推进过程中,仿真引擎以时间序列表为基础,结合各模型的可变长前瞻量和误差补偿距离精度值对时间序列表中的预设仿真步长进行动态调整。
[0006]进一步地,所述步骤S3,包括:步骤S301、在仿真开始计时时刻,仿真引擎并行推进各仿真组件,使各仿真组件按照自身步长进行模型解算;步骤S302、在仿真引擎进行下一次仿真推进前,每个完成模型解算的仿真组件与仿真引擎进行交互;使仿真引擎获得用于预设仿真步长动态调整的步长调整量,选择仿真推进模式,确定出下一次仿真的推进时刻和推进的仿真组件;步骤S303、各完成模型解算的仿真组件在准备好下一次仿真的数据后,在下一次
仿真的推进时刻,判断仿真引擎是否对本仿真组件进行推进;是,则执行模型解算,之后返回步骤S302;否,则等待,直到仿真引擎推进本仿真组件的时刻执行模型解算,之后返回步骤S302。
[0007]进一步地,所述步骤S302,包括:1)每个完成解算的仿真组件与仿真引擎进行交互,使仿真引擎得到仿真组件各自的在本次解算结束的完成时间和请求的下一次解算的推进时间;2)仿真引擎根据得到的仿真组件在本次解算结束的完成时间和请求的下一次解算的推进时间,计算出可变长前瞻量;3)仿真引擎根据各仿真组件仿真坡度结合可变长前瞻量和误差补偿距离精度值,对时间序列表中预设仿真步长进行动态调整,得到仿真组件下一次仿真的推进时刻。
[0008]进一步地,在所述步骤S302的步骤3)中,仿真引擎根据仿真组件仿真坡度结合可变长前瞻量和误差补偿距离精度值选择推进模式;对仿真组件的仿真步长进行调整;推进模式包括可变前瞻量仿真推进模式或距离精度仿真推进模式;在可变前瞻量仿真推进模式,选择当次仿真计算出前瞻量作为下一次预设仿真步长的调整依据;在距离精度仿真推进模式,选择仿真组件的误差补偿距离精度值为下一次预设仿真步长的调整依据;其中,在仿真组件的仿真坡度陡峭阶段,采用距离精度仿真推进模式,在仿真组件的仿真坡度平缓阶段,采用前瞻量仿真推进模式。
[0009]进一步地,在所述步骤S302的步骤3)中,仿真引擎各仿真组件比较可变长前瞻量和误差补偿距离精度值,选择其中最小值进行预设仿真步长的动态调整得到仿真组件下一次仿真的推进时刻。
[0010]进一步地,每个完成解算的仿真组件在数据输出后,得到上一次解算完成时间,通过query()函数,使仿真引擎查询到仿真组件的上一次解算完成时间;每个完成解算的仿真组件在数据输出后,预测出下一次解算的请求推进时间;并通过request()函数向仿真引擎请求将仿真时间推进到下一次解算的请求推进时间。
[0011]进一步地,以独立模型形式存在的多个仿真组件,在每次模型解算后,将解算出的公共信息写入共享内存池中,供其他需要所述公共信息进行模型解算的仿真组件,在仿真启动时调用;在共享内存池中为每个仿真组件开辟存储空间,用于存储仿真组件最新解算出的公共信息。
[0012]进一步地,每个仿真组件在仿真引擎的驱动下,在一个仿真步长中,进行发送数据、接收数据和处理数据3个过程的操作;在仿真组件之间发生数据交互时,正在被仿真引擎驱动的仿真组件执行发送数据过程,向未被驱动的仿真组件发送数据;未被驱动的仿真组件则单独执行接收数据过程,接收发送来的数据,但暂不执行处理数据过程,直到被仿真引擎驱动后,才执行数据处理过程。
[0013]本专利技术还公开了一种基于动态步长实时调度的仿真推进方法,包括:
步骤S1、在仿真开始计时时刻,仿真组件在仿真引擎的驱动下进行模型解算,将解算结果进行数据输出;步骤S2、仿真组件在数据输出后,得到当前仿真时间T0,通过query()函数,使仿真引擎查询到仿真组件的当前仿真时间T0;步骤S3、仿真组件得到当前计时时间T1,并通过request()函数向仿真引擎请求将仿真时间推进到T1;步骤S4、仿真组件通过与仿真引擎的数据交互,使仿真引擎根据当前仿真的时间T0、当前计时时间T1和仿真组件仿真的距离精度,调整仿真组件的推进时间;步骤S5、仿真组件通过tick()函数进行数据获取和交互,在推进时间内判断是否允许推进;否,则等待;是,则判断仿真是否结束;是则结束计时,否,则返回步骤S1,在仿真的推进时间,由仿真引擎的驱动下进行模型解算。
[0014]本专利技术还公开了一种基于动态步长实时调度的仿真推进系统,包括多个以独立模型形式存在仿真组件、共享内存池和仿真引擎;所述仿真引擎与多个仿真组件进行数据交互,用于对各仿真组件进行仿真推进控制;所述仿真组件,在仿真引擎的推进下,以动态步长进行模型解算,输出解算结果;所述共享内存池中针对于每个仿真组件均设置对应的存储空间;用于存储对应仿真组件最新解算出结果中的公共信息;以供需要所述公共信息的仿真实体在仿真启动时进行调用;在所述仿真平台中执行如上所述的基于动态步长实时调度的仿真推进方法,动态调整仿真组件的仿真步长。
[0015]本专利技术可实现以下有益效果之一:本专利技术的基于动态步长实时调度的仿真推进方法及仿真平台,实现了高分辨率仿真模型的频率和精度的双重可控;通过实时更新成员仿真步长,并可使用距离精度实现步长的在线动态修正,实现性能级实体等在仿真坡度平缓阶段低频运算以节省内存开销,仿真坡度峭拔阶段高频解算来获取模型细节;仿真周期内,仿真引擎根据各自调度模式进行下一周期仿真推进步长预测,各个模型发送仿真推进请求,综合当前仿真状态调整仿真本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态步长实时调度的仿真推进方法,其特征在于,包括:步骤S1、仿真引擎对以独立模型形式存在的多个仿真组件进行初始化,获得各仿真组件的预设仿真步长;步骤S2、仿真引擎根据预设仿真步长对各仿真组件的仿真步长进行排序,生成时间序列表;步骤S3、从仿真开始计时时刻起,仿真引擎对各仿真组件仿真推进;实现各模型的周期性仿真和因果关系控制;在仿真推进过程中,仿真引擎以时间序列表为基础,结合各模型的可变长前瞻量和误差补偿距离精度值对时间序列表中的预设仿真步长进行动态调整。2.根据权利要求1所述的基于动态步长实时调度的仿真推进方法,其特征在于,所述步骤S3,包括:步骤S301、在仿真开始计时时刻,仿真引擎并行推进各仿真组件,使各仿真组件按照自身步长进行模型解算;步骤S302、在仿真引擎进行下一次仿真推进前,每个完成模型解算的仿真组件与仿真引擎进行交互;使仿真引擎获得用于预设仿真步长动态调整的步长调整量,选择仿真推进模式,确定出下一次仿真的推进时刻和推进的仿真组件;步骤S303、各完成模型解算的仿真组件在准备好下一次仿真的数据后,在下一次仿真的推进时刻,判断仿真引擎是否对本仿真组件进行推进;是,则执行模型解算,之后返回步骤S302;否,则等待,直到仿真引擎推进本仿真组件的时刻执行模型解算,之后返回步骤S302。3.根据权利要求2所述的基于动态步长实时调度的仿真推进方法,其特征在于,所述步骤S302,包括:1)每个完成解算的仿真组件与仿真引擎进行交互,使仿真引擎得到仿真组件各自的在本次解算结束的完成时间和请求的下一次解算的推进时间;2)仿真引擎根据得到的仿真组件在本次解算结束的完成时间和请求的下一次解算的推进时间,计算出可变长前瞻量;3)仿真引擎根据各仿真组件仿真坡度结合可变长前瞻量和误差补偿距离精度值,对时间序列表中预设仿真步长进行动态调整,得到仿真组件下一次仿真的推进时刻。4.根据权利要求2所述的基于动态步长实时调度的仿真推进方法,其特征在于,在所述步骤S302的步骤3)中,仿真引擎根据仿真组件仿真坡度结合可变长前瞻量和误差补偿距离精度值选择推进模式;对仿真组件的仿真步长进行调整;推进模式包括可变前瞻量仿真推进模式或距离精度仿真推进模式;在可变前瞻量仿真推进模式,选择当次仿真计算出前瞻量作为下一次预设仿真步长的调整依据;在距离精度仿真推进模式,选择仿真组件的误差补偿距离精度值为下一次预设仿真步长的调整依据;其中,在仿真组件的仿真坡度陡峭阶段,采用距离精度仿真推进模式,在仿真组件的仿真坡度平缓阶段,采用前瞻量仿真推进模式。
5.根据权利要求2所述的基于动态步长实时调度的仿真推进方法,其特征在于,在所述步骤S302的步骤3)中,仿真引擎各仿真组件比较可变长前瞻量和误差补偿距离精度值,选择其中最小值进行预设仿真步长的动态调整得到仿真组件下一次仿真...

【专利技术属性】
技术研发人员:穆富岭车万方徐涛翟梦言
申请(专利权)人:北京方州科技有限公司
类型:发明
国别省市:

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

1