复杂故障并行计算方法李亚楼,周孝信,吴中习(中国电力科学研究院,北京100085)
在电力系统在线动态稳定评估和实时数字仿真计算中,并行处理是一种极有发展前途的技术。复杂故障计算是电力系统仿真计算中最重要、计算量最大的部分之一,已经成为大型电力系统实时仿真的瓶颈。由于求解故障端口间等值阻抗的复杂性,传统方法不适用于并行处理。作者提出了一种可用于大型电力系统数字仿真的复杂故障并行计算方法。算法中采用了故障处理局部化、降维网络方程的构造和线性方程组并行处理等多种技术,以减少并行计算量和通讯量。在原有串行程序的基础上,作者在PC机群上实现了复杂故障的并行算法。实际系统的计算结果表明,文中所提出的复杂故障并行计算方法是正确和有效的。
关键词:电力系统数字仿真;并行处理;复杂故障计算;PC机群
1引言
电力系统暂态稳定仿真是电力系统规划和运行的重要分析工具。近几十年来,电力系统的规模不断增大,复杂程度也相应提高,并要求能快速、甚至实时地仿真系统动态特性,这就对仿真器的计算能力提出了更高的要求。复杂故障计算是电力系统仿真计算中最重要、计算量最大的部分之一,现已成为大型电力系统实时数字仿真的瓶颈。
近十几年来,电力系统并行计算技术发展很快,一些机电暂态仿真并行算法不断地被提出。从实现原理来看,所提出的并行算法大致可分为空间并行算法、时间并行算法或两者的结合——时空并行算法。其中,空间并行算法是将系统分割为小的子系统后并行处理各个子系统;时间并行算法则是通过同时求解多个积分步长来实现。从参与并行计算子任务的计算量来看,又可把并行算法划分为细粒度并行算法和粗粒度并行算法。
不同的并行算法应采用何种并行计算机来实现,是一个十分重要的问题。现有的并行算法大都在共享内存的对称处理机上实现,PC机群是由多个PC机和高速网络组成的并行计算机,其优势在于:性价比高、易升级和易扩展。其不足则在于通讯速度相对较低。近几年来,作为电力系统暂稳仿真并行计算的硬件平台,PC机群吸引了越来越多科研人员的注意力。由于时间并行算法存在通讯量大、收敛性较差和并行效率低等不足,很难在PC机群上取得理想的效果[1]。而通过合理的网络分割,粗粒度暂稳空间并行算法可以在PC机群上达到较高的计算速度。在已提出的各种暂态稳定并行算法中,都没有涉及对复杂故障的处理。
当电力系统中发生不对称故障时,在该复杂故障的计算中必须考虑三序的网络方程,为此人们提出了多种求解复杂故障的计算方法[2~6],如:阻抗阵法[4]、利用多端口网络理论的方法[5]和两步补偿法[6]等。但由于巨大的内存消耗,阻抗阵法很少被用于大规模网络方程的故障求解,且在上述传统的复杂故障计算方法中,为降低网络方程的维数,需要先计算故障母线间的等值阻抗,然后再联立求解故障边界条件方程和等值网络方程,以得到故障后的网络状态。由于空间并行算法将全网分割为多个子网,致使故障母线间的等值阻抗较难求取,尤其是不同子网间的故障,需要额外的通讯量和计算量,所以,传统的故障处理方法不适用于并行计算。
本文提出了一种可用于大型电力系统数字仿真的复杂故障并行计算方法。该算法是一种以PC机群为运行平台的粗粒度空间并行算法,算法中采用了故障处理局部化、构造降维网络方程和线性方程组并行处理等多种技术,有效地减少了并行计算量和通讯量。在电力系统分析综合程序(PSASP)串行暂态稳定程序的基础上,笔者在PC机群上实现该算法,并使用实际系统进行了验证。
2复杂故障的并行计算方法
2.1计算方法概述
作为一种通用的并行复杂故障方法,本文算法具有如下特点:
(1)有处理任意复杂故障的能力。任意对称和不对称故障的组合,发生在网络中任意位置和任意相的故障,都可以在该方法中进行处理。
(2)把故障处理归结为线性方程组的并行计算,可直接应用现有的粗粒度暂稳空间并行算法。
(3)使用稀疏矢量法构造降维网络方程,以降低网络三角分解的工作量。
(4)保持边界点数目不变,不会因为故障处理而增加额外的通讯量。
在故障处理方面,本文采用两步补偿法[6]的思想形成故障电路对原始网络的修正导纳阵。修正导纳阵的计算完全在序网中进行,无需相-序网的转换,且该计算仅与局部故障有关,只需要在故障子网中进行,故障之间没有相互影响,故无需进程间的通讯。
为了避免故障后对原始网络的重新分解,本文使用稀疏矢量法[3]来搜索网络方程在前代回代求解过程中与故障点和边界点相关的节点,并构造相关节点对应的降维网络方程,把重新进行三角分解的计算限制在降维方程内部。故障对原始网络的修正和网络重新分解,都可在降维网络方程系数阵上进行,从而减小了计算量。修正后的降维网络方程包含了故障和边界点信息,故可直接使用通用线性方程组并行算法求解故障后的边界点和故障相关节点的电压。
本文提出的复杂故障并行计算方法可采用任何线性方程组空间并行算法来求解修正后的降维网络方程。作为一种粗粒度的空间并行算法,对角块加边法(BorderedBlockedDiagonalForm,BBDF)[7]的通讯量相当小,故被本文采用。除了线性方程组的并行求解过程,本文方法中不存在额外的进程间通讯。
2.2故障修正导纳阵的形成
在本文中,故障被处理为对网络的修正,把故障部分从原始网络中分割出来,以便单独进行处理。为保持原始网络不变,在故障断口上并联了负阻抗支路[3],如图1(a)所示。在图1(a)中,端口aa’左侧部分是原始网络,其右侧部分是故障的修正部分。在故障的修正部分中,模块-Y代表从原始网络移除的故障支路,而模块Ys表示故障电路。任何类型的故障都可描述为序网导纳矩阵。整个故障的修正部分被定义为故障修正矩阵Yf,如图1(b)所示,并可表示为
Yf=Ys-Y(1)
当故障发生在传输线的中间位置时,必须增加一个故障节点k,如图2所示。此时,故障电路的节点导纳阵为
矩阵中的每一个元素,都是3维子阵,代表正、负、零序的支路导纳。为避免在原始网络中新增节点,消去式(2)中的故障节点k,可得等值矩阵为
已知故障支路的导纳阵Y,可使用式(1)计算故障修正导纳阵Yf。若在具有零序互感的支路上发生故障,把互感支路作为一整体来处理,便可使用与式(3)类似的方法计算Ys。该方法没有增加故障节点,故不改变原始网络的拓扑结构。2.3降维网络方程的构造
在故障算法中,对故障后网络方程系数阵重新进行三角分解计算量较大。为减小网络方程重新分解的计算量,根据故障节点和边界点在计算中的影响范围,本文使用原始网络的三角分解结果,考虑故障对网络的修正,构造降维网络方程用于并行计算。原始网络方程的系数阵在计算中保持不变。
本文使用稀疏矢量法搜索网络在前代回代求解过程中与故障节点和边界点相关的节点。由于正序和零序网络的结构不同,需要分别在正序和零序网络中搜索与故障节点和边界点相关的节点。设搜索得到的节点集合为Sf。为了在故障求解中使用原网络的三角分解结果,按照局部三角分解的原理[1][2][3]下一页