一种应用于hla分布式仿真技术的通用模型的制作方法

文档序号:6507553阅读:211来源:国知局
一种应用于hla分布式仿真技术的通用模型的制作方法
【专利摘要】本发明涉及一种应用于HLA分布式仿真技术的通用模型,属于计算机分布式仿真技术及应用领域。在本发明的模型规范的基础上,有利于实现通用的联邦成员程序,使仿真模型开发与HLA协议分离,减小联邦成员的开发难度,提高分布式仿真系统的开发效率。
【专利说明】一种应用于HLA分布式仿真技术的通用模型
【技术领域】
[0001]本发明涉及一种应用于HLA分布式仿真技术的通用模型,属于计算机分布式仿真技术及应用领域。
【背景技术】
[0002]计算机仿真是各个科学研究领域不可缺少的环节。仿真验证具有低成本、低时耗和简单易行的特点,为各种理论研究和工程设计提供验证支撑,加速理论研究成果的应用和部署。随着信息、计算机、通信等【技术领域】的不断发展,系统的规模和结构日益复杂,特别是在航天、航空、军事、交通及经济等领域。对大规模复杂系统的仿真是仿真【技术领域】的重要研究内容。先进分布式仿真技术为解决大规模复杂系统的仿真提供了有效的途径。
[0003]高级体系架构(HLA)是美国国防部(DoD)为满足军事领域大规模复杂系统的仿真需求而提出的一系列通用技术框架研究中的重要成果之一,已经成为IEEE1516标准。HLA是一套完整的分布式仿真技术规范,其核心目标在于解决传统分布式仿真技术中的互操作性和重用性差的问题。HLA通过运行支撑环境(RTI)提供了通用的、相对独立的仿真支撑服务,包括仿真模型管理、时间管理以及数据分发管理等服务,使仿真功能实现、仿真运行管理和分布式仿真底层数据传输互相分离,实现仿真系统中各部分的独立开发,减小系统开发难度,提高仿真系统的开发效率。
[0004]在HLA分布式仿真框架中,一个完成特定仿真任务的仿真系统叫做联邦(Federation)。联邦中由分布于不同仿真计算机上的联邦成员(Federate)组成,它们通过RTI进行仿真交互,实现分布式协同和仿真。通常,联邦成员由仿真算法和HLA接口两部分组成,前者完成特定的仿真计算和仿真任务,后者负责仿真成员间的数据交互及时间同步等功能。开发符合HLA标准的仿真系统,其主要工作在于把传统的仿真模型转化成符合HLA接口规范的仿真联邦成员。通常的处理方式有两种,其一,针对不同的仿真模型分别编写符合HLA的规范的仿真邦员程序;其二,在规范化的模型接口基础上,编写统一的、通用的仿真邦员程序。前者针对不同的任务独立编写联邦成员,虽然灵活性强,但是无法实现仿真算法与HLA接口的分离,需要每个模型开发人员熟悉HLA仿真协议和程序接口,可重用性差,开发效率低;而且,每个仿真邦员不具有统一的形式,仿真系统的可扩展性差,仿真管理难度大。后者建立在规范化的模型接口的基础上,将联邦成员中的仿真任务或仿真算法与HLA接口实现分离。仿真算法开发人员不需要熟悉HLA仿真协议就可以完成模型开发工作,减小模型的开发难度,提高开发效率,增加仿真模型的规范性、独立性和重用性;同时,仿真邦员具有统一的形式,仿真系统更加容易扩展和实现统一管理。
[0005]为此,根据一般仿真算法和仿真模型的特点以及HLA分布式仿真协议的特点,建立一个通用的模型规范是必要的。

【发明内容】

