MATLAB/VRML在雷达系统中的应用
2014-04-14孔祥辉
徐 玮 董 锦 李 涛 孔祥辉
(西安电子工程研究所 西安 710100)
0 引言
随着设计自动化和计算机仿真技术的进步,人们对设计工具和仿真软件的要求也越来越高,虽然传统设计工具如AutoCAD、PRO/E、3ds MAX 对设计与加工支持很好,但对视景生成、动态交互等方面却力不从心[1]。MATLAB 在6.1 版本后增加了对于VRML 的3D 模拟和可视化的支持[2],具备良好的编辑、显示、编程接口,能够与VRML 语言格式的虚拟现实模型进行无缝交互。本文详细介绍了用MATLAB/VRML 语言对模型进行操作的方式方法,并探索了该工具箱在雷达研发的多个环节中的应用,并分别给出了应用实例。本文就如何使用MATLAB/VRML 的新特性,并在雷达研发哪些环节可以使用该工具进行了分析,希望可以为雷达系统中论证、展示、仿真等环节面临的一些现实问题找到更为合理的解决途径。
1 虚拟现实工具箱介绍
虚拟现实工具箱面向的是基于VRML 语言格式的模型,这里涉及一种建模语言VRML(Virtual Reality Modeling Language)。VRML 采用的是一种符合ISO 标准的开放的、文本标记形式的文件格式[3],这种格式可以用于创建任意形式的虚拟现实的模型或其场景,创建的模型可以在特定的以太网浏览器或其它查看器中展现其三维形态或其在三维场景中的效果。
采用虚拟现实工具箱可以使Matlab 与VRML语言格式的虚拟现实模型进行无缝连接,并使用MATLAB 语言对模型进行操作,以三维动画可视化的方式展示出来。采用虚拟现实工具箱可以完成许多常用操作。
(1)模型操作:可以创建、编辑、保存基于VRML 的三维虚拟现实模型,也可以读取已创建存在的模型。
(2)动画查看:可以采用MATLAB 语言对三维场景中的对象的诸多属性诸如位置、航向角、横滚角、纵摇角进行实时修改和查看,从而可以使对象在场景中的平动或转动以三维动画的方式呈现。
2 基于MATLAB 的虚拟现实编程方法
MATLAB 语言采用面向对象的访问函数实现了对虚拟现实模型的访问和查看。其中访问虚拟现实模型使用到两个对象:vrworld、vrnode;而查看虚拟现实模型常使用到一个对象vrfigure。各个对象提供了规定范围的操作方法函数,实现了相应的操作。
(1)vrworld 的常用方法函数
要连接虚拟现实模型文件,可使用vrworld、open、view、get 等方法函数。其中vrworld 用于创建一个与虚拟现实模型文件关联的对象;open 用于打开虚拟现实模型文件,以便进行文件中各个模型节点的访问;view 用于观看虚拟现实模型文件;get 可以用于获取文件中的各个已命名节点。例如:
(2)vrnode 的常用方法
访问虚拟现实模型文件中的节点,需要使用到vrnode、getfield、setfield 等方法函数。其中vrnode 用于创建一个指定类型的节点,同时给该节点赋给一个名称,或者用于在指定节点上创建一个新的节点;getfield 用于获取指定节点指定属性的内容;setfield用于对指定节点的指定属性进行赋值。例如,要在场景中增加一个球几何体,并将其半径强制设置为0.1,可采用如下程序:
3 MATLAB/VRML 在雷达中的应用
3.1 为装备方案需求论证提供准确的描述工具
装备方案需求论证时能够产生具体的顶层指标需求,但其可实现性往往受到现实条件的制约,尤其具体到某一问题的机理时,由于需求方与供应方的专业方向的不同,在缺乏描述工具支撑的时候,会对问题的理解产生谬误。这种问题往往会从早期的功能及指标制定蔓延至整个研制过程,从而造成不必要的损失。这样情形也普遍存在于总体单位对分系统单位的任务描述中,因此有必要给该阶段提供工具支持,以提高问题描述的准确性、直观性。VRML具有易学易用的特点,特别是其中提供了可视化编辑工具V-Realm Builder,使得不熟悉VRML 的人也容易参与到问题描述中来,大大提高了装备方案需求论证的运作效率和准确程度。
以图1 为例,在进行某近场成像原理样机的论证时,与会人员对近场成像雷达工作过程与波束角对场景覆盖的理解上不甚清晰,用传统方式描述这样的一个三维工作过程存在难度,解决的方法是:对该场景进行快速准确的建模,并在微缩模型的周边放置参考点,用参考点结合信号处理过程将问题表达清楚,同时用三维浏览器将整个过程结合MATLAB 编程将过程中的每步的运动轨迹和信号都表达出来。
本文提出的方法并不依赖传统的CAD 设计,其特色是为装备方案论证提供了一种具有强烈现实感的工具支撑,大大提高了问题表达的准确性、人员的讨论参与深度。
3.2 为目标电磁波散射特性研究提供三维几何数据支撑
采用MATLAB 的虚拟现实工具箱函数,可以访问VRML 格式的三维模型数据,从而实现了MATLAB 对三维数据的读取。当前,绝大部分CAD 软件中建立的模型都可以导出为VRML 格式,这些均为基于MATLAB/VRML 三维模型的科学计算研究提供了更加便利的数据输入输出的渠道,消除了不同工具间的交互障碍。
图1 采用V-Realm Builder 进行可视化编辑
目标电磁波散射特性研究在雷达领域各方面有着广泛、持久的应用,如基于回波数据的目标识别、雷达导引头的建模仿真、半实物仿真等。目标电磁波散射特性研究大多是基于电磁波在介质表面的散射模型进行研究,更加深入的研究也考虑电磁波从目标到场景的二次反射,因而会使用到模型的三维几何数据(特别是表面几何数据)及场景的表面数据[4]。VRML 具备对模型和场景的表述能力,因而可以为目标电磁波散射特性研究提供三维几何数据的工具支撑。如图2所示,MATLAB 可以从VRML模型中获取的三维数据,并用plot3 函数绘制的几何表面效果。
图2 采用MATLAB 虚拟现实工具箱函数读取的三维几何数据
模型数据可从一些软件库中获取,还有一些互联网上公开的数据可用,但是这些模型采用的方法往往是以大块的规则几何表面对外形进行描绘,这样直接得到的是关键点数据,因而表现得不够精细。要获得所有需要的几何数据,往往需要对关键点数据进行插值方可得到。如果数据是从设计单位自身而来,就不存在这样的问题,得到的几个散射点分布也更加精准。
3.3 为展示武器装备使用方法及效能提供虚拟战场演示
MATLAB 集成的V-Realm Builder 工具中有涵盖几乎所有领域的典型模型,特别是包括了世界军事上著名的武器模型,包括地面、海面、空中乃至太空的型号产品,这些模型的尺寸与外形与实际贴合程度非常高,如图3所示的就是从模型库中调出的F-117、米格25 型飞机模型。
图3 V-Realm Builder 目标库中的典型军事目标三维模型
VRML 作为一种由国际标准化组织定义的在网络上表达三维数据的文件格式,它定义了当今应用中的绝大多数3D 常见概念,诸如坐标的移动、旋转、视点、光照、材质属性、纹理映像、动画、雾以及嵌套结构等。MATLAB 的工具箱提供的面向对象编程函数可以实现对这些模型的灵活简便的操作,同时可以发挥MATLAB 语言作为科学计算工具强大的建模、仿真、绘图功能。
利用MATLAB/VRML 可以快速地定义一个场景,并使用MATLAB 对于其中的几何体的位置、姿态等进行随时间维、或事件形式的触发,从而实现在虚拟战场场景下各个武器装备的虚拟战斗过程的展示。地形表达可以使用实际地理测绘部门专业提供或互联网上公开的DEM 高程数据,对地势环境利用VRML 的网格模型进行逼真地展示,从而形成了一个高效的电子沙盘地图[5]。
图4 展示的是一架波音747 飞机从圣弗朗西斯克地形上方飞过的场景。其中的飞机就是从V-Realm Builder 的空中目标库获取的几何外形数据生成,地势效果是通过实际的粗糙的地理DEM 数据初始化的网格,并进行了纹理贴图而形成的。在这个例子中,可使用MATLAB 语言对飞机的移动、旋转属性进行设置,从而方便地产生飞机在场景中飞行的动画效果。
图4 电子沙盘建模实例
在雷达验证试验时雷达自身及其配试目标都装配有惯导,可以将这些惯导数据进行汇总结合测绘部门的地理DEM 数据,将整个试验“实战”过程记录并展示出来,其意义就不仅仅限于演示用途了,还可以开展不同地势对雷达侦察影响的分析,便于开展复杂环境下雷达功能及测量性能的评估[6]。
4 结论
MATLAB 提供的虚拟现实工具箱降低了普通雷达科研工作者进行三维建模的难度,基于工具箱函数提供的编程接口能够实现对VRML 模型的无缝操作。采用MATLAB/VRML 进行建模和仿真,具有编程接口简单、可视化程度高的特点,因而可显著提高雷达研发某些环节的工作效率。
[1]杨明亚,杨颖洁.从PRO/E、3ds MAX、Auto-CAD 到VRML 的建模比较[J].工业控制计算机,2010,23(11):75-78.
[2]张家祥,罗雪山,方凌江,毛全胜.用MATLAB的虚拟现实工具箱进行飞机起飞模拟[J].计算机仿真,2003,20(4):66-68.
[3]孙济洲,王义豹,余亚滨.VRML 虚拟现实建模语言[M].天津:天津大学出版社,1998.
[4]徐丰.全极化合成孔径雷达的正向与逆向遥感理论[D].上海:复旦大学,2007.
[5]彭仪普,李延山.基于VRML 的三维地形场景生成[J].计算机工程,2003,29(10):38-40.
[6]吉兵,单甘霖,陈海.基于VRML 和目标航迹的视景仿真方法[J].系统仿真学报,2011,23(9):1900-1904.