基于hla的分布交互仿真平台及其实现方法

文档序号:6650796阅读:202来源:国知局
专利名称:基于hla的分布交互仿真平台及其实现方法
技术领域
本发明涉及一种基于HLA的分布交互仿真平台及其实现方法,属于计算机仿真技术领域。
背景技术
随着计算机技术的快速发展,计算机仿真技术的应用领域越来越广泛。建立逼真的仿真系统,需要复杂的数学模型,这些模型占用的计算机资源越来越大,基于单台计算机的仿真已经远远不能满足需要。美国为分布交互仿真提出的高层体系结构(High Level Architecture,简称HLA)标准已经被接受为国际仿真标准。国内外对基于HLA标准建立的分布交互仿真平台有很多研究。但是,这些研究都是直接基于HLA接口标准进行联邦成员的开发。HLA标准是一套复杂的接口规范,这些接口规范提供的服务包括六大类联邦管理服务(20个),声明管理服务(12个),对象管理服务(17个),时间管理服务(23个),所有权管理服务(16个),数据分发管理服务(12个)。直接基于HLA提供的接口函数进行分布交互仿真应用系统的开发需要把上述各种服务的接口函数全部掌握,学习过程是十分困难的,对用户的编程水平要求很高,应用系统的开发时间也很长。并且,现在还没有将实验设计,仿真多次运行,二维、三维表现,数据记录和回放等功能直接和分布交互仿真融合在一起的一体化分布交互仿真平台实现方法。

发明内容
本发明的技术解决问题本发明提出了一种基于HLA的分布交互仿真平台及其实现方法。通过该方法建立的分布交互仿真平台,只需要14个接口函数,就可以完成联邦成员的实现。用户不需要了解HLA接口规范就可以进行符合HLA标准的仿真应用系统开发。同时,将实验设计、仿真结果分析、多次运行、二维和三维显示、数据记录和回放等功能集成在一起,形成一体化的分布交互仿真平台。
本发明的技术解决方案基于HLA的分布交互仿真平台,用于在HLA仿真标准的基础上,实现分布交互仿真平台,其特征在于包括仿真想定编辑和运行控制工具,用于仿真想定编辑和配置,并与仿真伺服进程通过HLA软总线交互进行仿真运行控制,仿真想定包括初始信息、联邦成员的多少、联邦成员IP地址的设置等;仿真伺服进程,作为联邦成员位于参与运行的计算机内,通过HLA软总线与仿真想定编辑和运行控制工具及仿真模型包装器交互,用于完成联邦的初始创建,并通过接收仿真想定编辑和运行控制工具发出的启动和关闭联邦成员命令,自动启动和关闭参与本次仿真的所有联邦成员的仿真模型包装器;每个参与运行的计算机内均包括一个仿真伺服进程,且在仿真引用运行前都需要启动该进程;仿真模型包装器,完成对仿真模型的包装,生成14个接口函数标准,仿真运行时该包装器作为仿真模型的代理,通过HLA软总线完成与仿真伺服进程交互;每个模型包装器与仿真模型以动态链接库的形式通讯,动态链接库符合系统中统一的14个接口函数标准。
FOM类库生成器,用于建立仿真系统中所有对象类、交互类的类库,类库以动态链接库的形式存在,完成对象类、交互类的结构定义、发布定购接口等功能,FOM类库生成器是一个离线工具,不参与仿真的运行,只需要在系统运行前使用该工具生成各种对象类、交互类的类库,放入仿真运行目录即可;仿真数据记录工具,通过HLA接口完成仿真运行中所有信息的记录,并存储在记录文件中,通过在仿真数据记录工具中打开记录文件,可以完成仿真运行的全程回放;
仿真实验管理工具,通过HLA接口对仿真实验方案进行设计,包括运行次数、实验方法、实验因子、状态数据等,并支持仿真系统按照定义的运行次数运行,在运行过程中完成仿真结果数据的收集,运行后还可以进行仿真结果的分析。
还包括仿真二维态势显示工具,用HLA接口接收所有仿真实体的对象类、交互类信息,并载入二维地图和各种实体图标,按照仿真运行结果进行实时二维动态显示。
还包括仿真三维可视化工具,载入仿真实体的三维造型,并通过HLA接口接收所有仿真实体的对象类、交互类信息,按照仿真运行结果进行实时三维动态显示。
基于HLA的分布交互仿真平台实现方法,其特点在于(1)想定编辑和运行控制工具发送模型初始化信息给仿真伺服进程,仿真伺服进程接到初始化信息后,按照初始化信息的要求启动相应的模型包装器;(2)各个模型包装器启动后,向想定编辑和运行控制工具提出加入联邦的要求,想定编辑和运行控制工具接到后允许各模型包装器推进到仿真0时刻;(3)模型包装器不断向想定编辑和运行控制工具发送时间推进请求事件,想定编辑和运行控制工具接收到所有模型包装器的请求后,向它们发送时间推进允许事件;同时,模型包装器将运行过程中产生的模型结果数据发送给想定编辑和运行控制工具,由想定编辑和运行控制工具将结果写入数据库保存;(4)模型运行结束后,主动通知想定编辑和运行控制工具,此过程循环运行,直到本次仿真结束为止;(5)然后,想定编辑和运行控制工具根据实验设计工具确定的系统运行次数,重复上述过程,进行第二次运行过程,直到运行次数满足实验设计的要求;(6)想定编辑和运行控制工具在仿真结束后,向仿真伺服进程发送仿真结束命令,由仿真伺服进程结束本计算机上所有运行的模型包装器,同时想定编辑和运行控制工具将汇集整个仿真过程中产生的仿真结果数据,并按照统一格式进行合并和整理,并存入数据库供用户使用。
此外,在整个运行过程中,二维显示工具、三维显示工具、数据记录和回放工具可以加入系统中共同运行。
本发明与现有技术相比具有的有益效果是(1)无需掌握HLA接口函数即可完成符合HLA接口标准的仿真应用系统设计和实现。通过模型包装器进行包装后的模型,只有14个接口函数,易于学习和管理。
(2)平台支持实验设计和多次运行。在实验设计中,集成了多种实验设计方法。通过实验设计和多次运行,可以对实验因子进行科学分析,找到影响系统性能的关键参数。
(3)分布仿真运行自动管理。通过该平台,可以实现网络内所有联邦成员的自动启动、运行和管理。
(4)平台包含支持定制的二维、三维显示软件模块。平台中包含了多种仿真实体的二维、三维造型,可以直接使用已有造型进行表现。平台表现接口也支持新建造型的开发,具有良好的扩展性。
(5)仿真想定和模型初始化文件以XML文件的格式保存,具有很强的通用性。


