一种实物设备与数学模型联合试验系统及方法转让专利

申请号 : CN201110268323.5

文献号 : CN102289552B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 廖建廖馨冷传航张灏龙李贵成彭健

申请人 : 中国运载火箭技术研究院

摘要 :

一种实物设备与数学模型进行联合试验的系统由数学模型、模型包装器、实物设备、桥接器、可视化节点组成;数学模型经模型包装器通过通信中间件与其它模型和桥接器互连;各实物设备和实物设备代理通过实时共享内存网互连;桥接器由实物设备代理和时间管理模块组成;实物设备代理读取实物设备的物理时钟并传给时间管理模块;读取实物设备的数据并发送给订购此数据的其它数学模型的包装器,由包装器调用模型的接口传递给模型。模型包装器和实物设备代理将需要可视化的数据通过可视化接口发送给可视化节点。本发明解决了试验系统中实物设备与数学模型的交互问题,以及数学模型与数学模型和实物设备与数学模型的集成方法与推进问题。

权利要求 :

1.一种实物设备与数学模型进行联合试验的系统,其特征在于包括:数学模型、实物设备、模型包装器、桥接器及可视化节点;其中:

所述各数学模型具有统一接口;

所述模型包装器将具有统一接口的各数学模型集成:模型包装器作为一个联邦成员加入到联邦中,公布数学模型需要输出的信息,订购数学模型需要输入的信息,循环调用数学模型的接口传递数学模型的数据;同时调用RTI网的服务接口将数学模型的数据转发到RTI网上与其它数学模型对应的包装器进行交互;

所述桥接器由实物设备代理模块和时间管理模块组成;桥接器的实物设备代理模块和模型包装器将实物设备与数学模型进行互连:桥接器的实物设备代理模块作为联邦成员加入到整个试验的联邦中,公布实物设备需要输出的信息,并读取实时共享内存网(VMIC)上的实物设备数据,通过RTI网的服务接口将数据发送到RTI网上与数学模型进行交互;

所述桥接器的时间管理模块引入优先级队列对试验中的时间进行管理:整个试验的时间按照实物设备的物理时钟进行推进;各模型包装器推进时,读取时间管理模块发送的时钟,如果时间达到数学模型所请求的时间,模型包装器调用数学模型的接口进行推进,推进一步完成后将数学模型下一步的请求时间发送给时间管理模块,时间管理模块读取实物设备的物理时钟并存储在系统时间队列中,同时将收到的各数学模型的请求时间存储在请求优先级队列中;时间管理模块发送时间时,读取物理时钟,并判断优先级队列中是否有请求时间,如果有则当系统时间推进到该时间点时将该请求时间发送给各数学模型;

所述模型包装器和桥接器利用可视化接口将试验数据发送给可视化节点进行显示:模型包装器和桥接器的实物设备代理模块启动时公布相应的对象类和交互类,可视化节点订购对应的对象类和交互类;运行时模型包装器和实物设备代理模块将需要可视化的数据分别以对象类和交互类的形式发送给可视化节点进行显示。

2.根据权利要求1所述的实物设备与数学模型进行联合试验的系统,其特征在于:所述数学模型统一接口至少包括5个,能对模型进行初始化;接收事件;发送事件;推进和查看调试信息,具体的接口定义如下,其中IN和OUT表示参数类型,IN代表输入参数,OUT代表输出参数,IN和OUT后面为参数名:(1)初始化接口InitModel(IN initFile):用于对数学模型进行初始化,给数学模型指定初始化文件initFile,数学模型读取初始化文件对数学模型进行初始设置;

(2)接收事件接口ReceiveInteraction(IN t,IN interaction):用于输入数学模型接收到的事件,其中包括参数t为接收到事件时的时间点;interaction为收到的事件数据;

(3)发送事件接口SendInteraction(IN t,OUT interaction):用于输出数学模型要输出的事件,包括参数t为发送事件时的时间点,interaction为数学模型要输出的事件数据;

(4)推进接口GoStep(IN&&OUT t,IN inObjs,OUT outObj):用于数学模型推进一步,参数t在接口被调用前为输入参数,传入推进时的时间点,调用后为输出参数,值为下一时刻请求推进的时间点;inO bjs为数学模型需要的其它数学模型数据;outObj为该数学模型的输出数据;

(5)查看调试信息接口DebugMessage(OUT message):调用此接口可以输出数学模型内部的输出信息,用于查看数学模型的内部运行情况和调试模型,message为数学模型的输出信息。

3.根据权利要求1所述的实物设备与数学模型进行联合试验的系统,其特征在于:

