一种基于Petri网模型的配电网故障恢复算法
2018-09-03王长瑞刘军娜杨琨李烨李绥荣
王长瑞,刘军娜,杨琨,李烨,李绥荣
(1. 华北电力科学研究院有限责任公司,北京 100045; 2. 东方电子股份有限公司,山东 烟台 264000)
0 引 言
电力系统的安全、稳定运行与人们的日常生活息息相关,电力系统故障的发生会对人们的生活及工业生产造成极大的损害。一方面,现代电网系统的规模、复杂度不断增大;另一方面,人们对电力故障恢复的实时性要求越来越高,因此研究快速有效的电力故障恢复方法,有着重要的科研与实际意义。
国内外对配电网故障恢复算法有着广泛的研究。其中,随着近些年来人工智能技术的发展,出现了很多基于人工智能的方法。如专家系统、遗传算法、人工神经网络、模糊算法等。除了基于人工智能的算法外,有学者研究了使用数学优化、数值计算,以及基于图论或者决策树的搜索算法等。文献[1]中对电网故障恢复算法进行了总结。与以上算法相比,基于Petri网的方法往往更加直观。
Petri网是一个建模语言框架,最初由C. A. Petri博士发明[2],并作为一种非确定性行为(non-deterministic behavior)的建模方法用来分析和描述离散事件动态系统(discrete event dynamic systems)。考虑到Petri网在对离散事件动态系统建模与分析中有着独特的优势,非常适合表达配电网故障发生以及恢复过程中的并发、异步等动态特征,文中研究基于Petri网的配电网故障恢复算法。
国内外已有学者尝试将Petri网模型应用在电力系统故障诊断与恢复中,其研究成果也得到了认可。台湾学者Jaw-Shyang Wu较早研究Petri网在配电网故障恢复中的应用[3-4]。文献[5]中提出了一种基于Petri网的算法用来恢复配电网中出现的过负荷故障,其建模方式与故障恢复过程与文献[3-4]中的类似。文献[3-5]中所提出算法的共同特点是:根据系统的当前状态,“贪婪”式地选取代价最低的一个恢复操作,直到系统故障恢复过程结束。虽然文章中通过例子证明了该算法的有效性,但是却不能保证故障恢复后系统状态的全局最优性。文献[6]中使用时间Petri网来建模,然后利用迪杰斯特拉算法对网络进行搜索,从而找到最优时间的故障恢复路径。但是该文献中使用的Petri网模型较为复杂,同时,搜索算法在大规模网络中的性能有待验证。文献[7]将时间Petri网与模糊规则相结合,提出了一种电网故障诊断新方法。文献[8]中用粗糙集结合Petri网的方法进行故障诊断,利用Petri网能有效支持矩阵计算的这一特点开发了较高效算法,且具有较好的鲁棒性和灵活性。文献[9]中建立基于Petri网的故障诊断模型,通过观察Petri网模型中关键库所的状态,确定元件故障的位置及系统保护动作的合理性;通过加入若干虚拟库所并对其状态进行考察,能够更加全面地反映实际保护、断路器的各种动作时序,更为完整地描述保护系统的动作逻辑。但是,该文仅仅考虑故障定位问题,没有分析故障恢复及其优化过程。近些年来,有学者利用Petri方法进行分级和分布式情况下的配电网故障的诊断与定位,如文献[10-11],但是都没有讨论如何进一步利用Petri网模型进行故障恢复算法的设计。另外,有学者采用了着色Petri网[12]、谓词Petri网[13]等高级网系统建模,虽然使得系统描述更加简洁,但是与普通Petri网模型相比,对其进行系统优化与控制的难度却随之增加。与现有基于Petri网的配电网建模与故障恢复算法相比,所提出方法的主要特点及优势包括:(1)使用基本的Petri网结构,语义简单且模型直观,同时便于利用网络的结构化信息(如状态方程);(2)基于最优目标状态直接计算故障恢复策略,避免传统的路径搜索及比对过程;(3)故障恢复策略考虑了全局最优性。
1 基于Petri网的建模方法介绍
故障故障Petri网有多种定义形式,其中被比较广泛采用的是库所/变迁(place/transition)网。经典离散Petri网的形式化定义如下。
定义:一个Petri网系统是一个二元组 是一个网状结构:(1)P和T是不相交的、分表表示库所和变迁的有限集合;(2)Pre,Post∈N|P|×|T|是关联矩阵,N表示非负整数集合;(3)M0∈N|P|是系统的初始状态。 假设Pi,i=1,....,|P|和Tj,j=1,....,|T|,分别表示库所和变迁,在Petri网模型图中通常分别用圆圈和矩形框表示。在关联矩阵Pre中,如果Pre[i,j]>0则在网系统中有一条从Pi指向Tj的弧,弧上的权重为Pre[i,j];在关联矩阵Post中,如果Post[i,j]>0则在网系统中有一条从Tj指向Pi的弧,弧上的权重为Post[i,j]。如果模型中的一条弧上不标明数字,则默认该条弧上的权重为1。Petri网的状态(又称为Marking)由分布在各个库所中的托肯(token)表示。系统的全局状态向量用M表示,非负整数M[Pi]表示库所Pi中包含的托肯个数。在系统状态M下,一个变迁被称为使能(enabled),当且仅当该变迁的输入库所中都包含有足够多的托肯,并使得公式(1)成立: ∀Pi∈·Tj,M[Pi]≥Pre[i,j] (1) 式中·Tj表为变迁Tj的所有输入库所的集合。当一个变迁使能时,表示该变迁具备触发(fire)条件,即系统中有足够的资源在其输入库所中。一个变迁触发后会将其输入库所中的资源(托肯)转移到其输出库所中。当一个或者多个变迁触发后,系统进入新的状态M′,并满足基本状态等式: M′=M0+(Post-Pre)·σ,M′∈N|P |,σ∈N|T | (2) 式中σ为触发向量(firing count vector),σ[j]为系统从初始状态M0进入状态M′的过程中,变迁Tj触发的次数。 配电网系统是一个复杂的,存在着各种并发、竞争、同步等关系的动态系统。将配电网系统中的元件状态通过Petri网的库所节点进行建模,而元件的动作用变迁节点描述,系统状态转换与动作之间的关系用Petri网节点间的弧来表示,可以方便的建立起配电网的Petri网模型。文中将配电网抽象为由馈线、开关、负荷区等组成的网结构,忽略了各种电子元器件的细节特征。 经典Petri网系统的特征之一是变迁的触发条件只与变迁的输入库所的状态相关(参见公式(1)),即只与系统的局部状态相关。然而在配电网系统中,一个开关器的动作除了与局部元器件的电气特征有关,还需要考虑一些全局信息,例如需要考虑系统是否出现过载等情况。因此,提出的模型定义了更加丰富的局部状态信息φ,以及与之关联的全局约束条件ψ。为了简化讨论过程,假设开关器工作正常,局部状态信息φ只包含负荷区线路的工作负荷量,全局约束条件ψ只考虑线路的总负荷量,并且忽略其他的电气约束。 图1 由开关连接的2个负荷区结构示意图Fig.1 Structure schematic diagram of 2 load areas connected by switch 图1是一个由断路器/开关K1连接2个负荷区L1和L2的简单配电网结构,假设L1是L2的上游负荷区。假设在初始状态下,负荷区L1带电,但是开关K1处于打开状态,也就是说此时负荷区L2处于失电状态。令负荷区L1的工作负荷为s1,线路最大负荷容量为S1;负荷区L2的工作负荷为s2,线路最大负荷容量为S2;电源最大出力为S。该网络正常工作需要满足的条件为: 图1中简单配电网结构的Petri模型如图2所示。 图2 Petri网模型(L1为上游负荷区,开关打开)Fig.2 Petri net model (L1 for upstream load area, switch on) 其中,库所PL1和库所PL2分别对负荷区L1和L2建模;库所PK1O和库所PK1C分别对开关K1的打开状态和闭合状态建模;库所PL1L2和PL2L1,用来区分L1和L2哪个是上游负荷区;库所集合P= {PL1,PL1L2,PK1O,PK1C,PL2L1,PL2}。在给定一个状态M下,如果M[PL1L2]=1则表示L1是上游负荷区,L2是下游负荷区;如果M[PL2L1]=1则表示L2是上游负荷区,L1是下游负荷区。当L1是上游负荷区时,分别通过触发变迁TOL1L2和TCL1L2来打开和闭合开关K1;当L2是上游负荷区时,分别通过触发变迁TOL2L1和TCL2L1来打开和闭合开关K1,变迁集合T= {TCL1L2,TOL1L2,TOL2L1,TCL2L1}。 在系统初始状态下(图2),Petri网模型的状态向量可以表示为M0=[1,0,1,0,0,0]T,即M0[PL1]=1(L1带电),M0[PL2]=0(L2失电),M0[PK1O]=1且M0[PK1C]=0(开关K1打开)。很显然,变迁TCL1L2的输入库所集合是TCL1L2={PL1,PK1O},因此根据公式(1)变迁TCL1L2是使能的。令φ(PL1)=s1,φ(PL2)=s2;并且系统全局约束只考虑电源总容量限制S,即: Ψ=F(φ)=S-(φ(PL1)+φ(PL2))≥0 (4) 闭合开关K1(触发变迁TCL1L2)后的网系统进入新状态M′,此时M′ [PK1C]=1且M′ [PK1O]=0表示开关K1已经闭合;M′ [PL2]=1表示负荷区L2也处于带电状态;M′ [PL1L2]=1表示此时L1作为上游负荷区为L2供电。 配电网故障恢复的主要任务是在允许的操作条件和电气约束下,恢复停电区中非故障部分的正常供电。为了重点突出地研究故障恢复策略问题,文中并不具体分析配电网故障的类别细节,也不进行故障诊断。故障恢复过程被抽象为一系列开关的打开和闭合操作,逐步恢复非故障区域的供电。在对应的Petri网模型中,这一过程可以用变迁的触发序列来表示。 文章创新性地将最优目标稳定状态控制算法[14]扩展到基于Petri网模型的配电网故障恢复问题中。算法主要由3部分组成。 (1)计算故障恢复后的最优系统状态Mf。 MaxO(Mf,φ) 或者 MinC(Mf,φ) 式中O(Mf,φ)和C(Mf,φ)是优化目标函数。状态等式保证了Mf是一个合法的系统状态(状态的可达性验证有很多种方法,但超出了文章的讨论范围,这里不再赘述);约束条件0≤Mf≤1限定了目标状态Mf中每个库所最多只有一个托肯。根据优化目标函数及约束条件定义的不同,该优化问题可能为线性优化、较复杂的整型或者非线性优化问题。 (2)计算能够驱动系统到达最优稳定状态Mf的总触发向量σf。在第一步中计算得出的σ即是一个满足要求的总触发向量。但是,考虑到模型分析的严谨性,总触发向量σf通常也不是唯一确定的。如果系统对开关的动作有特殊的要求,例如某些开关必须强制打开或者闭合,则需要加入额外的约束条件(通常为线性约束)。 (3)根据σf计算Petri网模型中变迁的触发序列,即计算配电网中开关器的动作序列。首先计算打开开关的动作序列,即根据故障点情况隔离出故障区域;之后再计算闭合开关的动作序列,即逐步恢复供电并保证系统进入第一步中计算的最优目标状态Mf。本算法采取一种贪婪算法策略:如果σf[j]>0,则立即触发Tj,直到每个变迁Tj的总触发量等于σf[j]。考虑到配电网辐射状的特点,下游的负荷区需要从上游取电,因此变迁触发序列具有从电源点开始逐级向下动作的特征。对于从不同电源点取电的区域,则变迁可以并行触发。 考虑图3所示的由2个电源点R1、R2,13个开关元件,以及11个负荷区L1,L2,…,L11组成的配电网结构。 图3 配电网结构Fig.3 Power distribution network structure 假设电源点1的最大出力为21 MVA,电源点2的最大出力为16.5 MVA。各个区域正常工作的负荷如表1所示。 表1 各个区域的工作负荷Tab.1 Work load of each area 假设馈线出口断路器D1和D2都闭合,在系统正常工作时,各个负荷区域之间的开关状态如图3所示:K2,K9,K12,K13打开,其他开关闭合。根据此配置,负荷区L1,L2,L7,L8,L10,L11从馈线1处获得电力;负荷区L3,L4,L5,L6,L9从馈线2处获得电力。根据表1中提供的各个区域的负荷数据,由馈线1处供电的区域的总出力为20.5 MVA;由馈线2处供电的区域的总出力为16.0 MVA,都满足电源最大容量限制。 图4 模块化Petri网模型Fig.4 Modular Petri net model 假设负荷区L6和L7发生故障,在现有的开关状态下,会导致非故障区域L8,L10,L1以及L3,L4,L5发生停电。故障恢复的目标是在不发生过负载的情况下,最大限度的恢复停电区的正常供电。图4中是图3所示的配电网系统的Petri网模型。连接2个负荷区的开关模型较为复杂,为了便于观察,使用模块K-Model-n来表示。模块K-Model-n的详细Petri网结构如图5所示,其中库所和变迁的含义类似于图2中的定义方法。由于负荷区域L6和L7发生故障,因此将从模型中移除,不予考虑。 负荷区L6和L7发生故障,因此在图3所示的初始开关状态下,仅L1,L2和L93个区域处于正常供电状态。在故障恢复之前,假设所有停电区域的开关都处于打开状态,即开关K1闭合,其他开关全部打开。Petri网模型的初始状态M0见表2。 图5 K-Model-n模块的详细Petri网模型Fig.5 Detailed Petri net model of K-Model-n module 表2 Petri网模型的初始状态和目标状态Tab.2 Initial state and target state of Petri nets model 通过解决优化问题,如式(5)所示,得到的系统最优状态Mf参见表2,除故障区域外,所有负荷区都恢复供电。总触发向量如表3列出(由于在初始状态中,停电区域的所有开关均处于打开状态,表中只列出与闭合开关相对应变迁的触发情况)。 表3 总触发向量Tab.3 Total trigger vector 根据σf,从电源点开始依次触发σf>0的变迁:电源点1供电的线路上的变迁序列为γ1=TCL2L3TCL3L4TCL4L5,即开关K2,K3,K4依次闭合;由电源点2供电的线路上的变迁序列为γ2=TCL9L8TCL8L10TCL10L11,即开关K9,K10,K11依次闭合。变迁序列γ1和γ2可以并行触发。 计算得出,在此故障恢复方案下,除了故障区域外所有的负荷区都正常工作,且电源点1供电线路上运行总出力为19.0 MVA,电源点2供电线路上运行总负荷为14.5 MVA,均不出现过载情况。 为了进一步说明算法的有效性,我们将文献[5]中提出的基于Petri网的配电网故障恢复算法应用到此算例中,并与所提出的算法进行比较。 首先,从模型规模大小的角度来看,本算法和文献[5]中提出的算法都采用了基本的Petri网结构和语义,这样的好处是网模型的拓扑结构简单且易于理解。以图1中连接两个负荷区的简单开关结构为例(考虑了两个负荷区都可作为上游供电的情况),使用文献[5]中的建模方法,图1的Petri网模型由9个库所和5个变迁,共14个节点组成。如对本算例中图3的结构建模,则得到的Petri网模型中库所的个数为70,变迁的个数为61。而使用所提出的建模方法,图1的Petri网模型中含有6个库所和4个变迁,共10个节点。如对本算例中图3结构建模,则得到的Petri网模型中库所的个数为63,变迁的个数为52。因此,相比之下,该算法中使用的网模型的规模减少了约12%。 其次,从故障恢复算法的优化效果的角度来考虑。为了方便比较,我们在使用文献[5]中的算法计算故障恢复策略时,采用了与本算法中优化目标函数等价的代价函数,即为尽可能多的恢复故障区域,且在不带来过负荷的情况下,优先选择带有较大负荷的开关进行恢复。文献[5]中算法采用了贪婪算法的思想,因此每一步都考虑采用使得代价函数值最优的恢复策略。对于电源点1的供电线路上的开关动作:开关K1闭合后,K2是下一步可闭合的开关且不发生过负荷,因此K2闭合;之后开关K3和K13都可以作为下一步恢复操作的对象,根据代价函数,算法将选择带有较大负荷的开关K13进行恢复;此时,电源点1的供电线路上的运行总出力为18.5 MVA;由于电源点1的最大出力为21 MVA,下一步只能选择K12进行恢复(如果闭合K3,将出现过负荷);因此电源点1的供电线路上的运行总出力为20.5 MVA,得到恢复的负荷区包括L1,L2,L3,L11及L5。再考虑电源点2的供电线路上的开关动作:算法依次闭合开关K9和K10,得到恢复的负荷区包括L9,L8,L10;此时,此时电源点2的供电线路上的运行总出力为10 MVA。虽然未出现过负荷的情况,但由于负荷区L4并没有得到恢复,很明显,使用文献[5]中算法时本算例的故障恢复效果未达到最优。 再者,从算法的实时性方面考虑,文献[5]中的算法每进行一步恢复操作都需要计算代价函数,因此是严格的序列化操作。而所提出的算法首先通过一个优化函数计算出最优目标状态,且事先推算出所需要的恢复动作,因此可以实现部分恢复操作的并行化,实时性更高。算法比较结果见表4。 表4 所提出的算法与文献[5]中算法的比较结果Tab.4 Comparison result between the algorithm proposed in this paper and the algorithm in[5] 研究了一种基于Petri网的配电网故障恢复算法。与已有的算法相比,该算法所使用的Petri网模型更加紧凑,规模更小,因此降低了复杂度;由于最优目标状态在故障恢复操作之前计算,避免了故障恢复方案的搜索过程,同时保证了故障恢复后的系统状态最优。但是,在求解最优目标状态时需要解决一个全局优化问题,因此当系统中的约束条件较为复杂,或者系统规模较大时,最优目标状态的求解会比较困难。因此,在下一步的工作中,需要考虑将算法应用到分布式的架构中:将配电网络划分为若干子系统后分别求解。这涉及子系统的划分方法、子系统之间的交互、局部最优解到全局最优解的权衡等复杂问题,因此仍然有着较大的研究空间。2 基于Petri网方法的配电网系统模型
3基于Petri网模型的配电网故障恢复算法
4 故障恢复算法的算例分析与比较
5 结束语