一种超实时联合仿真的调度方法及装置与流程

文档序号:25869792发布日期:2021-07-13 16:31阅读:159来源:国知局
一种超实时联合仿真的调度方法及装置与流程

本发明涉及电子系统设计和仿真验证技术领域,尤其涉及一种超实时联合仿真的调度方法及装置。



背景技术:

目前,在电子系统设计时,各个分系统独立进行数学建模。以飞机电子系统为例,按照未来飞机电子系统划分(航电、控制、机电等)建立各个设备的数学模型。然后进行模型验证,其中,模型验证时,多数使用建模工具的逻辑解算进行超实时仿真。在联合仿真阶段,各个模型下载到实时仿真机中,各模型依据物理时间进行实时解算,模型运行过程中依据各自的时序进行仿真。

由此可以看出,在联合仿真阶段,由于进行的是实时解算,所有验证必须依赖物理时间,导致仿真进度缓慢,验证耗时较长。例如,飞机飞行一小时试验,则各模型必须按照物理时间运行一小时才能验证完成。另外,如果各个模型进行超实时联合仿真,由于各模型逻辑复杂度不同,解算耗时不同,导致各个模型中物理时间不统一,联合仿真会造成逻辑混乱。

因此,在仿真时,如何解决实时仿真运行速度过慢的问题,以及超实时联合仿真时各模型物理时间不统一的问题,是一项亟待解决的问题。



技术实现要素:

有鉴于此,本发明提供了一种超实时联合仿真的调度方法及装置,基于共享内存的超实时联合仿真令牌调度系统,通过超实时解算引擎,调度方法不依赖物理时间,进行时间的自然累加,保证了仿真效率,同时通过统一的令牌调度策略保证了各个模型的物理时间统一。

本发明提供了一种超实时联合仿真的调度方法,包括:

建立仿真所需的各个已注册模型与各个令牌的对应关系;

基于所述对应关系向各个已注册模型发送令牌,以使各个收到令牌的已注册模型进行步长解算,并设置各个令牌的令牌状态为已发送状态;

在各个已注册模型进行步长解算时,进行时间自然累加;

将上交令牌的已注册模型的令牌状态设置为已回收状态;其中,已注册模型在解算完成后上交令牌;

在时间自然累加到其中一个或几个已注册模型下一个步长已达到时,检测下一个步长已达到的已注册模型的令牌状态;

若检测到存在下一个步长已达到的已注册模型的令牌状态为已发送状态,则停止时间自然累加,等待下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。

可选的,还包括:

若下一个步长已达到的已注册模型的令牌状态均为已回收状态,则继续进行时间自然累加,并基于所述对应关系向下一个步长已达到的已注册模型发送令牌,以使下一个步长已达到的已注册模型进行步长解算,并设置下一个步长已达到的已注册模型的令牌状态为已发送状态。

可选的,还包括:

启动所述未解算完成的已注册模型的定时器进行时间计时;其中,一个已注册模型设置有一个定时器;

对于所述未解算完成的已注册模型中在对应的预设超时时长内未上交令牌的已注册模型,将对应的模型状态设置为已销毁状态;其中,一个已注册模型对应有一个预设超时时长;

在下一个步长已达到的已注册模型既存在令牌状态为已回收状态也存在模型状态为已销毁状态时,对于下一个步长已达到的已注册模型的令牌状态为已回收状态的目标已注册模型,继续进行时间自然累加,并基于所述对应关系向所述目标已注册模型发送令牌,以使所述目标已注册模型进行步长解算,并设置所述目标已注册模型为已发送状态。

可选的,对于所述未解算完成的已注册模型中在对应的预设超时时长内未上交令牌的已注册模型,将对应的模型状态设置为已销毁状态,包括:

对于所述未解算完成的已注册模型中在定时器计时结束后未上交令牌的已注册模型,记录一次超时,并再次启动对应的定时器;

将超时次数达到预设超时次数的所述未解算完成的已注册模型确定为所述未解算完成的已注册模型中在对应的预设超时时长内未上交令牌的已注册模型,并将对应的模型状态设置为已销毁状态。

可选的,还包括:

基于各个已注册模型的解算时间和销毁概率设置其对应的预设超时次数。