[0006]本发明为解决HLA分布式仿真框架中仿真邦员开发难度大、仿真邦员的重用性问题,实现仿真邦员程序开发和仿真模型开发的分离,提出了一种应用于HLA分布式仿真技术的通用模型。
[0007]本发明的目的是通过以下技术方案实现的。
[0008]本发明的一种应用于HLA分布式仿真技术的通用模型主要包含模型数据接口、模型方法接口和模型运行流程。
[0009]1.模型数据接口
[0010]模型的数据接口包括模型数据接口的分类、模型接口数据表示。
[0011]I)模型数据接口分为输入、输出和参数三类。模型包含n(n大于等于0,n为自然数)个输入、m(m大于等于0,m为自然数)个输出和k(k大于等于0,k为自然数)个参数。
[0012]2)模型接口数据表示
[0013]通常,不同的仿真模型具有不同数量的参数、输入和输出,同时各参数、输入和输出的数据类型和数据长度不同。为此,定义一种通用的数据类型,该类型能满足几乎所有仿真模型的数据要求,实现对模型参数、模型输入和模型输出的统一表示。
[0014]模型接口数据表示包括模型元数据定义和模型数据映射表。
[0015]a)模型元数据用于表示模型数据接口中的每个输入、输出或参数。模型元数据能够实现与常用的数据类型,包括整数、浮点数、字符、字符串和布尔类型数据,之间的相互转化,即模型元数据实现对各种数据类型的统一表示。
[0016]b)模型数据映射表是对可变数目的仿真模型参数、输入和输出的统一封装,使仿真模型对外表现出一种总线式的数据接口,为进一步实现通用的、一致的模型方法接口奠定基础。
[0017]模型数据映射表包括数据主键和数据两部分,且主键与数据是一一映射的关系,成对出现。通过根据模型数据接口的分类,仿真模型包括输入数据映射表、输出数据映射表和参数数据映射表3种模型数据映射表。输入数据映射表中的主键数目与模型的输入个数相同,输出数据映射表中的主键数目与模型的输出个数相同,参数数据表中的主键数目与模型的参数个数相同。
[0018]对模型数据接口的总线式封装,分别用3个数据映射表对模型的η (η > 0,η为自然数)个输入、m (n ^ O, η为自然数)个输出和k (n ^ O, η为自然数)个参数封装。数据映射表的第一列唯一标识模型的输入、输出或参数,称为数据主键;第二列是以模型元数据类型表示的数据,代表模型输入、输出或参数的实际值。通过数据映射表中的数据主键可以获取特定的输入、输出或参数,实现模型数据接口的总线式封装。因此,无论模型的输入、输出或参数的数量多少,模型对外的数据接口均只有三个由数据映射表封装的输入数据接口、输出数据接口和参数数据接口,实现不同仿真模型对外数据接口在结构和表示方式上的一致,为实现一致的模型方法接口奠定基础。
[0019]2.模型方法接口
[0020]仿真模型可以看作“黑箱”,其内部是实现其具体功能的仿真算法,外部不需要了解模型内部的具体实现。模型外部通过模型提供的外部方法接口进行信息和数据交互。
[0021]本发明的一种应用于HLA分布式仿真技术的通用模型的模型方法接口包括主方法接口和辅助方法接口。
[0022]I)主方法接口[0023]主方法接口是模型整个运行生命周期中需要的主要方法接口,包括模型初始化接口、模型终止接口、模型输入更新接口、模型输出获取接口、仿真步进接口、异步事件发送接口和异步事件接收接口,实现模型的仿真计算和数据交互功能。
[0024]a)模型初始化接口完成模型的初始化工作,是模型运行时调用的第一个接口,且只被调用一次。在未调用模型初始化方法接口或初始化失败的情况下调用其他的模型方法接口将不能保证模型的正常运行。接口输入参数为模型的初始化参数,并采用上面提及的模型数据映射表结构来表示初始化参数。接口返回参数为初始化是否执行成功。由于模型的初始化参数采用数据映射表表示,无论模型的初始化参数数目多少,不同模型的对外初始化参数接口均可一致;同时,数据映射表类似于数据总线,通过数据映射表中的数据主键可以实现初始参数的自动匹配。
[0025]b)模型终止接口完成模型运行的清理工作,是模型运行时调用的最后一个方法接口,且只被调用一次。调用该接口意味着仿真模型的整个仿真运行生命周期结束,并进行最后的清理工作。接口输入参数为无。接口返回参数为是否执行成功。
[0026]c)模型输入更新接口由外界调用,在模型仿真过程中,将模型所需的输入数据传予模型进行输入更新。在模型进行下一个仿真步长之前,调用该接口更新模型的输入。该接口在每一个仿真步长中可被调用多次,比如,当模型的输入来源于多个其他仿真模型的时候。接口输入参数为模型的输入,并采用上面提及的数据映射表结构来表示输入参数。接口返回值为是否执行成功。由于模型的输入数据采用数据映射表表示,无论仿真模型的输入数目多少,不同模型的对外输入接口均可一致;同时,数据映射表类似于数据总线,通过数据映射表中的数据主键可以实现模型输入的自动匹配。
[0027]d)模型输出获取接口由外界调用,获取模型的输出数据。在仿真模型完成每一步的仿真推进后,调用该接口获取模型的输出。该接口在每一个仿真步长中,可被调用多次,且每次调用返回的模型输出应该相同,也即在该接口中不能进行与模型内部状态相关的计算工作。接口输入参数为无。接口返回值为模型的输出,表示为上面提及的数据映射表结构。由于模型的输出数据采用数据映射表表示,无论仿真模型的输出数目多少,不同模型的对外输出接口均可一致。
[0028]e)仿真步进接口触发模型完成下一步仿真推进工作,是仿真模型最重要的方法接口,是外界调用模型内部仿真算法完成模型内部仿真推进的唯一入口,仿真模型内部的所有计算和仿真动作就,包括异步事件的产生,均由该方法接口触发。调用该接口,模型利用已经更新的输入完成指定仿真步长的计算工作,并更新模型输出。在模型仿真推进的过程中,可能导致一定条件的满足,从而产生并发送异步事件数据,实现对基于时间仿真和基于异步事件仿真的同时支持。接口输入参数为仿真模型推进的下一个逻辑时间值。接口返回值为是否执行成功。
[0029]f)异步事件发送接口由模型内部调用,用于模型向外发送异步事件数据。本发明中的异步事件指仿真模型在步进过程中,由于某一特定条件满足,而需要向外发送仿真数据,该数据的产生不依赖于时间,而由某一特定条件触发。异步事件数据包括事件名称和事件参数,其中事件参数采用上面提及的数据映射表结构表来表示。接口输入参数为异步事件接收者和异步事件数据,其中异步事件接收者可以有多个,表示同时向多个仿真模型传输异步事件数据。接口返回值为是否执行成功。[0030]g)异步事件接收接口由外界调用,用于外部向模型传输异步事件数据。模型根据接收到的事件,根据事件名称和事件参数完成相应的动作。接口的输入参数为异步事件发送者和异步事件数据。接口的返回值为是否执行成功。
[0031]2)辅助方法接口
[0032]辅助方法接口包括设置/获取模型ID接口、添加/删除异步事件监听器接口。
[0033]a)设置/获取模型ID接口用于设置和获取模型的唯一标识。模型ID用于唯一标识模型。在一次仿真中,每个模型的标识是唯一的,在创建模型实例时,由外界指定。可用于异步事件发送时,指定事件的接收者;异步事件接收时,标识事件的发送者。
[0034]b)添加/删除异步事件监听器接口用于添加和删除异步事件监听器。异步事件监听器用于监听模型发送异步事件的动作,并由该监听器辅助模型将事件数据传输给指定的异步事件接收者。
[0035]3.模型的执行流程
[0036]模型的执行流程,首先调用模型的初始化接口,然后循环调用模型输入更新接口、仿真步进接口、模型输出获取接口,直到仿真结束,然后调用模型终止函数。同时,在调用模型步进接口时,可能触发异步事件的产生;模型同样可以在任何时候接收异步事件。
[0037]有益效果
[0038]本发明根据一般仿真计算的特点和HLA的特殊性,提出一种应用于HLA分布式仿真技术的通用模型规范,具有以下有益效果:
[0039]I)对模型的数据接口进行统一定义,实现不同模型的输入数据接口、输出数据接口和参数数据接口的一致;
[0040]2)对模型的方法接口进行完整的定义,满足各种仿真模型的需要,所有的仿真模型均可以由这些方法接口实现;
[0041]3)模型的方法接口包含基于时间仿真的接口和包含事件仿真的接口,同时支持基于时间的仿真和基于异步事件的仿真;
[0042]4)在本发明的模型规范的基础上,有利于实现通用的联邦成员程序,使仿真模型开发与HLA协议分尚,减小联邦成员的开发难度,提闻分布式仿真系统的开发效率;
[0043]5)增加模型的可重用性,增加仿真系统的可扩展性;
[0044]6)本发明中的模型规范应用于HLA分布式仿真系统,同时独立于HLA分布式仿真,可以作为其他仿真系统的仿真模型规范。
【专利附图】