所述模型包装器的实现为:首先解析数学模型的想定文件,得到数学模型的基本信息、数学模型文件的路径和数学模型与其它数学模型的公布订购关系,根据数学模型的路径加载数学模型动态链接库,调用初始化接口InitModel初始化数学模型,调用RTI网的服务接口创建联邦,加入联邦,根据解析想定文件得到的信息公布和订购相应的对象类和交互类,注册对象实例;将时间管理模块发送的时间用队列存储,判断时间是否推进时先判断队列中是否有时间,如果有则比较数学模型的请求时间是否和当前推进时间匹配,如果匹配则判断数学模型是否收到其它数学模型的事件,如果有交互类输入调用接收事件接口ReceiveInteraction将交互类数据传递给数学模型,接下来调用推进接口GoStep让数学模型计算向前推进,并通过该接口返回下一个请求时间点和数学模型推进一步后的输出数据,并通过RTI网的服务接口将请求时间发送给时间管理模块,将数学模型的输出数据发送给其它数学模型和可视化节点;接着调用发送事件接口SendInteraction判断有无交互类输出,如果有则调用RTI网的服务接口将交互类发送给其它模型;调用数学模型的接口后可以调用查看调试信息接口DebugMessage查看模型输出的调试信息;最后判断试验是否结束,如果没有结束,继续判断时间推进,如果结束,则退出和销毁联邦。

4.根据权利要求1所述的实物设备与数学模型进行联合试验的系统,其特征在于:所述实物设备代理模块由数据读取模块和仿真模块组成,数据读取模块读取实物设备的数据,仿真模块将读取到的数据转发出去;所述数据读取模块的实现方式为:首先对实时共享内存网进行初始化;然后轮询标志位,查看实物设备是否有新的数据,如果有则读取数据并进行存储,同时重置标志位;读取的数据分为两类,一类为实物设备的物理时钟,另一类为物理设备在各时间点的实时数据;数据读取模块存储数据时采用两个数据结构进行存储,物理时钟采用队列存储称为系统时间队列,各时间点的数据采用索引存储;所述仿真模块的实现方式为:开始时如果联邦不存在则创建联邦,接着加入联邦,给可视化节点发送初始化交互类,完成实物设备的初始化工作;时间管理模块判断是否推进,如果推进则从索引中取实物设备的新数据发送给其它数学模型和可视化节点;检测实物设备的实时数据判断是否有事件发出,如果有则发送交互类给其它数学模型并发送表现交互类给可视化节点让其显示效果;最后判断试验是否结束,如果结束则退出联邦,销毁联邦。

5.根据权利要求1所述的实物设备与数学模型进行联合试验的系统,其特征在于:所述时间管理模块的实现为:首先判断请求队列是否为空,如果不为空,则判断系统时间队列是否为空;如果不为空,则表明实物设备开始推进和各数学模型已经开始请求时间;然后取出系统时间和请求时间,请求时间是存储在优先级队列中,这样能保证每次取出的请求时间为最小值,时间推进按照每个模型的最小步长推进;接着判断该请求时间点之前是否已经发送过,如果已发送,则请求时间队列出队;如果未发送,则判断系统时间是否大于等于请求时间;如果是,则推进当前请求时间点;如果请求队列为空而系统时间队列不为空,则推进当前系统时间点。

6.一种实物设备与数学模型进行联合试验的方法,其特征在于实现步骤如下:

(1)开始时可视化节点启动,各部署模型包装器和实物设备代理模块的节点启动,实物设备代理模块和模型包装器给可视化节点发送初始化交互类,可视化节点初始化各实体,等待试验开始;

(2)实物设备开始运作后,将物理时间和实时数据写入实时共享内存网,实物设备代理模块读取时间和设备的数据进行缓存;时间管理模块读取缓存的物理时间,向各模型包装器发送时间并接收反馈的请求时间以优先级队列存储,同时将试验时间发送给可视化节点;实物设备代理将实物的实时数据发送给模型包装器;

(3)各模型包装器循环调用数学模型的各个接口进行推进,将实物设备数据传递给各数学模型,并得到数学模型的输出数据再传输给其它数学模型;同时将数学模型的请求时间发送给时间管理器;此过程中,实物设备代理和模型包装器将要可视化的数据和效果通过可视化接口发送给可视化节点;

(4)可视化节点进行显示;如此迭代,以实物设备的时间和数据驱动整个试验的运行,直到试验结束。

说明书 :

一种实物设备与数学模型联合试验系统及方法

技术领域

[0001] 本发明涉及一种将实物设备与数学模型进行联合试验的系统及其实现方法,属于虚拟试验技术领域。

背景技术

