基于DR平滑算法和DDS-QOS的仿真计算方法与流程

文档序号:16249646发布日期:2018-12-11 23:53阅读:357来源:国知局
基于DR平滑算法和DDS-QOS的仿真计算方法与流程

本发明涉及一种仿真计算方法,具体的,涉及在基于dds(datadistributionservice数据分发服务)的仿真计算中利用dr(deadreckoning航迹推算)三阶算法以减少网络通讯量,提升系统性能的仿真计算方法。

背景技术

现有的分布式交互仿真中,为维护各仿真系统间实体行为的一致,通常需要将各实体的运动轨迹数据通过通信网络传输,实现各终端的数据的同步。对象管理组织(omg)通过制定分布式实时通信中间件技术规范,来达到对各仿真系统进行综合集成的目的。这些规范包括hla、corba、dds等,其中dds是新一代分布式实时通信中间件技术规范。

dds采用发布/订阅体系架构,强调以数据为中心,提供丰富的qos服务质量策略,能保障数据实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。但随着仿真对象数量增加,且分布在多个主机上时,仿真节点间需交换的信息量迅速膨胀,网络负载严重。当分布式环境中的仿真节点在地理上相隔一定距离时,信息从一个节点传输到另一个节点也需耗费时间,造成传递时间的延迟。网络延迟、拥塞等问题很大程度上影响分布式仿真的效率,降低用户体验。

因此,在仿真计算中如何能够减少网络通讯量,提升系统性能,并避免系统数值的突变成为现有技术亟需解决的技术问题。



技术实现要素:

本发明的目的是利用dr算法以及平滑化算法来解决上述问题。

为达此目的,本发明采用以下技术方案:

一种基于dr平滑算法和dds-qos的仿真计算方法,其特征在于:

具有多个仿真实体,在仿真实体之间采用发布订阅模式进行数据的交互,建立交互数据生产者和消费者之间的数据连接,

其中,在所述多个仿真实体中至少具有一个仿真实体,所述一个仿真实体在需要更新其它仿真实体的数据时,使用之前获得所述其它仿真实体的数据,利用dr算法,对其它仿真实体的数据进行预测,并使用该预测值;

具体的,仿真实体同时利用自身的数据,对自身的轨迹进行预测,将预测的数据与自身真实的数据进行比较,如果差值较大,超过误差门限,则该仿真实体将自身真实的数据发送给其它数据消费实体进行同步,使得作为数据消费的仿真实体放弃通过dr算法的预测值;如果差值不大,在误差门限范围内,则不发送自身数据;作为数据消费的仿真实体,即远程接收节点,收到真实的数据后,根据真实的数据以及dr算法,在选定的接下来的校正时间内,对dr算法的外推值进行平滑化处理,使用平滑值作为校正时间内的仿真计算数值。

可选的,所述作为数据消费的仿真实体,对dr算法的外推值进行平滑化处理,具体为,所述作为数据消费的仿真实体,利用真实的数据和dr算法,计算出在校正时间末的dr算法的外推值,利用校正时间之前的dr算法外推值和校正时间之后的dr算法外推值,进行平滑化,例如进行线性平滑。

可选的,利用校正时间之前的dr算法外推值和校正时间之后的dr算法外推值进行平滑化,指的是利用校正时间前后的上述两个dr算法外推值进行线性平滑。

可选的,所述dr算法为dr一阶、二阶或三阶算法。

可选的,所述仿真实体在使用主题之前,进行信息发布或订阅。

可选的,所述仿真实体在采用dr算法进行预测计算时,建立计算模板,设置计算接口,所述计算接口用于传输计算相关数据。

可选的,所述计算相关数据包括实体标识、上一步实体数据、计算参数,其中实体标识表示哪一个实体进行计算,参数表示dr算法计算的自变量取值。

可选的,所述仿真实体在预测计算时,使用获取时计算的模式,将计算延迟到需要获取数据的时候。

本发明还公开了一种存储介质,用于存储计算机可执行指令,其特征在于:所述计算机可执行指令在被处理器执行时执行权利要求1-8中任意一项所述的基于dr平滑算法和dds-qos的仿真计算方法。