本发明实施例公开了一种超实时联合仿真的调度装置,包括:

建立模块,用于建立仿真所需的各个已注册模型与各个令牌的对应关系;

发送模块,用于基于所述对应关系向各个已注册模型发送令牌,以使各个收到令牌的已注册模型进行步长解算,并设置各个令牌的令牌状态为已发送状态;

第一时间自然累加模块,用于在各个已注册模型进行步长解算时,进行时间自然累加;

第一设置模块,用于将上交令牌的已注册模型的令牌状态设置为已回收状态;其中,已注册模型在解算完成后上交令牌;

检测模块,用于在时间自然累加到其中一个或几个已注册模型下一个步长已达到时,检测下一个步长已达到的已注册模型的令牌状态;

执行等待模块,用于若检测到存在下一个步长已达到的已注册模型的令牌状态为已发送状态,则停止时间自然累加,等待下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。

可选的,还包括:

第二时间自然累加模块,用于:若下一个步长已达到的已注册模型的令牌状态均为已回收状态,则继续进行时间自然累加,并基于所述对应关系向下一个步长已达到的已注册模型发送令牌,以使下一个步长已达到的已注册模型进行步长解算,并设置下一个步长已达到的已注册模型的令牌状态为已发送状态。

可选的,还包括:

第一定时器启动模块,用于启动所述未解算完成的已注册模型的定时器进行时间计时;其中,一个已注册模型设置有一个定时器;

第二设置模块,用于对于所述未解算完成的已注册模型中在对应的预设超时时长内未上交令牌的已注册模型,将对应的模型状态设置为已销毁状态;其中,一个已注册模型对应有一个预设超时时长;

第三时间自然累加模块,用于在下一个步长已达到的已注册模型既存在令牌状态为已回收状态也存在模型状态为已销毁状态时,对于下一个步长已达到的已注册模型的令牌状态为已回收状态的目标已注册模型,继续进行时间自然累加,并基于所述对应关系向所述目标已注册模型发送令牌,以使所述目标已注册模型进行步长解算,并设置所述目标已注册模型为已发送状态。

可选的,所述第二设置模块,包括:

第二定时器启动子模块,用于对于所述未解算完成的已注册模型中在定时器计时结束后未上交令牌的已注册模型,记录一次超时,并再次启动对应的定时器;

第二设置子模块,用于将超时次数达到预设超时次数的所述未解算完成的已注册模型确定为所述未解算完成的已注册模型中在对应的预设超时时长内未上交令牌的已注册模型,并将对应的模型状态设置为已销毁状态。

可选的,还包括:

超时次数设置模块,用于基于各个已注册模型的解算时间和销毁概率设置其对应的预设超时次数。

综上所述,本发明公开了一种超实时联合仿真的调度方法及装置,在进行联合仿真时,调度系统对各个模型的计时,采用自然时间的累加,并在检测到存在下一个步长达到的已注册模型的令牌状态为已发送状态,则停止时间自然累加,等待下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。这样,保障了联合仿真的各个模型物理时间上的统一,从而使得联合仿真的逻辑不会混乱,并且,加快了仿真进度、提高了仿真效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明公开的一种超实时联合仿真的调度方法实施例1的方法流程图;

图2为本发明公开的一种超实时联合仿真的调度方法实施例2的方法流程图;

图3为本发明公开的一种超实时联合仿真的调度方法实施例3的方法流程图;

图4为本发明公开的一种超实时联合仿真的调度装置实施例1的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,为本发明公开的一种超实时联合仿真的调度方法实施例1的方法流程图,所述方法可以包括以下步骤:

s101:建立仿真所需的各个已注册模型与各个令牌的对应关系。

为便于理解,首先对超实时的概念进行解释。要模拟某一场景,需要各相关模型同步达到这一场景需要的相应状态,但由于各模型的运行复杂度不同,各模型的运行时间并不相同,这就要求运行快的模型等待运行相对慢的模型,以完成对场景的模拟。这就导致完成场景模拟所需的时间与真实的物理时间存在差异,超越了真实的物理时间,所以叫做超实时。需要说明的是:仿真时所需的时间可能比真实的物理时间短,也可能比真实的物理时间长,决定于仿真真实场景的模型的运行时长。如果某一场景的物理时间很短,但模拟这一场景的模型很复杂,运行时间很长,就会出现仿真时间大于真实物理时间的情形。相反,如果某一物理时间很长,但模拟这一场景的模型很简单,运行时间很短,就会出现仿真时间小于真实物理时间的情形。

