虚拟现实技术在新型高炮在线诊断系统中的应用

2012-11-22 01:46刘正春张晨光
火炮发射与控制学报 2012年3期
关键词:高炮测试点诊断系统

刘正春,王 勇,张晨光

(军械工程学院,河北 石家庄 050003)

新型高炮的电气系统是整门高炮的神经中枢,具有设备繁多、连接关系复杂等特点,一旦电气系统出现故障,整门高炮将无法运作。通常的在线检测系统只提供各测试点的数据显示,无法体现实物检测的直观性、测试点间的电路逻辑关系以及系统各装置间的电气连接关系,使得工程人员容易忽视故障点,导致诊断失误。

将虚拟现实技术[1]应用于新型高炮在线诊断系统中,利用Delphi搭建上位机的在线诊断平台,采用ActiveX技术嵌入Cult3D炮上虚拟环境交互模型,从而创造出一个形象逼真的炮上虚拟内部场景,并实现各虚拟电气设备的在线测量,就能给工程人员提供一个良好的辅助维修环境。

1 新型高炮电气装置在线诊断系统

新型高炮在线诊断系统通过虚拟交互技术模拟炮上各电气设备的实际空间位置、连接关系以及设备箱体拆装过程,并提供设备内部电路板块的在线测试交互控制。工程人员在计算机前操作虚拟装置具体测试点,系统通过USB接口向下位机下达测试指令,下位机将测量的实际信号上传至用户界面,其数据传递如图1中所示。工程人员可以采用手动测试排障,即从虚拟炮上环境中选择测试点进行在线测试,通过下位机反馈测试结果进行经验式排障;也可以从故障诊断模块选择专家知识库内现有故障现象,由计算机以专家决策库为推理机制自动测试、反馈和排障。

如图1所示,由用户操作逐级调用相应虚拟炮上环境模型,各电气装置模型由Cult3D模型库存储,包括炮上视景、单体装置、拆装结构和单板(电路板)等模型。信号识别转换模块用于识别界面被选测试点信号,从测试点属性库中获取硬件测试号,通过通信模块从USB接口向下位机传达测试指令(根据通信协议,唯一标识测试点的硬件测试号作为测试指令,标号为0~1 023)。

在设计中要满足工程人员虚拟炮上环境的真实沉浸感,在诊断故障时,既能达到界面操作如同操作真实炮上各电气装置的效果,又能通过软件提供的电气连接导航快速切换各电气装置,从而辅助诊断。要达到这样的效果,如何构建炮上环境的虚拟平台以及如何利用Cult3D技术实现模型的动态交互控制是其关键。

2 基于Cult3D技术建立动态模型

2.1 虚拟环境的构建与电气装置模型的建立

使用3DS Max软件建立炮上虚拟环境平台的三维模型。首先需分析新型高炮炮体结构、电气系统各电气空间位置、内外部结构、以及各级间层次关系(包括分系统级、箱体级与板级),由此建立3DMax中彼此独立又具有装配关系的组件,以便于在Cult3D中建立各组件的父子关系[2],系统组件层次关系如图2所示。以随动系统为例,它由随动控制箱、电机扩大机组、高低方位受信仪(箱体级)组成,随动控制箱又由若干个电路板、若干个控制板(电路板级)等组成。

炮上虚拟环境和系统层以高炮内部场景为对象,鼠标提示各装置名称以及父级系统名称,这两层为虚拟漫游方式,建模以形体和照片纹理为主,以保证交互画面的流畅;当用户操作进入到箱体层和电路板层,以虚拟模型展示及交互为主,工程人员可360°旋转、缩放对象,操作箱体的开关、旋钮等器件,也可在线测试电路板关键点的电压、波形等参数。

2.2 模型的虚拟动态交互控制

系统将3DS Max+Cult3D+Delphi作为一种新型的虚拟现实交互技术,实现在高炮炮塔的拟实环境中进行动态交互式设计,并在Delphi这个强大的编程工具中完成对动态模型的控制,即Delphi通过Cult3D提供的动态链接库来实现对三维模型的漫游与操作,并获取用户操作信息,从而向下位机下达测试指令。

借助Cult3D Exporter插件将3DS Max中的各电气装置模型输出为*.c3d文件,在Cult 3D Designer中将*.c3d导入,对预设动画进行交互性设计,逼真地模拟出炮上环境漫游与各装置的连接关系与拆装过程,对各实体还可以提供文字提示(Tooltip)。Cult3D是一个完全拖放式软件,从场景图窗口(Scence Graph)选中要操作的箱体(如图3中的**Box01)、电路板(**Circuit01)或开关等组件,拖入事件映射窗口(Event Map),然后在动作窗口(Action)中选择要实施的动作和触发该动作的事件,其中有鼠标和键盘两种触发事件。通过预览窗口(Stage Window)可以预览交互动作的效果。最后输出*.co压缩文件,以供Delphi调用[3]。

图3部分显示了某箱体拆分、可测点测试等动作的映射图。最终文件输出为(*.co)压缩文件,该格式文件占用空间小,可嵌入HTML网页或 Word、Power point、Acrobat等多媒体应用软件中。利用动态链接库的显示调用方式将其嵌入Delphi软件平台中。

3 诊断平台虚拟动态模型的控制

3.1 3DS Max、Cult3D和Delphi软件平台的接口

3DS Max和Cult3D是两个不同的应用软件平台,电气装置虚拟模型的建立是在3DS Max软件上完成(格式为*.max),而模型的交互动作是在Cult3D软件中编辑完成的,最终具有交互动作产品(*.co)要发布到Delphi软件平台上使用。Cycore公司提供的Cult3D Exporter和Cult3D Viewer两个插件分别用于3DS MAX向Cult3D Designer(*.max->*.c3p)和Cult3D Designer向Delphi(*.c3p->*.co)3个软件平台接口的格式转换,如图4所示。