本发明在仿真计算中引入dr算法,在dds通信过程中,只需要将位置初值和dr外推算法相关数据进行同步,当误差累积到一定范围,超过误差容限时,将新的位置量信息进行同步,避免了每次位置更新时都必须在各分布式节点间进行数据交互的过程,降低了数据通信的频次,很大程度上减少了要传递的数据量,缓解了网络延迟,提高了仿真效率。在超过误差容限时,通过在发送端或者接收端对即将送出或使用的数据进行平滑,一方面使得平滑后的数据更接近实际数据,另一方面线性平滑算法实现简单、计算量小,产生的误差也较小,可以很大程度上缓解图象“跳跃”现象。

附图说明

图1是根据本发明的具体实施例的仿真计算方法的逻辑图;

图2是根据本发明的具体实施例的仿真计算方法的平滑示意图。

具体实施方式

在本发明中具有如下概念:

dr算法:deadreckoning(航迹推算)技术,简称dr技术,最早应用在海上航行,根据已知的前一时刻实体位置,在经过的时间和过程中根据运动规律计算出当前位置的过程,是路径的积分。

dds:datadistributionservice(数据分发服务),是对象管理组织(omg)在hla及corba等标准的基础上制定的新一代分布式实时通信中间件技术规范。定义了一个应用程序接口和在实时系统中支持以数据为中心的发布\订购数据分发服务的行为。

qos:qualityofservice,服务质量,指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,用于解决网络延迟和阻塞等问题的一种技术。当网络过载或拥塞时,qos能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。

主题:对某类可在各个仿真对象之间进行交互的数据的描述,一般符合omg-dds标准的数据结构均可定义为主题。其中,omg为对象管理组织,英文objectmanagementgroup,是一个国际协会,致力于建立对程序、系统和业务流程的建模标准,以及基于模型的标准。dds是新一代分布式实时通信中间件技术规范;数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合。

实体数据:指仿真实体在仿真过程中产生的,需要其他方消费的数据,一般应包括位置、方位、速度、加速度、姿态等。

dr-qos:使用dr算法的qos策略,是qos策略的一种,主要使用dr算法计算实体运动,用于减少网络流量,减轻网络负担。在本文中,dr算法包括dr一阶、二阶和三阶算法。

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在分布式交互仿真中,由于实体运动部分产生数据量级较大,系统为维护实体行为的一致性而进行的数据交换占用了大量的网络资源和计算机资源,影响了系统的运行效率,是分布式交互仿真的性能瓶颈。因此,本发明在于:当仿真系统中实体的运动大多以匀速或匀加速直线运动为主时,实体轨迹是遵循相应规律变化的,通过在dds-qos实现中引入dr模型,例如采用三阶线性外推算法进行模拟计算,以计算的数据代替实际的数据,从而降低维持实体逼真运动所需要的信息传送数量,可以极大的减少网络通讯量,提升系统性能。

本发明公开了一种基于dr平滑算法和dds-qos的仿真计算方法,具体的,具有多个仿真实体,在仿真实体之间采用发布订阅模式,建立交互数据生产者和消费者之间的数据连接,其中,至少具有一个仿真实体,需要更新其它仿真实体的数据时,使用之前获得所述其它仿真实体的数据,利用dr算法,对其它仿真实体的数据进行预测。

因此,由于omg-dds标准使用发布订阅模式,在使用主题之前,必须进行发布或订阅。因此,为了提高效率,dr-qos的交互数据同步也使用发布订阅模式,减少不必要的数据同步和计算。所有数据消费端在启动之前必须先订阅要消费的实体数据,所有数据产生端在启动之前必须先发布要产生的实体数据。这样,数据消费端只需同步本终端需要消费的dr-qos交互数据即可。同理,数据产生端可以更精确的点对点发送dr-qos交互数据。