当需要进行超实时联合仿真的调度时,首先将仿真所需的模型利用共享内存完成注册,然后进行令牌信息的初始化,建立各个令牌与已注册模型的对应关系,可以理解的是,为将令牌和模型对应起来,每个令牌信息中应包括表示令牌所属模型的信息,如模型名称等。为方便查找令牌,每个令牌信息中还可以包括令牌在共享内存的索引号。每个令牌信息中还包括令牌的令牌状态。例如,当仿真所需的模型有:模型a、模型b、模型c和模型d时,分别建立模型a、模型b、模型c和模型d与各个令牌的一一对应关系。

s102:基于所述对应关系向各个已注册模型发送令牌,以使各个收到令牌的已注册模型进行步长解算,并设置各个令牌的令牌状态为已发送状态。

本实施例中,每个令牌的令牌状态可以包括:未发送、已发送和已回收,其中,在令牌发送之前,令牌的状态表示为未发送;当模型处于解算状态时,令牌状态为已发送;当模型已完成解算并正确上交令牌,则此时令牌表示已回收。

其中,对应关系为上述提到的,已注册模型与令牌的对应关系,基于对应关系,将令牌发送给相对应的已注册模型,以使已注册模型进行步长解算,并将令牌状态设置为已发送。

本实施例中,令牌信息中,还可以包括已注册模型的进程号。其中调度系统根据进程号查询进程信息,通过进程号给指定模型发送调度信息。

其中,在建立仿真所需的各个已注册模型与各个令牌的对应关系后,进一步的,可以根据对应关系中的进程号给所有仿真所需的已注册模型发送令牌,并将各个令牌的状态设置为已发送状态。本实施例中,已注册模型接收到令牌后,进行步长解算。

s103:在各个已注册模型进行步长解算时,进行时间自然累加。

在各个已注册模型进行步长解算时,不依赖物理时间进行时间自然累加。

其中,时间自然累加是指:时间数值以步长为1进行累加,累加速度与进行时间自然累加的计算设备的算力有关,算力越大,累加速度越快,时间自然累加的时间数值是计算机自身认为的时间。一般地,时间自然累加的时间数值比物理时间快得多,如以3.0ghz处理为例,以微秒为步进,累加到300小时,只需要1秒钟左右。

s104:将上交令牌的已注册模型的令牌状态设置为已回收状态;其中,已注册模型在解算完成后上交令牌。

通过上述介绍可知,令牌的回收状态包括已回收状态,且已回收状态表示:已注册模型完成解算且将令牌上交。那么,在各个已注册模型进行步长解算的过程中,当有已注册模型解算完成时,将该解算完成的已注册模型的令牌状态设置为已回收状态,例如在解算的过程中,当模型a的解算完成,且将令牌上交后,将模型a的令牌状态由已发送状态设置为已回收状态。

s105:在时间自然累加到其中一个或几个已注册模型下一个步长已达到时,检测下一个步长已达到的已注册模型的令牌状态。

s106:若检测到存在下一个步长达到的已注册模型的令牌状态为已发送状态,则停止时间自然累加,等待下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。

本实施例中,当已注册模型接收到令牌后进行解算,并进行时间的自然累加,当累加的时间时长为一个或者几个已注册模型的一个步长时,即自然时间累加到其中一个或者几个已注册模型下一个步长已达到时,对下一个步长已达到的已注册模型的令牌状态进行检测。本实施例中,某一个场景下,不同的已注册模型所需的步长不同,并且,由于模型解算的复杂度不同,解算时间也不同,那么当时间自然累加到一个或者多个已注册模型的下一个步长时,已注册模型的解算状态不一样,即已注册模型的令牌状态不一样。对于解算时间短的已注册模型,令牌状态可能为已回收,对于解算时间比较长的,令牌状态可能为已发送。