3.2 诊断平台虚拟装置动态模型的嵌入

新型高炮在线诊断平台采用Delphi软件开发。ActiveX控件是一组采用COM(Component Object Model,部件对象模型)使得软件部件在网络环境中进行交互的技术集,可嵌入到包容器宿主应用程序中,与开发平台无关。因此,在一种编程语言上开发的ActiveX控件在Delphi软件平台上调用无须作任何修改,其效果如同使用Windows通用控件一样。选用ActiveX技术来嵌入电气装置的虚拟模型。

Cult3D ActiveX Player提供动态链接库IECult.dll,在Delphi环境下有2种调用方法:

1)隐式调用(静态调用),使用“external ‘IECult.dll’”,在程序运行时自动加载dll,加载完毕后,应用程序中可以任意使用dll中的函数、过程,应用程序结束时会自动释放dll。

2)显式调用(动态调用),编程控制dll的加载与释放,使用更加灵活。由于隐式调用会存在自动终止和内存驻留的问题,因此使用显式调用法,其关键代码如下:

myHandle:=LoadLibrary(‘IECult.dll’); //加载dll

if myHandle>0 then //加载成功则执行 try

FPointer:=GetProcAddress(myHandle, PChar(‘LoadCult3D’));

//取函数‘LoadCult3D’的地址

if FPointer<>nil then //如果函数存在

begin

myFunc:=TDLLDemo(FPointer);

….// ‘LoadCult3D’函数调用

end;

finally

FreeLibray(myHandle);

End;

3.3 Delphi平台与动态模型的交互

利用显式调用,可以灵活控制动态链接库的加载与释放,并且如同通用控件一样调用链接库中的各种Cult3D函数,主要分为两类:

1)模型属性函数,用于控制被调用模型的背景、初始位置等各类场景基本属性,比如‘bgcolor’可控制模型空间背景色。

2)模型交互控制函数,包括模型的加载(‘LoadCult3D’)、当前操作姿态的捕获(‘GetActionStatus’)、触发事件的操作(‘TriggerAction’/‘TriggerEvent’)等函数。其中的事件为Cult3D中已经定义好的操作事件,比如,Cult3D中将“拆分箱体”这个动作过程定义为‘Dispart’,在Delphi平台中用语句“TriggerEvent(‘Dispart’)”实现这个动作的调用。

Delphi调用Cult3D模型的关键代码如下,第1段代码根据用户操作,从数据库提取被选模型路径,将模型加载至界面;第2段代码实现通过桌面按钮控制模型的拆分。

procedure TForm1.Button1Click(Sender: TObject);

var str:string;

begin

with ADOQuery1 do

… end; //从数据库中提取模型路径

str:=getcurrentdir+’/’+ADOQuery1.FieldByName(’模型路径’).AsString;

Cult3DP1.LoadCult3D(str); //加载模型

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Cult3DP1.TriggerEvent(’Dispart’);

//通过Button控制拆分动作

end;

诊断系统最终实现界面如图5所示(仅部分显示虚拟交互相关功能)。

4 结束语

利用ActiveX技术提供了在Delphi软件平台中引入Cult3D虚拟交互模型的方法,该方法只须对Cult3D模型加载一次,便可以一直保持与模型的交互,达到“一次运行、多次使用”的效果;创造出一个形象逼真的炮上虚拟环境和各电气设备内外部结构的三维世界,提高了监测过程的直观性和故障定位的准确性,为工程人员提供了一个良好的维修诊断环境。

在设计过程中,场景的真实感和绘制的实时性是系统的两个基本要求,但由于炮上漫游场景的复杂性,在现有硬件条件下, 真实感和实时性往往是需要均衡的两个要点[4]。

参考文献(References)

[1] 项晨,刘晓,蒋刚毅,等.三维数字城市的建设[J].计算机工程,2003,29(20):69-71.

XIANG Chen, LIU Xiao, JIANG Gang-yi.Construction of 3D digital city[J]. Computer Engineering,2003,29(20):69-71.(in Chinese)

[2] 濮青,徐云.应用Cult3D技术实现交互式三维人脸动画[J].计算机辅助设计与图形学学报,2004,16(3):382-384.

PU Qing, XU Yun. Implementation of interactive 3D facial animation with Cult3D technology[J]. Journal of Computer-Aided Design and Computer Graphics,2004,16(3):382-384.(in Chinese)

[3] 苏威洲,童仲豪,叶翰鸿.实现网络三维互动——Cult3D应用指南[M].北京:清华大学出版社,2001:73-75.

SU Wei-zhou, TONG Zhong-hao, YE Han-hong.Ma-king internet 3D interactive-Cult3D application manul[M]. Beijing:Tsinghua University Press,2001:73-75.(in Chinese)

[4] 胡松涛.产品展示能手——Cult3D入门与提高[M].北京:中国电力出版社,2002:112-114.

HU Song-tao.A fiend of products display-Cult3D accidence and promotion[M].Beijing:China Power Press,2002:112-114.(in Chinese)

猜你喜欢
高炮测试点诊断系统
矿山长距离胶带机动力特性测试及运行分析
深度学习计算机辅助诊断系统检测胸部DR肋骨骨折的验证性研究
基于信息熵可信度的测试点选择方法研究
黑龙江省人工影响天气所用37mm高炮秋冬季保养技术
CTCS2-200H型列控车载设备运用状态在线诊断系统的研究与应用
德国猎豹35毫米双管自行高炮
逻辑内建自测试双重过滤测试点选取策略
列控车载设备智能监测诊断系统开发探讨
欧克诊断仪推出行业高配极致双模诊断系统
SA2型76毫米车载高炮多视图