摘 要:电网发生故障时,根据断路器跳闸信息和母线电压信息,采用BFS(广度优先搜索)的方法搜索出故障区域。基于故障区域建立保护和故障设备之间关系的数学模型,将故障诊断问题表示为0-1整数规划问题。在目标函数中引入贡献因子,通过遗传算法诊断出故障设备。实例表明所提模型是正确的,求解算法是可行的。
关键词:电力系统;故障诊断;广度搜索;优化算法
FaultDiagnosisinTransmissionElectricityNetworkBasedon
BFSandOptimizeAlgorithm
XUXianfeng2,GONGLenian1,CHENXingying2
(1.DepartmentofElectricEngineering,SoutheastUniversity,Nanjing210096,China;
2.CollegeofElectricEngineering,HehaiUniversity,Nanjing210096,China)
Abstract:Whenafaultoccursinapowersystem,faultareaislocatedusingBroadFirstSearch(BFS)methodbybreakersandbusvoltagemessage.Themathematicsmodelwhichreflectstherelationbetweentherelayandfaultequipmentisestablished,andfaultdiagnosisproblemisconvertedtooptimizationproblem.Contributionfactorisintroducedingoalfunction.Geneticalgorithmisusedtosolveoptimizationproblem.Emulationindicatesthisschemeisfeasible.
Keywords:powersystem;faultdiagnosis;BFS;optimizealgorithm
1前言
输电网故障诊断就是利用各种遥测遥信信息来识别故障的元件和误动作的保护和开关,并为故障恢复提供依据。目前故障诊断的方法主要有基于优化的方法[1~3]、人工神经网络方法[4~6]、专家系统的方法[7~8]。专家系统在输电网故障诊断中的典型应用是基于产生规则的系统。虽然目前专家系统应用的较为成功,但在实际应用中仍存在许多缺陷[4]:1)电力系统是个庞大而复杂的系统,要想获得完备的知识库比较困难;2)在有大量故障信息的情况下,专家系统在推理时要搜索匹配知识库里一定的规则集后才能得出结论。因此在推理时速度很慢;3)当电力系统结构和保护配置改变时,知识库的维护相当困难。与专家系统相比,人工神经网络最大的特点是采用神经元及它们之间的权值来隐含处理问题的知识,并具有自学习能力,由于可以并行处理,因此速度较快。它的主要缺点是完备样本集的获取比较困难。ANN在使用之前要进行大量的样本学习,且学习算法收敛的速度比较慢,当电力系统结构变化后,需要增加新的样本进行学习。
采用优化算法的输电网故障诊断在文献[1~3]中有比较详细的分析。文献[1]根据故障元件和保护开关动作信息之间的关系,引入修改后的目标函数,首先把故障诊断问题表示成0-1整数规划问题,然后采用遗传算法或模拟退火算法进行求解。文献[2]改进了文献[1]的方法,通过比较故障前和故障后网络拓扑结构,找到故障区域,并基于故障区域建立数学模型,从而大大缩小了求解的规模。然而文献[1~3]在目标函数中对不同的保护赋予相同的权值,无法体现不同保护对故障设备的贡献程度。因此本文提出了基于BFS的故障区域搜索方法,充分利用开关跳开信息和母线电压信息大大缩小故障区域,并给出了带有贡献因子的目标函数,将文献[1~3]中求最小化的目标函数改为求最大化的目标函数。经过实例验证,算法可行。
2BFS搜索故障区域
2.1基本思想
当系统发生故障开关跳开时,无论是开关正确动作还是由于开关的拒动而导致上级开关动作,最终总会将故障设备与系统分离开来。也就是说在两两跳闸开关之间的通路上连接的设备都是可能的故障设备。因此,从任一跳闸开关出发,通过广度优先搜索,可以搜索出所有可能的故障设备。将所有的可能故障设备组成的区域定义为故障区域。在搜索过程中利用母线电压信息可以将故障区域大大缩小,并且在多点同时发生故障时,可以形成几个独立的故障区域,使问题求解的规模大大减小。
2.2电网的拓扑结构
进行电力系统故障区域搜索首先要建立电力系统的网络拓扑。电力系统是由开关将各种设备连接起来组成的整体,以图1为例。图中CB表示开关,L表示线路,B表示母线。
在编程过程中,把电网看成是一个无向图,其中以开关为顶点,开关之间所连的设备为弧,通过邻接表建立起一种链式存储结构,如图2所示。其中第一部分为头节点,分别存储设备的信息。以后部分为表节点,分别存储其后备保护设备信息以及指向下一个保护设备的指针。
2.3故障区域搜索算法
以图1为例,假定CB1、CB2、CB3和CB4开关跳开。定义如下集合用于存放搜索过程中的临时信息:
Bs跳闸开关的集合;
Ss在故障区域内所有开关的集合;
Es搜索过程中所有可能故障设备的集合,包括线路、变压器和母线。
定义队列Q存储搜索过程中的开关信息。队列是只允许在一端进行插入,而在另一端进行删除的线性表。删除的一端称为队头,插入的一端称为队尾。
广度优先搜索故障区域(BFS)思路如下:
1)从Bs中任取出一跳闸开关,比如CB1,将CB1推入Q中,并将CB1存入Ss中;
2)判断Q是否为空,如果不为空,从Q中删除开关CB1,沿CB1邻接表继续搜索,搜索到CB2;
3)检查CB2是否搜索过,如果未搜索过则继续执行4),如果搜索过则执行2);
4)如果CB1和CB2之间相连的设备为线路或变压器,则:如果CB2跳开且母线B1有压,将CB2存入Ss中,将L1存入Es中,将CB2置搜索过标志;如果CB2跳开且B1所在母线无压,或者CB2未跳开且B1无压,将CB2存入Ss中,将L1存入Es中,将CB2置搜索过标志,并将CB2插入队列尾;
5)如果CB1和CB2所连的设备为母线,在CB2跳开且B1无压或者CB2未跳且CB1和CB2所在母线无压,则将开关CB2存入Ss中,将CB1和CB2所连母线存入Es中,将CB2置搜索过标志,并将其插入队列尾;
6)如果队列不为空,则从队列头取出开关,转到2);
7)检查Bs中所有开关是否都搜索过,如果未搜索过,说明未搜索的开关属于另一个故障区域,在从未搜索过的跳闸开关中任选一个,重复1)~7)步骤。
如果B1母线有压,则经过搜索可以得到两个故障区域。