举例说明:比如仿真某一场景需要四个模型,分别为模型a、模型b、模型c和模型d,且需要模型a和b以100μs为步长,模型c以200μs为步长,模型d以500μs为步长,其中a模型的解算时间为30μs,b模型的解算时间为115μs,c模型的解算时间为50μs,d模型的解算时间为100μs。在具体仿真时,首先这四个模型利用共享内存完成注册,调度系统通过共享内存识别到这四个模型已注册时,向这四个模型发送令牌,并将这四个模型的令牌状态设置为已发送。同时调度系统的计时系统进行时间自然累加,a模型在30μs已解算完毕,在时间累加到100μs时,则表示达到了模型a和模型b的下一个步长,那么检测模型a和模型b的令牌状态,b模型尚在解算中,调度系统检测a模型和b模型的令牌状态,检测到a模型的令牌状态为已回收,b模型的状态依然是已发送,此时时间自然累加停止。

综上所述,在上述实施例中,当需要进行超实时联合仿真调度时,首先建立仿真所需的各个已注册模型与各个令牌的对应关系,然后基于对应关系向各个已注册模型发送令牌,并设置各个令牌的状态为已发送状态;在各个已注册模型进行步长解算时,进行时间自然累加;在各个已注册模型进行步长解算的过程中,当有已注册模型解算完成时,将该解算完成的已注册模型的令牌的状态设置为已回收状态;在时间自然累加到其中一个或几个已注册模型下一个步长已达到时,检测下一个步长已达到的已注册模型的令牌状态;若检测到存在下一个步长已达到的已注册模型的令牌状态为已发送状态,则停止时间自然累加,等待下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。由此可知,本实施例中在进行联合仿真时,调度系统对各个模型的计时,采用自然时间的累加,并在检测到存在下一个步长达到的已注册模型的令牌状态为已发送状态,则停止时间自然累加,等待下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。这样,保障了联合仿真的各个模型物理时间上的统一,从而使得联合仿真的逻辑不会混乱,并且,加快了仿真进度、提高了仿真效率。

如图2所示,为本发明公开的一种超实时联合仿真的调度方法实施例2的方法流程图,所述方法可以包括如下的步骤:

s201:建立仿真所需的各个已注册模型与各个令牌的对应关系。

s202:基于所述对应关系向各个已注册模型发送令牌,以使各个收到令牌的已注册模型进行步长解算,并设置各个令牌的令牌状态为已发送状态。

s203:在各个已注册模型进行步长解算时,进行时间自然累加。

s204:将上交令牌的已注册模型的令牌状态设置为已回收状态;其中,已注册模型在解算完成后上交令牌。

s205:在时间自然累加到其中一个或几个已注册模型下一个步长已达到时,检测下一个步长已达到的已注册模型的令牌状态。

s206:若检测到存在下一个步长已达到的已注册模型的令牌状态为已发送状态,则停止时间自然累加,等待下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。

上述s201-s206与上述s101-s106一致,本实施例中不再赘述。

s207:若下一个步长已达到的已注册模型的令牌状态均为已回收状态,则继续进行自然时间累加,并基于所述对应关系向下一个步长已达到的已注册模型发送令牌,以使下一个步长已达到的已注册模型进行步长解算,并设置下一个步长已达到的已注册模型的令牌状态为已发送状态。

本实施例中,在时间自然累加到其中一个或者几个已注册模型下一个步长已到达时,检测下一个步长已达到的已注册模型的令牌状态,此时下一个步长已达到的已注册模型的令牌状态可以包括两种:已发送状态和已回收状态,基于上述两种状态,会包括如下的两种情况:

情况一:下一个步长已达到的已注册模型的令牌状态中包含已发送的状态,则表示下一个步长已达到的已注册模型中存在未解算完成的,在该情况下,则停止自然时间累加,并等待下一个步长已达到的已注册模型中未解算完成的已注册模型,直到下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。当下一个步长已达到的已注册模型的令牌状态均为已回收状态时,则继续进行自然时间累加,并基于对应关系向下一个步长已达到的已注册模型发送令牌,以使下一个步长已达到的已注册模型进行步长解算,并设置下一个步长已达到的已注册模型的令牌状态为已发送状态。