【附图说明】
[0045]图1为本发明中的通用仿真模型的数据接口 ;
[0046]图2为本发明中的通用仿真模型的模型数据映射表;
[0047]图3为本发明中的通用仿真模型的仿真计算流程图;
[0048]图4为具体实施中的HLA分布式仿真系统;
【具体实施方式】
[0049]为了具体说明本发明的目的、可行性和有益效果,本具体实施中本发明中的一种应用于HLA分布式仿真技术的通用模型进行实现,并应用于HLA分布式仿真中。[0050]一种应用于HLA分布式仿真技术的通用模型主要包含模型数据接口、模型方法接口和模型运行流程。
[0051]1.模型数据接口
[0052]模型的数据接口包括模型数据接口的分类、模型接口数据表示。
[0053]I)模型数据接口分为输入、输出和参数三类。如图1所示,是本发明的一种应用于HLA分布式仿真技术的通用模型,其中方框表示仿真模型的内部算法实现;模型包含η (η大于等于0,η为自然数)个输入、m(m大于等于0,m为自然数)个输出和k(k大于等于0,k为自然数)个参数。
[0054]2)模型接口数据表示
[0055]通常,不同的仿真模型具有不同数量的参数、输入和输出,同时各参数、输入和输出的数据类型和数据长度不同。为此,定义一种通用的数据类型,该类型能满足几乎所有仿真模型的数据要求,实现对模型参数、模型输入和模型输出的统一表示。
[0056]模型接口数据表示包括模型元数据定义和模型数据映射表。
[0057]a)模型元数据用于表示模型数据接口中的每个输入、输出或参数。模型元数据能够实现与常用的数据类型,包括整数、浮点数、字符、字符串和布尔类型数据,之间的相互转化,即模型元数据实现对各种数据类型的统一表示。
[0058]b)模型数据映射表是对可变数目的仿真模型参数、输入和输出的统一封装,使仿真模型对外表现出一种总线式的数据接口,为进一步实现通用的、一致的模型方法接口奠定基础。
[0059]模型数据映射表包括数据主键和数据两部分,且主键与数据是一一映射的关系,成对出现。通过根据模型数据接口的分类,仿真模型包括输入数据映射表、输出数据映射表和参数数据映射表3种模型数据映射表。输入数据映射表中的主键数目与模型的输入个数相同(即图1中的η),输出数据映射表中的主键数目与模型的输出个数相同(即图1中的m),参数数据表中的主键数目与模型的参数个数相同(即图1中的k)。
[0060]对模型数据接口的总线式封装如图2所示。图中,分别用3个数据映射表对模型的η (η≥0,η为自然数)个输入、m (η≥0,η为自然数)个输出和k (η≥0,η为自然数)个参数封装。数据映射表的第一列唯一标识模型的输入、输出或参数,称为数据主键;第二列是以模型元数据类型表示的数据,代表模型输入、输出或参数的实际值。通过数据映射表中的数据主键可以获取特定的输入、输出或参数,实现模型数据接口的总线式封装。因此,无论模型的输入、输出或参数的数量多少,模型对外的数据接口均只有三个由数据映射表封装的输入数据接口、输出数据接口和参数数据接口,实现不同仿真模型对外数据接口在结构和表示方式上的一致,为实现一致的模型方法接口奠定基础。
[0061]2.模型方法接口
[0062]仿真模型可以看作“黑箱”,其内部是实现其具体功能的仿真算法,外部不需要了解模型内部的具体实现。模型外部通过模型提供的外部方法接口进行信息和数据交互。
[0063]本发明的一种应用于HLA分布式仿真技术的通用模型的模型方法接口包括主方法接口和辅助方法接口。
[0064]I)主方法接口
[0065]主方法接口是模型整个运行生命周期中需要的主要方法接口,包括模型初始化接口、模型终止接口、模型输入更新接口、模型输出获取接口、仿真步进接口、异步事件发送接口和异步事件接收接口,实现模型的仿真计算和数据交互功能。
[0066]a)模型初始化接口完成模型的初始化工作,是模型运行时调用的第一个接口,且只被调用一次。在未调用模型初始化方法接口或初始化失败的情况下调用其他的模型方法接口将不能保证模型的正常运行。接口输入参数为模型的初始化参数,并采用上面提及的模型数据映射表结构来表示初始化参数。接口返回参数为初始化是否执行成功。由于模型的初始化参数采用数据映射表表示,无论模型的初始化参数数目多少,不同模型的对外初始化参数接口均可一致;同时,数据映射表类似于数据总线,通过数据映射表中的数据主键可以实现初始参数的自动匹配。
[0067]b)模型终止接口完成模型运行的清理工作,是模型运行时调用的最后一个方法接口,且只被调用一次。调用该接口意味着仿真模型的整个仿真运行生命周期结束,并进行最后的清理工作。接口输入参数为无。接口返回参数为是否执行成功。
[0068]c)模型输入更新接口由外界调用,在模型仿真过程中,将模型所需的输入数据传予模型进行输入更新。在模型进行下一个仿真步长之前,调用该接口更新模型的输入。该接口在每一个仿真步长中可被调用多次,比如,当模型的输入来源于多个其他仿真模型的时候。接口输入参数为模型的输入,并采用上面提及的数据映射表结构来表示输入参数。接口返回值为是否执行成功。由于模型的输入数据采用数据映射表表示,无论仿真模型的输入数目多少,不同模型的对外输入接口均可一致;同时,数据映射表类似于数据总线,通过数据映射表中的数据主键可以实现模型输入的自动匹配。
[0069]d)模型输出获取接口由外界调用,获取模型的输出数据。在仿真模型完成每一步的仿真推进后,调用该接口获取模型的输出。该接口在每一个仿真步长中,可被调用多次,且每次调用返回的模型输出应该相同,也即在该接口中不能进行与模型内部状态相关的计算工作。接口输入参数为无。接口返回值为模型的输出,表示为上面提及的数据映射表结构。由于模型的输出数据采用数据映射表表示,无论仿真模型的输出数目多少,不同模型的对外输出接口均可一致。
[0070]e)仿真步进接口触发模型完成下一步仿真推进工作,是仿真模型最重要的方法接口,是外界调用模型内部仿真算法完成模型内部仿真推进的唯一入口,仿真模型内部的所有计算和仿真动作就,包括异步事件的产生,均由该方法接口触发。调用该接口,模型利用已经更新的输入完成指定仿真步长的计算工作,并更新模型输出。在模型仿真推进的过程中,可能导致一定条件的满足,从而产生并发送异步事件数据,实现对基于时间仿真和基于异步事件仿真的同时支持。接口输入参数为仿真模型推进的下一个逻辑时间值。接口返回值为是否执行成功。
[0071]f)异步事件发送接口由模型内部调用,用于模型向外发送异步事件数据。本发明中的异步事件指仿真模型在步进过程中,由于某一特定条件满足,而需要向外发送仿真数据,该数据的产生不依赖于时间,而由某一特定条件触发。异步事件数据包括事件名称和事件参数,其中事件参数采用上面提及的数据映射表结构表来表示。接口输入参数为异步事件接收者和异步事件数据,其中异步事件接收者可以有多个,表示同时向多个仿真模型传输异步事件数据。接口返回值为是否执行成功。
[0072]g)异步事件接收接口由外界调用,用于外部向模型传输异步事件数据。模型根据接收到的事件,根据事件名称和事件参数完成相应的动作。接口的输入参数为异步事件发送者和异步事件数据。接口的返回值为是否执行成功。
[0073]2)辅助方法接口
[0074]辅助方法接口包括设置/获取模型ID接口、添加/删除异步事件监听器接口。
[0075]a)设置/获取模型ID接口用于设置和获取模型的唯一标识。模型ID用于唯一标识模型。在一次仿真中,每个模型的标识是唯一的,在创建模型实例时,由外界指定。可用于异步事件发送时,指定事件的接收者;异步事件接收时,标识事件的发送者。
[0076]b)添加/删除异步事件监听器接口用于添加和删除异步事件监听器。异步事件监听器用于监听模型发送异步事件的动作,并由该监听器辅助模型将事件数据传输给指定的异步事件接收者。
[0077]3.模型的执行流程
[0078]模型的执行流程如图3所示,首先调用模型的初始化接口,然后循环调用模型输入更新接口、仿真步进接口、模型输出获取接口,直到仿真结束,然后调用模型终止函数。同时,在调用模型步进接口时,可能触发异步事件的产生;模型同样可以在任何时候接收异步事件。
[0079]本具体实施中包括实现模型元数据、实现模型数据映射表、实现异步事件、实现异步事件监听器以及实现模型方法接口。
[0080]1、本具体实施中模型元数据的实现提供两个方法,其中一个方法实现任意数据到模型元数据的转化;另一个方法实现模型元数据到任意数据的转化;
[0081]2、本具体实施中数据映射表的实现包括数据主键和数据,数据用模型元数据表示,数据主键用字符串表示,通过Hash表实现数据映射表;
[0082]3、本具体实施中异步事件包含事件名称和事件数据,其中事件名称用字符串表示,事件数据用模型数据映射表表示;
[0083]4、本具体实施中的事件监听器用接口组件实现,它提供一个发送模型异步事件的接口方法,由外部实现,完成模型异步事件的发送;
[0084]5、本具体实施中模型方法接口由接口组件实现,将模型的所有方法封装在接口组件中,由相应的模型实现。
[0085]本具体实施中将通过上述方法实现的仿真模型封装成组件(比如动态链接库或COM组件),然后由HLA中的联邦成员(该联邦成员是符合HLA协议标准的可执行程序)调用,从而实现具体的仿真算法,搭建HLA分布式仿真系统。如图4所示,联邦成员由通用联邦程序和仿真模型组成,每个联邦成员中的通用联邦程序都相同,只是仿真模型不同;其中通用联邦程序负责完成与HLA协议标准相关的功能,仿真模型就是本发明的一种应用于HLA分布式仿真技术的通用模型的具体实施。为此,实现模型开发与HLA协议的分离,具有上述的有益效果。
【权利要求】
1.一种应用于HLA分布式仿真技术的通用模型,其特征在于:包含模型数据接口、模型方法接口和模型运行流程。
2.根据权利要求1所述的一种应用于HLA分布式仿真技术的通用模型,其特征在于:模型数据接口分为输入、输出和参数三类;模型接口数据表示包括模型元数据和模型数据映射表; 模型元数据用于表示模型数据接口中的每个输入、输出或参数;模型元数据能够实现与常用的数据类型,包括整数、浮点数、字符、字符串和布尔类型数据,之间的相互转化,即模型元数据实现对各种数据类型的统一表示; 模型数据映射表包括数据主键和数据两部分,且主键与数据是一一映射的关系,成对出现;通过根据模型数据接口的分类,仿真模型包括输入数据映射表、输出数据映射表和参数数据映射表3种模型数据映射表;输入数据映射表中的主键数目与模型的输入个数相同,输出数据映射表中的主键数目与模型的输出个数相同,参数数据表中的主键数目与模型的参数个数相同。
3.根据权利要求1所述的一种应用于HLA分布式仿真技术的通用模型,其特征在于:模型方法接口包括主方法接口和辅助方法接口; 主方法接口是模型整个运行生命周期中需要的主要方法接口,包括模型初始化接口、模型终止接口、模型输入更新接口、模型输出获取接口、仿真步进接口、异步事件发送接口和异步事件接收接口,实现模型的仿真计算和数据交互功能;辅助方法接口包括设置/获取模型ID接口、添加/删除异步事件监听器接口。
4.根据权利要求1所述的一种应用于HLA分布式仿真技术的通用模型,其特征在于:模型的执行流程是首先调用模型的初始化接口,然后循环调用模型输入更新接口、仿真步进接口、模型输出获取接口,直到仿真结束,然后调用模型终止函数;同时,在调用模型步进接口时,可能触发异步事件的产生;模型同样可以在任何时候接收异步事件。
【文档编号】G06F17/50GK103473389SQ201310349571
【公开日】2013年12月25日 申请日期:2013年8月12日 优先权日:2013年8月12日
【发明者】路平立, 余银, 刘向东, 李震, 辛星 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1