一种基于数据驱动的仿真模块的制作方法

文档序号:11233906阅读:362来源:国知局
一种基于数据驱动的仿真模块的制造方法与工艺

本发明属于计算机仿真、系统集成技术领域,涉及一种基于数据驱动的仿真模块。



背景技术:

在当前航天飞行器技术朝着系统更复杂、技术更先进的方向发展。在这一趋势下,航天飞行器需要实现在全工作周期下的高置信度效能评估,因此结合数学仿真技术系统与半实物仿真试验技术的“一体化集成仿真技术”对于提高航天飞行器全工作周期效能评估的置信度,为总体方案制定和系统研制提供定量数据参考具有重要意义。

一体化集成仿真技术的核心是实现基于不同仿真机制的异构仿真与试验系统之间的紧耦合联合仿真试验,因此基于数学仿真系统与半实物仿真试验系统协同运行的一体化综合集成仿真与试验系统规模通常都比较大,具有分布式、强实时的特点。

当前针对复杂分布式系统仿真大多采用美国国防部的高层体系结构(hla),其仿真推进机制大多采用保守时间推进机制和乐观时间推进机制,高层体系结构很好的解决了大规模分布式仿真试验系统之间的重用和交互问题。

当由于其仿真推进机制是受“时戳下限值lbts”制约的,每个联邦的本地推进都不能超过这一值也就是要满足ti+hi≤min(tj+lookaheadj),其中ti表示第i个联邦成员当前时刻,hihi表示该邦元的仿真步长,tj表示第j个联邦成员的当前时刻,lookaheadj表示第j个联邦成员的时间前瞻量,而lbts则是由全系统中所有联邦成员的时间前瞻量的最小值决定的,即lbtsi=min(tj+lookaheadj),因此当系统规模变大交互变得复杂之后,只要系统中有一个联邦的时间推进变慢将拖累整个系统的运行速度,这主要是因为仿真联邦成员的时间推进不仅受到自身仿真步长的约束,同时也受仿真系统中其他联邦成员的约束。

设数学仿真系统与射频半实物仿真系统之间存在数据交互的仿真联邦成员为fmutual,fmutual为时间受限成员,fmutual时间推进受其它时间控制成员的lbtsi的控制。设min(tj+lookaheadj)所在联邦成员为fmin,fmin的当前时刻为tmin-1,仿真步长为hmin。fmutual的当前时刻为ti-1,fmutual与半实物仿真系统进行数据交互的时刻为tmutual,仿真步长为hmutual,仿真推进过程如图1所示。

由于联邦成员fmutual需要同半实物仿真系统进行数据交互,因此fmutual的仿真时间轴应该与半实物仿真系统时间轴成1∶1线性映射关系,同时由于fmutual为时间受限联邦成员,因此其仿真推进还应受到时间控制成员fmin的影响,其仿真推进过程如图1所示,fmutual在仿真时间ti-1时刻时fmin的仿真时间为tmin-1,fmutual仿真推进的下一时刻为ti(ti=ti-1+hmutual),则fmutual的时戳下限值为tmin-1+lookaheadmin,由图1可知ti<tmin-1+lookaheadmin满足联邦成员推进条件,fmutual在仿真时刻ti-1时可以顺利推进到下一时刻。当fmutual推进到仿真时刻ti时,fmutual仿真推进的下一时刻为tmutual,此刻若fmin还没有推进到tmin,则fmutual的时戳下限值仍为tmin-1+lookaheadmin,由图1可知tmutual>tmin-1+lookaheadmin不满足联邦成员推进条件,此刻fmutual处于等待状态。只有当fmin推进到tmin时,fmutual满足推进条件时,fmutual才能推进到tmutual实现与半实物仿真系统的数据交互。

综上可知,在hla的仿真推进机制下各联邦成员在推进时需要时刻判断lbts,所以,即使联邦成员(通常是一个仿真节点)具有较强的计算能力保证算法的实时性,也不得不因为其它交互节点的某个时间点上的延迟而等待,而这次等待很有可能到在推进机制的作用下导致另外节点的延迟,当系统复杂之后,在一定的交互关系下,这种延迟会扩散到全系统,导致系统运行变慢。

所以说hla的这种仿真推进机制能够实现不同仿真步长联邦成员的协同推进,能够兼容连续系统和离散系统混合的仿真系统构建。但在航天飞行器需要全工作周期的高置信度效能评估的分析仿真邻域中,系统中包含半实物试验设施,系统中各个分布式节点之间具有两大的数据交互,全系统的仿真步长通常在5ms左右,若采用此类仿真推进机制,则会出现由于系统规模增大而导致的全系统无法实时运行的情况。