情况二:下一个步长已达到的已注册模型的令牌状态均为已回收状态,则表示下一个步长已达到的已注册模型均已完成解算,在该情况下,无需等待其它的模型进行解算,即继续进行时间自然累加,并基于对应关系向下一个步长已达到的已注册模型发送令牌,以使下一个步长已达到的已注册模型进行步长解算,并设置下一个步长的已注册模型的令牌状态为已发送。

本实施例中在进行联合仿真时,调度系统对各个模型的计时,采用自然时间的累加,并在检测到存在下一个步长达到的已注册模型的令牌状态为已发送状态,则停止时间自然累加,等待下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。若下一个步长已达到的已注册模型的令牌状态均为已回收状态,则继续进行自然时间累加,并基于所述对应关系向下一个步长已达到的已注册模型发送令牌,以使下一个步长已达到的已注册模型进行步长解算,并设置下一个步长已达到的已注册模型的令牌状态为已发送状态。这样,保障了联合仿真的各个模型物理时间上的统一,从而使得联合仿真的逻辑不会混乱,并且,加快了仿真进度、提高了仿真效率。

如图3所示,为本发明公开的一种超实时联合仿真的调度方法实施例3的方法流程图,所述方法可以包括以下步骤:

s301:启动所述未解算完成的已注册模型的定时器进行时间计时;其中,一个已注册模型设置有一个定时器。

本实施例中,当检测到存在下一个步长已达到的已注册模型的令牌状态为已发送状态时,停止自然时间累加,对于下一个步长已达到的已注册模型,继续进行解算,在解算的过程中,通过该已注册模型对应的定时器进行定时。

s302:对于所述未解算完成的已注册模型中在对应的预设超时时长内未上交令牌的已注册模型将对应的模型状态设置为已销毁状态,其中,一个已注册模型对应有一个预设超时时长。

本实施例中,当达到某个模型的下一个步长时,但是该模型未计算完成,表示该模型已超时,本实施例中,为了保障联合仿真的正常执行,允许一定范围内的超时,即会让该模型若继续进行解算。但是由于一些异常的情况的存在,可能会导致解算出现问题,那么就可能会导致很长时间都无法完成解算,阻塞超实时联合仿真,那么为了保障不影响联合仿真的实现,本实施例中,在每个令牌信息中配置模型状态。通过设置预设超时时长,并在已注册模型的超时解算时间超过预设的超时时长后,则将已注册模型的模型状态设置为已销毁状态,即表明模型处于未注册状态。

在一种实施方式中,预设超时时长可以等于一个定时器的时长,预设超时时长的设置可以基于模型的解算时间和模型的销毁概率。其中,模型的解算时间与模型的复杂度有关,模型的解算时间可以理解为在正常情况下,模型完成解算所需的时间。同时,为了降低模型的销毁概率,通过实验研究,对预设的超时时长进行设置,以使得模型的销毁概率小于某个预设的概率阈值。当然,在其他实施方式中,预设超时时长也可以不用具体的概率阈值限定,设置为一个经验值。其中,模型的销毁概率也即模型状态被设置为已销毁状态的概率。

其中,在另外一种实施方式中,预设超时时长也可以等于多个定时器的时长,定时器的时长根据相应模型的复杂度设置,需保证一般情形下相应模型在一个定时器的时长内完成解算。具体预设超时时长等于多少个定时器的时长,或者预设超时时长对应的预设超时次数是几次,可根据经验或试验结果灵活设定,一般需尽量避免模型状态设置为已销毁状态的情形出现,同时也需考虑模型异常导致的超实时联合仿真阻塞问题,避免异常模型阻塞联合仿真的进程。可选的,s302包括:

对于所述未解算完成的已注册模型中在定时器计时结束后未上交令牌的已注册模型,记录一次超时,并再次启动对应的定时器;

将超时次数达到预设超时次数的所述未解算完成的已注册模型确定为所述未解算完成的已注册模型中在对应的预设超时时长内未上交令牌的已注册模型,并将对应的模型状态设置为已销毁状态。

一般地,预设超时次数的设置于模型的解算时间和模型的销毁概率有关,其中,模型的解算时间与模型的复杂度有关,模型的解算时间可以理解为在正常情况下,模型完成解算所需的时间。并且,为了降低模型的销毁概率,通过实验研究,对超时进行设置,以使得模型的销毁概率小于某个预设的概率阈值。可以理解的是,预设超时次数可以是令牌信息的一部分。

