基于unity3D的标准化配电房交互系统探讨

时间:2022-09-15 08:41:59

基于unity3D的标准化配电房交互系统探讨

【摘要】配电房设计和建造的规范性一直不高,影响了配网质量的提高。低压配电房的建设缺少可操作性强的、实用的典型设计,施工缺少技术图纸,建设标准不统一,配电房尺寸大小不规范,房屋结构不牢固,渗漏严重,门窗安全性差,进出线混乱,电气设备安装接线不美观,安全经济性不高等,不利于打造坚强的低压配网,也增加了运行维护的难度。

【关键词】低压配电房;低压配网

一、配电房交互系统存在的问题

配电房的建设与管理,一直是配电工作中的重点。目前,低压配电房的建设缺少可操作性强的、实用的典型设计,施工缺少技术图纸,建设标准不统一,配电房尺寸大小不规范,房屋结构不牢固,渗漏严重,门窗安全性差,进出线混乱,电气设备安装接线不美观,安全经济性不高等,不利于打造坚强的低压配网,也增加了运行维护的难度。电气化建设对低压电力设施,尤其是对配电房的建设提出了更高的要求:一方面要保证安全、合理、经济、可靠供电,另一方面要与环境协调且美观。结合电气化工作,进行配电房典型设计,达到安全、经济、可靠、美观的要求。

二、基于unity3D的标准化配电房交互系统的设计

1.系统介绍

由于该系统是一套完整的3D人机交互培训系统,第一步工作是要把整个配电房场景模拟出来。这一步可以分成2部分,一部分,是做出一个完整的配电房模型,这部分工作主要靠美工来做;另一部分,是选取并使用合适的工具把美工做的模型表现出来。这最后,采用3dmax软件作为制作3d模型的工具,采用unity3D引擎作为显示这些模型的工具。

第二步的工作主要是实现在虚拟的场景里进行模拟现实的操作。这一步也分为2个部分来做,1)实现对配电房机柜及设备的拆装功能;2)系统可使实现自动组装和手动零件更换操作,更好的实现人机交互,把配电房标准化。具体实施过程如图1所示。

图1 具体实施过程

2.系统结构

如图2所示,由Unity3D引擎开发的系统可以同时运行在多个异构系统上,如Windows、Linux、Unix等,为了满足平台无关性的要求,采用unity3D导出web格式实现网络浏览功能。采用3DS MAX、Maya等专业三维建模软件来进行设备和场景的建模。由于电力仿真中需要模拟设备的状态和缺陷,并且要完成场景切换、设备操作等功能,因此实现的三维交互系统提供了设备编辑器来辅助设备建模。

3.三维引擎

本系统使用Unity3D三维引擎,满足三维仿真的基本要求。主要内容包括:

1)基本对象表现:包括立方体、球、圆柱、圆锥等基本的几何体。

2)模型导入:目前支持3DS、OBJ、MD2等格式的模型导入。

3)图片导入:在Qt支持的图片格式基础上增加了TGA格式图片的导入。

4)碰撞检测:实现了线、立方体、球、椭球体之间的碰撞检测,可以方便的实现设备操作、角色行走、上下楼梯、沿墙滑行等功能。

5)灯光:可以方便的创建点光源、平行光源、聚光灯等。

7)粒子系统:提供火、烟、蒸汽、爆炸、雨、雪现象的模拟。

8)公告牌(Billboard):提供以平面方式廉价模拟大量三维对象的功能,如树等。

9)天空体、天空盒。

10)BSP、视景体裁剪,提高渲染效率。

11)动态图像序列,可以实现闪电、流水等效果。

图2 系统结构

4.人机交互

人机交互是三维模拟培训系统最重要的一个部分。通过将场景文件导入unity3D实现场景的显示,用户可以自由的浏览场景,实现人机的交互。在unity3D中,操作人员可以查看场景中的各种设备,从各个角度对设备进行观察场景中的设备都具有标准规格,配电站建设人员可以根据场景进行标准化的改造。

系统关键技术:

(1)三维建模

