基于分布交互仿真平台的仿真模型转换方法

文档序号:6619198阅读:216来源:国知局

专利名称::基于分布交互仿真平台的仿真模型转换方法
技术领域
:本发明涉及一种基于分布交互仿真平台的仿真模型转换方法,属于计算机仿真
技术领域

背景技术
:美国为分布交互仿真提出的高层体系结构(HighLevelArchitecture,简称HLA)标准已经被接受为国际仿真标准,HLA提供了构造和描述分布式仿真仿真的通用框架,解决了仿真系统中互操作和重用性两大关键问题。基于HLA标准实现的系统具有灵活性、开放性,使得大规模仿真应用系统成可能。国内外对基于HLA标准建立的分布交互仿真平台有很多研究,专利(200510123864.3)中就给出了一种一体化分布交互仿真平台实现方法,该方法将实-验设计,仿真多次运行,二维、三维表现,数据记录和回放等功能直接和分布交互仿真融合在一起,无需掌握HLA接口函数即可完成符合HLA接口标准的仿真应用系统设计和实现。但已有的大量传统仿真模型在实现时没有考虑HLA接口规范,目前无法在分布交互式仿真环境下运行。为了充分利用已有传统仿真模型,实现符合HLA接口标准的仿真应用系统,需要一种基于分布交互仿真平台的仿真模型转换方法。通过该方法实现传统仿真模型到HLA仿真模型的转换,将传统仿真模型、其他自研模型集成到分布交互式仿真平台中。目前,在计算机分布仿真领域,还没有相关技术方法实现。
发明内容本发明的技术解决问题是克服现有技术的不足,提供一种基于分布交互仿真平台的仿真模型转换方法,解决了传统仿真模型、其他自研模型与分布交互仿真平台的集成问题。本发明的技术解决方案是基于分布交互仿真平台的仿真it型转换方法,所述的分布交互仿真平台基于HLA实现,平台以统一的接口函数实现仿真模型与HLA软总线的交互,提供建立仿真模型转换所需对象类、交互类的类库的工具,平台还提供想定编辑和运行控制的功能,方法步骤如下(1)确定仿真模型转换过程中使用的时间管理机制,使仿真模型联邦成员统一订购分布交互仿真平台的仿真时钟,按照分布交互仿真平台的仿真时钟进行仿真模型的仿真步长推进;(2)将待转换仿真模型的内部函数分为两部分一部分是描述仿真模型状态变量随着时间变化的状态转移函数;一部分是描述仿真模型对特殊事件进行处理和发出特殊事件的事件处理函数;(3)根据步骤(2)中的状态转移函数和事件处理函数,确定待转换仿真模型需要向分布交互仿真平台订购和发布的模型状态参数、需要订购和发布的特殊事件,形成接口描述文件;(4)根据所述的接口描述文件,生成待转换模型转换所需的对象类库和交互类库;(5)根据步骤(4)中生成的对象类库和交互类库对待转换模型进行改造,完成仿真模型的转换。所述的对待转换模型进行改造采用动态链接库的方式,具体过程为首先,将步骤(4)中生成的对象类库和交互类库;^文入分布交互仿真平台,由分布交互仿真平台为方i^的每个交互类指定一个对应的整型值;然后,在待转换仿真模型中添加与所述整型值一致的枚举变量;最后,将步骤(2)中的状态转移函数和事件处理函数"t姿照分布交互仿真平台接口封装为动态链接库,并声明为public类型。所述的对待转换模型进行改造采用可执行程序方式,具体过程为首先,将步骤(4)中生成的对象类库和交互类库放入分布交互仿真平台,由分布交互仿真平台为》文入的每个交互类指定一个对应的整型值;然后,在待转换仿真模型中添加与所述整型值一致的枚举变量;最后,在分布交互仿真平台接口的输入事件处理函数进行输入特殊事件处理时,使用Windows系统函数执行指定的可执行程序文件;在程序执行完毕后,分析可执行程序产生的结果数据文件,将描述模型状态变化的结果数据以对象类属性更新、将特殊事件处理结果以交互类形式在相应每次仿真步长推进的指定接口中输出。所述的对待转换模型进行改造采用源代码方式,具体过程为第一步,保留步骤(4)中生成的对象类库和交互类库源代码文件;第二步,在编译器中新建工程,将保留的对象类库和交互类库源代码文件和仿真模型源代码文件添加到所述的工程文件中;第三步,在工程的主函数中,编辑HLA的初始化函数,加入待转换仿真模型的计算函数;并且,根据步骤(4)中生成的对象类库和交互类库源代码加入对象类和交互类的发布、订购代码。本发明与现有技术相比有益效果为(1)本发明中使用仿真模型统一订购分布交互仿真平台的仿真时钟的方法,解决了多个仿真模型之间及仿真模型与分布交互仿真平台之间时间同步的问题,为在分布交互式仿真应用中使用大量仿真模型提供了基础。(2)本发明中根据仿真中模型状态随时间变化、对特殊事件处理方式比较固定的特点,将待转换仿真模型的内部函数分为两部分,便于与HLA邦元建立对应关系。(3)使用本发明中的转换方法,可以完成传统仿真模型向HLA仿真模型的转换,解决了传统仿真模型、其他自研模型与专利(200510123864.3)实现的分布交互式仿真平台的集成问题。(4)该方法可以采用动态链接库、或可执行程序方式、或源代码方式对传统仿真模型进行转换,提供了传统仿真模型在分布交互式仿真平台上的重用途径,增强了分布交互式仿真平台的兼容性。图1为本发明方法流程图2为转换完成后的仿真模型与分布交互仿真平台的关系。具体实施例方式基于分布交互仿真平台的仿真模型转换方法,所述的分布交互仿真平台基于HLA实现,平台以统一的接口函数实现仿真模型与HLA软总线的交互,提供建立仿真模型转换所需对象类、交互类类库的工具,平台还提供想定编辑和运行控制的功能。下面介绍一种可以满足上述功能要求的分布交互仿真平台,包括仿真想定编辑和运行控制工具,用于仿真想定编辑和配置,并与仿真伺服进程通过HLA软总线交互进行仿真运行控制;仿真伺服进程,作为联邦成员位于参与运行的计算机内,通过HLA^:总线与仿真想定编辑和运行控制工具及仿真^f莫型包装器交互,用于完成联邦的初始创建,并通过接收仿真想定编辑和运行控制工具发出的启动和关闭联邦成员命令,自动启动和关闭参与本次仿真的所有联邦成员的仿真模型包装器;仿真模型包装器,完成对仿真模型的包装,生成14个接口函数标准,仿真运行时该包装器作为仿真模型的代理,通过HLA软总线完成与仿真伺服进程交互;FOM类库生成器,用于建立仿真系统中所有对象类、交互类的类库,类库以动态链接库的形式存在,完成对象类、交互类的结构定义、发布定购接口功能,FOM类库生成器是一个离线工具,不参与仿真的运行,只需要在系统运行前使用该工具生成各种对象类、交互类的类库,放入仿真运行目录即可;仿真数据记录工具,通过HLA接口完成仿真运行中所有信息的记录,并存储在记录文件中,通过在仿真数据记录工具中打开记录文件,可以完成仿真运行的全程回放;仿真实验管理工具,通过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软总线负责根据实^i殳计信息将拟统计的中间状态数据写入到模型数据库中;(13)调试信息输出接口(OutputText):用于将模型的调试信息输出,并根据需要发送到HLA软总线上;(14)模型数据名称空间释放接口(FreeNameMemory):用于释放以上接口描述中名称数组的空间。基于HLA的分布交互仿真平台的具体详细介绍可以参见中国专利200510123864.3。本发明方法在已建立的运动学、动力学等专业仿真^f莫型基础上,确定仿真模型转换使用的时间管理机制,将仿真模型内部的仿真计算与时间推进函数剥离,使用FOM类库生成器生成模型转换所需的对象类、交互类库,按照仿真模型包装器的接口要求进行模型的发布、订购,实现传统仿真模型向HLA仿真模型的转换,解决了传统仿真模型、其他自研模型与上述分布交互式仿真平台的转换问题。模型转换过程如图1所示。(1)确定仿真模型转换过程中使用的时间管理机制,使仿真模型联邦成员统一订购分布交互仿真平台的仿真时钟,按照分布交互仿真平台的仿真时钟进行仿真模型的仿真步长推进;传统仿真模型一般根据自行设定的仿真步长进行仿真时钟推进。分布交互仿真平台工作时包含一个或多个仿真模型,当多个仿真模型之间及仿真模型与分布交互仿真平台之间存在交互时,传统仿真模型将无法按原有的仿真步长进行仿真时钟推进。传统仿真模型转换为HLA仿真才莫型集成到分布交互式仿真平台中时,为解决各模型与平台之间的时间同步问题,首先要明确使用的时间管理机制。仿真模型转换过程中使用的时间管理机制强调仿真时钟的全局性,即转换后仿真模型内部计算中不存在时间的推进,仿真模型联邦成员订购平台仿真时钟。(2)将待转换仿真模型的内部函数分为两部分一部分是描述仿真模型状态变量随着时间变化的状态转移函数;一部分是描述仿真模型对特殊事件进行处理和发出特殊事件的事件处理函数;其中,状态转移函数是仿真模型的主要计算模块,按照模型相应仿真领域(如运动学、动力学等专业)的算法和关见律,计算下一时刻物体的状态,仅使用当前的仿真时钟,不对仿真时钟进行推进。特殊事件是指仿真模型在运行过程中的关键动作,能够反应仿真模型关键动作的处理结果。一般将除状态转移函数外,仿真模型内部的其他函数归为事件处理函数。状态转移函数中仿真模型状态可以对应为FOM中的对象类,事件处理函数中的特殊事件可以对应为FOM中的交互类,初步建立仿真才莫型与HLA邦元的对应关系。(3)根据上述两部分函数,确定待转换仿真模型需要向分布交互仿真平台订购和发布的模型状态参数、需要订购和发布的特殊事件,形成接口描述文件;根据待转换的仿真模型与分布交互仿真平台中其他仿真模型共同工作的要求,在与其他仿真模型编写人员进行协调的基础上,确定仿真模型每个仿真步长中,需要其他仿真模型提供的状态参数及提供给其他仿真模型的状态参数,需要其他仿真模型触发的事件信息及提供给其他仿真模型的事件信息。这两部分信息将对应为仿真模型需要向平台订购和发布的模型及模型状态参数、需要订购和发布的特殊事件及事件参数,将上述订购和发布的模型及模型状态参数和特殊事件及事件参数形成接口描述文件。(4)根据所述的接口描述文件,生成待转换模型转换所需的对象类库和交互类库;根据接口描述文件,使用专利(200510123864.3)提供的FOM类库生成器形成相应的FED文件,并生成模型集成所需的对象类、交互类库。一般将模型对应为对象类,模型状态参数对应fed中的对象类属性,特殊事件对应fed中的交互类,特殊事件有事件参数的将对应为fed中的交互类参数。(5)釆用动态链接库方式、或可执行程序、或源代码方式,对仿真模型进行改造,按照仿真模型包装器的14个接口函数标准要求进行模型的发布、订购,下面对模型改造步骤进行说明动态链接库方式的模型改造,具体过程为以动态链接库(DLL)方式进行集成是目前最常用方式,经过封装的模型具有良好的模块性和安全性。1、将由FOM类库生成器生成的对象类及交互类库,方t^平台提供的仿真想定编辑和运行控制工具的工作目录,使用该工具为每个交互类指定一个对应的整型值,该整型值说明了事件的类型。2、在仿真模型中添力。与上一步中整型值一致的枚举变量,用来表明需要发生的事件种类。3、将模型所有的状态转移函数和事件处理函数按照仿真模型包装器接口封装为动态链接库,并声明为public类型,所述的public为访问限制符,其中指定的成员函数是开放的,可以由本内的成员函数直接访问,也可以由程序的其他部分直接访问。模型各工作阶段使用的接口函数如下表示。表1<table>tableseeoriginaldocumentpage11</column></row><table>void—OutputText();调试信息输出接口可执行程序方式的模型改造,具体过程为可执行程序方式的模型改造,其改造方式与动态链接库方式类似,区别在于第三步。首先要在JnputEvent()函数收到启动该模型的事件,进行输入事件处理时,使用CreateProcess函数(该函数为Windows系统函数)执行指定的可执行程序文件;在程序执行完毕后,分析可执行程序产生的结果数据文件,哪些是描述模型状态变化,哪些是事件处理结果;读取结果数据文件,将描述模型状态变化的结果数据以对象类属性更新、将特殊事件处理结果以交互类形式在相应每次仿真步长推进的指定接口中输出。如,对象类属性更新可以在—Step1()或—Step2()函数中输出,交互类可以在—OutputEvent()函数中输出。源代码方式的模型改造,具体过程为第一步,保留步骤(4)中生成的对象类库和交互类库源代码文件;第二步,在编译器中新建工程,将保留的对象类库和交互类库源代码文件和仿真模型源代码文件添加到所述的工程文件中;第三步,在工程的主函数中,编辑HLA的初始化函数,加入待转换仿真模型的计算函数;并且,根据步骤(4)中生成的对象类库和交互类库源代码加入对象类和交互类的发布、订购代码。在对象类库和交互类库源代码中已经包含有根据对象类及对象类属性、或交互类及交互类参数信息进行发布、订购操作的代码,可在工程主函数中直接进行调用。实施例以卫星仿真模型的转换为例,该模型对卫星轨道及星上传感器功能进行仿真,除自身的运动学模型外,需要地面目标模型的相关参数,并有在平台提供的仿真三维可视化工具中进行表现的需要。首先根据已定的时间管理机制将卫星仿真模型的内部函数分为两部分一部分为描述位置、姿态、速度等卫星轨道状态变量随着时间变化的状态转移函数;一部分为描述卫星仿真模型针对如接收到星上传感器开、关机等特殊事件的处理函数和在得到仿真结果后发出如探测到指定目标等特殊事件的处理函数。由于卫星仿真模型工作时需要地面目标模型的相关参数,需要向平台订购地面目标模型的位置、辐射强度等状态信息;卫星仿真模型在每一仿真步长中还需要发布自身的状态信息,包括位置、姿态等,并根据目前状态发出如星上传感器已启动、探测到指定目标等特定的事件,通知仿真三维可观/f匕工具进行表现。根据接口描述,使用专利(200510123864.3)提供的FOM类库生成器形成相应的fed描述文件,并生成对象类库,包括卫星及位置、姿态、速度等对象类属性;交互类库,包括星上传感器开机、星上传感器关机、星上传感器已启动、^:测到指定目标等交互类,事件的描述信息将对应为交互类参^:。以动态链接库(DLL)方式对原有模型进行改造将上述步骤中生成的对象类及交互类库放入平台提供的仿真想定编辑和运行控制工具的工作目录,使用该工具为每个交互类指定一个对应的整型值,如星上传感器开机1、星上传感器关机2等;在仿真模型中添加与上一步中整型值一致的枚举变量,用来表明需要发生的事件种类;将模型所有的状态转移函数和交互函数按照仿真模型包装器接口封装为动态链接库,过程如下在—QuerySub()函数中,向平台订购地面目标模型的位置、辐射强度等状态信息;在一QueryPub()函数中,向平台发布自身的的状态信息,包括位置、姿态等;在—QueryEventSub()函数中,向平台订购星上传感器开、关机等事件;在—QueryEventPub()函数中,向平台发布探测到指定目标等事件;在—Modellnit()函数中,进行仿真模型初始化工作;在_31印1()函数中加入仿真模型状态转移函数实现,进行模型解算、更新状态变量,返回新的状态变量;在」nputEvent()函数中,加入获得订购的交互类信息后触发事件处理函数的代码;在一OutputEvent()函数中,根据特定条件使用已添加的枚举变量发送模型产生的事件,提供给仿真三维可视化工具及其他订购该类事件的模型。转换完成后的仿真模型工作时,由仿真模型包装器完成对仿真模型的包装。平台进行仿真步长推进时,仿真模型联邦成员通过步进接口获得平台当前仿真时刻,将该时间作为模型计算的输入参数计算一个仿真步长中模型内部的状态和参数变化过程,并将模型状态更新发布出去;通过事件输入接口获得订购的交互类信息后,进行相应事件处理;产生的事件通过事件输出接口发布。转换完成后的仿真模型与平台的关系如图2所示。本发明未详细说明的部分属本领域技术人员公知常识。权利要求1、基于分布交互仿真平台的仿真模型转换方法,所述的分布交互仿真平台基于HLA实现,平台以统一的接口函数实现仿真模型与HLA软总线的交互,提供建立仿真模型转换所需对象类、交互类的类库的工具,平台还提供想定编辑和运行控制的功能,其特征在于步骤如下(1)确定仿真模型转换过程中使用的时间管理机制,使仿真模型联邦成员统一订购分布交互仿真平台的仿真时钟,按照分布交互仿真平台的仿真时钟进行仿真模型的仿真步长推进;(2)将待转换仿真模型的内部函数分为两部分一部分是描述仿真模型状态变量随着时间变化的状态转移函数;一部分是描述仿真模型对特殊事件进行处理和发出特殊事件的事件处理函数;(3)根据步骤(2)中的状态转移函数和事件处理函数,确定待转换仿真模型需要向分布交互仿真平台订购和发布的模型状态参数、需要订购和发布的特殊事件,形成接口描述文件;(4)根据所述的接口描述文件,生成待转换模型转换所需的对象类库和交互类库;(5)根据步骤(4)中生成的对象类库和交互类库对待转换模型进行改造,完成仿真模型的转换。2、根据权利要求1所述的基于分布交互仿真平台的仿真模型转换方法,其特征在于所述的对待转换模型进行文造釆用动态链接库的方式,具体过程为首先,将步骤(4)中生成的对象类库和交互类库》文入分布交互仿真平台,由分布交互仿真平台为i文入的每个交互类指定一个对应的整型值;然后,在待转换仿真模型中添加与所述整型值一致的枚举变量;最后,将步骤(2)中的状态转移函数和事件处理函数按照分布交互仿真平台接口封装为动态链接库,并声明为public类型。3、根据权利要求1所述的基于分布交互仿真平台的仿真模型转换方法,其特征在于所述的对待转换模型进行改造采用可执行程序方式,具体过程为首先,将步骤(4)中生成的对象类库和交互类库放入分布交互仿真平台,由分布交互仿真平台为放入的每个交互类指定一个对应的整型值;然后,在待转换仿真模型中添加与所述整型值一致的枚举变量;最后,在分布交互仿真平台接口的输入事件处理函数进行输入特殊事件处理时,使用Windows系统函数执行指定的可执行程序文件;在程序执行完毕后,分析可执行程序产生的结果数据文件,将描述^t型状态变化的结果数据以对象类属性更新、将特殊事件处理结果以交互类形式在相应每次仿真步长推进的指定接口中输出。4、根据权利要求1所述的基于分布交互仿真平台的仿真模型转换方法,其特征在于所述的对待转换模型进行改造采用源代码方式,具体过程为第一步,保留步骤(4)中生成的对象类库和交互类库源代码文件;第二步,在编译器中新建工程,将保留的对象类库和交互类库源代码文件和仿真模型源代码文件添加到所述的工程文件中;第三步,在工程的主函数中,编辑HLA的初始化函数,加入待转换仿真才莫型的计算函数;并且,才艮据步骤(4)中生成的对象类库和交互类库源代码加入对象类和交互类的发布、订购代码。全文摘要基于分布交互仿真平台的仿真模型转换方法,步骤为(1)确定仿真模型转换过程中使用的时间管理机制,使仿真模型联邦成员统一订购分布交互仿真平台的仿真时钟,按照分布交互仿真平台的仿真时钟进行仿真模型的仿真步长推进;(2)将待转换仿真模型的内部函数分为两部分一部分是状态转移函数;一部分是事件处理函数;(3)根据状态转移函数和事件处理函数,确定待转换仿真模型需要向分布交互仿真平台订购和发布的模型状态参数、需要订购和发布的特殊事件,形成接口描述文件;(4)根据所述的接口描述文件,生成待转换模型转换所需的对象类库和交互类库;(5)根据生成的对象类库和交互类库对待转换模型进行改造,完成仿真模型的转换。文档编号G06F9/455GK101587446SQ200910087660公开日2009年11月25日申请日期2009年6月30日优先权日2009年6月30日发明者坤代,菽张,张灏龙,健彭申请人:中国运载火箭技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1