在分布式仿真计算中,借助计算机网络,能够将分散在不同地点的相对独立的仿真器联系起来,构成一个多参与者协同作用的综合虚拟环境。在这个虚拟环境中,每一个仿真器都作为这个仿真系统中的一个组成部分,可以对外产生数据,也可以根据外部提供的数据用于自身仿真计算的需要。在对外产生数据时,这个仿真器作为数据产生端存在(也就是发布订阅模式中的发布者),当需要根据外部提供的数据来进行自身仿真数据的运算时,它作为数据消费端(也就是发布订阅模式中的订阅者)存在。

也即每个仿真实体即是数据消费者,又是数据订阅者,在使用主题之前,必须进行发布或订阅,在中间计算同步时,可以借用发布订阅模式同步本实体所需要的数据。

其中dr算法,包括dr一阶算法、dr二阶算法和dr三阶算法。

其中,所述dr一阶算法为:

xi=x0+v0ih,或者

所述dr二阶算法为:

xi=x0+v0ih+a0(ih)2/2,或者

或者

所述dr三阶算法为:

或者

其中,h为时间步长,x0表示仿真实体在t0时刻的位置,xi表示t0之后经过i个时间步长实体的位置,v0表示t0时刻实体的速度,x-1表示t0之前某个时刻t-1实体的位置,t-1为t-1到t0所经历的时间,x-2表示t-1之前某个时刻t-2实体的位置,t-2为t-2到t-1所经历的时间,a0表示时刻t0的加速度,a-1表示时刻t-1的加速度。

注意,诸如t-1到t0之间的时间间隔与t0到t1之间的时间间隔可以相等,也可以不相等,根据实际应用中的情况而定,其余时间间隔也是如此。

对于dr算法的选择,根据仿真的具体情况,以及仿真运算的结果进行选择。

进一步的,所述仿真实体在采用dr算法进行预测计算时,可以建立计算模板,设置计算接口,该接口可以传入实体标识、上一步实体数据、计算参数,其中实体标识表示哪一个实体进行计算,参数表示dr算法计算的自变量取值,例如,包括x0、h、v0、x-1、t-1、x-2、t-2。

例如,在公共库中建立主题特化模板类drtipster,并实现tipster接口。当需要预测时,仿真实体调用计算模板,通过接口传入算法标识,输入参数和上一帧实体数据,使用dr算法,根据当前时刻t0已知数据s(t0),预测后面时刻数据s‘(t0+ih)作为下一帧数据,h为仿真步长。

进一步的,所述仿真实体在预测计算时,采用获取时计算的模式,将计算延迟到需要获取数据的时候。当终端需要消费预测数据时,主动调用tipsters接口进行计算,计算结果将按照普通主题的方式回调并保存。使用获取时计算的模式,可以将计算延迟到需要获取数据的时候,减少了额外不必要的计算消耗,计算所得数据的存储和获取方式和普通主题相同,屏蔽了差异性。

进一步的,为了避免预测过程中误差太大,在仿真计算中预设误差门限,各仿真实体根据误差结果确定是否进行数据交互,以同步数据减少仿真误差。

具体的,仿真实体同时利用自身的数据,对自身的轨迹进行预测,将预测的数据与自身真实的数据进行比较,如果差值较大,超过误差门限,则该仿真实体将自身真实的数据发送给其它数据消费实体进行同步,使得作为数据消费的仿真实体放弃通过dr算法的预测值;如果差值不大,例如在误差门限范围内,则不发送自身数据;作为数据消费的仿真实体,即远程接收节点,收到真实的数据后,根据真实的数据以及dr算法,在选定的接下来的校正时间内,对dr算法的外推值进行平滑化处理,使用平滑值作为校正时间内的仿真计算数值。

例如,a、b泛指一个分布式仿真系统中其中两个仿真实体(或仿真器),精确仿真数据是各节点自身的状态数据,预测数据是当a节点需要b节点更新的数据时,通过之前已有的b节点数据和给出的dr方程进行预测所得。同时b自身也会根据同样的方式对b的数据进行预测,将预测所得的数据和自身真实的状态数据进行比较,如果两个数据相差比较大,b就把自身数据发给a,让a弃用预测的数据,例如通过订阅发布的模式;如果两个数据相差不大,在误差能够容忍的范围内,则b不给a发送自身数据。因为如果b频繁给a发送数据是要占用网络资源的,将会影响仿真系统的效率。

