一种分布式仿真时间推进和消息传输的同步方法技术

技术编号:9993141 阅读:90 留言:0更新日期:2014-05-02 11:39
本发明专利技术公开了一种分布式仿真时间推进和消息传输的同步方法,该方法由LRC_S模块通过组播发送时戳消息给LRC_R模块的同时,通过TCP构建与仿真时间推进服务完全一致的另一条时戳消息传输路径,LRC_R模块通过比较两路时戳消息的一致性分布式仿真时间推进和消息传输的同步,从而完整地实现了HLA接口规范规定的服务,提高分布式仿真系统的运行性能。

【技术实现步骤摘要】
一种分布式仿真时间推进和消息传输的同步方法
本专利技术涉及一种同步方法,特别是涉及一种分布式仿真时间推进和消息传输的同步方法。
技术介绍
在基于HLA的分布式仿真系统中,按照HLA接口规范,一个分布式节点申请仿真时间推进到T,在被允许之前,必须保证该节点已接收到所有Ts≤T的时戳消息。由于在HLA中间件RTI的实现中,通常分布式仿真时间推进服务采用可靠传输模式TCP实现,消息传输服务采用组播模式Multicast实现,由于二者传输模式和传输路径不同,同步困难,难以保证仿真时间推进允许前所有Ts≤T的时戳消息已接收到,从而不能完整地实现HLA接口规范。
技术实现思路
本专利技术目的在于提供一种分布式仿真时间推进和消息传输的同步方法,以保证分布式仿真节点时间推进允许前所有Ts≤T的时戳消息已接收到,从而完整地实现HLA接口规范。一种分布式仿真时间推进和消息传输的同步方法,该同步方法包括如下步骤:1)构建用于分布式仿真时间推进和消息传输同步的系统,该系统包括:节点消息发送处理LRC_S模块:使用组播,发送时戳消息给LRC_R模块,同时,复制该时戳消息,使用TCP,发送给FEDEXEC模块;使用TCP,发送仿真时间推进服务给FEDEXEC模块;时间推进处理FEDEXEC模块:累计计算接收到的时戳消息,当接收到LRC_S模块发送的仿真时间推进服务时,判断是否允许时间推进,并将计算结果,以及此时已累积的时戳消息集合发送给LRC_R;节点消息接收处理LRC_R模块:接收LRC_S模块发送的时戳消息并累计;接收FEDEXEC模块发送的时间推进允许结果和时戳消息集合,调用MSG_C模块,计算LRC_S模块发送的时戳消息集合是否等于FEDEXEC模块发送的时戳消息集合,如果相等,则调用时间推进允许服务;消息匹配处理MSG_C模块:比较输入的两个时戳消息集合是否相等,相等返回TRUE,否则返回FALSE;2)LRC_S模块分别发送时戳消息给LRC_R模块和FEDEXEC模块;3)LRC_R模块接收时戳消息并处理;4)LRC_S模块发送仿真时间推进服务给FEDEXEC模块;5)FEDEXEC模块处理时戳消息和申请时间推进服务;6)LRC_R模块处理FEDEXEC模块发送的时间推进允许和时戳消息集合。本专利技术的优点在于:本专利技术时间推进和消息传输的同步方法使得系统运行更为方便,快捷。附图说明图1:一种分布式仿真时间推进和消息传输的同步方法流程图。具体实施方式如图1所示为一种分布式仿真时间推进和消息传输的同步方法流程图,该同步方法的具体步骤为:第一步构建实现该方法的系统用于分布式仿真时间推进和消息传输同步的系统,包括:节点消息发送处理LRC_S模块、时间推进处理FEDEXEC模块、节点消息接收处理LRC_R模块、消息匹配处理MSG_C模块。LRC_S模块的功能为:使用组播,发送时戳消息给LRC_R模块,同时,复制该时戳消息,使用TCP,发送给FEDEXEC模块;使用TCP,发送仿真时间推进服务给FEDEXEC模块;FEDEXEC模块的功能为:累计计算接收到的时戳消息,当接收到LRC_S模块发送的仿真时间推进服务时,判断是否允许时间推进,并将计算结果,以及此时已累积的时戳消息集合发送给LRC_R;LRC_R模块的功能为:接收LRC_S模块发送的时戳消息并累计;接收FEDEXEC模块发送的时间推进允许结果和时戳消息集合,调用MSG_C模块,计算LRC_S模块发送的时戳消息集合是否等于FEDEXEC模块发送的时戳消息集合,如果相等,则调用时间推进允许服务;MSG_C模块的功能为:比较输入的两个时戳消息集合是否相等,相等返回TRUE,否则返回FALSE。其中FEDEXEC模块通过可靠传输模式TCP与LRC_S模块、LRC_R模块通讯,LRC_S模块与LRC_R模块通过组播传输模式进行通讯。第二步LRC_S模块发送时戳消息计算该节点可发送时戳消息的下限值LBTS,LBTS=T(i)+Lookahead(i);判断要发送的时戳消息的时戳是否大于LBTS,如果不大于,则出错返回;如果大于,则通过组播发送该时戳消息;复制该时戳消息,通过TCP发送该消息给FEDEXEC模块。第三步LRC_R模块接收时戳消息并处理接收该时戳消息,并累计计算该节点已接收到的时戳消息集合;查询是否有未处理、由FEDEXEC模块发送的允许时间推进服务,如果没有,则返回,如果有,则调用MSG_C模块,输入本节点接收的时戳消息集合和FEDEXEC模块发送的时戳消息集合,输出时TRUE,则标记处理FEDEXEC模块发送的允许时间推进服务,否则返回。第四步LRC_S模块发送仿真时间推进服务LRC_S模块判断仿真时间推进值是否大于LBTS,如果小于,则直接返回;LRC_S模块通过TCP发送仿真时间推进服务给FEDEXEC模块,并更新该节点的T(i)为该服务设置的时间值。第五步FEDEXEC模块处理时戳消息和申请时间推进服务FEDEXEC模块累计计算已接收到的时戳消息;FEDEXEC模块计算每一个联邦成员的约束时戳下限值:LBTS(i)=Min{ELT(j)}其中i≠jELT(j)=T(j)+Lookahead(j)完成LBTS(i)的计算后,FEDEXEC模块判断LBTS(i)≥T(i)时,FEDEXEC模块允许该成员逻辑时间推进到T(i),并通过TCP发送时间推进允许时间推进标志和更新的时戳消息集合给LRC_R模块。第六步LRC_R模块处理FEDEXEC模块发送的时间推进允许和时戳消息集合LRC_R模块接收FEDEXEC模块发送的时间推进允许,标记为FALSE;LRC_R模块接收FEDEXEC模块发送的时戳消息集合,调用MSG_C模块,输入该集合与本节点通过组播接收的时戳消息集合,输出时TRUE,则标记处理FEDEXEC模块发送的允许时间推进服务,否则标记该允许时间推进服务为FALSE。应当理解,以上借助优选实施例对本专利技术的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本专利技术说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本专利技术各实施例技术方案的精神和范围。本文档来自技高网...
一种分布式仿真时间推进和消息传输的同步方法

