HLA 分布式虚拟现实仿真程序设计
来源: 北京航空航天大学虚拟现实技术与系统国家重点实验室
HLA(高层体系结构,High Level Architecture)是为了解决建模和仿真领域长期存在的重用性和互操作性问题而提出的一种体系结构,RTI(运行支撑环境,Run-Time Infrastructure)是HLA接口规范的具体实现,是仿真应用程序设计和运行的基础。
1 计算机仿真技术是以计算机为工具,以相似原理、信息技术以及各种相关应用领域的基本理论和技术为基础,根据系统实验的目的,建立(实际或设想)系统的模型,并在不同的条件下,对模型进行动态运行(实验)的一门综合性技术。当前,计算机技术应经成为系统能特别是大型系统分析、研究、测试、评估、研制和技术训练的重要手段,并已广泛应用于国防、制造、能源、交通、农业、医疗、教育、经济、天气预报等各个行业的重要领域。
从仿真硬件的角度讲,计算机仿真大致经历了三个主要发展阶段,即:模拟计算机仿真。模/数混合计算机仿真和数字计算机仿真。从仿真软件的角度讲,计算机仿真可分为五个相互交叉的发展阶段:仿真软件包和仿真语言、一体化仿真环境、智能化仿真环境、面向对象的仿真、分布式仿真。
2 分布交互仿真是指采用协调一致的结构、标准、协议和数据库,通过局域网和广域网,将分散在各地的仿真设备互联,形成可参与的综合性仿真环境。
计算机仿真通常可分为三种类型。及虚拟仿真、构造仿真和真实仿真。虚拟仿真是指作战人员操作仿真的武器系统进行的作战仿真,及人在回路中的仿真。构造仿真是指仿真中的所有实体均由计算机模型产生,及由仿真的人操作仿真的武器系统进行的仿真。真实仿真是由真实的战斗人员使用真实的武器系统和保障系统,在尽可能真实的作战环境中进行的作战演习。分布交互仿真既可以是某种单一类型的仿真,也可以是几种类型的综合。
3 HLA规则
HLA规则已成为IEEE M&S的正式标准,标准号为IEEE 1516。现行的规则共有十条,其中前五条规定了联盟必须满足的要求,后五条规定了盟员必须满足的要求。
联盟规则:
(1) 每个联盟必须有一个联盟对象模型,该联盟对象模型的格式应与HLA OMT兼容。
(2) 联盟中,所有与仿真有关的对象实例应该与联盟盟员中描述而不是在RTI中。
(3) 在联盟运行过程中,各成员间的交互必须通过RTI来进行。
(4) 在联邦运行过程中,所有联盟成员应按照HLA接口规范与RTI交互。
(5) 联盟运行过程中,在任一时刻,同一时刻,同一实例属性最多只能为一个联盟成员所拥有。
盟员规则:
(1) 每个联盟成员必须有一个符合HLA OMT规范的成员对象模型。
(2) 每个联盟成员必须有能力更新/反射任何SOM中指定的对象类的实例属性,并能发送/接收任何SOM中指定的交互类的交互实例。
(3) 在联盟运行过程中,每个联盟成员必须具有动态接收和转移对象属性所有权的能力。
(4) 每个联盟成员应能改变其SOM中规定的更新实例属性值的条件。
(5) 联盟成员必须管理好局部时钟,以保证与其他成员进行数据交换。
4 HLA对象模型模板
HLA是一个开放的体系结构,其主要目的是促进仿真系统间的互操作,提高仿真系统及其部件的重用能力。为了达到这个目的,HLA要求采用对象模型(Object Model)来描述联盟和联盟中的每一个盟员,该对象模型可以采用各种形式描述,但HLA必须采用一种统一的表格-对象模型模板(OMT)来规范对象模型的描述,OMT是HLA实现互操作和可重用的重要机制之一。
在HLA OMT中,HLA定义了两类对象模型,一类是描述仿真联盟的联盟对象模型(FOM, Federation Object Model);另一类是描述联盟成员的成员对象模型(SOM, Simulation Object Medel).这两种对象模型的主要目的是促进仿真系统间的互操作和仿真部件的重用。
(1) 联盟对象模型(FOM)
HLA FOM的主要目的是提供联盟成员间用公用的、标准化的格式进行数据交换的规范,它描述了在仿真运行过程中将参与联盟成员信息交换的对象类、对象类属性、交互类、交互类参数的特性。HLA FOM的所有部件共同建立了一个实现联盟成员间互操作所必须的“信息模型协议”。
(2) 成员对象模型(SOM)
HLA SOM是单一联盟成员的对象模型,它描述了联盟成员可以对外公布或需要订购的对象类、对象类属性、交互类、交互类参数的特性,这些特性反应了成员在参与联盟运行是所具有的能力。基于OMT的SOM开发是以一种规范的建模技术和方法,它便于模型的建立、修改、生成和管理,便于对已开发的仿真资源的再利用,能够促使建模走向标准化。
5 联盟管理
联盟管理(Federation Manange)是指对一个联盟执行的创建、动态控制、修改和删除等过程。在一个计算机网络中,RTI和其他一些支持软件构成了一个综合的仿真环境。在这个环境中,可以运行各种联盟。联盟管理也就是在此仿真环境中动态地创建、修改和删除一个联盟执行。除了上述操作外,联盟管理还包括联盟成员间的同步,联盟的保存和恢复等内容。联盟执行是指在联盟(仿真系统)运行过程中,RTI根据联盟成员的请求用一个指定的FOM及相关的联盟细节数据,为实现联盟成员间互操作而创建的一个虚拟世界。它实际是一个活动的联盟,因此它是一个和联盟向对应的,具有一定生命期的概念。
6 声明管理
在DIS协议中,仿真系统间的交互是通过互相发送PDU来实现的,而PDU的发送是采用广播方式。因此在DIS系统中,当互联的仿真系统数量N增加时,网络的通信量将以N的平方的数量级增长,而且每个仿真系统在收到一个PDU后,都要判断该PDU是否是发给自己的,这个过程浪费了大量的处理时间。由此可见,DIS协议限制了构建一个大型分布仿真环境的能力。
为了解决DIS协议中的问题,HLA采用了一种“匹配”(或称“过滤”)机制,即数据“生产者”向RTI声明自己所能“生产”的数据,数据“消费者”向RTI订购自己所需要的数据,有RTI负责在“生产者”和“消费者”之间进行匹配。RTI保证只将“消费者”所需的数据传递给“消费者”,这种匹配可以在(对象类和交互类)层次上进行,也可以在实例(属性实例或交互实例)层次上进行。声明管理(DM,Declaration Manangement)为联盟成员提提供了类层次上的表达(发布或订购)机制,数据分发管理(DDM,Data Distribution Management)则提供了实例层次上的表达机制,联盟成员即可以单独使用声明管理,也可以将声明管理和数据分发管理结合起来使用。当单独使用声明管理时,联盟成员通过声明管理服务向RTI表明自己的意图(生产数据的意图和消费数据的意图),RTI负责在联盟成员间进行匹配,并将数据传递给正确的联盟成员.
7 对象管理
HLA对象管理(Object Management)实在声明管理基础上,实现对象实例的注册/发现、属性的更新/反射、交互实例的发送/接收以及对象实例的删除等功能。
8 所有权管理
所有权关系指的是实例属性和联盟成员之间的一种关系,如果联盟成员有权更新某个实例属性的值,我们就称给联盟成员拥有该实例属性,这种拥有关系也称为所有权关系。在联盟执行生命周期的任意时刻,一个实例属性最多只能被一个联盟执行所拥有,当然它也可能不被任何联盟成员拥有。但是,唯一拥有实例属性所有权的联盟成员才有权更新该实例属性的值。
9 时间管理
时间是分布仿真中的核心概念。HLA 时间管理的出发点是在保证正确地实现联盟成员间仿真时间的协调推进和数据交换的前提下,定义了所需服务的最小集合。为此,HLA的时间管理建立在如下原则之上:
(1)在HLA联盟中不存在通用和全局的时钟,在联盟执行生命周期内的任何时刻,不同的联盟成员具有不同的仿真时间。
(2)联盟中可以产生"时戳"是“未来”(即事件时戳大于成员当前的逻辑时间)的事件。对象状态的变化,也称事件,包括属性值更新、交互实例的发送、对象实例化和删除等,这些事件时有联盟成员产生(通过调用RTI服务),并且这些事件的"时戳"应该大于等于联盟成员当前的逻辑时间。
(3)使用逻辑时间的联盟成员不能产生"过去"(即时间时戳小于成员当前的逻辑时间)的事件。
(4) 不要求成员以时戳顺序产生事件。一个联盟成员可以先产生时戳为10的事件,再产生时戳为8的事件,但事件具体发生的顺序一定是先8后10。
10 数据分发管理
数据分发管理是基于仿真中的某些要求而提出的。比如,在防空仿真中,地面雷达只需要知道一定范围内的空情数据,因此代表飞机的仿真成员只需要根据地面雷达的数据需求将制定地域内的数据传递给雷达成员即可,这样避免了大量无用数据的传输,提高了网络带宽的利用率。
在HLA中,RTI的声明管理在对象类层属性层次上为联盟成员提供了表达数据发送和接受信息意图的机制,而数据分发管理(DDM,Data Distribution Management)则在实例属性层次上进一步增强了联邦成员精简数据需求的能力。数据分发管理的目的是减少仿真运行过程中无用数据的传输和接受,从而减少网络中的数据量,增强构建大型虚拟世界的能力,同时数据分发管理也提高了仿真运行的效率。
11 管理对象模型
为了便于在仿真运行过程中对RTI、联盟及联盟成员进行监控和管理,HLA定义了管理对象模型(MOM,Management Object Model)。管理对象模型描述了一种机制,这种机制使得对联盟执行的管理和监控信息,能够以一种与联盟成员间的交互一致的方式在联盟执行中传递。联盟成员和RTI可以利用管理对象模型监视各联盟成员和RTI的运行,获取相应的状态信息,同时还可以利用管理对象模型来控制RTI、联盟乃至单个联盟执行的执行。在仿真运行过程中,这种监视和控制联盟中某个元素的的能力是非常必要的,它对联盟的诊断调试及监控非常有用。管理对象模型通过预定义的HLA结构-对象和交互实例,提供了对这种能力的支持。联盟执行时,RTI将公布管理对象模型中的对象类,并注册对象实例,更新对象实例的属性值,同时RTI还将公布和发送管理对象模型中部分交互类,并订购和接收管理对象模型中的其他的交互类。联盟中负责管理和控制联盟执行的联盟成员可以订购管理对象模型中对象类,反射更新值,同时还可以公布和发送管理对象模型中的部分交互类,并订购和接收管理对象模型中的其他的交互类。