买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种电网潮流图可视化方法_北京恒泰实达科技股份有限公司_201811620496.7 

申请/专利权人:北京恒泰实达科技股份有限公司

申请日:2018-12-28

公开(公告)日:2021-09-21

公开(公告)号:CN109739455B

主分类号:G06F3/14(20060101)

分类号:G06F3/14(20060101);G06T15/00(20110101)

优先权:

专利状态码:有效-授权

法律状态:2021.09.21#授权;2019.06.04#实质审查的生效;2019.05.10#公开

摘要:本发明提供一种电网潮流图可视化方法,包括以下步骤:WPF图形界面框架实时不断加载需要渲染的电网潮流图数据文件;解析电网潮流图数据文件,得到电网潮流图数据结构;根据所述电网潮流图数据结构,调整所述WPF图形界面框架的架构,使WPF图形界面框架与Direct2D模块相结合。优点为:本发明提供一种电网潮流图可视化方法,将DirectX下的Direct2D高性能渲染技术与WPF图形界面框架结合,替代WPF图形界面框架原生的milcore渲染技术,实现一种高性能的电网潮流图可视化的渲染方法,能够有效提高渲染速度,保证电网潮流图在大屏设备上展示的流畅性,不会出现卡钝现象。

主权项:1.一种电网潮流图可视化方法,其特征在于,包括以下步骤:步骤1,WPF图形界面框架初始化,设置画面渲染尺寸;步骤2,所述WPF图形界面框架实时不断加载需要渲染的电网潮流图数据文件;其中,所述电网潮流图数据文件与数据源对接;当所述数据源发生变化时,所述电网潮流图数据文件进行实时变化,即:所述电网潮流图数据文件为动态可变的数据文件;步骤3,所述WPF图形界面框架判断加载到的所述电网潮流图数据文件的格式是否支持,如果不支持,则跳转到步骤9;如果支持,则执行步骤4;步骤4,所述WPF图形界面框架解析所述电网潮流图数据文件,得到电网潮流图数据结构;其中,所述电网潮流图数据结构包括:电网设备图元的描述信息、电网设备属性的描述信息、电网设备拓扑连接关系的描述信息;步骤5,根据所述电网潮流图数据结构,调整所述WPF图形界面框架的架构,使WPF图形界面框架与Direct2D模块相结合,包括:步骤5.1,根据所述电网潮流图数据结构,创建可视化UI组件,即:Element2D组件;其中,所述可视化UI组件包括电网设备图元UI控件、电网设备属性UI控件和电网设备拓扑连接关系UI控件;在所述WPF图形界面框架的通用视图框架中,即Presentationframework模块中,封装所述可视化UI组件;步骤5.2,创建与所述可视化UI组件对应的渲染上下文组件,即:Scene2D组件;其中,所述渲染上下文组件包括:与所述电网设备图元UI控件对应的电网设备图元渲染上下文子组件、与所述电网设备属性UI控件对应的电网设备属性渲染上下文子组件、以及与所述电网设备拓扑连接关系UI控件对应的电网设备拓扑连接关系渲染上下文子组件;在所述WPF图形界面框架的公共语言运行时模块中,即:CommonLanguageRuntime模块中,封装所述渲染上下文组件;步骤5.3,创建与所述渲染上下文组件对应的渲染指令生成组件,即:Core2D组件;其中,所述渲染指令生成组件包括:与所述电网设备图元渲染上下文子组件对应的电网设备图元渲染指令生成子组件、与所述电网设备属性渲染上下文子组件对应的电网设备属性渲染指令生成子组件、以及与所述电网设备拓扑连接关系渲染上下文子组件对应的电网设备拓扑连接关系渲染指令生成子组件;在所述WPF图形界面框架的公共语言运行时模块中,封装所述渲染指令生成组件;步骤5.4,创建D3Dimage组件;将Direct2D模块与WPF图形界面框架相结合,结合后的图形界面框架包括:通用视图框架Presentationframework、调用模块Presentationcore、公共语言运行时模块CommonLanguageRuntime、Direct2D、DirectX、D3Dimage组件;其中,通用视图框架Presentationframework中封装可视化UI组件、公共语言运行时模块CommonLanguageRuntime中封装渲染上下文组件和渲染指令生成组件;其连接关系为:可视化UI组件的输出端越过调用模块Presentationcore,直接连接到渲染上下文组件的输入端;渲染上下文组件的输出端连接到渲染指令生成组件的输入端;渲染指令生成组件的输出端连接到Direct2D的输入端;Direct2D的输出端连接到DirectX的输入端;DirectX的输出端连接到D3Dimage组件的输入端;D3Dimage组件的输出端连接到通用视图框架Presentationframework的输入端;步骤6,WPF图形界面框架与Direct2D模块相结合后,采用以下步骤实现电网潮流图本次渲染的可视化:步骤6.1,所述可视化UI组件与所述通用视图框架结合,将所述电网潮流图数据结构转化为电网潮流图图形,具体包括:所述电网设备图元UI控件将所述电网设备图元的描述信息,转化为电网设备图元图形;所述电网设备属性UI控件将所述电网设备属性的描述信息,转化为电网设备属性图形;所述电网设备拓扑连接关系UI控件将所述电网设备拓扑连接关系的描述信息,转化为电网设备拓扑连接关系图形;步骤6.2,所述可视化UI组件将转化得到的所述电网潮流图图形,发送给所述渲染上下文组件;步骤6.3,所述渲染上下文组件根据所述电网潮流图图形,生成对应的渲染参数,并将所述渲染参数发送给所述渲染指令生成组件;其中,所述渲染上下文组件根据所述电网潮流图图形,生成对应的渲染参数,包括:所述电网设备图元渲染上下文子组件,根据所述电网设备图元图形,生成电网设备图元渲染参数;所述电网设备属性渲染上下文子组件,根据所述电网设备属性图形,生成电网设备属性渲染参数;所述电网设备拓扑连接关系渲染上下文子组件,根据所述电网设备拓扑连接关系图形,生成电网设备拓扑连接关系渲染参数;步骤6.4,所述渲染指令生成组件,将所述渲染参数解释为Direct2D渲染指令;包括:所述电网设备图元渲染指令生成子组件,将所述电网设备图元渲染参数,解释为Direct2D对电网设备图元的渲染指令;所述电网设备属性渲染指令生成子组件,将所述电网设备属性渲染参数,解释为Direct2D对电网设备属性的渲染指令;所述电网设备拓扑连接关系渲染指令生成子组件,将所述电网设备拓扑连接关系渲染参数,解释为Direct2D对电网设备拓扑连接关系的渲染指令;步骤6.5,所述渲染指令生成组件保存解释得到的渲染指令,并将解释得到的渲染指令发送给Direct2D;步骤6.6,对于所述Direct2D,批量接收需要渲染的电网潮流图的所有渲染指令;然后,Direct2D解释渲染指令并根据渲染优化算法将所有所述渲染指令组装为一条渲染指令;然后,所述Direct2D依据组装到的一条渲染指令,调用DirectX图形界面渲染接口进行画面内容渲染,DirectX完成画面渲染后,输出渲染内容到D3Dimage组件;步骤6.7,D3Dimage组件显示渲染内容到通用视图框架Presentationframework,完成本次渲染画面的显示;步骤7,判断电网潮流图画面是否需要继续显示;若电网潮流图画面已被关闭,则跳转到步骤9,渲染结束;若电网潮流图画面保持打开状态,则执行步骤8;步骤8,返回步骤2,由所述WPF图形界面框架判断新加载到的电网潮流图数据文件是否发生变化,如果没有变化,则跳转到步骤6.5,由所述渲染指令生成组件将前一次保存的渲染指令发送给Direct2D,然后执行步骤6.6-步骤7,完成一次渲染;如此不断循环;如果发生变化,则所述WPF图形界面框架仅加载本次变化涉及到的相关电网潮流图数据文件;然后,通过步骤3-步骤6.4,得到本次发生变化的渲染指令;然后,在步骤6.5中,所述渲染指令生成组件将发生变化的渲染指令和未发生变化的渲染指令发送给Direct2D,然后执行步骤6.6-步骤7,完成一次电网潮流图进行变化更新的画面渲染;如此不断循环;步骤9,渲染结束。

