一种三维可视化技术在电力监控系统中的运用

许昌许继软件技术有限公司的研究人员贾亚楠、张延辉、霍智超、王少鹏、贺博,在2020年第4期《电气技术》杂志上撰文,阐述了一种采用OpenSceneGraph(OSG)技术在电力监控系统中的运用,将三维可视化图形与传统的电力监控系统相结合,提供了一种将三维可视化图形集成在电力监控系统的方法。

目前,电力监控系统的界面大部分还停留在二维正交图的阶段。现行的变电站监控系统不能清晰展示出变电站设备的形状信息,运检人员对设备运行状态没有一种直观的观察方法。特别是新建的换流站要比原有的交流变电站复杂的多,运维人员的日常工作任务非常繁重。二维正交图显示运行状态信息的方式有一定的局限性,而采用三维可视化的方式,使运维人员更能直观的查看当前监控设备的运行状态。

三维可视化技术是一种将模型数据转换成图形或者图像显示在屏幕上的技术,此技术已经应用在产品设计、流体力学、建筑、地球科学等领域。目前,OpenGL(开放图形库)被证明是一种性能比较高的实现三维图形绘制技术标准。

OpenSceneGraph(OSG)是在OpenGL基础上开发的一套基于C++平台的开源开发组件,它能够跨平台的展示交互式图形,并且能为程序开发者提供许多实用工具。三维可视化技术在电力监控的应用是解决三维电力监控系统的关键技术,将OSG应用在现有的电力监控系统,是解决三维可视化技术在电力监控系统实现的一种方法。

采用将OSG技术在电力监控系统的运用方法,在对原有监控系统改动比较小的情况下,实现了将场站或电力设备三维模型展示在监控系统中。此方法具有对原有系统改动比较小,能够实现二维正交图与三维模型的交互,比较直观的展示对应设备的状态信息。

1  理论基础研究

目前大部分监控系统采用的是Qt+ Microsoft Visual Studio方式开发的客户端界面。Qt是一款跨平台的C++图形用户界面应用开发框架;是一种面向对象的框架。Microsoft Visual Studio(简称VS)是微软公司的一款基本完整开发工具包,是目前比较流行的windows应用程序集成开发环境。

Qt5.4以后的版本,Qt新增了QOpenGLWidget类,此类继承于QWidget。QOpenGLWidget提供了显示集成到Qt开发的应用程序中OpenGL图形的功能,它能够使开发者像使用其他QWidget继承类一样方便运用。相比于原有的QGLWidget类使用更加方便。

QOpenGLWidget提供了三个方便的虚拟函数,可以在子类中重新实现它们来执行典型的OpenGL任务:

  • 1)paintGL()——渲染OpenGL场景。在需要更新小部件时调用。

  • 2)resizeGL()——设置OpenGL视口、投影等。每当小部件被调整大小时(以及第一次显示小部件时,因为所有新创建的小部件都会自动获得一个resize事件)调用。

  • 3)initializeGL()——设置OpenGL资源和状态。在第一次调用resizeGL()或paintGL()之前调用一次。

采用继承QOpenGLWidget实现OSG对Qt的支持,在技术理论上解决了OSG三维可视化技术在Qt应用程序里的集成。

实现方式如下:

Class osgQOpenGLWidget:public QOpenGLWidget

{

Q_OBJECT

public:

osgQOpenGLWidget (QWidget* parent = nullptr);

virtual ~osgQOpenGLWidget ();

... ...

protected:

void initializeGL() override;

void resizeGL(int w, int h) override;

void paintGL() override;

... ...

};

重新实现paintGL()函数,实现三维图形的渲染。

void osgQOpenGLWidget::paintGL()

{

OpenThreads::ScopedReadLock locker(_osgMutex);

//Oview  = new osgViewer::Viewer();

Oview ->frame();

}

2  三维可视化模型嵌入现有监控系统方法