技术实现要素:

针对上述现有技术,本发明的目的在于提供一种基于数据驱动的仿真模块,该模块只受数据驱动而不受其他分布式节点运行速度制约,解决了当前高层体系结构在分析仿真邻域中中实时性无法得到保证的问题。

为了达到上述目的,本发明采用以下技术方案。

本发明的目的在于提供一种基于数据驱动的仿真模块,该仿真模块包括:实时模型算法模块、数据接收模块、数据发送模块、本地时间管理模块、多个输入端口及对应的多个输入缓冲区、多个输出端口及对应的输出缓冲区;

数据接收模块用于接收其它分布式实时仿真计算节点发送的数据,通过输入端口存入对应的输入缓冲区,并提取接受到的数据时戳提交给本地时间管理模块;

实时模型算法模块用于完成分布式实时仿真节点所担负的仿真计算任务,并输出实时仿真数据;

数据发送模块用于发送存入输出缓冲区的实时模型算法模块计算得到的实时仿真数据,并依据当前物理时间进行时戳判断后通过输出端口向其它分布式实时仿真节点发送数据;

输入缓冲区和输出缓冲区分别用于存放数据接收模块和数据发送模块所需的数据;

本地时间管理模块一方面通过接受外部同步校准信号,校准本地物理时间使其与分布式实时仿真节点同步,另一方面用于接受实时模型算法模块计算过程中的逻辑时间,建立本地逻辑时间,并向数据接受模块和数据发送模块同时提供当前物理时间和本地逻辑时间。

进一步,所述本地时间管理模块首先获取本地物理时钟,通过接受外部脉冲同步信号对本地物理时间进行校准;

其次本地时间管理模块接受数据接受模块发送过来的数据逻辑时戳,将本地逻辑时间与数据逻辑时戳设置一致,保证实时模型算法模块与输入数据相同步;

在本地物理时间同步过程和逻辑时间设置过程结束后,本地时间管理模块分别向数据接受模块和数据发送模块发送本地物理时间,向实时模型算法模块发送本地逻辑时间,实现整个仿真运行过程的时间管理。

进一步,所述实时模型算法模块在输入缓冲区读取数据后,通过本地时间管理模块确认当前本地逻辑时间,并进行下一步的仿真计算,并将实时仿真数据存入输出缓冲区。

进一步,所述数据接受模块首先通过本地时间管理模块获取当前物理时间,判别接受到的外部数据是否为过时数据;

数据接受模块获得本地物理时间后,数据接受模块接受外部数据,提取外部数据所附带的数据所处的时戳,并与本地物理时间比较,若为过时数据则丢弃并向外部保送过时通知,若不是过时数据,则数据接受模块判别所接受数据对应的输入端口,并与相应输入缓冲区相关联;

之后,数据接受模块将数据逻辑时间报送本地时间管理模块,同时将数据存入相应的输入缓冲区完成数据接受过程。

进一步,所述的数据输出模块的工作流程包括以下步骤:

数据输出模块从输出缓冲区读取所需输出数据,同时从本地时间管理模块获取当前物理时间,判断发送数据时戳,若小于当前物理时间,则进行超时处理,若大于或者等于当前物理时间则进行发送模式判断,若为全速模式,则直接通过输出端口发送数据;

若为实时模式则进行时戳判断,若数据逻辑时戳等于物理时戳则通过输出端口发送数据;

若数据逻辑时戳大于物理时间,则进行等待,等到物理时间推进到该时刻再发送数据。

一种包括所述的基于数据驱动的仿真模块的分布式实时系统,该系统包括多个所述的基于数据驱动的仿真模块,每一个所述的基于数据驱动的仿真模块为一个仿真节点,各个仿真节点实现不同仿真计算,并通过每个仿真模块的数据接收模块和数据发送模块实现数据共享;

当某一仿真节点接受其它仿真节点输出的数据后,该仿真节点的数据接收模块将接收到的数据中所附的时戳提取出来,提交给本地时间管理模块,由本地时间管理模块确定实时模型算法模块的当前的本地逻辑时间,实时模型算法模块依据接受到的外部输入数据和本地逻辑时间设定仿真步长计算下一步的实时仿真数据,并通知本地时间管理模块;

在实时模型算法模块生成下一步实时仿真数据后存入输出缓冲区,数据发送模块对存入输出缓冲区的实时仿真数据的逻辑时间和当前的物理时间进行对比判断:

