祁永超,田铭兴,陈小强,张海喜
(1. 兰州交通大学 自动化与电气工程学院,兰州 730070; 2. 兰州交通大学 甘肃省轨道交通电气自动化工程实验室,兰州 730070)
保障电网安全可靠运行一直以来是各级电力部门的核心工作,变电站作为电能输送、分配的重要环节,其安全运行显得尤为重要[1].随着坚强智慧电网概念的提出,电力系统更为庞大,设备结构更为复杂,对电网运维人员的安全意识和技能素质提出了更高的要求[2].当前变电站培训模式大都存在着理论与实际脱节现象,理论学习抽象、枯燥,不利于吸收消化,而实操学习由于设备经费问题,往往不能大规模进行培训,且易误操作,导致安全事故频发,传统的培训方式已无法适应当前需求.因此,迫切需要设计一套沉浸感强、交互性好、趣味性强的变电站培训系统来满足当前发展趋势.
虚拟现实技术可以很好地克服以上传统培训的不足.虚拟现实技术利用计算机技术、图形图像技术、人机交互技术等,将真实场景复现在计算机中,并进行各类仿真,实现“人在画中游”效果[3].在电力培训中,各级电力部门和研究人员对虚拟现实技术进行了大量的研究和应用:文献[4]对站内二次设备仿真培训系统的可视化方法进行了研究,建立了系统网络架构,并真实模拟了站内二次设备,但其培训内容和方法较为单一,且系统缺乏良好的人机交互功能;文献[5]采用沉浸式虚拟仿真技术,搭建了变电站故障仿真系统,但该系统需要使用虚拟现实设备,培训成本较高,且该系统只是单纯的故障仿真,并没有涉及故障原因分析、故障处理方法、故障防范措施等必要的培训手段;文献[6]在虚拟现实技术基础上增加了Kinect体感交互技术,提高了学员的临场感,但该系统侧重于漫游功能的研究,且培训只是站内设备的简单认知;文献[7]提出一种变电站仿真三维可视化装配组件技术,提高了软件开发效率;文献[8]利用Quest3D提供的Channel模块按一定逻辑连接,提高了培训系统的可扩展性和维护性.
在既有研究基础上,结合实际项目需求,基于Unity3d三维开发引擎,构建了成本低廉、功能全面的变电站虚拟仿真培训系统.系统遵循软件设计组件化的架构思想,集中实现了建模、仿真、交互、培训等功能,实现了一个平台能提供全面培训的设计要求,解决了当前培训系统功能单一、跨平台维护不便等问题,提高了变电站培训工作的灵活性.
基于Unity3d的变电站仿真培训系统架构如图1所示,分为4层:应用层包括系统实现的培训功能,采用模块化的设计思路,分为总体介绍模块、设备学习模块、漫游巡视模块、模拟演练模块、答题考核模块、故障重现模块等6个功能模块;支撑层除了实现桌面式显示、人机交互、模型拆分组合、教学视频嵌入播放等基础虚拟仿真功能,还提供了3D建模、场景布置、数据库连接、快速渲染等辅助功能;接口层是实现交互的重要组件,包括人机交互接口、三维图像引擎接口、可穿戴设备接口.由于本系统采用桌面式虚拟现实技术,因此,可穿戴设备接口预留;硬件层是支持仿真系统实现的基础[10],主要包括管理主机、图形工作站、可穿戴设备(预留).系统进行分层架构设计,从逻辑上将各模块划分成许多集合.通过分层,限制了子系统之间的依赖关系,层与层之间耦合度显著减低,易于软件的维护和修改,同时符合软件工程组件化架构思想.
图1 仿真培训系统整体架构Fig.1 General structure of the simulation system
针对电力培训实际需求,分别开发了6个培训模块,设计遵循“高内聚、低耦合”原则,各模块之间相互独立,降低了各模块直接的耦合度,提高了软件运行的稳定性和可扩展性.图2为各模块功能细化树形图.各模块主要功能如下:
1) 总体介绍模块.作为培训的入门培训模块,主要讲解变电站概况,如地理信息、承担任务、总体结构、设备信息等,通过Unity3d布置虚拟变电站场景,让受训者初步认知变电站.
2) 漫游巡视模块.在虚拟场景中,添加人物并编写控制脚本,使用键盘及鼠标进行控制操作,可以巡视变电站任何设备.另外,自动漫游功能借助Unity3d内嵌的DO Tween插件实现,通过调用DO Path函数添加关键点来确定漫游路径,并设置人物走动或跑动速度来实现变电站全站自动漫游,为受训人员提供一种身临其境的真实感受[10],弥补了学员难以进入变电站现场培训的不足,提高培训效率.
3) 设备学习模块.为了化解实际操作与理论学习的矛盾,设计了拆分组合和视频讲解功能,例如变压器的学习:通过拆分,学习各部件的主要功能及构造;通过组合,使受训人员熟悉变压器结构组成,并且在视频教学结合的情况下,提高学员学习兴趣.
4) 模拟演练模块.模拟演练以变电站重要事件为演练内容,例如:倒闸操作,通过3dsMax动画效果的制作及Unity3d逻辑脚本的设计,模拟变电站倒闸操作;火灾逃生中,使用Unity3d平台中的粒子系统,模拟火焰、烟雾效果,并规划出逃路线,使学员控制人物进行逃离,达到模拟火灾逃生的培训效果.
5) 故障重现模块.由于受训人员在现场学习机会较少,遇到故障的情况也极为少见.因此,故障重现模块对学员培训,显得尤为重要,通过故障的重现功能,学员可以在三维场景真实经历故障情况,并学习处理步骤及防范办法等.
6) 答题考核模块.作为理论知识的考核,答题模块可以检验学员的学习情况.该功能模块通过连接MySQL数据库对学员信息、答题信息、考核得分等信息进行存储.
图2 仿真培训系统功能树形图Fig.2 Function tree of the simulation training system
由于系统开发过程中,应用软件较多,涉及技术较广,因此合理规划系统开发路线显得十分重要,不仅提高了开发效率,同时做到软件设计的规范性.该培训系统流程开发主要分为4个部分:资料收集、三维建模、系统搭建、程序测试.详细的开发步骤及方法如图3所示.
仿真环境的搭建是实现培训系统功能的基础,包括变电站设备三维建模和场景建模,精细化的建模可以使真实变电站完美复现在虚拟场景中.
1) 设备三维建模主要包括变电站主设备模型、辅助设施模型、监控室模型等.对于主设备模型,作为培训系统的重要模型,且由于结构复杂、零部件较多,采用SolidWorks进行精细化建模;对于辅助设施、监控室、围墙等一些细节呈现要求不高的模型,通过3dsMax进行建模,利用其丰富的贴图效果、强大的烘焙能力,使模型更接近于实际.
2) 场景建模主要包括地形建模和天气建模.地形建模使用Unity3d中的Terrain组件[11],使用笔刷工具根据变电站实际情况绘制需要的地形,如高地、树木、草坪、地面等;天气建模主要使用Skybox插件进行天空制作,如晴天、雨天、黑夜等效果.
图3 系统开发路线Fig.3 System development route
将搭建好的模型以“.FBX”格式导出,然后导入Unity3d中分类存放,形成模型库,随时选用.需要对模型进行单位的调整,避免尺寸放大后模型失真;若操作模型时,其轴向发生偏离,需要建立世界坐标系,重新在3dsMax中进行调整.建模流程如图4所示.
图4 仿真培训系统建模流程Fig.4 Modeling process of simulation training system
2.3.1 细节层次技术
由于变电站场景复杂,在实际测试中,软件运行占用计算机内存较大,导致画面出现不流畅及卡顿现象.为了减少模型渲染的顶点数及三角面数,本系统采用细节层次(levels of detail,LOD)技术,LOD技术可以根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得更高效率的渲染运算[12].根据实际情况,变电站主设备如变压器、断路器、隔离开关、压互、流互等设备为重要模型,在模型制作时,需完成几种不同细节的模型.在现场中,配合摄像机,在近处使用细节较高的模型,在远处使用细节较低的模型.图5为Unity3d的LOD Group管理窗口,利用LOD Group组件来管理物体的LOD等级,通过Add按钮为当前LOD等级设置网格对象,即不同细节的模型可以分别从LOD0、LOD1、LOD2和Culled设置网格对象,其中百分比值为物体在屏幕的高与屏幕高的比例.这样当LOD发生变化时,就会使用不同的网格对象.图6(a)和图6(b)是使用LOD技术前后效果对比,可以看出使用LOD技术后,在进行漫游巡视时,视图每一帧渲染时间从38.8 s下降至14.3 ms左右,大大减轻了计算机CPU处理压力,画面恢复清晰流畅.
图5 LOD Group管理窗口Fig.5 LOD group management window
2.3.2 图形几何变换实现
三维图形的几何变换实质上是利用三维坐标变换完成的,主要有图形平移、旋转定位、比例缩放3种重要变换.同二维几何变换,三维图形变换也是基于坐标原点和坐标轴进行的几何变换,可以表示成空间中某点的齐次坐标与四阶的三维变换矩阵相乘[13].设某点的三维坐标为P(x,y,z),经过变换后坐标为P′(x′,y′,z′),其三维变换的矩阵形式为
P′=[x′y′z′ 1]=P·T3D=[xyz1]
(1)
根据在几何变换中作用的不同,可将式(1)中的T3D进一步划分成4个矩阵,见表1.
1) 若进行平移变换,点P的平移变换矩阵可表示为
P′=[x′y′z′ 1]=P·Tt=[xyz1]
(2)
2) 若进行旋转变换,点P绕z轴进行旋转时,其z坐标不变,x,y坐标可由二维点绕原点旋转公式得到,变换矩阵可表示为
P′=[x′y′z′ 1]=P·TRZ=[xyz1]
(3)
在虚拟现实系统开发中,图形几何变换占有重要的地位[14].本系统中,设备学习模块中的拆分组合功能很好地应用了平移变换和旋转变换原理.学员可以使用鼠标拖动变压器组成构件进行拆分和组合操作,熟悉变压器结构和原理,在相应模块上按住拖动会旋转模块,使学员360°全方位观察组件结构,并配以文字进行讲解.图7(a)为组合后变压器模型,图7(b)为拆分后变压器模型.
2.3.3 人机交互功能开发
良好的人机交互界面可以为用户提供极大的方便,也是软件开发的基本要求[15].Unity3d平台提供了UGUI系统,内嵌了丰富的标准GUI插件,在开发时可以方便在Inspector视图中编辑GUI控件的外观和属性,同时也可以挂载相应的控制脚本[16].对于变电站的GUI界面设计,不仅仅是简单的界面设计,而是利用脚本挂载、坐标转换、碰撞检测、声音加载、场景转换等方法将设备参数、动画模拟、功能演示、视频声音和专业知识展示给用户,实现人机交互.图8是系统模拟演练模块中倒闸操作功能,受训人员根据操作指令点击按钮来控制隔离开关和断路器,完成倒闸操作,具体流程如图9所示.
图6 使用LOD技术前后渲染占CPU内存情况Fig.6 CPU memory of rendering before and after using LOD technology
表1 分矩阵及功能
图7 拆分组合功能Fig.7 Functions of splitting and combining
图8 倒闸操作模拟演练Fig.8 Simulation exercise of switching operation
对系统性能测试和功能测试是检验软件优劣的重要标志.在4台配置不同的计算机中安装此软件进行实测,主要对页面跳转速度和系统流畅度进行测试,培训系统性能测试结果见表2,可以看到4台主机画面流畅度均满足动画30帧/s的最低值要求,该系统可安全可靠地运行在此配置的电脑上.将系统发布成“.exe”格式文件并运行,进行功能测试.
系统加载成功后,进行注册和登录,在各模块进行功能验证,并逐步完善系统.
图9 倒闸操作功能流程图Fig.9 Flow chart of switching operation function
表2 培训系统性能测试
结合实际项目,构建了桌面式变电站虚拟仿真培训系统.以模块化的设计思路,采用了虚拟现实技术和图形变换技术,实现了变电站总体介绍、设备学习、漫游巡视、模拟演练、答题考核、故障重现等六大基本功能.通过性能测试和功能测试,该软件稳定可靠,系统交互界面良好,将枯燥的理论教学用逼真的三维模型和三维场景代替,激发了学员的学习兴趣,提高了培训效率,降低了培训成本和培训周期,具有良好的现实意义及推广价值.后续将继续在预留接口进行沉浸式培训系统的开发,更进一步提高学员的临场感.