三维可视化模型嵌入现有监控系统有两种解决方式:一种是三维可视化图形作为独立的窗口显示,另一种作为监控界面的一部分跟原有二维正交图显示在一起。由于第二种方法在使用中兼顾了现行的监控平台,使用人员的操作习惯不会有较大的改变,所以本文采用第二种方法作为研究方向。

目前采用Qt编写的监控系统大部分,是利用QGraphicsScene作为载体,在上面绘制相关的图形信息。采用上述第二种方式就是将三维可视化模块作为图元绘制在QGraphicsScene上作为界面的一部分。

采用QGraphicsProxyWidget类作为代理,可以在QGraphicsScene中嵌入QWidget。QGraphicsProxyWidget类能够解决QGraphicsScene与QWidget之间的事件转发,并且解决了QWidget的基于整数的几何图形和QGraphicsScene的基于实数的几何图形之间进行转换。QGraphicsProxyWidget支持QWidget的所有核心功能,包括选项卡焦点、键盘输入、拖放和弹出窗口。

对QGraphicsProxyWidget进行继承封装成在QGraphicsScene绘制的基本图元,为其配置三维可视化需要的属性信息,这样就将三维可视化的模型像原有二维图元一样作为图元添加到QGraphicsScene上面,如图1所示。

图1  三维可视化应用示例

在同一面视图上同时展示二维正交图与三维可视化模型,根据设备不同的状态信息,设备对应三维可视化模型做出相应的变化,并根据右边的数据信息,这样更能方便直观的将设备运行状态展示给运行监护人员。

具体实现方法如下dsOsgItem继承于QGraphics- ProxyWidget。

class dsOsgItem : public QGraphicsProxyWidget

{

public:

dsOsgItem();

virtual ~dsOsgItem();

...

};

将osgQOpenGLWidget设置为dsOsgItem代理的窗口即可,既调用函数dsOsgItem.setWidget (osgQOpenGLWidget)。

3  三维模型交互设计

上文已经实现了将三维可视化模型展示在QGraphicsScene画布的绘制显示,下面讨论三维模型的交互设计。

1)三维模型人机交互

三维模型人机交互既运行人员通过鼠标事件控制三维模型。根据需要重新实现osgQOpenGLWidget的如下事件函数:

void keyPressEvent(QKeyEvent* event);

void keyReleaseEvent(QKeyEvent* event);

void mousePressEvent(QMouseEvent* event);

void mouseReleaseEvent(QMouseEvent* event);

void mouseDoubleClickEvent(QMouseEvent* event);

void mouseMoveEvent(QMouseEvent* event);

void wheelEvent(QWheelEvent* event);

解决三维可视化模型对应的鼠标、键盘事件交互。

2)三维模型与监控数据之间的交互

OSG中osg::NodeVisitor类能够实现节点访问,继承osg::NodeVisitor设计apply(osg::Node& node)函数,

简单示例如下:

virtual void apply(osg::Node &node)

{

traverse(node);

}

上述示例遍历了所有节点。每个三维模型都设置有惟一的ID值,分别一一对应显示中的实际设备。当监控系统采集到某一设备的状态数据后,调用上述apply函数,通过模型ID找出对应的节点(node),修改此模型节点的颜色、形状、位置以表示该设备的当前状态信息。这样就实现了数据交互的功能。

4  结论

图2  组态工具集成三维示意图

目前许继集团正在开发的新一代监控平台三维展示组件采用此了方案。图2是将三维展示组件使用的示意图,是三维可视化技术集成在监控系统组态工具中示意,图中展示了在绘图区内添加了GIS三维模型。

此文方法针对现行的二维正交图电力监控系统,将三维可视化集成到原有电力监控系统的方法,不用对原有监控系统进行较大修改就能实现,但是此文献只是初步的讨论了理论上的实现,特别是数据交互方面。具体的实现还需进一步研究。

(0)