若小于当前物理时间,则进行超时处理,若大于或者等于当前物理时间则进行发送模式判断,若为全速模式,则直接通过输出端口发送数据给其它仿真节点;

若为实时模式则进行时戳判断,若数据逻辑时戳等于物理时戳则通过输出端口发送数据;

若数据逻辑时戳大于物理时间,则进行等待,等到物理时间推进到该时刻再发送数据。

进一步,所述本地时间管理模块首先获取本地物理时钟,通过接受外部脉冲同步信号对本地物理时间进行校准,确保分布式实时系统各个仿真节点的物理时间一致;

其次本地时间管理模块接受数据接受模块发送过来的数据逻辑时戳,将本地逻辑时间与数据逻辑时戳设置一致,保证实时模型算法模块与输入数据相同步;

在本地物理时间同步过程和逻辑时间设置过程结束后,本地时间管理模块分别向数据接受模块和数据发送模块发送本地物理时间,向实时模型算法模块发送本地逻辑时间,实现整个仿真运行过程的时间管理。

一种利用所述的基于数据驱动的仿真模块进行分布式强实时数据驱动仿真推进的方法,该方法包括以下步骤:

步骤一、本地时间管理模块通过接受外部脉冲同步信号校准本地物理时间,并向数据接受模块和数据发送模块发送当前物理时间,数据接受模块通过输入端口接受外部仿真数据,并依据当前时间管理模块提供的当前物理时间判别接受数据的实时性,若外部仿真数据时戳大于等于当前物理时间则将外部仿真数据存入输入缓冲区,否则丢弃外部仿真数据并上报过时错误;

步骤二、实时模型算法模块从输入缓冲区获取经过实时性校验的外部仿真数据,并提取外部仿真数据的逻辑时戳,并置位当前逻辑时间进行仿真计算,完成一步仿真计算后向输出缓冲区输出计算结果,并将当前逻辑时间向前推进一个计算步长;

步骤三、数据输出模块从输出缓冲区读取所需输出数据,同时从本地时间管理模块获取当前物理时间,判断发送数据时戳,若小于当前物理时间,则进行超时处理,丢弃数据并上报错误;

若大于或者等于当前物理时间则进行发送模式判断,若为全速模式,则直接通过输出端口发送数据;

若为实时模式则进行时戳判断,由于之前已经进行过一次实时性判断,因此只有可能为实时数据或者超实时数据,若判断结果数据逻辑时戳等于物理时戳则通过输出端口发送数据;

若数据逻辑时戳大于物理时间,则进行等待,等到物理时间推进到该时刻再发送数据。

一种利用所述的分布式实时系统进行分布式强实时数据驱动仿真推进的方法,该方法包括以下步骤:

步骤一、某一仿真节点的本地时间管理模块通过接受外部脉冲同步信号校准本地物理时间,并向数据接受模块和数据发送模块发送当前物理时间,数据接受模块通过输入端口接受其它仿真节点的仿真数据,并依据当前时间管理模块提供的当前物理时间判别接受数据的实时性,若其它仿真节点的仿真数据时戳大于等于当前物理时间则将其它仿真节点的仿真数据存入输入缓冲区,否则丢弃其它仿真节点的仿真数据并上报过时错误;

步骤二、实时模型算法模块从输入缓冲区获取经过实时性校验的其它仿真节点的仿真数据,并提取其它仿真节点的仿真数据的逻辑时戳,并置位当前逻辑时间进行仿真计算,完成一步仿真计算后向输出缓冲区输出计算结果,并将当前逻辑时间向前推进一个计算步长;

步骤三、数据输出模块从输出缓冲区读取所需输出数据,同时从本地时间管理模块获取当前物理时间,判断发送数据时戳,若小于当前物理时间,则进行超时处理,丢弃数据并上报错误;

若大于或者等于当前物理时间则进行发送模式判断,若为全速模式,则直接通过输出端口向其它仿真节点发送数据;

若为实时模式则进行时戳判断,由于之前已经进行过一次实时性判断,因此只有可能为实时数据或者超实时数据,若判断结果数据逻辑时戳等于物理时戳则通过输出端口向其它仿真节点发送数据;

若数据逻辑时戳大于物理时间,则进行等待,等到物理时间推进到该时刻再向其它仿真节点发送数据。

进一步,所述本地时间管理模块首先获取本地物理时钟,通过接受外部脉冲同步信号对本地物理时间进行校准,确保分布式实时系统各个仿真节点的物理时间一致;