[0002] 随着政治、经济等因素的制约和军事发展的需要,在国防工业领域中,进行虚拟试验技术的研究变得越来越重要。虚拟试验是利用计算机建模仿真技术结合测试技术、通信技术和计算机网络技术,为武器装备的性能试验、技术指标考核、综合效能评估开发的一种试验新技术。虚拟试验正朝着“虚实结合”和“综合集成”的方向发展。将实物设备与数学模型集成起来进行联合试验现已成为虚拟试验中“虚实结合”的有效手段。美国国防部提出的高层体系结构(High Level Architecture,简称HLA)标准很好的解决了虚拟试验中“虚”模型(数学模型)之间的集成问题。而HLA在实时性方面有所欠缺,不能满足实物仿真或半实物仿真的实时性需求。实时共享内存网能很好的解决该问题,很好的满足实时性需求。
[0003] 秦大国等人的“一种基于双桥接器的分布仿真跨协议互连方法”(系统仿真学报)解决了分布交互仿真(Distributed Interactive Simulation,简称DIS)和HLA的互连互通问题。但DIS和HLA都不能很好的满足实时性需求。袁丹的“分布式实时仿真中网络系统扩展的研究与实现” (洪都科技)解决了SBS与VMIC互连互通的问题。虽然SBS和VMIC能很好的满足实时性需求,但其可扩展性及互操作性不及HLA。本发明通过实时共享内存网(反射内存网)将实物设备或半实物设备相连;通过HLA将各数学模型进行集成;再将实时共享内存网与HLA互连搭建虚拟试验进行联合试验。本发明既能满足实物或半实物仿真的实时性需求,又具有复用性、可扩展性和互操作性。

发明内容

[0004] 本发明所要解决的技术问题:克服现有技术的不足,提供一种将实物设备与数学模型进行联合试验的系统及其实现方法,该系统与方法解决了试验系统中实物设备与数学模型的交互问题,以及数学模型与数学模型和实物设备与数学模型的集成方法与推进问题。
[0005] 本发明的技术方案:一种实物设备与数学模型联合试验系统,基于HLA/RTI的模型包装器将具有统一接口的各数学模型集成;桥接器将实物设备与各数学模型连通并负责整个试验的实时时间推进。基于实物设备与数学模型的联合试验系统及方法的特征包括:
[0006] 数学模型、实物设备、模型包装器、桥接器及可视化节点;其中:
[0007] 所述各数学模型具有统一接口;
[0008] 所述模型包装器将具有统一接口的各数学模型集成:模型包装器作为一个联邦成员加入到联邦中,公布数学模型需要输出的信息,订购数学模型需要输入的信息,循环调用数学模型的接口传递数学模型的数据;同时调用RTI网的服务接口将数学模型的数据转发到RTI网上与其它数学模型对应的包装器进行交互;
[0009] 所述桥接器由实物设备代理模块和时间管理模块组成;桥接器的实物设备代理模块和模型包装器将实物设备与数学模型进行互连:桥接器的实物设备代理模块作为联邦成员加入到整个试验的联邦中,公布实物设备需要输出的信息,并读取实时共享内存网(VMIC)上的实物设备数据,通过RTI网的服务接口将数据发送到RTI网上与数学模型进行交互;
[0010] 所述桥接器的时间管理模块引入优先级队列对试验中的时间进行管理:整个试验的时间按照实物设备的物理时间进行推进;各模型包装器推进时,读取时间管理模块发送的时钟,如果时间达到模型所请求的时间,模型包装器调用数学模型的接口进行推进,推进一步完成后将数学模型下一步的请求时间发送给时间管理模块,时间管理模块读取实物设备的物理时钟并存储在系统时间队列中,同时将收到的各数学模型的请求时间存储在请求优先级队列中;时间管理模块发送时间时,读取物理时钟,并判断优先级队列中是否有请求时间,如果有则当系统时间推进到该时间点时将该请求时间发送给各数学模型;
[0011] 所述模型包装器和桥接器利用可视化接口将试验数据发送给可视化节点进行显示:模型包装器和桥接器的实物设备代理模块启动时公布相应的对象类和交互类,可视化节点订购对应的对象类和交互类;运行时模型包装器和实物设备代理模块将需要可视化的数据分别以对象类和交互类的形式发送给可视化节点,可视化节点利用二维或三维可视化技术进行显示。
[0012] 本发明与现有技术相比的有益效果:
[0013] (1)具有“虚实结合”能力。实物设备与数学模型能进行联合试验,解决了实物设备与数学模型的互连互通问题。实物设备能在虚拟的环境中进行验证,虚拟的数学模型能同实物设备进行交互以验证数学模型的正确性。
[0014] (2)通过基于HLA/RTI的模型包装器将数学模型集成,各模型通过模型包装器的包装都以联邦成员加入试验,整个系统具有良好的可扩展性。
[0015] (3)各数学模型采用统一的接口编写,编写的模型通过通用的模型包装器包装后加入试验,不同的试验可以多次利用同一数学模型,数学模型具有较好的复用性。
[0016] (4)通过实时共享内存网将实物设备互连,能保证实物仿真或半实物仿真所需的实时性。系统的时间推进按照实物设备的物理时钟推进,使联合试验具备实时性。