全文数据:一种电网潮流图可视化方法技术领域本发明属于数据可视化技术领域,具体涉及一种电网潮流图可视化方法。背景技术电力系统中电压、功率的稳态分布叫做潮流,通过线条、节点、电抗元件等电气符号将电网的电压和功率分布化成的电路图形就是电网潮流图。电网潮流图在电网运行中占据重要位置。在电力行业大屏数据可视化方案中,需要进行电网潮流图的可视化展示。电力行业客户对电网潮流图展示性能也有较高的要求,既要求保证在大分辨率的大屏设备上展示的流畅性,也对数据可视化的业务数据刷新的及时性提出需求。目前较为普遍的大屏数据可视化方案中,大屏端的可视化呈现采用WPF图形界面框架作为开发技术。WPF图形界面框架作为桌面软件图形界面开发框架,有着开发周期短,软件开发人员入手较快的特点。但是,为了方便各种水平的开发人员进行快速开发,有着更高的抽象结构和接口封装。这也决定其运行性能会明显低于Direct3D、Direct2D等底层开发技术。如图1所示,为WPF图形开发框架的架构示意图,较上层的PresentationCore、PresentationFramework组成WPF图形界面框架的抽象结构。构建于Windows内核及User32技术体系之上,同时也支持DirectX包含Direct3D、Direct2D等子部分硬件加速渲染技术。相对于图2所示的Windows图形框架,WPF图形开发框架有着更高的抽象层次。WPF图形开发框架也支持硬件加速渲染,其实现原理为:参考图1,WPF图形开发框架与DirectX间由milcore模块当作中介。milcore模块负责WPF图形界面框架的渲染与显示,将WPF的渲染和显示翻译为具体的渲染指令,并交由DirectX进行渲染。然而,WPF图形开发框架开发的应用程序在进行渲染时,由于其抽象结构和封装,milcore模块实现的渲染效率较低。如图3所示,为WPF图形界面框架渲染示意图,显示一组由图形开发框架渲染一个黑色边框的圆圈的过程,在图3中,一共需要4个渲染指令,才能完成黑色边框圆圈的渲染。在现有的大屏可视化方案中,一个电网潮流图通常会包含成百上千各式各样的圆形、椭圆等图形元素,因此,采用WPF图形界面框架的原生渲染技术对电网潮流图进行渲染和显示时,由于渲染速度慢,会出现电网潮流图在大屏设备上展示不流畅,易出现卡钝的现象。发明内容针对现有技术存在的缺陷,本发明提供一种电网潮流图可视化方法,可有效解决上述问题。本发明采用的技术方案如下:本发明提供一种电网潮流图可视化方法,包括以下步骤:步骤1,WPF图形界面框架初始化,设置画面渲染尺寸;步骤2,所述WPF图形界面框架实时不断加载需要渲染的电网潮流图数据文件;其中,所述电网潮流图数据文件与数据源对接;当所述数据源发生变化时,所述电网潮流图数据文件进行实时变化,即:所述电网潮流图数据文件为动态可变的数据文件;步骤3,所述WPF图形界面框架判断加载到的所述电网潮流图数据文件的格式是否支持,如果不支持,则跳转到步骤9;如果支持,则执行步骤4;步骤4,所述WPF图形界面框架解析所述电网潮流图数据文件,得到电网潮流图数据结构;其中,所述电网潮流图数据结构包括:电网设备图元的描述信息、电网设备属性的描述信息、电网设备拓扑连接关系的描述信息;步骤5,根据所述电网潮流图数据结构,调整所述WPF图形界面框架的架构,使WPF图形界面框架与Direct2D模块相结合,包括:步骤5.1,根据所述电网潮流图数据结构,创建可视化UI组件,即:Element2D组件;其中,所述可视化UI组件包括电网设备图元UI控件、电网设备属性UI控件和电网设备拓扑连接关系UI控件;在所述WPF图形界面框架的通用视图框架中,即Presentationframework模块中,封装所述可视化UI组件;步骤5.2,创建与所述可视化UI组件对应的渲染上下文组件,即:Scene2D组件;其中,所述渲染上下文组件包括:与所述电网设备图元UI控件对应的电网设备图元渲染上下文子组件、与所述电网设备属性UI控件对应的电网设备属性渲染上下文子组件、以及与所述电网设备拓扑连接关系UI控件对应的电网设备拓扑连接关系渲染上下文子组件;在所述WPF图形界面框架的公共语言运行时模块中,即:CommonLanguageRuntime模块中,封装所述渲染上下文组件;步骤5.3,创建与所述渲染上下文组件对应的渲染指令生成组件,即:Core2D组件;其中,所述渲染指令生成组件包括:与所述电网设备图元渲染上下文子组件对应的电网设备图元渲染指令生成子组件、与所述电网设备属性渲染上下文子组件对应的电网设备属性渲染指令生成子组件、以及与所述电网设备拓扑连接关系渲染上下文子组件对应的电网设备拓扑连接关系渲染指令生成子组件;在所述WPF图形界面框架的公共语言运行时模块中,封装所述渲染指令生成组件;步骤5.4,创建D3Dimage组件;将Direct2D模块与WPF图形界面框架相结合,结合后的图形界面框架包括:通用视图框架Presentationframework、调用模块Presentationcore、公共语言运行时模块CommonLanguageRuntime、Direct2D、DirectX、D3Dimage组件;其中,通用视图框架Presentationframework中封装可视化UI组件、公共语言运行时模块CommonLanguageRuntime中封装渲染上下文组件和渲染指令生成组件;其连接关系为:可视化UI组件的输出端越过调用模块Presentationcore,直接连接到渲染上下文组件的输入端;渲染上下文组件的输出端连接到渲染指令生成组件的输入端;渲染指令生成组件的输出端连接到Direct2D的输入端;Direct2D的输出端连接到DirectX的输入端;DirectX的输出端连接到D3Dimage组件的输入端;D3Dimage组件的输出端连接到通用视图框架Presentationframework的输入端;步骤6,WPF图形界面框架与Direct2D模块相结合后,采用以下步骤实现电网潮流图本次渲染的可视化:步骤6.1,所述可视化UI组件与所述通用视图框架结合,将所述电网潮流图数据结构转化为电网潮流图图形,具体包括:所述电网设备图元UI控件将所述电网设备图元的描述信息,转化为电网设备图元图形;所述电网设备属性UI控件将所述电网设备属性的描述信息,转化为电网设备属性图形;所述电网设备拓扑连接关系UI控件将所述电网设备拓扑连接关系的描述信息,转化为电网设备拓扑连接关系图形;步骤6.2,所述可视化UI组件将转化得到的所述电网潮流图图形,发送给所述渲染上下文组件;步骤6.3,所述渲染上下文组件根据所述电网潮流图图形,生成对应的渲染参数,并将所述渲染参数发送给所述渲染指令生成组件;其中,所述渲染上下文组件根据所述电网潮流图图形,生成对应的渲染参数,包括:所述电网设备图元渲染上下文子组件,根据所述电网设备图元图形,生成电网设备图元渲染参数;所述电网设备属性渲染上下文子组件,根据所述电网设备属性图形,生成电网设备属性渲染参数;所述电网设备拓扑连接关系渲染上下文子组件,根据所述电网设备拓扑连接关系图形,生成电网设备拓扑连接关系渲染参数;步骤6.4,所述渲染指令生成组件,将所述渲染参数解释为Direct2D渲染指令;包括:所述电网设备图元渲染指令生成子组件,将所述电网设备图元渲染参数,解释为Direct2D对电网设备图元的渲染指令;所述电网设备属性渲染指令生成子组件,将所述电网设备属性渲染参数,解释为Direct2D对电网设备属性的渲染指令;所述电网设备拓扑连接关系渲染指令生成子组件,将所述电网设备拓扑连接关系渲染参数,解释为Direct2D对电网设备拓扑连接关系的渲染指令;步骤6.5,所述渲染指令生成组件保存解释得到的渲染指令,并将解释得到的渲染指令发送给Direct2D;步骤6.6,对于所述Direct2D,批量接收需要渲染的电网潮流图的所有渲染指令;然后,Direct2D解释渲染指令并根据渲染优化算法将所有所述渲染指令组装为一条渲染指令;然后,所述Direct2D依据组装到的一条渲染指令,调用DirectX图形界面渲染接口进行画面内容渲染,DirectX完成画面渲染后,输出渲染内容到D3Dimage组件;步骤6.7,D3Dimage组件显示渲染内容到通用视图框架Presentationframework,完成本次渲染画面的显示;步骤7,判断电网潮流图画面是否需要继续显示;若电网潮流图画面已被关闭,则跳转到步骤9,渲染结束;若电网潮流图画面保持打开状态,则执行步骤8;步骤8,返回步骤2,由所述WPF图形界面框架判断新加载到的电网潮流图数据文件是否发生变化,如果没有变化,则跳转到步骤6.5,由所述渲染指令生成组件将前一次保存的渲染指令发送给Direct2D,然后执行步骤6.6-步骤7,完成一次渲染;如此不断循环;如果发生变化,则所述WPF图形界面框架仅加载本次变化涉及到的相关电网潮流图数据文件;然后,通过步骤3-步骤6.4,得到本次发生变化的渲染指令;然后,在步骤6.5中,所述渲染指令生成组件将发生变化的渲染指令和未发生变化的渲染指令发送给Direct2D,然后执行步骤6.6-步骤7,完成一次电网潮流图进行变化更新的画面渲染;如此不断循环;步骤9,渲染结束。优选的,步骤4中,所述电网设备属性的描述信息包括电网设备的名称描述信息、电网设备的相对位置描述信息、电网设备的实时负荷描述信息。本发明提供的一种电网潮流图可视化方法具有以下优点:本发明提供一种电网潮流图可视化方法,将DirectX下的Direct2D高性能渲染技术与WPF图形界面框架结合,替代WPF图形界面框架原生的milcore渲染技术,实现一种高性能的电网潮流图可视化的渲染方法,能够有效提高渲染速度,保证电网潮流图在大屏设备上展示的流畅性,不会出现卡钝现象。附图说明图1为WPF图形开发框架的架构示意图;图2为Windows图形框架的架构示意图;图3为WPF图形界面框架渲染示意图;图4为本发明提供的Direct2D结合WPF图形界面框架结构示意图;图5为本发明提供的一种电网潮流图可视化方法的实现架构图。具体实施方式为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本发明提供一种电网潮流图可视化方法,将DirectX下的Direct2D高性能渲染技术与WPF图形界面框架结合,替代WPF图形界面框架原生的milcore渲染技术,实现一种高性能的电网潮流图可视化的渲染方法,能够有效提高渲染速度,保证电网潮流图在大屏设备上展示的流畅性,不会出现卡钝现象。参考图4和图5,本发明提供一种电网潮流图可视化方法,包括以下步骤:步骤1,WPF图形界面框架初始化,设置画面渲染尺寸;步骤2,所述WPF图形界面框架实时不断加载需要渲染的电网潮流图数据文件;其中,所述电网潮流图数据文件与数据源对接;当所述数据源发生变化时,所述电网潮流图数据文件进行实时变化,即:所述电网潮流图数据文件为动态可变的数据文件;步骤3,所述WPF图形界面框架判断加载到的所述电网潮流图数据文件的格式是否支持,如果不支持,则跳转到步骤9;如果支持,则执行步骤4;步骤4,所述WPF图形界面框架解析所述电网潮流图数据文件,得到电网潮流图数据结构;其中,所述电网潮流图数据结构包括:电网设备图元的描述信息、电网设备属性的描述信息、电网设备拓扑连接关系的描述信息;其中,所述电网设备属性的描述信息包括电网设备的名称描述信息、电网设备的相对位置描述信息、电网设备的实时负荷描述信息。步骤5,根据所述电网潮流图数据结构,调整所述WPF图形界面框架的架构,使WPF图形界面框架与Direct2D模块相结合,包括:步骤5.1,根据所述电网潮流图数据结构,创建可视化UI组件,即:Element2D组件;其中,所述可视化UI组件包括电网设备图元UI控件、电网设备属性UI控件和电网设备拓扑连接关系UI控件;在所述WPF图形界面框架的通用视图框架中,即Presentationframework模块中,封装所述可视化UI组件;步骤5.2,创建与所述可视化UI组件对应的渲染上下文组件,即:Scene2D组件;其中,所述渲染上下文组件包括:与所述电网设备图元UI控件对应的电网设备图元渲染上下文子组件、与所述电网设备属性UI控件对应的电网设备属性渲染上下文子组件、以及与所述电网设备拓扑连接关系UI控件对应的电网设备拓扑连接关系渲染上下文子组件;在所述WPF图形界面框架的公共语言运行时模块中,即:CommonLanguageRuntime模块中,封装所述渲染上下文组件;步骤5.3,创建与所述渲染上下文组件对应的渲染指令生成组件,即:Core2D组件;其中,所述渲染指令生成组件包括:与所述电网设备图元渲染上下文子组件对应的电网设备图元渲染指令生成子组件、与所述电网设备属性渲染上下文子组件对应的电网设备属性渲染指令生成子组件、以及与所述电网设备拓扑连接关系渲染上下文子组件对应的电网设备拓扑连接关系渲染指令生成子组件;在所述WPF图形界面框架的公共语言运行时模块中,封装所述渲染指令生成组件;步骤5.4,创建D3Dimage组件;将Direct2D模块与WPF图形界面框架相结合,结合后的图形界面框架包括:通用视图框架Presentationframework、调用模块Presentationcore、公共语言运行时模块CommonLanguageRuntime、Direct2D、DirectX、D3Dimage组件;其中,通用视图框架Presentationframework中封装可视化UI组件、公共语言运行时模块CommonLanguageRuntime中封装渲染上下文组件和渲染指令生成组件;其连接关系为:可视化UI组件的输出端越过调用模块Presentationcore,直接连接到渲染上下文组件的输入端;渲染上下文组件的输出端连接到渲染指令生成组件的输入端;渲染指令生成组件的输出端连接到Direct2D的输入端;Direct2D的输出端连接到DirectX的输入端;DirectX的输出端连接到D3Dimage组件的输入端;D3Dimage组件的输出端连接到通用视图框架Presentationframework的输入端;步骤6,WPF图形界面框架与Direct2D模块相结合后,采用以下步骤实现电网潮流图本次渲染的可视化:步骤6.1,所述可视化UI组件与所述通用视图框架结合,将所述电网潮流图数据结构转化为电网潮流图图形,具体包括:所述电网设备图元UI控件将所述电网设备图元的描述信息,转化为电网设备图元图形;所述电网设备属性UI控件将所述电网设备属性的描述信息,转化为电网设备属性图形;所述电网设备拓扑连接关系UI控件将所述电网设备拓扑连接关系的描述信息,转化为电网设备拓扑连接关系图形;步骤6.2,所述可视化UI组件将转化得到的所述电网潮流图图形,发送给所述渲染上下文组件;步骤6.3,所述渲染上下文组件根据所述电网潮流图图形,生成对应的渲染参数,并将所述渲染参数发送给所述渲染指令生成组件;其中,所述渲染上下文组件根据所述电网潮流图图形,生成对应的渲染参数,包括:所述电网设备图元渲染上下文子组件,根据所述电网设备图元图形,生成电网设备图元渲染参数;所述电网设备属性渲染上下文子组件,根据所述电网设备属性图形,生成电网设备属性渲染参数;所述电网设备拓扑连接关系渲染上下文子组件,根据所述电网设备拓扑连接关系图形,生成电网设备拓扑连接关系渲染参数;步骤6.4,所述渲染指令生成组件,将所述渲染参数解释为Direct2D渲染指令;包括:所述电网设备图元渲染指令生成子组件,将所述电网设备图元渲染参数,解释为Direct2D对电网设备图元的渲染指令;所述电网设备属性渲染指令生成子组件,将所述电网设备属性渲染参数,解释为Direct2D对电网设备属性的渲染指令;所述电网设备拓扑连接关系渲染指令生成子组件,将所述电网设备拓扑连接关系渲染参数,解释为Direct2D对电网设备拓扑连接关系的渲染指令;步骤6.5,所述渲染指令生成组件保存解释得到的渲染指令,并将解释得到的渲染指令发送给Direct2D;步骤6.6,对于所述Direct2D,批量接收需要渲染的电网潮流图的所有渲染指令;然后,Direct2D解释渲染指令并根据渲染优化算法将所有所述渲染指令组装为一条渲染指令;然后,所述Direct2D依据组装到的一条渲染指令,调用DirectX图形界面渲染接口进行画面内容渲染,DirectX完成画面渲染后,输出渲染内容到D3Dimage组件;步骤6.7,D3Dimage组件显示渲染内容到通用视图框架Presentationframework,完成本次渲染画面的显示;步骤7,判断电网潮流图画面是否需要继续显示;若电网潮流图画面已被关闭,则跳转到步骤9,渲染结束;若电网潮流图画面保持打开状态,则执行步骤8;步骤8,返回步骤2,由所述WPF图形界面框架判断新加载到的电网潮流图数据文件是否发生变化,如果没有变化,则跳转到步骤6.5,由所述渲染指令生成组件将前一次保存的渲染指令发送给Direct2D,然后执行步骤6.6-步骤7,完成一次渲染;如此不断循环;如果发生变化,则所述WPF图形界面框架仅加载本次变化涉及到的相关电网潮流图数据文件;然后,通过步骤3-步骤6.4,得到本次发生变化的渲染指令;然后,在步骤6.5中,所述渲染指令生成组件将发生变化的渲染指令和未发生变化的渲染指令发送给Direct2D,然后执行步骤6.6-步骤7,完成一次电网潮流图进行变化更新的画面渲染;如此不断循环;步骤9,渲染结束。本发明提供的一种电网潮流图可视化方法,主要思路为:根据电网潮流图数据结构,创建可视化UI组件Element2D,用于实现潮流图画面元素的可视化,得到潮流图元素图形;创建渲染上下文组件Scene2D,用于根据潮流图元素图形,生成渲染参数;创建渲染指令生成组件Core2D,用于将渲染参数解释为Direct2D渲染指令;其中,可视化UI组件Element2D、渲染上下文组件Scene2D和渲染指令生成组件Core2D分别封装到WPF图形界面框架的不同层;而Direct2D并不封装到WPF图形界面框架,独立于WPF图形界面框架,仅与WPF图形界面框架进行消息交互。所以,当电网潮流图数据文件不发生变化时,为实现潮流图画面的实时显示,循环执行的渲染过程为:不需要重新创建可视化UI组件Element2D、渲染上下文组件Scene2D和渲染指令生成组件Core2D,由渲染指令生成组件Core2D保存前一次得到的渲染指令;然后,每当进行一次渲染循环时,渲染指令生成组件Core2D直接将前次保存的渲染指令发送给Direct2D,由Direct2D执行渲染过程,并将渲染内容输出到D3Dimage组件;D3Dimage组件显示渲染内容到通用视图框架Presentationframework,完成本次渲染画面的显示;而如果电网潮流图数据文件发生变化时,执行的渲染过程为:仅针对发生变化的电网潮流图数据文件,创建可视化UI组件Element2D、渲染上下文组件Scene2D和渲染指令生成组件Core2D,从而由渲染指令生成组件Core2D生成发生变化的渲染指令;同时,渲染指令生成组件Core2D保存没有发生变化的渲染指令,然后,渲染指令生成组件Core2D将发生变化的渲染指令和没有发生变化的渲染指令共同发送给Direct2D,由Direct2D执行渲染过程,并将渲染内容输出到D3Dimage组件;D3Dimage组件显示渲染内容到通用视图框架Presentationframework,完成本次渲染画面的显示。因此,当电网潮流图数据文件发生变化时,本发明并不需要完全重新执行一遍渲染过程,只需要针对性的执行即可,从而提高渲染效率;而对于电网潮流图数据文件不发生变化的情况,则只要由渲染指令生成组件Core2D直接向Direct2D发送渲染指令即可,渲染效率更为高效。而对于Direct2D,由于其良好架构设计及优异渲染算法,相对WPF图形界面框架原生milcore实现的渲染算法有大幅提升。具体的,渲染指令生成组件Core2D直接向Direct2D发送的渲染指令是多条渲染指令,即:一个潮流图元素对应一条渲染指令;而对于Direct2D,可以快速将多条渲染指令组装为一条渲染指令,因此,后续步骤中,只需要执行一条渲染指令,就能够完成渲染过程,渲染效率显著提升。对本发明提供的WPF图形界面框架与Direct2D模块相结合后的框架,以及现有技术的原生WPF图形界面框架的渲染性能进行测试,表1为本发明渲染结果表;表2为现有技术的渲染结果表:表1画面分辨率图形数量刷新机制渲染帧率画面流畅度7680x2160500间隔0.3秒30帧以上十分流畅7680x21601000间隔0.3秒25帧左右十分流畅7680x3240600间隔0.3秒22帧左右较流畅表2画面分辨率图形数量刷新机制渲染帧率画面流畅度7680x2160500间隔3秒11帧左右刷新延迟3秒7680x21601000间隔3秒8帧左右刷新延迟5秒7680x3240600间隔3秒5帧左右刷新延迟3秒对比表1和表2,可以看出,与现有技术原生WPF图形界面框架相比,本发明有效的提高了电网可视化潮流图画面渲染性能。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

