段翔兮1,邹 琬2,高 剑2,李 熠2,杨紫苓,宋永娟
(1.国网四川省电力公司电力科学研究院,四川 成都 610041;2.国网四川省电力公司,四川 成都 610041;3.国网南充供电公司,四川 南充 637000)
近年来,随着变电站设备数量和种类的增加以及变电站智能化和无人值守的发展趋势,传统的变电站也将逐步更新为新一代智能变电站[1]。设备的信息共享、信息一体化、智能化管理变得越来越重要,而当前变电站的设备监控主要采用数据汇报的形式进行,存在告警展示方式不够形象、告警信号和设备分离等问题。当站端设备出现了问题,因缺乏设备具体3D位置[2]、缺乏对告警信息流的了解,一般监控人员只能提供该设备的类型,对设备的故障原因及数据流向不清楚,且存在基础数据收集过程复杂、信号点表版本众多等因人的主观性造成的编制误差、审查信息表耗时长等问题[3]。以四川省某地区为例,该地区下辖49个变电站,仅一座110 kV变电站,就有近1000条信息,若按照传统监控方式,运行维护人员通过查询设备间隔内的所有光字牌获取设备状态,这样效率非常低[4]。另外,较强的专业性和实践性也迫使监控人员需要在工作实践中积累丰富的经验[5-6]。
针对传统告警展示方式不够形象、告警信号和设备分离、数据流向不明确的问题,提出了基于Unity3d的监控告警信息展示系统。该系统将从监控系统获取的数据植入,结合3D模型进行展示[2]:可以帮助监控人员了解告警信号触发的完整链路[7];可以对设备的状态有直观了解,避免繁杂的数据分析和理解[8];实现数据动态化管理,所有的变电站设备按照不同的电压等级进行模块化处理,不同电压等级的变电站只需要通过后台更新配置数据,即可达到系统更新的结果。
Unity3d作为游戏开发平台,对图形图像、3D模型、人机互动、跨平台运行都非常友好。Unity3d作为前端系统,采用WebGL技术让系统在网页端在线运行系统,而无需进行安装配置环境。后端采用Linux作为服务平台,结合国产达梦数据库和Java作为逻辑平台,整体架构如图 1所示。
图1 项目架构设计
用立体动画的方式全面展现变电站告警信号及其数据流。首先根据变电站的不同设备将信号分为3个层级,包括变电站总体信号、变电站间隔、设备组件等层级。当进入系统后,系统会提示收到的实时告警信号,告警信号附加在可视化设备上,且可以查看该层级的设备信号,并用不同色差突出显示不同的告警信息。同时系统可以切换实体和线框模式,方便查看真实效果和透视结构,进一步了解设备结构。设备信号按照具体接点的电路结构和一、二次设备、控制设备形成的信号回路进行传播,如图2所示,并利用此原理将其进行3D模型和特效方式的展示。
图2 设备信号结构
最后将该信号产生的原因进行汇总,将产生的后果进行提示,并用动画形象展示。
系统平台引入Google数据,在系统内进行整合,形成独立的地理系统[9],即改造成适合于Unity3d的OnLine Map地图系统。系统生成每个变电站的具体经纬度,将经纬度通过Google远端SDK接口获取数据,并将根据经纬度给下载的贴图进行编号,Online Map地图系统将从Google下载的地图转化成png贴图[10],并按照横向和纵向即X、Y轴在Unity3d中的面片上贴图,X=[X1,X2…Xn],Y=[Y,Y2…Yn],贴图方式如图3所示[11]。
设C为最终得到的图,M为每一块贴图,其贴图方式可以表达为
(1)
当用户刷新切换坐标时,M代表每一块贴图位置,如果向右下移,其地图进行相应位移,计算方式为
M=Mx+1,y+1
(2)
如果向左上移,其地图进行相应位移,计算方式为
M=Mx-1,y-1
(3)
图片按照二维数组方式排列,一个格子代表一张贴图位置,每张贴图就是一个面片,面片是一个3D模型,在上面具备材质贴图等属性,当动态检查到下载的贴图时,从缓存中加载图片贴到相应的坐标位置。当鼠标移动到其他位置时,将重新计算地图经纬度,并下载更新的图片,然后重新进行贴图操作。变电站图标的设置方式是将设计好的变电站图标同变电站的经纬度匹配,并同目前界面上地图范围的区域具体位置匹配,然后将变电站图标放到相应位置。变电站图标集成改变电站的信息,并将图标添加Collider碰撞,当点击该图标时,就可以实现变电站主界面的跳转[12]。
数据信息的安全对于电网的安全稳定运行至关重要,所以该系统必须与传统系统紧密融合保证其能在内部系统运行,并且将传统平台的数据引入系统。传统平台作为运行几十年的大数据库,已经包含每个变电站的设备点表以及管理团队配置等信息。目前电力系统均采用Linux系统作为服务器平台,数据库采用国产达梦数据库。所建系统通过数据库分析,将后台数据整合成设备表EquipData、信号表AlarmData、维护表MainMatinData、模型表ModelData、用户表UserData、变电站表SubstaionData的数据,然后整合到原有服务;前端平台通过接口获取数据,并将数据对象化,根据数据的ID选择需要的数据。
变电站设备一般根据不同类型和具体线路有特定编号,特别是二次设备,一般都是根据具体变电站而有不同的配置。配置的方式采用事先开发一个配置客户端,配置客户端对设备的组合进行编辑,系统首先对设备的组件模块进行定义,同时对设备的组合规律进行定义,设备的定义方法如图4所示。
图4 设备模块的设计流程
用户从前端选择不同的模块,插入到设备的相应部位,然后将设备组合信息进行记录,并在数据库保存。使用时首先从数据库载入当前设备的组合数据,然后在场景中进行重现。
设物体空间用T表示,P为设备位置点,R为设备方向,在位置信息中x、y、z分别表示横向、纵向、前后参数值;在方向信息中x、y、z分别表示横向、纵向、前后方向的旋转值,它们之间关系为
(4)
当设备进行组合时,物体组件A和物体B之间的位置关系为
(5)
物体的角度采用欧拉角计算。欧拉角是用来唯一地确定定点转动刚体位置的3个一组独立角参量[13],由章动角θ、进动角ψ和自转角φ组成。若令Ox′y′z′的原始位置重合于Oxyz,经过相继绕Oz、ON和Oz′的3次转动Z(ψ)、N(θ)、Z′(φ)后,刚体将转到如图5所示的任意位置(见刚体定点转动)。
图5 模型中旋转示意
变换关系可写为
R(ψ,θ,φ)=Z′(φ)N(θ)Z(φ)
(6)
设定xyz-轴为参考系的参考轴。称xy-平面与XY-平面的相交为交点线,用英文字母N代表。如图6所示。
设计目标是在国家电网大数据中心的基础上,充分利用Unity3d技术的直观性,构建新型配电管理系统。设计时要求充分考虑实用性与行业管理特点,以达到功能需求目的,主要应遵循以下设计原则:
图6 模型定位中使用的欧拉角度示意
1)标准化
本系统设计及其实施将严格按照国家和地方有关标准的规定进行。选用设备、产品和软件将完全符合行业标准与主流模式。系统采用的术语、分类、编码等的设置将完全符合或采用国家或行业标准。
2)合理性
充分考虑系统的实用性,以提高工作效率、节省人力和各种资源为目标进行设计,避免过于冗杂的设计导致性能与经济性的负面效应。
功能设计充分考虑行业特点,使设计成果符合最终用户的操作习惯与行业标准,从而使系统结构、系统功能都具有良好的合理性。
3)兼容性
系统结构遵循结构化、模块化的设计目标,具有良好的兼容性。既可使用不同主流厂商的设备产品,又可便捷地扩充使其能在其他系统厂商的设备产品上运行。
系统功能整体规划如下:
1)3D展示系统:提供驱动图形显示的核心3D组件,提供将其他3D工具创建的模具进行整理导入接口。
变电站GIS展示:将用户权限范围内的变电站显示在地图上。变电站展示:提供变电站外观与内部结构的3D展示功能。设备展示:提供变电站设备的3D展示功能。告警展示:将所有设备异动情况,第三方平台告警信息集中展示,提供统一预警机制。
2)数据管理系统:提供用户、角色与权限管理的功能。采用netty中间件技术,实时向前端系统发送消息。消息可以是报警信息,也可以是一个通知。接口服务中心采用RESTful风格的接口,以供足够权限的前端系统调用。
3)美术资源加工:将从现场提取的设备资料进行加工,制作成3D模型并保存在数据库。
4)数据库:包括基本数据、实时数据和美术资源数据,都是经过二次加工处理后的资源。
5)数据处理系统:将变电站地理数据、设备美术资源、告警信息等进行数据分析加工,并存于数据库。系统的交互流程图如图7所示。
1)MVC编码模式
编码阶段采用MVC模式,将整个系统分为数据模型层、视图层、逻辑控制层。数据模型层将系统数据整理成Ececl文件,并分设为管理员类、角色类、GIS信息类、设备基础类、设备模型类、信号基础类、实时信号类,使用管理类对数据进行统一管理。
2)单例和多例结合
在界面的编写中,模块的功能也独立成不同的类。界面的通信采用单例模式让界面的互动在单独的类进行。控制类按照功能分成3级,分别是全站级、间隔级、设备级,分别设计3个不同的类。
3)Web视频加载技术
动画功能采用WebGLMovieTexture视频纹理播放技术,具体方法是使用Movie类加载视频到内存,然后将内存数据图像化,最后将图形化的数据作为材质贴图附加在一个Plane对象上,这样Plane对象上就可以实时呈现动画图像。
独立的资源系统,将前端、逻辑、数据和资源单独管理。变电站设备图形资源包括模型、贴图、材质等,通过引擎自身的算法压缩成AssetBundle二进制数据包,然后放入数据资源库保存,并在运行过程中动态下载和解压加载到场景,同时将解压并加载到场景的资源附加互动代码,实现互动。AssetBundle包分PC端和Web端两个平台,PC平台用来开发过程的测试,Web则是运行平台。AssetBundle的使用原理是首先将各种设备模型资源在Unity3d中进行预处理,经材质和贴图以及模型的优化处理完毕,将模型放入一个空物体。空物体按照规范命名,如电压等级+间隔名称+设备名称规则[14]。在空物体下建立一个目录,存放该设备同其他设备的连接信息,方便重新加载后动态将这些设备用线缆连接起来。在模型上添加Collider,方便重新加载后处理。处理结束后使用打包程序将模型压缩成AssetBundle包,并存放在服务器指定目录。系统运行时根据服务端数据库设备信息,加载该模型,并解压然后实例化到场景中。最后,在该设备模型上添加用于控制的脚本,这样就完成了一个完整的资源处理流程,如图8所示。
图7 流程
图8 AsseBundle压缩包的使用原理
通过资源包ID的办法,每一种设备对应一种资源包,每个资源包对应数据库模型数据,同一种设备可以反复使用同一个资源包,这样所有设备都具有通用性,整个系统资源库最后覆盖所有的变电站类型,使该系统能推广到所有的行业进行使用[14]。
测试项目的时候为了方便,做了多平台的开发,包括编辑器端、PC端、Web端。3个端使用不同的资源路径和资源格式,根据Unity3d的平台检测方法,选择不同的平台。
经过前期一系列的测试,系统完成了预定目标,实现了如下功能。
通过管理端,可以实现不同等级的权限,包括管理员、一级用户、二级用户、三级用户。不同用户权限查看不同等级的变电站范围。变电站资源实现后台管理,添加和删除都实现自动更新,如图9所示。
图9 资源管理界面
根据用户权限的不同,加载的地图范围不同,并能随时切换不同的区域范围,然后进入相应的变电站进行查看,如图10所示。
图10 GIS变电站信息
进入变电站层级,系统开始初始化加载变电站模型数据,完成全站加载时间约10~20 s。如图11所示。
图11 全站设备展示
根据不同的需求,模型显示方式可以切换成线框或者实体模式,线框模式支持PC和Web平台,如图12所示。
图12 设备线框模式
完成了系统设备的动态组合,根据后台管理端的配置,加载不同的设备模型。
当有设备出现故障,设备会显示高亮提示,用户可以选择其中一个设备切换到设备级查看故障,如图13所示。
图13 设备告警模式
实现设备组件和原理原因的关联,当选择故障设备时,用户可以看到其出现的故障,选择故障可以弹出其故障的原理和原因动画,并随时进行切换。
实现设备的拆分展示,在设备层用户可以使用爆炸图的方式查看设备的主要组件结构,如图14所示。
图14 设备展开模式
通过本项目实施,以主变压器的告警为例,从员工培训需要的周期、交流学习所需的时间、常规检查检修所花的时间(用小时计算)的效率进行分析,不难看出,本系统在常规管理和智能化管理基础上有了长足的提高。实施效果数据如表1所示,在使用常规管理方式进行培训、会议、检修分别花去120 h、72 h、20 h,是非常消耗时间的。目前新建电站几乎抛弃这种方式,而采用智能方式进行管理,进行培训、会议和检修时分别花去50 h、8 h和2 h,效率提高几倍,在这个基础上,使用本系统,进行这3项测试,效率又有30%以上的提高,项目实施效果明显。
表1 实施效果数据 单位:h
从上面分析可以看出,使用传统的常规管理是效率最低的方式,这种变电站逐步被智能变电站代替。智能电站虽然数据收集控制都比较方便,但由于信息量过大,也存在不直观、效率不高等问题。采用了3D模式的监控系统,整个系统的设备和信号完整链接在一起,在电力监控领域的使用也非常广泛,为监控领域的工作做出了明显的改进。
综上所述,所建系统解决了长期困扰整个行业的难题,其将生产、监控、培训的几个过程集为一体,同时也方便变电站系统内部进行汇报活动,达到了项目设计的初衷,将设备同故障信号关联提高了对变电站的管理效率。