相关推荐

  • 从无到有,构建GIS + BIM大厦

    声明:本文是一个系列原创(作者在GIS+BIM行业已有从业15年有余,还是个行业的小学生,文章内容不免有错误或者不当之处,敬请理解),旨在通过这个系列打造一个高性能,高可扩展的GIS+BIM框架,抛砖 ...

  • 电力变电站三维可视化

    前言 近几年来随着智慧电厂概念的兴起,整个电力行业都聚焦在智慧电厂的技术应用环节,各类技术应用层出不穷.在众多的技术当中,三维可视化技术可谓一枝独秀,目前国内智慧电厂供应商均将三维可视化技术应用到实际 ...

  • 数字孪生,开启三维智慧园区管理新篇章

    前言 随着社会进步与发展,构建智慧城市的步伐不断深入推进,智慧园区已成为当今城市规划与社会发展的关注焦点.作为智慧城市战略规划中重要的一环,智慧园区更像是智慧城市的缩影,智慧园区渗透着智慧城市建设中的 ...

  • 商场三维可视化管理平台

    商场三维可视化平台是以三维可视化技术为基础,以可视化.智能化.网络化.集成化理念为目标,实现商场的周边.商场建筑.商场内部.商场内设备的逐级可视,实现商场运维的动态信息可视化.视频监控可视化和日常监控 ...

  • 三维可视化数据中心机房监控管理系统

    前言 IDC(Internet Data Center,指互联网数据中心)行业有这样一句操作效率的名言:"你无法控制没有经过测量的事物."言外之意:要想减少能源浪费情况就必须从最基 ...

  • 研究进展:作物生长过程模拟模型与形态三维可视化技术

    研究进展:作物生长过程模拟模型与形态三维可视化技术 作物生长过程是一个涉及作物基因.生长环境.管理措施等诸多变化因素的复杂巨系统,作物生长过程模拟一直都是作物生长过程数字化研究的重点内容之一.目前发达 ...

  • 轻量级的三维可视化技术不容忽视

    近年来,随着三维CAD软件的普及应用,越来越多的制造企业以3D模型为数据基础,作为设计.工艺.制造.售后与管理人员以及供应商.合作伙伴或客户等企业内外的沟通与交流媒介. 但是,三维模型源数据复杂程度高 ...

  • 【学习笔记】模拟设计(11):基于marble的三维可视化技术研究

    2016年微型机与应用第09期 作者:程延锋,王俊江,曹红艳,王艳侠 摘要:随着三维可视化技术的高速发展和广泛应用,很多应用工程领域需要三维地理信息系统显示空间数据.据此介绍了marble的特点和应用 ...

  • 上海东郊宾馆10KV变配电增容工程电力监控系统的设计与应用

    0 概述 本项目共1个10KV变电站,变电站搭建一套电力监控系统,放置在35KV变电站值班室内,变电所内部综保.多功能仪表.温控仪等设备通过485接口接入变电站内部采集器,再通过采集器传输至电力监控主 ...

  • 阿里巴巴西溪园区四期电力监控系统 的设计与应用

    0 概述 阿里巴巴西溪园区四期项目位于杭州市余杭区五常街道未来科技城核心区块,距杭州市中心约13公里,地块北靠爱橙街,与阿里巴巴西溪园区一.二期相望,西侧为茶师庵路,东侧为聚橙路,南靠永寿街.项目由地 ...

  • 技术︱基于物联网技术的淡水养殖监控系统

    五邑大学信息工程学院的研究人员林永铖.林超洋等,在2015年第10期<电气技术>杂志上撰文,为了减少淡水养殖风险和成本以及提高水产品产量,设计了一套基于物联网技术的淡水养殖监控系统.本系统 ...

  • 三维GIS技术在输电线路选线中的应用

    中国电力科学研究院的研究人员黄彭.金欢.马潇.房正刚.刘蕊,在2015年第3期<电气技术>杂志上撰文,结合数字高程模型.数字正射影像.地球地理信息系统的特点,利用海量数据处理技术及三维GI ...

  • [视频]C2000 DSP 在电力电子系统中的应用

    [视频]C2000 DSP 在电力电子系统中的应用