【技术保护点】

【技术特征摘要】
1.一种分布式仿真时间推进和消息传输的同步方法,其特征在于,该同步方法包括如下步骤:1)构建用于分布式仿真时间推进和消息传输同步的系统,该系统包括:节点消息发送处理LRC_S模块:使用组播,发送时戳消息给LRC_R模块,同时,复制该时戳消息,使用TCP,发送给FEDEXEC模块;使用TCP,发送仿真时间推进服务给FEDEXEC模块;时间推进处理FEDEXEC模块:累计计算接收到的时戳消息,当接收到LRC_S模块发送的仿真时间推进服务时,判断是否允许时间推进,并将计算结果,以及此时已累积的时戳消息集合发送给LRC_R;节点消息接收处理LRC_R模块:接收LRC_S模块发送的时戳消息并累计;接收FEDEXEC模块发送的时间推进允许结果和时戳消息集合,调用MSG_C模块,计算LRC_S模块发送的时戳消息集合是否等于FEDEXEC模块发送的时戳消息集合,如果相等,则调用时间推进允许服务;消息匹配处理MSG_C模块:比较输入的两个时戳消息集合是否相等,相等返回TRUE,否则返回FALSE;2)LRC_S模块分别发送时戳消息给LRC_R模块和FEDEXEC模块;3)LRC_R模块接收时戳消息并处理;4)LRC_S模块发送仿真时间推进服务给FEDEXEC模块;5)FEDEXEC模块处理时戳消息和申请时间推进服务;6)LRC_R模块处理FEDEXEC模块发送的时间推进允许和时戳消息集合。2.根据权利要求1所述的一种分布式仿真时间推进和消息传输的同步方法,其特征在于,所述步骤2中LRC_S模块分别发送时戳消息给LRC_R模块和FEDEXEC模块时,计算该节点可发送时戳消息的下限值LBTS,LBTS=T(i)+Lookahead(i),其中T(i)是时间变量,Lookahead(i)是前瞻量;判断要发送的时戳消息的时戳是否大于LBTS,如果不大于,则出错返回;如果大于,则通过组播发送该时戳消息;复制该时戳消息,通过TCP发送该消息给FEDEXEC模块。3.根据权利要求1或2所述的一种分布式仿真时间推进和消息传输的同...

【专利技术属性】
技术研发人员:卿杜政杨凯张进郑燕红孙捷
申请(专利权)人:北京仿真中心
类型:发明
国别省市:

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

1