s303:在下一个步长已达到的已注册模型既存在令牌状态为已回收状态也存在模型状态为已销毁状态时,对于下一个步长已达到的已注册模型的令牌状态为已回收状态的目标已注册模型,继续进行时间自然累加,并基于所述对应关系向所述目标已注册模型发送令牌,以使所述目标已注册模型进行步长解算,并设置所述目标已注册模型为已发送状态。

本实施例中,当存在模型状态为已销毁状态的已注册模型时,联合仿真的其它模型不受影响,继续进行时间自然累加,并继续进行解算,即:基于对应关系向处于已回收状态的已注册模型发送令牌,使得已处于已回收状态的已注册模型进行下一个步长的解算。换句话说,对于下一个步长已达到的已注册模型,除了令牌状态为已回收状态的模型,其他模型的模型状态均为已销毁状态时,对令牌状态为已回收状态的模型继续进行解算,完成联合仿真。

本实施例中,通过定时器计时的方式控制已达到下一个步长,但是仍未解算完成的已注册模型继续进行解算时的超时时长,并在预设的超时时长内仍未解算完成的已注册模型,将其模型状态设置为已销毁状态,以使得异常的模型不影响联合仿真的实现。

为更加清楚的说明本发明的技术方案,下面以具体实施例进行说明:

比如仿真某一场景需要四个模型,分别为模型a、模型b、模型c和模型d。以物理时间为尺度,模型a和b以100μs为步长,模型c以200μs为步长,模型d以500μs为步长,其中模型a的解算时间为30μs,模型b的解算时间为115μs,模型c的解算时间为50μs,模型d的解算时间为100μs。在具体仿真时,首先这四个模型利用共享内存完成注册,调度系统通过共享内存识别到这四个模型已注册时,令牌信息初始化后,向这四个模型发送令牌,并将这四个模型的令牌状态设置为已发送。同时调度系统的计时系统进行时间自然累加,模型a在30μs已解算完毕,在时间自然累加到100μs时,模型b尚在解算中,调度系统检测模型a和模型b的令牌状态,检测到模型a的令牌状态为已回收,模型b的令牌状态依然是已发送,此时时间自然累加停止,且会启动模型b的物理定时器,在模型b的物理定时器达到定时时长10μs时,模型b依然没有解算完毕,调度系统检测到模型b的状态还是已发送,记录一次超时,再次启动模型b的物理定时器,在模型b的物理定时器计时到5μs时,模型b解算完毕并被调度系统检测到其令牌状态为已回收,此时继续进行自然时间累加,模型a和模型b进入第二周期的解算。在时间自然累加到200μs时,调度系统检测到模型a(在时间自然累加到130μs时解算完毕)和模型c(模型c在50μs时解算完毕)的令牌状态为已回收,模型b的令牌状态是已发送,此时时间自然累加再次停止,且会再次启动模型b的物理定时器,在模型b的物理定时器达到10μs(即一次计时结束)时,模型b依然没有解算完毕,记录一次超时,再次启动模型b的物理定时器,调度系统检测到模型b的状态还是已发送,在模型b的物理定时器计时到5μs时,模型b再次解算完毕并被调度系统检测到其令牌状态为已回收,模型a和模型b进入第三周期的解算,模型c进入第二周期的解算,继续进行自然时间累加,后续分别在300μs进行第三次模型a和模型b的令牌状态检测,并根据检测结果执行相应的操作,在400μs时进行模型a、模型b和模型c的令牌状态检测,并根据检测结果执行相应的操作。在时间累加到在时间累加到500μs时,调度系统检测模型a、模型b、模型c和模型d(模型d在100μs时解算完毕)的令牌状态,并检测到模型a、模型c和模型d的令牌状态为已回收,模型b的状态是已发送,此时时间自然累加再次停止,且会再次启动模型b的物理定时器,在模型b的物理定时器达到定时时长10μs时,模型b依然没有解算完毕,调度系统检测到模型b的状态还是已发送,记录一次超时,再次启动模型b的物理定时器,在模型b的物理定时器计时到5μs时,模型b再次解算完毕并被调度系统检测到其令牌状态为已回收,完成此阶段仿真。