权利要求:1.一种电网潮流图可视化方法,其特征在于,包括以下步骤:步骤1,WPF图形界面框架初始化,设置画面渲染尺寸;步骤2,所述WPF图形界面框架实时不断加载需要渲染的电网潮流图数据文件;其中,所述电网潮流图数据文件与数据源对接;当所述数据源发生变化时,所述电网潮流图数据文件进行实时变化,即:所述电网潮流图数据文件为动态可变的数据文件;步骤3,所述WPF图形界面框架判断加载到的所述电网潮流图数据文件的格式是否支持,如果不支持,则跳转到步骤9;如果支持,则执行步骤4;步骤4,所述WPF图形界面框架解析所述电网潮流图数据文件,得到电网潮流图数据结构;其中,所述电网潮流图数据结构包括:电网设备图元的描述信息、电网设备属性的描述信息、电网设备拓扑连接关系的描述信息;步骤5,根据所述电网潮流图数据结构,调整所述WPF图形界面框架的架构,使WPF图形界面框架与Direct2D模块相结合,包括:步骤5.1,根据所述电网潮流图数据结构,创建可视化UI组件,即:Element2D组件;其中,所述可视化UI组件包括电网设备图元UI控件、电网设备属性UI控件和电网设备拓扑连接关系UI控件;在所述WPF图形界面框架的通用视图框架中,即Presentationframework模块中,封装所述可视化UI组件;步骤5.2,创建与所述可视化UI组件对应的渲染上下文组件,即:Scene2D组件;其中,所述渲染上下文组件包括:与所述电网设备图元UI控件对应的电网设备图元渲染上下文子组件、与所述电网设备属性UI控件对应的电网设备属性渲染上下文子组件、以及与所述电网设备拓扑连接关系UI控件对应的电网设备拓扑连接关系渲染上下文子组件;在所述WPF图形界面框架的公共语言运行时模块中,即:CommonLanguageRuntime模块中,封装所述渲染上下文组件;步骤5.3,创建与所述渲染上下文组件对应的渲染指令生成组件,即:Core2D组件;其中,所述渲染指令生成组件包括:与所述电网设备图元渲染上下文子组件对应的电网设备图元渲染指令生成子组件、与所述电网设备属性渲染上下文子组件对应的电网设备属性渲染指令生成子组件、以及与所述电网设备拓扑连接关系渲染上下文子组件对应的电网设备拓扑连接关系渲染指令生成子组件;在所述WPF图形界面框架的公共语言运行时模块中,封装所述渲染指令生成组件;步骤5.4,创建D3Dimage组件;将Direct2D模块与WPF图形界面框架相结合,结合后的图形界面框架包括:通用视图框架Presentationframework、调用模块Presentationcore、公共语言运行时模块CommonLanguageRuntime、Direct2D、DirectX、D3Dimage组件;其中,通用视图框架Presentationframework中封装可视化UI组件、公共语言运行时模块CommonLanguageRuntime中封装渲染上下文组件和渲染指令生成组件;其连接关系为:可视化UI组件的输出端越过调用模块Presentationcore,直接连接到渲染上下文组件的输入端;渲染上下文组件的输出端连接到渲染指令生成组件的输入端;渲染指令生成组件的输出端连接到Direct2D的输入端;Direct2D的输出端连接到DirectX的输入端;DirectX的输出端连接到D3Dimage组件的输入端;D3Dimage组件的输出端连接到通用视图框架Presentationframework的输入端;步骤6,WPF图形界面框架与Direct2D模块相结合后,采用以下步骤实现电网潮流图本次渲染的可视化:步骤6.1,所述可视化UI组件与所述通用视图框架结合,将所述电网潮流图数据结构转化为电网潮流图图形,具体包括:所述电网设备图元UI控件将所述电网设备图元的描述信息,转化为电网设备图元图形;所述电网设备属性UI控件将所述电网设备属性的描述信息,转化为电网设备属性图形;所述电网设备拓扑连接关系UI控件将所述电网设备拓扑连接关系的描述信息,转化为电网设备拓扑连接关系图形;步骤6.2,所述可视化UI组件将转化得到的所述电网潮流图图形,发送给所述渲染上下文组件;步骤6.3,所述渲染上下文组件根据所述电网潮流图图形,生成对应的渲染参数,并将所述渲染参数发送给所述渲染指令生成组件;其中,所述渲染上下文组件根据所述电网潮流图图形,生成对应的渲染参数,包括:所述电网设备图元渲染上下文子组件,根据所述电网设备图元图形,生成电网设备图元渲染参数;所述电网设备属性渲染上下文子组件,根据所述电网设备属性图形,生成电网设备属性渲染参数;所述电网设备拓扑连接关系渲染上下文子组件,根据所述电网设备拓扑连接关系图形,生成电网设备拓扑连接关系渲染参数;步骤6.4,所述渲染指令生成组件,将所述渲染参数解释为Direct2D渲染指令;包括:所述电网设备图元渲染指令生成子组件,将所述电网设备图元渲染参数,解释为Direct2D对电网设备图元的渲染指令;所述电网设备属性渲染指令生成子组件,将所述电网设备属性渲染参数,解释为Direct2D对电网设备属性的渲染指令;所述电网设备拓扑连接关系渲染指令生成子组件,将所述电网设备拓扑连接关系渲染参数,解释为Direct2D对电网设备拓扑连接关系的渲染指令;步骤6.5,所述渲染指令生成组件保存解释得到的渲染指令,并将解释得到的渲染指令发送给Direct2D;步骤6.6,对于所述Direct2D,批量接收需要渲染的电网潮流图的所有渲染指令;然后,Direct2D解释渲染指令并根据渲染优化算法将所有所述渲染指令组装为一条渲染指令;然后,所述Direct2D依据组装到的一条渲染指令,调用DirectX图形界面渲染接口进行画面内容渲染,DirectX完成画面渲染后,输出渲染内容到D3Dimage组件;步骤6.7,D3Dimage组件显示渲染内容到通用视图框架Presentationframework,完成本次渲染画面的显示;步骤7,判断电网潮流图画面是否需要继续显示;若电网潮流图画面已被关闭,则跳转到步骤9,渲染结束;若电网潮流图画面保持打开状态,则执行步骤8;步骤8,返回步骤2,由所述WPF图形界面框架判断新加载到的电网潮流图数据文件是否发生变化,如果没有变化,则跳转到步骤6.5,由所述渲染指令生成组件将前一次保存的渲染指令发送给Direct2D,然后执行步骤6.6-步骤7,完成一次渲染;如此不断循环;如果发生变化,则所述WPF图形界面框架仅加载本次变化涉及到的相关电网潮流图数据文件;然后,通过步骤3-步骤6.4,得到本次发生变化的渲染指令;然后,在步骤6.5中,所述渲染指令生成组件将发生变化的渲染指令和未发生变化的渲染指令发送给Direct2D,然后执行步骤6.6-步骤7,完成一次电网潮流图进行变化更新的画面渲染;如此不断循环;步骤9,渲染结束。2.根据权利要求1所述的一种电网潮流图可视化方法,其特征在于,步骤4中,所述电网设备属性的描述信息包括电网设备的名称描述信息、电网设备的相对位置描述信息、电网设备的实时负荷描述信息。

百度查询: 北京恒泰实达科技股份有限公司 一种电网潮流图可视化方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。