【技术实现步骤摘要】
一种基于DDS服务封装的分布式仿真方法和系统
本申请涉及建模仿真领域,特别涉及一种基于DDS服务封装的分布式仿真方法和系统。
技术介绍
仿真科学与技术是以建模与仿真理论为基础,建立并利用模型,以计算机系统、物理效应设备及仿真器为工具,对研究对象进行分析、设计、运行和评估的一门综合性、交叉性学科。目前仿真技术已成功应用于工业、农业、商业、教育、军事、交通、社会、经济、医学、生命、生活服务等众多领域,并在航空、航天、信息、生物、材料、能源、先进制造等高新
中成为系统论证、设计、实验、分析、维护、辅助决策及人员培训的重要手段与工具,成为认识和改造客观世界的重要方法。随着Internet技术的广泛应用与计算机技术的飞速发展,各种仿真系统的体系结构呈现出以网络为中心的趋势,这对通信的实时性、动态灵活性提出了更高的要求,同时要求分布式系统的各参与者之间采用一种具有松散耦合特性和通信服务质量保障策略支持的灵活通信模型和交互机制。
技术实现思路
本申请提供了一种基于DDS服务封装的分布式仿真方法和系统。根据本申请实施例的第一个方面,提供了一种基于DDS服务封装的分布式仿真方法,该方法的步骤包括:仿真成员根据交互数据结构与封装有数据分发服务DDS的动态库进行数据交互;基于预设的时间管理算法,进行仿真成员和动态库之间的分布式仿真实验。在一种优选地实施例中,仿真成员的每一个交互数据结构实例属于一种主题,DDS通信引擎通过识别该结构中的主题名实现仿真过程中数据包的转发; >其中,数据分发服务中的接口定义语言IDL文件中包含两个区域:按照成员需求生成用户数据结构区,用以反应成员需要传递的数据组成;为每一个数据结构生成一种接口数据结构,该接口数据结构包含的字段有:数据包id、数据发送时间、数据发送人、数据主题名和包含特定用户数据结构的key-value对,应以仿真过程中通过传递接口数据结构实现主题、时间、成员和数据的交互。在一种优选地实施例中,所述封装有数据分发服务的动态库的构建步骤包括:将DDS核心服务、接口管理服务、对象管理服务和时间管理服务进行封装,形成动态库;其中,动态库接口包括:服务启动Start()、数据发布Transfer()、请求推进Advance()和服务关闭End();动态库接口与仿真成员侧的函数:成员初始化Init()、数据接收Set()、成员推进Finish()和成员结束End()相对应。在一种优选地实施例中,所述仿真成员与动态库交互的步骤包括:仿真成员向服务启动接口发送回调函数句柄,DDS初始化数据通过动态库回调Init()方法发送到仿真成员;仿真运行过程中,DDS总线数据通过回调Set()方法发送到仿真成员,通过回调Finish()方法推进成员模型;仿真成员通过调用Transfer()方法将数据发布到DDS总线,通过调用Advance()方法请求时间推进。在一种优选地实施例中,所述基于预设的时间管理算法,进行仿真成员和动态库之间的分布式仿真实验的步骤包括:在仿真引擎接收到所有成员的步进请求时,进行推进自检;在检查DDS域中没有残余信息时,依次进行全局时间的推进和动态库与DDS仿真引擎间的时序统一;向各动态库发送步进允许,以使各成员不会受到滞后数据;或者,正常时戳数据在仿真成员发布后会立刻写入订阅者动态库的数据集中,而超前数据被写入动态库中的备用数据集中;当DDS仿真引擎发布步进允许时,数据集数据被发送到成员内部,动态库中的备用数据集数据被写入到数据集中,等待下一个步长发出。根据本申请实施例的第二个方面,提供了一种基于DDS服务封装的分布式仿真系统,该系统包括:仿真成员、动态库和DDS仿真引擎;仿真成员根据交互数据结构与封装有数据分发服务DDS的动态库进行数据交互;DDS仿真引擎基于预设的时间管理算法,进行仿真成员和动态库之间的分布式仿真实验。在一种优选地实施例中,仿真成员的每一个交互数据结构实例属于一种主题,DDS通信引擎通过识别该结构中的主题名实现仿真过程中数据包的转发;其中,数据分发服务中的接口定义语言IDL文件中包含两个区域:按照成员需求生成用户数据结构区,用以反应成员需要传递的数据组成;为每一个数据结构生成一种接口数据结构,该接口数据结构包含的字段有:数据包id、数据发送时间、数据发送人、数据主题名和包含特定用户数据结构的key-value对,应以仿真过程中通过传递接口数据结构实现主题、时间、成员和数据的交互。在一种优选地实施例中,所述仿真成员内部署有回调函数,所述回调函数包括:成员初始化Init()、数据接收Set()、成员推进Finish()和成员结束End()。在一种优选地实施例中,所述动态库中封装有DDS核心服务、接口管理服务、对象管理服务和时间管理服务;所述动态库接口包括:服务启动Start()、数据发布Transfer()、请求推进Advance()和服务关闭End();所述动态库接口与仿真成员内部署的回调函数相对应。在一种优选地实施例中,所述时间管理算法的具体执行步骤包括:在仿真引擎接收到所有成员的步进请求时,进行推进自检;在检查DDS域中没有残余信息时,依次进行全局时间的推进和动态库与DDS仿真引擎间的时序统一;向各动态库发送步进允许,以使各成员不会受到滞后数据;或者,正常时戳数据在仿真成员发布后会立刻写入订阅者动态库的数据集中,而超前数据被写入动态库中的备用数据集中;当DDS仿真引擎发布步进允许时,数据集数据被发送到成员内部,动态库中的备用数据集数据被写入到数据集中,等待下一个步长发出。有益效果本申请所述技术方案具备完善的DDS核心服务、接口管理服务、对象管理服务和时间管理服务,能够获得科学、真实的验证过程和验证结果,提升复杂产品研制和生产效率;具备服务封装特性,提升了仿真框架实施的便捷性,保障了核心仿真逻辑的安全性,为仿真框架在多种语言、多种设计工具中的集成提供了便利。本申请所述技术方案适用性广、互操作性强、可拓展性强,能够运用于绝大多数针对复杂产品功能、性能的仿真验证中。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1示出本方案所述分布式仿真方法的示意图;图2示出本方案所述基于动态库技术的DDS服务封装的示意图;图3示出本方案所述面向分布式节点的时间管理算法的示意图。具体实施方式为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实本文档来自技高网...
【技术保护点】
1.一种基于DDS服务封装的分布式仿真方法,其特征在于,该方法的步骤包括:/n仿真成员根据交互数据结构与封装有数据分发服务DDS的动态库进行数据交互;/n基于预设的时间管理算法,进行仿真成员和动态库之间的分布式仿真实验。/n
【技术特征摘要】
1.一种基于DDS服务封装的分布式仿真方法,其特征在于,该方法的步骤包括:
仿真成员根据交互数据结构与封装有数据分发服务DDS的动态库进行数据交互;
基于预设的时间管理算法,进行仿真成员和动态库之间的分布式仿真实验。
2.根据权利要求1所述的分布式仿真方法,其特征在于,仿真成员的每一个交互数据结构实例属于一种主题,DDS通信引擎通过识别该结构中的主题名实现仿真过程中数据包的转发;
其中,数据分发服务中的接口定义语言IDL文件中包含两个区域:
按照成员需求生成用户数据结构区,用以反应成员需要传递的数据组成;
为每一个数据结构生成一种接口数据结构,该接口数据结构包含的字段有:数据包id、数据发送时间、数据发送人、数据主题名和包含特定用户数据结构的key-value对,应以仿真过程中通过传递接口数据结构实现主题、时间、成员和数据的交互。
3.根据权利要求1所述的分布式仿真方法,其特征在于,所述封装有数据分发服务的动态库的构建步骤包括:
将DDS核心服务、接口管理服务、对象管理服务和时间管理服务进行封装,形成动态库;其中,动态库接口包括:服务启动Start()、数据发布Transfer()、请求推进Advance()和服务关闭End();动态库接口与仿真成员侧的函数:成员初始化Init()、数据接收Set()、成员推进Finish()和成员结束End()相对应。
4.根据权利要求1所述的分布式仿真方法,其特征在于,所述仿真成员与动态库交互的步骤包括:
仿真成员向服务启动接口发送回调函数句柄,DDS初始化数据通过动态库回调Init()方法发送到仿真成员;
仿真运行过程中,DDS总线数据通过回调Set()方法发送到仿真成员,通过回调Finish()方法推进成员模型;
仿真成员通过调用Transfer()方法将数据发布到DDS总线,通过调用Advance()方法请求时间推进。
5.根据权利要求1所述的分布式仿真方法,其特征在于,所述基于预设的时间管理算法,进行仿真成员和动态库之间的分布式仿真实验的步骤包括:
在仿真引擎接收到所有成员的步进请求时,进行推进自检;
在检查DDS域中没有残余信息时,依次进行全局时间的推进和动态库与DDS仿真引擎间的时序统一;
向各动态库发送步进允许,以使各成员不会受到滞后数据;或者,
正常时戳数据在仿真成员发布后会立刻写入订阅者动态库的数据集...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。