参见图1,将b节点的精确仿真数据s(t0+ih)与预测所得数据s‘(t0+ih)进行比较,若误差δs=|s‘(t0+ih)-s(t0+ih)|<ts(ts为预设门限),则b节点不发送s(t0+ih),而a端将预测值s‘(t0+ih)作为精确值使用。若δs≥ts,则b端将包含s(t0+ih)的数据单元通过dds传至a端作为a端的精确数据使用,并开始新一轮预测。但是,如果b端直接将包含s(t0+ih)的数据单元作为精确数据使用,b端若从s(t0)直接跳转至s(t0+ih),目标位置将会在屏幕上有一段大的跳变,影响仿真效果,这在dr门限t较大时表现尤为明显。因此有必要在发送端对即将送出的数据进行平滑,使其“逐步修正到位”。

所述作为数据消费的仿真实体,即远程接收节点,收到真实的数据后,根据真实的数据以及dr算法,在选定的接下来的校正时间内,对dr算法的外推值进行平滑化处理,具体而言,所述作为数据消费的仿真实体,利用真实的数据和dr算法,计算出在校正时间末的dr算法的外推值,利用校正时间之前的dr算法外推值和校正时间之后的dr算法外推值,进行平滑化,例如进行线性平滑,具体为利用校正时间前后的上述两个dr算法外推值进行线性平滑。

以线性平滑算法为例。参见图2,为了平滑化,接收方选择一个tsm作为校正时间,即平滑时间,利用新的dr模型递推出在平滑终点tf时刻的位置pf,该新的dr算法可以与原有的dr算法相同,也可以不相同,但使用更新的真实的数据进行计算,平滑校正开始点选在收到更新数据前的旧dr模型递推的最后一点ps,则直线pspf为从旧dr模型过渡到新dr模型的平滑轨迹,因为该轨迹为直线,故称之为线性平滑算法。当然,也可以采用其他的平滑算法。其中使用线性平滑算法,实现简单,且计算量小。

其中,所述校正时间可调,根据具体的效果而定,并且校正时间的长短影响到校正的具体效果。

因此,本发明中,虽然在各个仿真实体之间存在着发布订阅模式进行信息的交互,但仿真实体能够根据dr算法预测所需要消费的仿真实体的数据,而负责数据发表的仿真实体同时也利用自身之前的数据进行预测,并比较预测值和真实值,当超过预设门限时,仿真实体才通过发布订阅模式对其它仿真实体进行数据的更新,抛弃原有的预测值。这样,既保留了发布订阅模式保证数据的同步,又减少了交互的数值,减少了要传递的数据量,缓解了网络延迟,提高了仿真效率。

因此,本发明在仿真计算中引入dr算法,在dds通信过程中,只需要将位置初值和dr外推算法相关数据进行同步,当误差累积到一定范围,超过误差容限时,将新的位置量信息进行同步,避免了每次位置更新时都必须在各分布式节点间进行数据交互的过程,降低了数据通信的频次,很大程度上减少了要传递的数据量,缓解了网络延迟,提高了仿真效率。通过在发送端或者接收端对即将送出或使用的数据进行平滑(此处采用线性平滑算法),一方面使得平滑后的数据更接近实际数据,另一方面线性平滑算法实现简单、计算量小,产生的误差也较小,可以很大程度上缓解图象“跳跃”现象。

附图1中,示出的发送端对数据进行平滑,但也可以在接收端对数据进行平滑,只要进行平滑处理即可。

本发明进一步公开了一种存储介质,用于存储计算机可执行指令,其特征在于:所述计算机可执行指令在被处理器执行时执行上述的基于dr平滑算法和dds-qos的仿真计算方法。

显然,本领域技术人员应该明白,上述的本发明的各单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定保护范围。

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