黄 伟,庞 琳,曹 彬,华亮亮
(1.华北电力大学电气与电子工程学院,北京 102206;2.国网蒙东电力通辽供电公司,内蒙古 通辽 028000)
随着配电网自动化和智能化的发展,配电网高级应用软件的研发和推广逐渐兴起[1-4],由于配电网量测配置不足、量测装置误差较大等原因,目前配电网的量测精度远远无法满足高级应用的精度要求;因此需要通过状态估计的过滤作用对配网实时数据进行优化,使其具有更高的完整性和精确性,以对配电网潮流计算、无功优化、解合环以及网络重构等应用提供更加准确的实时数据信息。
量测变换是经典的配电网状态估计算法之一,由Baran 等提出的基于支路电流的量测变换使状态估计信息矩阵与支路阻抗无关,并实现三相解耦以及实虚部解耦,求解简单,计算速度快[5-7];但其过程中无法利用电压幅值量测[8],而电压幅值量测作为配网量测配置中精度最高的量测量只能作为结果校验,这无疑是对现有量测数据的极大浪费。本文将基于支路电流的量测变换方法与基于电压量测的分区解耦相结合,在为分布式并行计算提供最小并行计算单元的同时,弥补了量测变换中无法应用电压量测的缺陷。
随着电力需求的急剧增长,配电网分支数日益增多,规模日益庞大,使得配网状态估计的矩阵规模越来越大,各种传统的配电网状态估计串行计算方法均难以满足配网的实时分析与安全控制对快速进行大规模计算的需求。消息中间件(Message Oriented Middleware,MOM)利用高效可靠的消息传递机制进行与平台无关的数据传输,并基于数据传输进行分布式系统集成[9]。在消息中间件技术中应用程序不直接通信,而是与消息中间件通信,实现应用程序的松耦合方式集成。零消息队列 (Zero Message Queue,ZeroMQ)定义了分布式系统的全局拓扑,可在多个线程、内核和主机盒之间弹性伸缩,支持分布式系统架构;以统一接口支持多种底层通信方式,包括线程间通信、进程间通信以及跨主机通信[10]。但目前消息中间件技术主要研究于计算机互联方面,仍未涉足电力系统领域。基于ZeroMQ的以上特点,本文选取ZeroMQ 作为计算平台的通信支撑,实现配网状态估计的分布式并行计算。
配电系统的变电站内均装有无功补偿设备,近似认为馈线根节点电压恒定,因此工程应用中通常以馈线作为基本分析单元。但是馈线规模大小不等,即使将分析对象按馈线进行划分,仍有部分馈线上的分支众多,总节点数很大,导致状态估计时形成的矩阵维数过大,计算时间较长。对于此类馈线,我们希望能进一步对其进行分区,同时实现各区域之间的解耦。
实际应用中,电压量测装置的精度大于其他量测,更远大于由历史数据或负荷预测得到的节点负荷伪量测的精度,因此认为全量测中电压量测值不需要进行修正。目前多数综合量测装置可以测得所测支路的功率以及相应节点的电压,这样的实时量测称为全量测[11]。文献[11]提出一种基于全量测对分析对象进行分区的理论,认为以全量测为边界将馈线划分为最小的独立区域时各区域状态估计结果相互独立,并验证了各分区之间的耦合性。根据该理论,以馈线为单位将状态估计分析对象划分为若干个计算区域,并进一步根据全量测配置状态将馈线划分为若干个独立的分区,每个分区作为一个独立的计算单元。这样,在对分析对象进行状态估计时,以分区为单位进行任务分解,将状态估计任务分解为多个分区状态估计子任务进行并行计算。分区划分示意图如图1所示。
图1 馈线分区示意图Fig.1 Decoupled subareas of a feeder
其中,Mea1,Mea2,Mea3 均为全量测点。Feeder2 可以划分为三个分区,每个分区可以作为一个子任务的状态估计分析对象,支持多个执行端同时对不同分区分别进行状态估计分析,达到对全网并行计算的效果。
对状态估计对象进行解耦分区之后,以分区为计算单元,对每个独立的分区分别进行状态估计,每个单元的根节点电压不参与迭代。
1.2.1 量测变换
每次迭代中,将实时支路功率量测及节点负荷伪量测转换为等效电流量测,如图2中所示,实时支路功率量测Pij、Qij的等效电流量测为节点负荷伪量测Pj、Qj的等效电流量测为其中:Pij、Qij为支路i-j的实时功率量测,Pj、Qj为节点j的节点负荷伪量测,Vi、Vj分别为节点i、j的电压。
图2 三节点馈线示意图Fig.2 Schematic of 3-node feeder
所有实时支路功率量测与负荷伪量测转换为的等效电流量测以及所有实时支路电流幅值量测构成状态估计的量测向量。
1.2.2 量测函数
选择各支路电流的实部虚部为状态变量,建立量测函数,由状态量表示量测量。等效电流量测均可由状态量线性表示,电流幅值量测则为状态量的非线性函数。图2中支路ij、节点j、节点k的等效电流量测以及支路jk的实时电流幅值量测与状态量的关系为
其中,下标r/x 分别表示电流的实部和虚部。
1.2.3 迭代方程
基于支路电流量测变换的状态估计,其基本原理是加权最小二乘法,目标函数为
其中:zi为量测向量;wi为量测量zi对应的权重系数;W为权重系数矩阵;hi(x)为zi对应的量测函数;h(x)为量测函数。
第一次迭代中状态量的迭代方程为
其中:H(x)=为量测Jacobian 矩阵,由于h(x)多为线性函数,除电流幅值量测外相应的H矩阵元素均由{1,-1,0}组成;电流幅值量测对应的H矩阵非零元素取决于上一次迭代中相应支路电流向量的相角大小。
1.2.4 量值修正
迭代过程中量值修正分为以下三部分。
2)节点电压修正:经修正的状态量即各支路电流的更新值,结合分区根节点电压前推出各节点电压。
3)量测量修正:由电压更新值重新计算功率量测的等效电流量测值,修正量测量;由支路电流值更新电流幅值量测相应的支路电流相角,为下次迭代中Jacobian 矩阵H的求取做准备。
配电网单分区状态估计的算法流程如图3所示。
图3 单分区状态估计流程图Fig.3 State estimation for a decoupled subarea
分布式并行计算平台分为四个子系统,核心模块即消息通信层是四个子系统交互的纽带,每个子系统维护各自的消息管理模块,用来与其他子系统传递数据。其层次结构如图4所示。
图4 分布式平台层次结构Fig.4 Hierarchy of distributed platform
1)服务器端。负责任务调度及数据处理,其层次结构从低到高分别为:数据访问层对数据库进行连接、查询、插入、删除等操作,数据管理层为上层提供所需计算数据及消息系统中的各类操作,业务规则层进行拓扑分析和任务管理。
2)执行端。负责子任务的计算,为任务管理模块和上层任务的执行提供分区状态估计计算。
3)外部系统。为外部数据接口,将DAS 系统、EMS 系统及图资系统等外部数据接入平台系统。
4)客户端。任务请求,通过客户端设置状态估计任务参数。
ZeroMQ 将网络异常、异步、缓冲区、多线程等都封装起来,以消息作为收发的基本单位,在发送端缓存消息,并通过设置水位来控制缓存。ZeroMQ 可以是从零开始任意大小的字节块,适用于任意存储器。在内存中,ZeroMQ 消息是zmq_msg_t 类型对象。
ZeroMQ 提供带所有信息并跨各种传输协议如进程间、进程内、广播等的套接字,支持请求回应(ZMQ_REQ-ZMQ_REP/ZMQ_ROUTER-ZMQ_DEALER)、发布订阅(ZMQ_PUB-ZMQ_ SUB)、管道(ZMQ_ PUSH-ZMQ_ PULL)、信号(ZMQ_PAIR)四种消息收发模式[12]。本文用到其中前三类套接字,现总结其特点如表1所示。
表1 套接字类型列表Table 1 Different types of socket
分布式通信网络架构包括外部系统(EMS、DAS、图资)、服务器端(若干实例)、管理模块(包含负载均衡中间件)、若干PAS 客户端、执行端(若干执行进程),其示意图如图5所示。
图5 分布式通信架构示意图Fig.5 Distributed communication frame
2.3.1 初始化操作
实例首次启动时,首先连接至外部系统暴露的IP 和端口,通过REQ 向外部系统请求初始化,外部系统通过REP 将所有数据返回,外部系统的REP和实例的REQ 是一对多的关系,每个外部系统的REP 与若干个实例的REQ 相连接;然后,通过读取管理模块配置文件得到管理模块的IP 和绑定端口号,连接到管理模块,向管理模块注册自己的IP 和绑定的端口组。
执行端首次启动时,通过读取管理模块配置文件得到管理模块的IP 和绑定端口号,连接至管理模块,通过REQ-REP 套接字向管理模块发送REQ 请求,并由管理模块的REP 获得在线实例的信息。
PAS 客户端读取管理模块配置文件得到管理模块的IP 和绑定端口,连接至管理模块。
2.3.2 通信网架的交互关系
1)实例-外部系统
PUB-SUB:外部系统通过发布套接字PUB 定时向各实例推送实时更新的动态数据,各实例通过套接字SUB 订阅更新数据。
2)客户端-管理模块
REQ-REP:PAS 客户端REQ 向管理模块发送任务请求后,通过管理模块的REP 获取在线实例的信息,此时PAS 可以自主选择某个实例进行连接。
3)客户端-实例
DEALER-ROUTER:PAS 客户端通过套接字DEALER 向所选实例ROUTER 发送任务,不管实例有没有返回任务结果,都可以继续向实例发送其他任务请求;实例的ROUTER 可以被多个客户端的DEALER 连接,同时接受不同客户端的任务请求。
4)实例-管理模块
PUSH-PULL:初始化完成后,实例轮询所需要监听的端口,当接收到客户端发来的任务请求后,将任务切分成子任务组,PUSH 至管理模块的负载均衡中间件,并存储任务信息。
5)管理模块-执行端
PUSH-PULL:执行端的任务接收线程轮询所有需要监听的端口,主动发现实例,接收管理模块PUSH 来的子任务。
6)执行进程-实例
PUSH-PULL:执行端计算结束后,根据子任务包里实例信息向相应实例PULL 端口PUSH 本执行端信息与子任务的计算结果。
本文提出的配网状态估计分布式并行计算以FastDB、Oracle 为数据库支撑,ZeroMQ 为通信支撑,采用负载均衡的方式实现分区状态估计子任务的派发,构建分布式平台层次结构,并通过C 语言编程实现。其并行计算实现流程如下所示。
用户在操作界面设置配电网状态估计的对象、最大迭代次数、收敛精度等计算参数后,启动计算。客户端连接至管理模块,向管理模块发送任务请求,获得在线实例信息,选择某个实例进行连接。
实例接收到客户端发来的任务请求,从任务表中获取任务信息,对状态估计分析对象进行拓扑结构分析及解耦分区;然后以分区为单位进行任务分解,将状态估计任务分解为多个分区状态估计子任务;子任务组由这些子任务包组成,每个子任务包中包含了该分区的任务表、CIM 类对象、SCADA类对象以及实例信息;最后将子任务组发给管理模块的负载均衡中间件,并存储任务信息。
管理模块的负载均衡中间件在收到实例发来的子任务组后,根据最近最少使用的原则将子任务包均衡地分配给可用的执行端。执行端的任务接收线程收到子任务包后,按照优先级把子任务包加入任务队列,由任务执行线程按顺序从任务队列中取子任务包进行单分区状态估计计算。计算结束后,执行端根据子任务包里的实例信息向相应实例返回子任务中对应分区状态估计的计算结果。实例收回所有子任务后,整合计算结果,并将计算结果列表返回给客户端。
基于量测变换的配电网状态估计分布式并行计算的实现流程如图6所示。
图6 状态估计并行计算实现流程图示Fig.6 Parallel computing for state estimation
本文所提出的分布式并行计算平台已编制成一个DPAS 软件包,该软件同时实现了配电网单分区的状态估计,并根据某城市配电网的数据进行了全网状态估计测试。该系统计算指标如表2所示。
表2 算例计算指标Table 2 Calculation index
截取其中一36节点的单分区,其拓扑结构如图7所示。
图7 单分区算例拓扑结构Fig.7 Topology of the subarea example
状态估汁结果如表3所示。
表3 单分区状态估计结果(标幺值)Table 3 Result of subarea state estimation (p.u.)
该测试结果表明:
1)基于支路电流的配电网状态估计算法简单,具有良好的收敛性,适用于单分区状态估计。
2)解耦分区后仍可保证各分区的计算精度;
3)可在较短时间内实现全网的状态估计分析,并保证全网的计算精度。
本文根据全量测对配网馈线进行解耦分区,并基于量测变换技术建立了配网单分区状态估计算法模型;同时构建了基于ZeroMQ消息机制的分层架构分布式平台;并在该平台上实现了配网网络状态估计的分布式并行计算。
未来的研究工作将从以下两个方面展幵:
1)对含弱环的配网状态估计处理方法;
2)可能存在规模较大的分区,需要进行进一步分块处理。
[1]陈羽,刘东,廖怀庆,等.网格计算环境下输配电网联合潮流计算[J].电力系统保扩与控制,2012,40(5):42-47.
CHEN Yu,LIU Dong,LIAO Huai-qing,et al.Transmission and distribution networks united power flow under grid computing environmentfJ],Power System Protection and Control,2012’ 40(5):42-47.
[2]刘德强,王小波,李晓兵,等.基于SOA的通信前置机系统的研究[Jj.屯力系统保护与控制,2010,38(7):102-105.
LIU De-qiang,WANG Xiao-bo,LI Xiao-bing,et al.Research of communicated front-end system based on SOA[J].Power System Protection and Control,2010,38(7):102-105.
[3]袁文广,周文俊,李春建.配电自动化系统的实时SOA架构研究[J].电力系统保护与控制,2012,40(17):150-155.
YUAN Wen-guang,ZHOU Wen-jun,LI Chun-jian.Study on real-time SOA for distribution automation system [J],Power System Protection and Control,2012,40(17):150-155.
[4]李青芯,汪德星,孙宏斌,等.变电站状态估计的工程实践与效益分析[Jj.电力系统保护与控制,2012,40(12):56-61.
LI Qing-xin,WANG De-xing,SUN Hong-bin,et al.Application and benefit analysis of substation state estimation[J].Power System Protection and Control,2012,40(12):56-61.
[5]BARAN M E,KELLEY A W.State estimation for real-time monitoring of distribution systems[J].IEEE Trans on Power Systems,1994,9(3):1601-1609.
[6]BARAN M E,KELLEY A W.A branch-current-based state estimation method for distribution systems[J].IEEE Trans on Power Systems,1995,10(1):483-491.
[7]程浩忠,袁青山,汪一华,等.基于等效电流量测变换的电力系统状态估计方法[J].电力系统自动化,2000,24(14):25-28.
CHENG Hao-zhong,YUAN Qing-shan,WANG Yi-hua,et al.A state estimation method of power systems based on equivalent current measurement transformation[J].Automation of Electric Power Systems,2000,24(14):25-28.
[8]辛开远,高赐威,杨玉华.配电网状态估计中的量测变换技术[J].电网技术,2002,24(9):67-70.
XIN Kai-yuan,GAO Ci-wei,YANG Yu-hua.A discussion on measurement transformation technology in state estimation for distribution network[J].Power System Technology,2002,24(9):67-70.
[9]李晓剑.消息队列中间件技术及MSMQ 应用研究[D].武汉:武汉理工大学,2002.
LI Xiao-jian.Application research of message middleware and MSMQ[D].Wuhan:Wuhan University of Technology,2002.
[10]蒲凤平,陈建政.基于ZeroMQ 的分布式系统[J].电子测试,2012,7(7):24-29.
PU Feng-ping,CHEN Jian-zheng.Distributed system based on ZeroMQ[J].Electronic Test,2012,7(7):24-29.
[11]刘明,周双喜,邓佑满,等.配电系统状态估计区域解耦算法[J].电力系统自动化,2005,29(6):79-83.
LIU Ming,ZHOU Shuang-xi,DENG You-man,et al.An area-decoupled state estimation method for distribution systems[J].Automation of Electric Power Systems,2005,29(6):79-83.
[12]蒲凤平.基于中间件技术的分布式监测系统研究[D].成都:西南交通大学,2012.
PU Feng-ping.The research of distributed monitoring system based on middleware technology[D].Chengdu:Southwest Jiaotong University,2012.