连续潮流的理论与编程

连续潮流的理论简介及其编程

1. 问题背景与连续潮流的基础

1.1 问题背景

根据我国《电力系统安全稳定导则》,电力系统的电压稳定性,是指电力系统在遭受小的或大的干扰后,系统电压能够保持或恢复到允许的范围内,不发生电压崩溃的能力。类似于功角稳定性的分析,通常将电压稳定性划分为小干扰电压稳定性和大干扰电压稳定性。而电力系统的电压稳定性问题,从本质上仍然归属于动态稳定问题,其数学模型与研究电力系统暂态稳定的数学模型基本相同,可以用如下的代数方程描述: { d x d t = f ( x , V ) I ( x , V ) = Y V (1) \Bigg\{ \begin{alignedat}{2} \frac {d\bm{x}} {dt} = \bm{f}(\bm{x}, \bm{V}) \\ \bm{I}(\bm{x}, \bm{V}) = \bm{Y} \bm{V} \end{alignedat} \tag {1} {dtdx=f(x,V)I(x,V)=YV(1)

其中, x \bm{x} x是系统的状态变量向量, V \bm{V} V是系统的节点电压向量, I \bm{I} I是节点的注入电流向量, Y \bm{Y} Y则是系统的导纳矩阵。
与对暂态过程的研究类似,可以利用数值积分方法对式(1)进行求解,就可以对实际的电力系统进行电压稳定性分析,虽然这种方法的准确性较高,然而其计算时间较长,实用性较差。与之相对的,通过求取PV曲线(或QV曲线)来判断电力系统电压稳定性的静态分析方法则较为成熟。其中,连续潮流(Continuation Power Flow),有文献译作延拓潮流,由于可以作出完整的PV曲线,因而在实际系统中得到较多应用。

1.2 连续潮流的基本原理与分类

在连续潮流法出现之前,电力行业通常通过大量的潮流计算(采用常规潮流的程序,如牛顿-拉夫逊法等)得出指定负荷节点的PV或QV曲线的方式,对电力系统的电压稳定性进行静态分析。这样的方法存在着一些不足:首先,费时;其次,需要谨慎地选择所观测的母线;最后,由于在临界点(PV曲线的“鼻点”)及其附近,常规潮流的Jacobi矩阵趋于奇异,导致迭代难以收敛,因此借助常规潮流是难以得到完整的PV曲线的。
而基于连续方法(Continuation Method,又称延拓法),是跟踪非线性代数方程组随参数变化的解曲线的基本方法。连续潮流使用连续方法跟踪负荷及发电机功率变化下的电力系统稳态行为,这就需要将常规潮流的Jacobi矩阵增加一阶,得到的增广Jacobi矩阵在临界点(PV曲线的“鼻点”)及其附近不再是奇异的,可以使迭代过程顺利穿过临界点,进而可以作出完整的PV曲线。目前而言,连续潮流的模型分类大致有四种:负荷型、支路型、故障型、控制型。其中又以负荷型的研究较为广泛,也是本文主要讨论的重点,下文中的“连续潮流”统一指代负荷型连续潮流。

2. 连续潮流的数学模型:引入参数的潮流方程

如前所述,PV曲线或QV曲线实际上反映的是负荷及发电机功率变化下的电力系统稳态行为,我们往往使用参数 λ \lambda λ的变化来表征这些变化。那么,对于一个含有 n n n个节点的网络(设其包含 n 1 n_1 n1PQ节点, n 2 n_2 n2PV节点)而言,系统参数化后的潮流方程可以简写为:
f ( x , λ ) = 0 (2) \bm{f}(\bm{x}, {\lambda}) = 0 \tag {2} f(x,λ)=0(2)

0 ≤ λ ≤ λ c r i t i c a l (3) 0 \leq {\lambda} \leq {\lambda}_{critical} \tag {3} 0λλcritical(3)

{ P L i ( λ ) = P L i 0 + λ ( k L i S Δ b a s e c o s φ i ) Q L i ( λ ) = Q L i 0 + λ ( k L i S Δ b a s e s i n φ i ) (4) \Bigg\{\begin{alignedat}{2} P_{Li}({\lambda}) = P_{Li0} + {\lambda}(k_{Li}S_{{\Delta}base}cos{\varphi}_{i}) \\ Q_{Li}({\lambda}) = Q_{Li0} + {\lambda}(k_{Li}S_{{\Delta}base}sin{\varphi}_{i}) \end{alignedat} \tag {4} {PLi(λ)=PLi0+λ(kLiSΔbasecosφi)QLi(λ)=QLi0+λ(kLiSΔbasesinφi)(4)

P G i = P G i 0 ( 1 + λ k G i ) (5) P_{Gi} = P_{Gi0}(1 + {\lambda}k_{Gi}) \tag {5} PGi=PGi0(1+λkGi)(5)

为了简化分析,假设所有负荷节点都保持初始状态下各自的功率因数,然后按照负荷各自的功率因数同步增加所有负荷,则式(4)可以简化为:
{ P L i ( λ ) = P L i 0 ( 1 + λ k L i ) Q L i ( λ ) = Q L i 0 ( 1 + λ k L i ) (6) \Bigg\{\begin{alignedat}{2} P_{Li}({\lambda}) = P_{Li0}(1 + {\lambda}k_{Li}) \\ Q_{Li}({\lambda}) = Q_{Li0}(1 + {\lambda}k_{Li}) \end{alignedat} \tag {6} {PLi(λ)=PLi0(1+λkLi)QLi(λ)=QLi0(1+λkLi)(6)

常规潮流方程 f ( x ) = 0 {\bm f}({\bm x}) = {\bm 0} f(x)=0在极坐标下可以表示为:
P G i − P L i − U i ∑ i ∈ j [ U j ( G i j c o s θ i j + B i j s i n θ i j ) ] = 0 Q G i − Q L i − U i ∑ i ∈ j [ U j ( G i j s i n θ i j − B i j c o s θ i j ) ] = 0 (7) \begin{alignedat}{2} P_{Gi} - P_{Li} - U_{i} \small{\sum_{\mathclap{ i \isin j}}} [U_{j}(G_{ij}cos\theta_{ij} + B_{ij}sin\theta_{ij})] = 0 \\ Q_{Gi} - Q_{Li} - U_{i} \small{\sum_{\mathclap{ i \isin j}}} [U_{j}(G_{ij}sin\theta_{ij} - B_{ij}cos\theta_{ij})] = 0 \end{alignedat} \tag {7} PGiPLiUiij[Uj(Gijcosθij+Bijsinθij)]=0QGiQLiUiij[Uj(GijsinθijBijcosθij)]=0(7)

将式(5)、(6)带入(7)中,可以得到负荷型连续潮流的数学模型 f ( x , λ ) = 0 {\bm f}({\bm x}, {\lambda}) = {\bm 0} f(x,λ)=0在极坐标下的表达式:
P G i 0 ( 1 + λ k G i ) − P L i 0 ( 1 + λ k L i ) − U i ∑ i ∈ j [ U j ( G i j c o s θ i j + B i j s i n θ i j ) ] = 0 Q G i 0 − Q L i 0 ( 1 + λ k L i ) − U i ∑ i ∈ j [ U j ( G i j s i n θ i j − B i j c o s θ i j ) ] = 0 (8) \begin{alignedat}{2} P_{Gi0}(1 + {\lambda}k_{Gi}) - P_{Li0}(1 + {\lambda}k_{Li}) - U_{i} \small{\sum_{\mathclap{ i \isin j}}} [U_{j}(G_{ij}cos\theta_{ij} + B_{ij}sin\theta_{ij})] = 0 \\ Q_{Gi0} - Q_{Li0}(1 + {\lambda}k_{Li}) - U_{i} \small{\sum_{\mathclap{ i \isin j}}} [U_{j}(G_{ij}sin\theta_{ij} - B_{ij}cos\theta_{ij})] = 0 \end{alignedat} \tag {8} PGi0(1+λkGi)PLi0(1+λkLi)Uiij[Uj(Gijcosθij+Bijsinθij)]=0QGi0QLi0(1+λkLi)Uiij[Uj(GijsinθijBijcosθij)]=0(8)

3. 连续潮流的主要步骤及程序流程图

假设我们研究一个含有 n n n个节点的网络,其中包含 n 1 n_1 n1PQ节点, n 2 n_2 n2PV节点。文末则提供了相关代码的下载链接。

3.1 预估(Predictor)

x = [ θ , V ] T {\bm x} =[{\bm \theta}, {\bm V}]^T x=[θ,V]T,则连续潮流的数学模型 f ( x , λ ) = 0 {\bm f}({\bm x}, {\lambda}) = {\bm 0} f(x,λ)=0可以写作 f ( θ , V , λ ) = 0 {\bm f}({\bm \theta}, {\bm V}, {\lambda}) = {\bm 0} f(θ,V,λ)=0,在取 λ ( 0 ) = 0 {\lambda}^{(0)} = 0 λ(0)=0(相当于常规潮流计算)后,首先可以得到初始解向量 [ θ ( 0 ) , V ( 0 ) , λ ( 0 ) ] T [{\bm \theta}^{(0)}, {\bm V}^{(0)}, {\lambda}^{(0)}]^T [θ(0),V(0),λ(0)]T,其中 V ( 0 ) {\bm V}^{(0)} V(0)为所有节点的电压幅值向量, θ ( 0 ) {\bm \theta}^{(0)} θ(0)为所有节点的电压相角向量。需要注意的是, f {\bm f} f x {\bm x} x的维数均为 ( 2 n 1 + n 2 ) (2n_1+n_2) (2n1+n2),然而连续潮流的未知量个数却有 ( 2 n 1 + n 2 + 1 ) (2n_1+n_2+1) (2n1+n2+1)个(在 x {\bm x} x的基础上增加了一个未知量 λ {\lambda} λ),即未知量的个数多于方程的个数,这也是为什么要采用连续法求解这一类问题。
预估的目的是找出下一个解的近似值,并将该近似值作为校正步骤的初值。假设在连续过程中的第 i i i步,已知 f ( x , λ ) = 0 {\bm f}({\bm x}, {\lambda}) = {\bm 0} f(x,λ)=0的解 [ θ ( i ) , V ( i ) , λ ( i ) ] T [{\bm \theta}^{(i)}, {\bm V}^{(i)}, {\lambda}^{(i)}]^T [θ(i),V(i),λ(i)]T,那么预估步骤就是寻找第 ( i + 1 ) (i+1) (i+1)步的解 [ θ ( i + 1 ) , V ( i + 1 ) , λ ( i + 1 ) ] T [{\bm \theta}^{(i+1)}, {\bm V}^{(i+1)}, {\lambda}^{(i+1)}]^T [θ(i+1),V(i+1),λ(i+1)]T的近似解(校正步骤初值) [ θ ~ ( i + 1 ) , V ~ ( i + 1 ) , λ ~ ( i + 1 ) ] T [{\tilde {\bm \theta}}^{(i+1)}, {\tilde {\bm V}}^{(i+1)}, {\tilde \lambda}^{(i+1)}]^T [θ~(i+1),V~(i+1),λ~(i+1)]T。采用的预估方法为:切线法。由于本文采用的参数化方法为局部参数化,因此接下来的切线法仅是针对局部参数化而言的
f ( x , λ ) = 0 {\bm f}({\bm x}, {\lambda}) = 0 f(x,λ)=0,即对式(8)的两边,对 θ {\bm \theta} θ V {\bm V} V λ {\lambda} λ取微分可得:
d f = ∂ f ∂ θ d θ + ∂ f ∂ V d V + ∂ f ∂ λ d λ = 0 (9a) {d {\bm f}} = {\frac {\partial {\bm f}} {\partial {\bm \theta}}} {d {\bm \theta}} + {\frac {\partial {\bm f}} {\partial {\bm V}}} {d {\bm V}} + {\frac {\partial {\bm f}} {\partial {\lambda}}} {d {\lambda}} = {\bm 0} \tag {9a} df=θfdθ+VfdV+λfdλ=0(9a)

写成矩阵形式为:
[ ∂ f ∂ θ ∂ f ∂ V ∂ f ∂ λ ] [ d θ d V d λ ] = 0 (9b) \begin{bmatrix} \Large {\frac {\partial {\bm f}} {\partial {\bm \theta}}} & \Large {\frac {\partial {\bm f}} {\partial {\bm V}}} & \Large {\frac {\partial {\bm f}} {\partial {\lambda}}} \end{bmatrix} \begin{bmatrix} {d {\bm \theta}} \\ {d {\bm V}} \\{d {\lambda}} \end{bmatrix} = \bm{0} \tag {9b} [θfVfλf]dθdVdλ=0(9b)

式(9b)中,矩阵 [ ∂ f ∂ θ , ∂ f ∂ V ] [{\Large {\frac {\partial {\bm f}} {\partial {\bm \theta}}}}, {\Large {\frac {\partial {\bm f}}{\partial {\bm V}}}}] [θf,Vf]就是常规潮流计算的Jacobi矩阵,维数为 ( 2 n 1 + n 2 ) × ( 2 n 1 + n 2 ) (2n_1+n_2) {\times} (2n_1+n_2) (2n1+n2)×(2n1+n2);而列向量 [ ∂ f ∂ λ ] [{\Large {\frac {\partial {\bm f}} {\partial {\lambda}}}}] [λf]则是式(8)对 λ {\lambda} λ求偏导,其维数显然为 ( 2 n 1 + n 2 ) × 1 (2n_1+n_2) {\times} 1 (2n1+n2)×1。因此, [ ∂ f ∂ θ , ∂ f ∂ V , ∂ f ∂ λ ] [{\Large {\frac {\partial {\bm f}} {\partial {\bm \theta}}}}, {\Large {\frac {\partial {\bm f}}{\partial {\bm V}}}}, {\Large {\frac {\partial {\bm f}} {\partial {\lambda}}}}] [θf,Vf,λf]的维数为 ( 2 n 1 + n 2 ) × ( 2 n 1 + n 2 + 1 ) (2n_1+n_2) {\times} (2n_1+n_2+1) (2n1+n2)×(2n1+n2+1),切向量 [ d θ , d V , d λ ] T [{d {\bm \theta}}, {d {\bm V}}, {d {\lambda}}]^T [dθ,dV,dλ]T的维数为 ( 2 n 1 + n 2 + 1 ) × 1 (2n_1+n_2+1) {\times} 1 (2n1+n2+1)×1
显然,方程的个数比未知量的个数少1,这就需要添加一个方程。具体的解决方法是:指定切向量中的某一个分量为 + 1 +1 +1还是 − 1 -1 1,并称指定的这个分量为连续参数。在计算的最开始,选择 λ \lambda λ作为连续参数,因此切向量中的相应分量为 + 1 +1 +1,而在后续的计算中,则需要根据3.3节所述的方式选择连续参数,其斜率的符号(连续参数增大/减小的趋势)决定切向量中相应分量的符号。通过引入连续参数,式(9b)变为:
[ ∂ f ∂ θ ∂ f ∂ V ∂ f ∂ λ e k ] [ d θ d V d λ ] = [ 0 ± 1 ] (10) \begin{bmatrix} \Large {\frac {\partial {\bm f}} {\partial {\bm \theta}}} & \Large {\frac {\partial {\bm f}} {\partial {\bm V}}} & \Large {\frac {\partial {\bm f}} {\partial {\lambda}}} \\ {\bm{e}_k} \end{bmatrix} \begin{bmatrix} {d {\bm \theta}} \\ {d {\bm V}} \\ {d {\lambda}} \end{bmatrix} = \begin{bmatrix} \bm{0} \\ {\pm1} \end{bmatrix} \tag {10} [θfekVfλf]dθdVdλ=[0±1](10)

式(10)中, e k {\bm {e}_k} ek为一行向量,维数为 ( 2 n 1 + n 2 + 1 ) (2n_1+n_2+1) (2n1+n2+1),从而使方程组维数与未知量个数匹配。其中,除了连续参数所对应的元素(设为第 k k k个元素,其索引为 k k k)为 1 1 1外,其余所有元素均为 0 0 0
根据式(10),容易解出切向量 [ d θ , d V , d λ ] T [ {d {\bm \theta}}, {d {\bm V}}, {d {\lambda}}]^T [dθ,dV,dλ]T,当采用局部参数化方式时,可以根据切向量及式(11)进行解的预估:
[ θ ~ ( i + 1 ) V ~ ( i + 1 ) λ ~ ( i + 1 ) ] = [ θ ( i ) V ( i ) λ ( i ) ] + σ [ d θ d V d λ ] (11) \begin{bmatrix} {{\tilde {\bm \theta}}^{(i+1)}} \\ {{\tilde {\bm V}}^{(i+1)}} \\ {{\tilde \lambda}}^{(i+1)} \\ \end{bmatrix} = \begin{bmatrix} {{{\bm \theta}}^{(i)}} \\ {{{\bm V}}^{(i)}} \\ {{\lambda}}^{(i)} \\ \end{bmatrix} + {\sigma} \begin{bmatrix} {d {\bm \theta}} \\ {d {\bm V}} \\ {d {\lambda}} \\ \end{bmatrix} \tag {11} θ~(i+1)V~(i+1)λ~(i+1)=θ(i)V(i)λ(i)+σdθdVdλ(11)

式(11)中, [ θ ~ ( i + 1 ) , V ~ ( i + 1 ) , λ ~ ( i + 1 ) ] T [{\tilde {\bm \theta}}^{(i+1)}, {\tilde {\bm V}}^{(i+1)}, {\tilde \lambda}^{(i+1)}]^T [θ~(i+1),V~(i+1),λ~(i+1)]T为PV曲线上第 ( i + 1 ) (i+1) (i+1)个潮流解的预估值; [ θ ( i ) , V ( i ) , λ ( i ) ] T [{\bm \theta}^{(i)}, {\bm V}^{(i)}, {\lambda}^{(i)}]^T [θ(i),V(i),λ(i)]T为第 i i i个潮流解; [ d θ , d V , d λ ] T [ {d {\bm \theta}}, {d {\bm V}}, {d {\lambda}}]^T [dθ,dV,dλ]T为式(10)解出的切向量; σ {\sigma} σ为步长,合适的步长可以使预估值落在校正环节的收敛域内(离真实解足够近)。例如,假设在获取初始解 [ θ ( 0 ) , V ( 0 ) , λ ( 0 ) ] T [{\bm \theta}^{(0)}, {\bm V}^{(0)}, {\lambda}^{(0)}]^T [θ(0),V(0),λ(0)]T之后,结合由式(10)解出的切向量,选择合适的步长 σ {\sigma} σ,就可以沿着切线方向,得到PV曲线上的下一个潮流解 [ θ ( 1 ) , V ( 1 ) , λ ( 1 ) ] T [{\bm \theta}^{(1)}, {\bm V}^{(1)}, {\lambda}^{(1)}]^T [θ(1),V(1),λ(1)]T的预估值 [ θ ~ ( 1 ) , V ~ ( 1 ) , λ ~ ( 1 ) ] T [{\tilde {\bm \theta}}^{(1)}, {\tilde {\bm V}}^{(1)}, {\tilde \lambda}^{(1)}]^T [θ~(1),V~(1),λ~(1)]T

3.2 校正(Corrector)

在根据式(11)获取真实解的近似解之后,就可以将其作为式(8)的初始解,进行解的校正,通常采用的方式是牛顿法和拟牛顿法等。然而式(8)对应的方程组 f ( θ , V , λ ) = 0 {\bm f} ({\bm \theta}, {\bm V}, {\lambda}) = {\bm 0} f(θ,V,λ)=0的个数仍然比未知量的个数少1,因此需要增加一个方程。
对于局部参数化,可以通过固定连续参数的方式获得附加方程:
x k − x ~ k = 0 (12) x_k - {\tilde x}_k = 0 \tag {12} xkx~k=0(12)

式(12)中, x k x_k xk为连续参数, k k k为连续参数对应的索引, x ~ k {\tilde x}_k x~k为式(11)计算出的连续参数的预估值。
将式(12)与式(8)联立,可以得到增广潮流方程:
[ f ( θ , V , λ ) x k − x ~ k ] = 0 (13) \begin{bmatrix} {{\bm f}({\bm \theta}, {\bm V}, {\lambda})} \\ {x_k - {\tilde x_k}} \end{bmatrix} = {\bm 0} \tag {13} [f(θ,V,λ)xkx~k]=0(13)

此时由于连续参数已经确定,即 k k k与$$已知,因此对于式(13)而言,只需对基于牛顿-拉夫逊法的常规潮流计算程序作些许修正即可用于对式(13)的求解,具体而言,仅仅只需将常规潮流计算程序的Jacobi矩阵及不平衡向量各自增加一阶即可。对增广Jacobi矩阵而言,在常规潮流的Jacobi矩阵基础上,增加一个列向量 [ ∂ f ∂ λ ] [\Large {\frac {\partial {\bm f}} {\partial {\lambda}}}] [λf],维数为 ( 2 n 1 + n 2 ) × 1 (2n_1+n_2) {\times} 1 (2n1+n2)×1;增加一个行向量 e k {\bm e}_k ek,维数为 ( 2 n 1 + n 2 + 1 ) (2n_1+n_2+1) (2n1+n2+1),显然,除了第 k k k个元素为1外, e k {\bm e}_k ek的其他元素均为0,故而增广Jacobi矩阵的维数为 ( 2 n 1 + n 2 + 1 ) × ( 2 n 1 + n 2 + 1 ) (2n_1+n_2+1) {\times} (2n_1+n_2+1) (2n1+n2+1)×(2n1+n2+1)。在临界点附近,常规潮流的Jacobi矩阵接近奇异,但是附加方程的存在,保证在临界点附近的增广Jacobi矩阵非奇异,需要指出的是,在临界点以外,仍然可以使用连续法,从而越过临界点,作出PV曲线的下半段。

3.3 选择连续参数(Select the Continuation Parameter)

在预估步骤中,求解出切向量 t = [ d θ , d V , d λ ] T {\bm t}=[{d {\bm \theta}}, {d {\bm V}}, {d {\lambda}}]^T t=[dθ,dV,dλ]T之后,可以按照式(14)进行连续参数的选择:
y k = m a x { ∣ t 1 ∣ , ∣ t 2 ∣ , . . . , ∣ t m ∣ } , m = 2 n 1 + n 2 + 1 (14) y_k=max{\{|t_1|, |t_2|, ..., |t_m|\}}, m=2n_1+n_2+1 \tag {14} yk=max{t1,t2,...,tm},m=2n1+n2+1(14)

式(14)中, y k \large {y_k} yk的下标 k k k就是在后续的预估、校正环节中所对应的索引 k k k。连续潮流计算的起始阶段,PV曲线较为平坦,换言之, λ \lambda λ的变化率较大,而电压幅值和相角在负载变化下则保持相当恒定,故而此时选择 λ \lambda λ作为连续参数(显然此时 k = m k = m k=m)。而在PV曲线到达临界点附近时,则电压幅值和相角的变化率较大,因此选择 λ \lambda λ作为连续参数则不是较好的选择,此时按照式(14)选择连续参数及索引 k k k
一旦连续参数被确定下来,式(10)中,等号右侧向量的最后一项取 + 1 +1 +1还是 − 1 -1 1也可以随之确定:若连续参数在连续潮流计算过程中是增加的,则取 + 1 +1 +1;若连续参数在连续潮流计算过程中是减小的,则取 − 1 -1 1。一般而言,选择 λ \lambda λ作为连续参数时,式(10)等号右侧向量的最后一项取 + 1 +1 +1,而在选择电压幅值作为连续参数时,式(10)等号右侧向量的最后一项取 − 1 -1 1(在PV曲线中,电压幅值一直是降低的,但是,电压相角不一定具有这样的性质)。
最后需要指出两点:(1) 每次进行“预估-校正”时,都要重新进行连续参数的选择;(2) 在同一“预估-校正”流程中,校正环节中使用的索引 k k k与预估环节中使用的索引 k k k是相同的。

3.4 关于临界点(Critical Point)与步长

在连续潮流计算中,在预估、校正环节中,需要额外注意临界点的位置及步长选择等问题。
要判断连续潮流程序是否已经计算到临界点,可以借用切向量 [ d θ , d V , d λ ] T [ {d {\bm \theta}}, {d {\bm V}}, {d {\lambda}}]^T [dθ,dV,dλ]T中,关于 λ {\lambda} λ的分量 d λ {d {\lambda}} dλ所具备的性质:在PV曲线的上半段为正值,在PV曲线的临界点处为0,越过临界点后(在PV曲线的下半段)为负值。因此在根据式(10)解出切向量 [ d θ , d V , d λ ] T [ {d {\bm \theta}}, {d {\bm V}}, {d {\lambda}}]^T [dθ,dV,dλ]T后,可以根据 d λ {d {\lambda}} dλ的符号立刻判断出连续潮流计算程序是否计算至临界点,进而可以确定程序对于PV曲线的跟踪状态。
另一方面,步长 σ {\sigma} σ的选择决定着连续潮流的效率甚至是成功与否:若步长太小,虽然更加安全,但是需要绘制大量不必要的点,造成计算时间过长;而若步长过大,则会使预估值偏离真实值,甚至可能造成校正步骤的迭代不收敛(牛顿-拉夫逊法对初值的要求较高)。然而我们事先并不知道PV曲线的走势, σ {\sigma} σ很大程度上要根据具体情况选择,因此步长控制较为困难。

3.5 连续潮流的程序流程图

综上所述,连续潮流的程序流程图如下:

Created with Raphaël 2.2.0 开始 基于初始数据(λ = 0),进行常规潮流计算 选择λ作为起始的连续参数 根据式(10),计算切向量 dλ > 0 参数化:根据切向量的值及式(14), 确定下一轮迭代的连续参数 预测环节:根据切向量及式(11), 计算解的预估值 校正环节:根据预估值及式(13)进行校正 越过临界点,结束 yes no

4. 程序运行结果

这里选择的算例为IEEE 14节点,其数据来源为matpower 6.0。为简化分析,令所有负荷的增长系数 k L i = 1 k_{Li} = 1 kLi=1、所有发电机有功出力的增长系数 k G i = 1 k_{Gi} = 1 kGi=1,同时不考虑发电机因为功率越限问题而发生的PV->PQ节点等问题。选择Bus 5作为电压观测点,其PV曲线如下图所示。
在这里插入图片描述
PV曲线局部:起始阶段。此时PV曲线较为平坦,选择 λ {\lambda} λ作为连续参数,故而在上图中,体现为垂直校正:预估点与校正点的横坐标相同(因为此时连续参数 λ {\lambda} λ是固定的)。
在这里插入图片描述
PV曲线局部:临界点附近。此时PV曲线较为陡峭,在这一阶段,程序经过判断后选择Bus 5的电压幅值作为连续参数,故而在上图中,体现为水平校正:预估点与校正点的纵坐标相同(因为此时连续参数Bus 5的电压幅值是固定的)。
在这里插入图片描述
对于Bus 5的PV曲线则如上图所示。

5. 参考文献

[1] 赵晋泉, 张伯明. 连续潮流及其在电力系统静态稳定分析中的应用[J]. 电力系统自动化, 2002, 29(11): 91-97.
[2] AJJARAPU V, CHRISTY C. The Continuation Power Flow: A Tool for Steady State Voltage Stability Analysis[J]. IEEE Trans on Power System, 1992, 7(1): 416-423.
[3] 王锡凡. 现代电力系统分析[M]. 北京: 科学出版社, 2003.
[4] 古婷婷. 基于改进连续潮流法的静态电压稳定分析[D]. 西安: 西安理工大学.
[5] 安俊俊. 基于改进的连续潮流的静态电压稳定分析的研究[D]. 郑州: 郑州大学.
[6] AJJARAPU V. Computational Techniques for Voltage Stability Assessment and Control[M]. New York: Springer, 2006.

6. 程序链接

CPF程序下载

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

圆周率的距离

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值