当然,前述实施例仅仅是一个具体实施例,在不同情形下,根据前述设计逻辑会有不同的运行结果,比如说模型b的解算时间为150μs,超时时间为10μs,预设超时次数为3次,则调度系统会发现超过预设超时次数后模型b依然未完成解算,将模型b的模型状态设置为已销毁状态,继续进行时间自然累加,完成后续仿真过程。又如,模型b的解算时间为50μs,那么在各阶段就无需启动物理定时器,时间持续进行自然累加,直至仿真结束。

需要说明的是,模型a和b以100μs为步长,模型c以200μs为步长,模型d以500μs为步长是指:模型a和模型b在时间自然累加到其下一个步长时的时间数值时,其对应的物理时间是100μs;模型c在时间自然累加到其下一个步长时的时间数值时,其对应的物理时间是200μs;模型d在时间自然累加到其下一个步长时的时间数值时,其对应的物理时间是500μs。至于每个模型在下一个步长达到时时间自然累加的时间数值与相应计算设备的算力有关。

如图4所示,为本发明公开的一种超实时联合仿真的调度装置实施例1的结构示意图,所述装置可以包括:

建立模块401,用于建立仿真所需的各个已注册模型与各个令牌的对应关系;

发送模块402,用于基于所述对应关系向各个已注册模型发送令牌,以使各个收到令牌的已注册模型进行步长解算,并设置各个令牌的令牌状态为已发送状态;

第一时间自然累加模块403,用于在各个已注册模型进行步长解算时,进行时间自然累加;

第一设置模块404,用于将上交令牌的已注册模型的令牌状态设置为已回收状态;其中,已注册模型在解算完成后上交令牌;

检测模块405,用于在时间自然累加到其中一个或几个已注册模型下一个步长已达到时,检测下一个步长已达到的已注册模型的令牌状态;

执行等待模块406,用于若检测到存在下一个步长已达到的已注册模型的令牌状态为已发送状态,则停止时间自然累加,等待下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。

可选的,还包括:

第二时间自然累加模块,用于:若下一个步长已达到的已注册模型的令牌状态均为已回收状态,则继续进行时间自然累加,并基于所述对应关系向下一个步长已达到的已注册模型发送令牌,以使下一个步长已达到的已注册模型进行步长解算,并设置下一个步长已达到的已注册模型的令牌状态为已发送状态。

可选的,还包括:

第一定时器启动模块,用于启动所述未解算完成的已注册模型的定时器进行时间计时;其中,一个已注册模型设置有一个定时器;

第二设置模块,用于对于所述未解算完成的已注册模型中在对应的预设超时时长内未上交令牌的已注册模型,将对应的模型状态设置为已销毁状态;其中,一个已注册模型对应有一个预设超时时长;

第三时间自然累加模块,用于在下一个步长已达到的已注册模型的令牌状态既存在为已回收状态也存在已销毁状态时,对于下一个步长已达到的已注册模型的令牌状态为已回收状态的目标已注册模型,继续进行时间自然累加,并基于所述对应关系向所述目标已注册模型发送令牌,以使所述目标已注册模型进行步长解算,并设置所述目标已注册模型为已发送状态。

可选的,所述第二设置模块,包括:

第二定时器启动子模块,用于对于所述未解算完成的已注册模型中在定时器计时结束后未上交令牌的已注册模型,记录一次超时,并再次启动对应的定时器;

第二设置子模块,用于将超时次数达到预设超时次数的所述未解算完成的已注册模型确定为所述未解算完成的已注册模型中在对应的预设超时时长内未上交令牌的已注册模型,并将对应的模型状态设置为已销毁状态。

可选的,还包括:

超时次数设置模块,用于基于各个已注册模型的解算时间和销毁概率设置其对应的预设超时次数。

综上所述,本发明公开的装置,在进行联合仿真时,调度系统对各个模型的计时,采用自然时间的累加,并在检测到存在下一个步长达到的已注册模型的令牌状态为已发送状态,则停止时间自然累加,等待下一个步长已达到的已注册模型中未解算完成的已注册模型完成解算。这样,保障了联合仿真的各个模型物理时间上的统一,从而使得联合仿真的逻辑不会混乱,并且,加快了仿真进度、提高了仿真效率。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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