其次本地时间管理模块接受数据接受模块发送过来的数据逻辑时戳,将本地逻辑时间与数据逻辑时戳设置一致,保证实时模型算法模块与输入数据相同步;

在本地物理时间同步过程和逻辑时间设置过程结束后,本地时间管理模块分别向数据接受模块和数据发送模块发送本地物理时间,向实时模型算法模块发送本地逻辑时间,实现整个仿真运行过程的时间管理。

本发明实施例提供的技术方案带来的有益效果是:

本发明一种基于数据驱动的仿真模块,利用分布式实时系统中的交互数据的时间戳作为仿真推进激励,使得分布式系统中的各个分节点的时间推进只与系统的接受数据有关,而与其它节点的运行速度无关,接触高层体系结构中时间推进中lbts的制约,提高全系统的运行实时性。

本发明一种基于数据驱动的仿真模块,依据不同模块的实时性需求,通过控制数据的输出速率实现全系统的仿真推进。在推进过程中,将全系统的仿真时间分为物理时间、本地逻辑时间和数据时间三个部分,通过将本地逻辑时间与数据时间关联实现各个仿真节点在仿真运算中数据的时间同步,在仿真推进过程中,仿真节点模型的仿真推进只受本地逻辑时间控制,而不受外部节点和全局物理时间控制,如图2所示。

附图说明

图1是现有技术时间控制成员对时间同步的影响示意图;

图2是本发明实施例物理时间、本地逻辑时间和数据时戳的关系示意图;

图3是本发明实施例一种基于数据驱动的仿真模块示意图;

图4是本发明实施例一种基于数据驱动的仿真模块数据驱动仿真推进流程示意图;

图5是本发明实施例一种基于数据驱动的仿真模块的实时模型算法模块工作流程示意图;

图6是本发明实施例一种基于数据驱动的仿真模块的数据接收模块工作流程示意图;

图7是本发明实施例一种基于数据驱动的仿真模块的数据发送模块工作流程示意图;

图8是本发明实施例一种基于数据驱动的仿真模块的本地时间管理模块工作流程示意图。

具体实施方式

下面结合附图和具体实施方式对本发明一种基于数据驱动的仿真模块作详细说明。

如图3所示,本发明一种基于数据驱动的仿真模块,包括实时模型算法模块、数据接收模块、数据发送模块、本地时间管理模块、多个输入端口及对应的多个输入缓冲区、多个输出端口及对应的输出缓冲区;

数据接收模块用于接收分布式实时系统中其它计算节点发送的数据,输入端口存入对应的输入缓冲区,并提取接受到的数据包中数据所在时戳提交给本地时间管理模块;

实时模型算法模块用于完成分布式实时仿真节点所担负的仿真分析任务;

数据发送模块用于发送存入输出缓冲区的实时模型算法模块计算得到的实时仿真数据,并依据当前物理时间进行时戳判断后通过输出端口向其他节点发送数据;

输入缓冲区和输出缓冲区分别用于存放数据接收模块和数据发送模块所需的数据;

本地时间管理模块一方面用于接受外部时间同步校准信号,以校准本地物理时间使其与分布式系统中其它节点同步,另一方面用于接受实时模型算法模块计算过程中的逻辑时间,以建立本地逻辑时间,并向数据接受模块和数据发送模块同时提供当前物理时间和逻辑时间。

一种分布式实时系统,包括多个所述的基于数据驱动的仿真模块,如图4所示,分布式实时系统中,每一个所述的基于数据驱动的仿真模块为一个仿真节点,各个仿真节点实现不同仿真计算,并通过每个仿真模块的数据接收模块和数据发送模块实现数据共享;各仿真节点的每一个仿真步长的运行过程中分为数据接受、算法运行和数据发送三个阶段;

上述三个阶段又可细分为:接受外部数据、外部数据时戳提取、本地逻辑时间确定、仿真算法运行生成输出数据、输出数据时戳判断、过时数据处理、数据输出模式判断、实时数据发送、全速数据发送9个处理环节;

当某一仿真节点接受外部输入数据后,数据接收模块将外部输入数据中所附的时戳提取出来,提交给本地时间管理模块,由本地时间管理模块确定实时模型算法模块的当前的本地逻辑时间,实时模型算法模块依据接受到的外部输入数据和本地逻辑时间设定仿真步长计算下一步的实时仿真数据,并通知本地时间管理模块;