附图说明

[0017] 图1为本发明的系统组成结构框图;
[0018] 图2为本发明的模型包装器实现图;
[0019] 图3为本发明的实物设备代理模块实现图;
[0020] 图4为本发明的实物设备代理模块中的数据读取模块实现图;
[0021] 图5为本发明的实物设备代理模块中的仿真模块实现图;
[0022] 图6为本发明的时间管理模块实现图;
[0023] 图7为本发明的实现流程图。

具体实施方式

[0024] 如图1所示,本发明的系统由数学模型、模型包装器、实物设备、桥接器、可视化节点等组成。各数学模型经模型包装器通过通信中间件(本系统采用的是HLA标准的实现RTI)与其它模型和桥接器互连。各实物设备和实物设备代理通过实时共享内存网互连,本发明的实时共享内存网采用的是VMIC反射内存网。实物设备与数学模型通过桥接器互连。桥接器由实物设备代理和时间管理模块组成。实物设备代理读取实物设备的物理时钟并传给时间管理模块;读取实物设备的数据并发送给订购此数据的其它数学模型的包装器,由包装器调用模型的接口传递给模型。模型包装器和实物设备代理将需要可视化的数据通过可视化接口发送给可视化节点。可视化接口是基于HLA的一些对象类和交互类。
[0025] 本发明中的数学模型按照统一的接口编写。统一的模型接口包含5个,能对模型进行初始化;输入输出模型的事件、时间和数据;输出模型需输出的调试信息等。具体的接口定义如下(其中IN和OUT表示参数类型,IN代表输入参数,OUT代表输出参数,IN和OUT后面为参数名):
[0026] (1)初始化接口InitModel(IN initFile):对模型进行初始化,可以给模型指定初始化文件initFile,模型读取初始化文件对模型进行初始设置。
[0027] (2)接收事件接口Receivelnteraction(IN t,IN interaction):输入模型接收到的事件,参数t为接收到事件时的时间点,interaction为收到的事件数据。
[0028] (3)发送事件接口Sendlnteraction(IN t,OUT interaction):输出模型要输出的事件,参数t为发送事件时的时间点,interaction为模型要输出的事件数据。
[0029] (4)推进接口GoStep(IN&&OUT t,IN inObjs,OUT outObj):模型推进一步,参数t在接口被调用前为输入参数,传入推进时的时间点,调用后为输出参数,值为下一时刻请求推进的时间点;inObjs为模型需要的其它模型数据(可以为一个模型的数据,也可为多个模型的数据);outObj为该模型的输出数据。
[0030] (5)查看调试信息接口DebugMessage(OUT message):调用此接口可以输出模型内部的输出信息,可以查看模型的内部运行情况和调试模型,message为模型的输出信息。
[0031] 本发明中的模型包装器对上述具有统一接口的数学模型进行包装,调用模型的各接口并通过通信中间件的服务接口负责模型与其它模型的信息传递,其实现方式如图2所示。首先解析模型的想定文件,得到模型的基本信息包括:模型名、模型初始化文件,模型文件的路径和模型与其它模型的公布订购关系。根据模型的路径加载模型动态链接库,调用初始化接口InitModel初始化模型,调用RTI网的服务接口(即HLA服务接口)创建联邦,加入联邦。根据解析想定得到的信息公布和订购相应的对象类和交互类,注册对象实例。包装器将时间管理模块发送的时间用队列存储,判断时间是否推进时先判断队列中是否有时间,如果有则比较模型的申请时间是否和当前推进时间匹配,如果匹配则判断模型是否收到其它模型的事件(模型的事件用通信中间件的交互类来实现,当模型收到其它模型发送的交互类时,中间件会调用回调函数通知),如果有交互类输入调用接收事件接口Receivelnteraction将交互类数据传递给模型。接下来调用推进接口GoStep让模型计算向前推进,并通过该接口返回下一个请求时间点和模型推进一步后的输出数据。并通过HLA服务接口将请求时间发送给时间管理模块,将模型的输出数据发送给其它模型和可视化节点。接着调用模型发送事件接口Sendlnteraction判断有无交互类输出,如果有则调用RTI服务接口将交互类发送给其它模型。调用模型的每个接口后可以调用查看调试信息接口DebugMessage查看模型输出的调试信息。最后判断试验是否结束,如果没有结束,则继续判断时间推进;如果结束,则退出和销毁联邦。
[0032] 本发明的桥接器由实物设备代理和时间管理模块组成。实物设备代理负责转发实物设备的数据给数学模型,它由数据读取模块和仿真模块组成,数据读取模块读取实物设备的数据;仿真模块将读取到的数据转发出去。实物设备代理实现方式如图3所示,首先解析想定文件得到代理的实物设备与其它模型的关系和整个试验的基本信息,接着创建联邦,加入联邦,公布订购相应的对象类和交互类,发送初始化交互类给可视化节点,接着启动数据读取模块和仿真模块。
[0033] 为了提高并发能力,数据读取模块为单独的一个线程。数据读取模块的实现方式如图4所示。线程启动后先打开VMIC板块并对板块进行初始化。
[0034] 接下来轮询标志位,查看实物设备是否有新的数据,如果有则读取数据并进行存储,同时重置标志位。读取的数据分为两类,一类为实物设备的物理时钟,另一类为物理设备在各时间点的实时数据。数据读取模块存储数据时采用两个数据结构进行存储。物理时钟采用队列存储称为系统时间队列,各时间点的数据采用索引存储,这样便于仿真模块在时间推进时以常数时间取得实物设备的数据。
[0035] 仿真模块的实现方式如图5所示。开始时如果联邦不存在则创建联邦,接着加入联邦,给可视化节点发送初始化交互类,让三维可视化节点完成初始化工作。时间管理模块判断是否推进,如果推进则从索引中取实物设备的新数据发送给其它模型和可视化节点。检测实物设备的实时数据判断是否有事件发出,如果有则发送交互类给其它模型并发送表现交互类给三维可视化节点让其显示效果;最后判断试验是否结束,如果结束则退出联邦,销毁联邦。
[0036] 时间管理模块读取数据读取模块的系统时间队列,收取各模型包装器发送的时间请求,并将各时间点存储在优先级队列中称为请求队列。判断是否推进的流程如图6所示。首先判断请求队列是否为空,如果不为空则判断系统时间队列是否为空,如果不为空,则表明实物设备开始推进和各数学模型已经开始请求时间。接着取出系统时间和请求时间,请求时间是存储在优先级队列中,这样能保证每次取出的请求时间为最小值,时间推进按照每个模型的最小步长推进。判断该请求时间点之前是否已经发送过,如果已发送,则请求时间队列出队。如果未发送判断系统时间是否大于等于请求时间,如果是则推进当前请求时间点。如果请求队列为空而系统时间队列不为空,则推进当前系统时间点。
[0037] 可视化接口为一些对象类和交互类的集合。模型包装器和实物设备代理的仿真模块公布这些对象类和交互类,三维可视化节点订购这些对象类和交互类。数学模型和实物设备的数据信息如坐标和姿态信息等通过RTI以对象类的形式传输给可视化节点;数学模型和实物设备的事件信息如分离和爆炸等信息通过RTI以交互类的形式传输给可视化节点。根据需要,可以定义多个对象类,每个对象类的属性可以自定义,但需和可视化节点定义的对象类一致。交互类只定义一个,为了通用,交互类的参数只设置一个,RTI传输时,具体的传输内容(如包含事件类型和与事件相关的数据)通过此参数传递。
[0038] 本发明的整个系统执行过程如图7所示,开始时可视化节点启动,各部署模型包装器和实物设备代理的节点启动。实物设备代理和模型包装器给可视化节点发送初始化交互类,可视化节点初始化各实体,等待试验开始。实物设备开始运作后,将物理时间和实时数据写入实时共享内存网。实物设备代理的数据读取模块读取时间和设备的数据进行缓存。时间管理模块读取缓存的物理时间,向各模型包装器发送时间并接收反馈的请求时间以优先级队列存储,同时将仿真时间发送给可视化节点。实物设备代理将实物的实时数据发送给模型包装器,各模型包装器循环调用数学模型的各个接口进行推进,将实物设备数据传递给各模型,并得到模型的输出数据再传输给其它模型。同时将模型的请求时间发送给时间管理器。此过程中,实物设备代理和模型包装器将要可视化的数据和效果通过可视化接口发送给可视化节点,可视化节点进行三维显示。如此迭代,以实物设备的时间和数据驱动整个试验的运行,直到试验结束。