3D建模通俗来讲就是通过三维制作软件通过虚拟三维空间构建出具有三维数据的模型。3D建模大概可分为:NURBS和多边形网格。NURBS对要求精细、弹性与复杂的模型有较好的应用,适合量化生产用途 。多边形网格建模是靠拉面方式,适合做效果图与复杂场景动画。通过maya,3Dmax等软件。根据真实的配电站场景,进行标准的三维建模,实现配电站的标准化改造和虚拟的场景漫游。

(2)碰撞检测

需要检测到碰撞现象,即碰撞检测。首先,在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。碰撞器是一群组件,它包含了很多种类,比如:Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。所谓触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。在Unity3d中,主要有以下接口函数来处理这两种碰撞检测:

触发信息检测:

1)MonoBehaviour.OnTriggerEnter(Collider other)当进入触发器

2)MonoBehaviour.OnTriggerExit(Collider other)当退出触发器

3)MonoBehaviour.OnTriggerStay(Collider other)当逗留触发器

碰撞信息检测:

1)MonoBehaviour.OnCollisionEnter(Collision collisionInfo) 当进入碰撞器

2)MonoBehaviour.OnCollisionExit(Collision collisionInfo) 当退出碰撞器

3)MonoBehaviour.OnCollisionStay(Collision collisionInfo) 当逗留碰撞器

(3)鼠标操作

通过鼠标选择场景中的设备是人机交互系统必不可少的功能,在unity3d中实现了选择与反馈机制来满足用户使用鼠标实时操作三维图形的需要,在本系统中采用拣选射线的方法进行三维场景中的对象选取。鼠标选取是用了U3D中一个比较方便的API来实现的。

Int speed=10;

void OnMouseDrag(){

transform.position += Vector3.right * Time.deltaTime*Input.GetAxis ("Mouse X") * speed;

transform.position += Vector3.forward * Time.deltaTime*Input.GetAxis ("Mouse Y")* speed;;

}

(4)鼠标滚轮实现拉近和远离功能

在Windows系统下,人们习惯性使用鼠标中间滚轮实现上下翻页和前进和后退的功能,在U-nity3d里可以借助鼠标的这个部件实现拉近和远离物体的功能。在Unity3d软件中,鼠标的滚轮定义方式Input.GetAxis(“MouseScrollWheel”)是否为真识别滚轮的启用,并通过比较其滚动的方向实现拉近和远离的功能。拉近的极限距离可以设定值为5的变量DistanceMin。并设置滚轮的最小变化变量MouseSense初值为5。

//下面检测是否已经按住滑轮

if(Input.GetAxis(“MouseScrollWheel”)!=0)

{

//如果在可观察范围之内

if(normalDistance?>=DistanceMin){

//计算按下滚轮时产生差值。delta=Mouse.Event.wheelDelta/120;//产生拉近和远离的功能//向上滚动产生拉近功能if(delta>0)

normalDistance-=Input.GetAxis(“MouseScrollWheel”)*MouseSense;

}else{

//实现远离目标的功能

normalDistance+=Input.GetAxis(“MouseScrollWheel”)*MouseSense;

}

//以下检测在可观察范围之外进行有限距///离的限定。

if(normalDistance

normalDistance=DistanceMin;}}

三、结论

通过3D虚拟技术模拟真实场景使电力培训更加生动形象,提高了电力培训的效率,降低了培训的成本,减少了安全事故的发生。使配电房的设计改造更加规范可靠,有据可依,保证安全、合理、经济、可靠供电、与环境协调且美观。以及一些不规范的操作,从而确保电网安全、可靠、经济运行。

参考文献

[1]曾林森.基于Unity3D的跨平台虚拟驾驶视景仿真研究[D].中南大学,2013.

[2]覃柳思.基于手持移动设备的教学游戏设计与开发[D].上海师范大学,2012.

[3]王腼.基于VR展示与交互的教学系统设计与实现[D].上海交通大学,2013.

上一篇:云计算数据中心的网络通讯技术 下一篇:基于物联网技术的煤矿信息化研究