图1为本发明的组成结构框图,其中W代表模型包装器,Mij表示运行于第i台的第i个模型;图2为本发明的仿真想定编辑和运行控制工具实现图;图3为本发明的仿真伺服进程实现图;
图4为本发明的仿真模型包装器实现图;图5为本发明的FOM类库生成器实现图;图6为本发明的仿真二维态势显示工具实现图;图7为本发明的仿真三维可视化工具实现图;图8为本发明的仿真数据记录工具实现图;图9为本发明的仿真实验管理工具实现图;图10为本发明的实现流程图。
具体实施例方式
如图1所示,本发明需要建立的仿真工具包括仿真想定编辑和运行控制工具、仿真伺服进程、仿真模型包装器、FOM类库生成器、仿真二维态势显示工具、仿真三维可视化工具、仿真数据记录工具、仿真实验管理工具。整个系统以HLA软总线作为底层支撑技术,完成整个系统的通讯功能。仿真想定编辑和运行控制工具、二维显示工具、三维显示工具、数据记录工具、实验管理工具等可以分布到网络中的不同机器上运行。每台需要运行模型的机器上必须启动一个仿真伺服进程,等待运行控制命令的发布。仿真伺服进程收到仿真运行控制命令后,自动启动该机器上的模型包装器,启动模型包装器的数量与该机器上运行的模型数量一致。FOM类库生成器是一个离线工具,不参与仿真系统的在线运行,只需要在系统运行前用该工具生成各种对象类、交互类的类库,放入仿真运行目录即可。
本发明中的仿真想定编辑和运行控制工具实现方式如图2所示,首先载入想定文件,判断实验设计是否完成。如果没有完成就进行实验设计。实验设计完成后,发出启动并初始化模型交互类,等待想定包含的模型加入联邦。所有模型加入联邦并初始化之后,推进系统仿真时钟到0时刻。此后,模型包装器不断向想定编辑和运行控制工具发送时间推进请求事件,想定编辑和运行控制工具接收到所有模型包装器的请求后,向它们发送时间推进允许事件。系统运行过程中,如果想定编辑和运行控制工具接到模型结束请求,就结束该模型的运行,并使之退出联邦执行。此过程循环执行,直到本次仿真运行完毕。然后开始第二次运行,直到实验设计设定的运行次数为止。
本发明中的仿真伺服进程实现方式如图3所示,首先,伺服进程作为一个联邦成员加入联邦,等待仿真开始消息。接收到开始消息后,再接收模型的初始化数据,直到所有模型的初始化数据都到达为止;然后,为每个模型启动一个模型包装器进程,整个仿真系统开始运行;当收到仿真想定编辑和运行控制工具发出的仿真结束消息后,向所有模型包装器发送仿真结束消息,结束整个系统的运行。
本发明中的仿真模型包装器实现方式如图4所示,在系统中,每一个模型包装器代表一个模型,并作为一个联邦成员参与仿真的运行。模型包装器启动后,创建模型数据库,加入联邦,向仿真想定编辑和运行控制工具发送准备好消息,等待仿真想定编辑和运行控制工具的批准。当接收到仿真想定编辑和运行控制工具的批准消息后开始执行初始化操作。包括模型初始化,对象类、交互类发布、定购接口初始化,然后向仿真想定编辑和运行控制工具申请下一运行时刻,如果得到允许,就输入当前仿真步长中所有侦听到的模型事件,推进模型仿真时钟,发布模型状态和事件,判断模型是否允许完毕,如果没有运行结束,就继续进行时间推进的过程,直到运行完毕并申请退出联邦为止。开发模型包装器包装的模型时,需要在面向对象的集成开发环境下生成动态链接库工程,在工程中完成14个接口函数的声明和实现。这样,模型包装器就可以通过调用模型中的14个接口函数,帮助模型完成所有的HLA接口功能。
通过模型包装器进行包装后的模型,只有14个接口函数,易于学习和管理,14个接口函数包括(1)初始化接口(Modellnit)用于初始化模型,在每次仿真时执行一次。一次实验的多次运行中会执行多次;(2)输入参数名称查询接口(QuerySub)模型告诉HLA软总线自己对其它模型状态数据的需求;(3)输出参数名称查询接口(QueryPub)模型告诉HLA软总线自身的状态输出能力;(4)输入事件名称查询接口(QueryEventSub)模型告诉HLA软总线自己对哪些事件感兴趣;(5)输出事件名称查询接口(QueryEventPub)模型告诉HLA软总线自己准备发布哪些事件;(6)结果数据名称查询接口(QueryResultField)模型告诉HLA软总线自己可以输出的结果数据名称;(7)统计状态数据名称查询接口(QueryStatField)模型告诉HLA软总线自己可以输出的统计状态数据名称;(8)事件输入接口(InputEvent)用于将HLA软总线接收到的其它模型发送过来的事件传给本地模型;(9)事件输出接口(OutputEvent)用于将模型产生的事件传送到HLA软总线上;(10)实例订购迭代计算接口(Step1)用于推进实例订购模型(即仅要求一个其它模型实例的状态输入)的仿真步长;(11)类订购迭代计算接口(Step2)用于推进类订购模型(即要求多个其它模型实例的状态输入)的仿真步长;(12)统计状态数据输出接口(OutputStatValue)模型通过本接口将需要统计的中间状态数据输出给HLA软总线,HLA软总线负责根据实验设计信息将拟统计的中间状态数据写入到模型数据库中;(13)调试信息输出接口(OutputText)用于将模型的调试信息输出,并根据需要发送到HLA软总线上;(14)模型数据名称空间释放接口(FreeNameMemory)用于释放以上接口描述中名称数组的空间。
本发明中的FOM类库生成器是个离线工具,不参与仿真的在线运行。系统中的每个对象类和交互类都需要用FOM类库生成器生成相应的类库。FOM类库生成器的实现方式如图5所示。启动后,首先读取相应目录下的对象类和交互类模版,作为生成类库源代码的依据。然后由用户选择生成对象类或者交互类,并输入对象类或者交互类的参数。输入完毕后,按照输入的类型和参数,依照模版生成类库源代码,最后调用编译环境的编译工具对源代码自动编译,生成FOM类库。生成的FOM类库可以直接放到平台中使用。
本发明中的仿真二维态势显示工具实现方式如图6所示,二维态势显示工具由五个模块组成,即用户交互模块、仿真数据模块、实体管理模块、地图管理模块和表现引擎模块。用户交互模块主要负责与用户进行交互,响应用户操作。用户操作主要是控制地图背景表现和实体数据表现的形式和内容。例如缩放显示地图,显示经纬度网格,显示任意位置的经纬度,分类显示实体图标、轨迹、名字等。仿真数据模块一方面负责建立网络连接,接收网络数据。网络数据主要包括对象类和交互类。接收并且解析相关数据之后,一方面修改实体管理模块种实体的属性数据,另一方面往表现引擎添加表现命令。实体管理模块负责实体数据的保存管理、实体图标、轨迹的绘制、实体信息的显示。地图管理模块主要负责地图背景绘制,尤其是对任意位置的放大或缩小显示。除此之外,还要实现一个最基本的功能,即实际位置(一般是经纬度表示)和在屏幕上绘制后的地图像素位置的映射。表现引擎模块的核心是一个表现命令缓冲队列。在仿真数据模块接收到网络数据后,比如导弹位置的状态更新或者释放诱饵的事件,它一方面修改实体属性值,同时向表现引擎模块发送表现命令。由表现引擎模块调用这些表现命令实现界面绘制。
本发明中的仿真三维可视化工具实现方式如图7所示,仿真三维可视化工具由四个模块组成,即仿真数据模块、实体管理模块、可视化表现模块和控制模块。仿真数据管理模块由仿真数据引擎和网络数据接口共同组成,负责接收网络驱动数据,并对数据进行解析和缓冲,提供给可视化引擎。网络数据接口主要负责接收网络仿真数据,其本质就是根据仿真数据的特点设计的HLA对象类和交互类;仿真数据引擎主要负责对网络接口接收的数据进行解析和缓冲,网络接口接收的数据是不能直接用于驱动场景的,必须对其进行解析,转变成可视化引擎能够识别的数据结构。实体管理模块由实体类、特效类以及实体管理器组成。实体类负责定义一类虚拟实体的属性信息,特效类择定了与该类实体相关的特殊表现效果,实体管理器则主要对虚拟实体进行管理和维护,包括新建、删除和查询等。系统为所有的实体类和特效类分别定义了一个实体基类和特效基类,定义了这些虚拟实体类所公有的一些属性信息和函数,视景表现所涉及的所有实体类和特效类都由这两个基类派生,同时定义了一个实体列表类,有一个实体列表和相关的列表操作函数组成,主要用户虚拟实体的管理和维护。可视化表现模块主要负责虚拟场景的表现。其中,通过环境数据库存储了构建虚拟场景所需要的自然环境信息,通过造型数据库则保存了所有虚拟实体的几何造型和纹理信息,通过可视化引擎组织场景的显示和调度,可以直接在输出设备上进行显示。控制模块包括窗口消息、控制脚本和控制引擎三个部分,主要负责与用户进行交互,响应用户操作。窗口消息就是针对用户的窗口操作信息提供的响应函数,控制脚本则是指根据具体仿真内容的特点设计的场景切换程序,以便有效的对场景内容进行观察,控制引擎是一个控制逻辑,它根据窗口消息的类型和控制脚本的发生条件分别调用可视化引擎,切换场景。
本发明中的仿真数据记录工具实现方式如图8所示,仿真数据记录工具启动后,首先读入本次仿真运行需要的FED文件,从中找出所有的对象类和交互类。然后作为数据记录联邦成员加入联邦。因为数据记录工具需要把仿真过程中产生的所有对象类和交互类都记录下来,因此需要完成所有对象类、交互类的定购。定购后开始随着仿真时间的推进,不断侦听仿真系统中所有联邦成员产生的对象类和交互类,收到数据后通过数据管理,把数据改造为可以处理的数据格式,并存储到相应的数据文件中,判断仿真是否结束,如果没有结束,就继续侦听数据,直到仿真结束为止。
本发明中的仿真实验管理工具实现方式如图9所示,仿真实验管理工具主要完成两个任务一是为多次仿真选择实验方法,包括平行实验、全面实验、正交设计和均匀设计方法;二是根据用户考察的需要,提供表征各模型功能的输出字段,包括中间结果字段和关键输出字段。仿真实验管理工具打开时自动装入实验想定的输入信息,包括所有模型名称,对应模型的因子,需要考察的状态变量和结果的全集。用户根据实验的需要,首先设定实验单位、实验目的、实验时间、每个实验运行次数、强制结束时刻等信息,然后选择实验方法,选择要考察的模型、状态、结果,选择要考察的实验因子并设值,最后仿真实验管理工具返回设定信息,包括选择的实验方法、每个实验的运行次数、实验的总水平次数、强制结束本次实验的时间、实验时间、实验单位、实验目的、需要考察的因子名称、状态数据名称、结果数据名称、因子水平值二维数组等,并把这些信息保存为实验想定。仿真想定编辑和运行控制工具根据实验想定中用户设定的信息驱动系统多次运行,得到多次运行的仿真结果,并把结果保存到相应的数据库中。
本发明的整个系统执行过程如图10所示,想定编辑和运行控制工具发送模型初始化信息给仿真伺服进程,仿真伺服进程接到初始化信息后,按照初始化信息的要求启动相应的模型包装器。各个模型包装器启动后,向想定编辑和运行控制工具提出加入联邦的要求,想定编辑和运行控制工具接到后允许各模型包装器推进到仿真0时刻。此后,模型包装器不断向想定编辑和运行控制工具发送时间推进请求事件,想定编辑和运行控制工具接收到所有模型包装器的请求后,向它们发送时间推进允许事件。同时,模型包装器将运行过程中产生的模型结果数据发送给想定编辑和运行控制工具,由想定编辑和运行控制工具将结果写入数据库保存。模型运行结束后,主动通知想定编辑和运行控制工具。此过程循环运行,直到本次仿真结束为止。然后,想定编辑和运行控制工具根据实验设计工具确定的系统运行次数,重复上述过程,进行第二次运行过程,直到运行次数满足实验设计的要求。想定编辑和运行控制工具在仿真结束后,向仿真伺服进程发送仿真结束命令,由仿真伺服进程结束本计算机上所有运行的模型包装器。想定编辑和运行控制工具将汇集整个仿真过程中产生的仿真结果数据,并按照统一格式进行合并和整理,并存入数据库供用户使用。在整个运行过程中,二维显示工具、三维显示工具、数据记录和回放工具可以加入系统中共同运行。
权利要求
1.基于HLA的分布交互仿真平台,其特征在于包括仿真想定编辑和运行控制工具,用于仿真想定编辑和配置,并与仿真伺服进程通过HLA软总线交互进行仿真运行控制;仿真伺服进程,作为联邦成员位于参与运行的计算机内,通过HLA软总线与仿真想定编辑和运行控制工具及仿真模型包装器交互,用于完成联邦的初始创建,并通过接收仿真想定编辑和运行控制工具发出的启动和关闭联邦成员命令,自动启动和关闭参与本次仿真的所有联邦成员的仿真模型包装器;仿真模型包装器,完成对仿真模型的包装,生成14个接口函数标准,仿真运行时该包装器作为仿真模型的代理,通过HLA软总线完成与仿真伺服进程交互;FOM类库生成器,用于建立仿真系统中所有对象类、交互类的类库,类库以动态链接库的形式存在,完成对象类、交互类的结构定义、发布定购接口功能,FOM类库生成器是一个离线工具,不参与仿真的运行,只需要在系统运行前使用该工具生成各种对象类、交互类的类库,放入仿真运行目录即可;仿真数据记录工具,通过HLA接口完成仿真运行中所有信息的记录,并存储在记录文件中,通过在仿真数据记录工具中打开记录文件,可以完成仿真运行的全程回放;仿真实验管理工具,通过HLA接口对仿真实验方案进行设计,包括运行次数、实验方法、实验因子、状态数据等,并支持仿真系统按照定义的运行次数运行,在运行过程中完成仿真结果数据的收集,运行后进行仿真结果的分析。
2.根据权利要求1所述的基于HLA的分布交互仿真平台,其特征在于还包括仿真二维态势显示工具,用HLA接口接收所有仿真实体的对象类、交互类信息,并载入二维地图和各种实体图标,按照仿真运行结果进行实时二维动态显示。
3.根据权利要求1所述的基于HLA的分布交互仿真平台,其特征在于还包括仿真三维可视化工具,载入仿真实体的三维造型,并通过HLA接口接收所有仿真实体的对象类、交互类信息,按照仿真运行结果进行实时三维动态显示。
4.根据权利要求1所述的基于HLA的分布交互仿真平台,其特征在于仿真想定包括初始信息、联邦成员的多少、联邦成员IP地址的设置。
5.根据权利要求1所述的基于HLA的分布交互仿真平台实现方法,其特征在于所述的每个模型包装器与仿真模型以动态链接库的形式通讯,动态链接库符合系统中统一的14个接口函数标准。
6.根据权利要求1所述的基于HLA的分布交互仿真平台,其特征在于所述的每个参与运行的计算机内均包括一个仿真伺服进程,且在仿真引用运行前都需要启动该进程。
7.根据权利要求1所述的基于HLA的分布交互仿真平台,其特征在于所述的仿真想定和模型初始化文件以XML文件的格式保存。
8.基于HLA的分布交互仿真平台实现方法,其特征在于(1)想定编辑和运行控制工具发送模型初始化信息给仿真伺服进程,仿真伺服进程接到初始化信息后,按照初始化信息的要求启动相应的模型包装器;(2)各个模型包装器启动后,向想定编辑和运行控制工具提出加入联邦的要求,想定编辑和运行控制工具接到后允许各模型包装器推进到仿真0时刻;(3)模型包装器不断向想定编辑和运行控制工具发送时间推进请求事件,想定编辑和运行控制工具接收到所有模型包装器的请求后,向它们发送时间推进允许事件;同时,模型包装器将运行过程中产生的模型结果数据发送给想定编辑和运行控制工具,由想定编辑和运行控制工具将结果写入数据库保存;(4)模型运行结束后,主动通知想定编辑和运行控制工具,此过程循环运行,直到本次仿真结束为止;(5)然后,想定编辑和运行控制工具根据实验设计工具确定的系统运行次数,重复上述过程,进行第二次运行过程,直到运行次数满足实验设计的要求;(6)想定编辑和运行控制工具在仿真结束后,向仿真伺服进程发送仿真结束命令,由仿真伺服进程结束本计算机上所有运行的模型包装器,想定编辑和运行控制工具将汇集整个仿真过程中产生的仿真结果数据,并按照统一格式进行合并和整理,并存入数据库供用户使用。
全文摘要
一种基于HLA的分布交互仿真平台及其实现方法,包括建立仿真想定编辑和运行控制工具、仿真伺服进程、仿真模型包装器、FOM类库生成器、仿真二维态势显示工具、仿真三维可视化工具、仿真数据记录工具和仿真实验管理工具。使用本发明方法建立的分布交互仿真平台,无需掌握复杂的HLA接口函数即可完成符合HLA接口标准的仿真应用系统设计和实现,通过模型包装器进行包装后的模型,只有14个接口函数,易于学习和使用;同时,使用该方法建立的仿真平台支持实验设计、仿真多次运行和结果分析、二维和三维显示、数据记录等多种功能,是一个一体化的分布交互仿真平台。
文档编号G06F9/455GK1804804SQ20051012386
公开日2006年7月19日 申请日期2005年11月23日 优先权日2005年11月23日
发明者陈海东, 赵雯, 鄢宁, 张灏龙 申请人:中国航天科技集团公司第一研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1