在实时模型算法模块生成下一步实时仿真数据后存入输出缓冲区,数据发送模块对存入输出缓冲区的实时仿真数据的逻辑时间和当前的物理时间进行对比判断:

若由于实时模型算法模块在计算过程中的时间波动导致当前数据的逻辑时间小于物理时间,则进入过时数据处理环节,否则判断当前的数据发送模式,若为实时模式则进入实时发送环节,若为全速模式则进入全速发送模式。

如图5所示,所述实时模型算法模块的工作流程为,实时模型算法模块在相应的输入缓冲区读取数据后,通过本地时间管理模块确认当前的本地逻辑时间进行下一步的仿真计算,并将实时仿真数据存入输出缓冲区,实时模型算法模块的工作流程不用涉及具体的时间同步和仿真推进策略。

如图6所示,所述的数据接受模块的工作流程包括外部数据接受、时戳判断、输入端口缓冲区关联和数据缓存四个步骤;

数据接受模块首先通过本地时间管理模块获取当前物理时间,用于判别接受到的外部数据是否为过时数据;

数据接受模块获得本地物理时间后,数据接受模块接受外部数据,提取外部数据所附带的数据所处的时戳,并与本地物理时间比较,若为过时数据则丢弃并向外部保送过时通知,若不是过时数据,则数据接受模块判别所接受数据对应的输入端口,并与相应输入缓冲区相关联;

之后,数据接受模块将数据逻辑时间报送本地时间管理模块,同时将数据存入相应的输入缓冲区完成数据接受过程。

如图7所示,所述的数据输出模块的工作流程包括以下步骤:

数据输出模块从输出缓冲区读取所需输出数据,同时从本地时间管理模块获取当前物理时间,判断发送数据时戳,若小于当前物理时间,则进行超时处理,若大于或者等于当前物理时间则进行发送模式判断,若为全速模式,则直接通过输出端口发送数据;

若为实时模式则进行时戳判断,由于之前已经进行过一次实时性判断,因此只有可能为实时数据或者超实时数据,若判断结果数据逻辑时戳等于物理时戳则通过输出端口发送数据;

若数据逻辑时戳大于物理时间,则进行等待,等到物理时间推进到该时刻再发送数据。

如图8所示,本地时间管理模块的工作流程包括物理时间同步、本地逻辑时间设置和时间管理三个过程;

所述的物理时间同步过程为:本地时间管理模块获取本地物理时钟,通过接受外部脉冲同步信号对本地物理时间进行校准,确保分布式实时系统各个仿真节点的物理时间一致;

所述的本地逻辑时间设置过程为:本地时间管理模块接受数据接受模块发送过来的数据逻辑时戳,将本地逻辑时间与数据时戳设置一致,从而保证实时模型算法模块能够与输入数据相同步;

在本地物理时间同步过程和逻辑时间设置过程结束后,本地时间管理模块分别向数据接受模块和数据发送模块发送本地物理时间,向实时模型算法模块发送本地逻辑时间,实现整个仿真运行过程的时间管理。

一种利用所述的基于数据驱动的仿真模块进行分布式强实时数据驱动仿真推进的方法,该方法包括以下步骤:

步骤一、本地时间管理模块通过接受外部脉冲同步信号校准本地物理时间,并向数据接受模块和数据发送模块发送当前物理时间,数据接受模块通过输入端口接受外部仿真数据,并依据当前时间管理模块提供的当前物理时间判别接受数据的实时性,若外部仿真数据时戳大于等于当前物理时间则将外部仿真数据存入输入缓冲区,否则丢弃外部仿真数据并上报过时错误;

步骤二、实时模型算法模块从输入缓冲区获取经过实时性校验的外部仿真数据,并提取外部仿真数据的逻辑时戳,并置位当前逻辑时间进行仿真计算,完成一步仿真计算后向输出缓冲区输出计算结果,并将当前逻辑时间向前推进一个计算步长;

步骤三、数据输出模块从输出缓冲区读取所需输出数据,同时从本地时间管理模块获取当前物理时间,判断发送数据时戳,若小于当前物理时间,则进行超时处理,丢弃数据并上报错误;

若大于或者等于当前物理时间则进行发送模式判断,若为全速模式,则直接通过输出端口发送数据;

若为实时模式则进行时戳判断,由于之前已经进行过一次实时性判断,因此只有可能为实时数据或者超实时数据,若判断结果数据逻辑时戳等于物理时戳则通过输出端口发送数据;

若数据逻辑时戳大于物理时间,则进行等待,等到物理时间推进到该时刻再发送数据。

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