Você está na página 1de 20

Fast Power Flow Methods

1.0 Introduction What we have learned so far is the so-called fullNewton-Raphson (NR) power flow algorithm. The NR algorithm is perhaps the most robust algorithm in the sense that it is most likely to obtain a solution for tough problems, which are problems that start from guesses that are not close to their solution. For example, solving a large power flow case from a flat start is usually considered to be a tough problem, and as a result, it is best to do that with a NR. But NR is slow! Often, the problem is not so tough, and in that case, the so-called fast decoupled (FDC) algorithm is also effective in getting the solution, there is no loss of accuracy, and it is much faster. A common situation where FDC is attractive is when you have solved the case, and then you want to re-solve the case (using a hot start) to analyze the effect of some not-sodramatic change. Here, the fact that the problem is not so tough calls for relaxing solution algorithm robustness.

There are situations where speed is paramount, but accuracy is not. For example, in on-line analysis of 50,000 contingencies, we may want to only filter the contingencies that have potential to result in problems, and then perform full analysis on those. In such cases, the DC power flow is appropriate. Although DC power flow is fast and robust, it is not very accurate. Solving the power flow equations can be computationally intensive. In these notes, we review FDC and DC power flow methods. You can see the relation between the NR and these two in Table 1, in terms of speed, accuracy, and solution robustness. Table 1
Solution method Newton-Raphson Fast decoupled DC Speed Slow Fast Very fast Accuracy Accurate Accurate Approximate Solution robustness Robust Less robust Robust

2.0 The fast decoupled power flow The Jacobian matrix,

J P J = Q J

J PV QV J

(1)

has a special characteristic in that the elements of the off-diagonal submatrices JQ and JPV are usually very small relative to the elements of the diagonal submatrices JP and JQV (In fact, we have seen that in the first iteration of a flat start, when we assume all angles are 0, the elements of the off-diagonal matrices are all 0.) This is because every term in the expressions of the off-diagonal blocks are (a) multiplied by a G or (b) multiplied by a sin. The overall terms are small because, for transmission: conductance G tends to be small and angular differences across circuits tend to be small, resulting in small sin terms. These observations are consistent with our understanding that P is not very sensitive to voltage magnitude (i.e., small V k
Pj ( x)

and V ), and Q is j
Q j ( x) k

Pj ( x)

not very sensitive to angle (i.e., small


Q j ( x) k

and

).

We can take advantage of these observations in the following way. Instead of using the exact Jacobian, lets assume that all elements of the off-diagonal submatrices are in fact 0 and remain 0 throughout the entire NR algorithm. In other words, lets just use the following Jacobian:
3

J P J = T 0

0 QV J

(2)

Note what this does to our update equation:

( j)

( j)

P = Q
( j)

(3)
( j)

Substituting (2) into (3), we have:

J T 0

0 QV J

( j)

P = Q

(4)

Performing the indicated matrix multiplication, we obtain:

J P ( j ) ( j ) = P ( j )
( j)

(5) (6)

J QV ( j ) V

= Q ( j )

Equations (5) and (6) have the following remarkable feature: real power equations are decoupled from the voltage magnitudes, and reactive power equations are decoupled from the angles. The implication is that either one of equations (5) and (6) may be solved independent of the other one!
4

Our power flow algorithm remains exactly as it was before, with the only exception being in Step 4. 1. Specify: All admittance data (series Y, charging capacitance, transformer taps, & shunts) Pd and Qd for all buses (whether PV, PQ, or swing) Pg and |V| for all PV buses |V| for swing bus, with =0 2. Set the iteration counter j=0. Use one of the following to guess the initial solution. Flat Start: Vk=1.0 0 for all buses. Hot Start: Use the solution to a previously solved case for this network. 3. Compute the mismatch vector for x(j), denoted as f(x). In what follows, we denote elements of the mismatch vector as Pk and Qk corresponding to the real and reactive power mismatch, respectively, for the kth bus (which would not be the kth element of the mismatch vector for two reasons: one reason pertains to the swing bus and the other reason to the fact that for type PQ buses, there are two equations per bus and not one). This computation will also result in all necessary calculated real and reactive power injections. Perform the following stopping criterion tests: If |Pk|< P for all type PQ & PV buses and If ||Qk|< Q for all type PQ buses, Then go to step 5 Else Go to step 4. 4. Find an improved solution as follows: Evaluate the Jacobian J at x(j). Denote this Jacobian as J(j) Solve for x(j) by applying LU decomposition to:
This is only change in algorithm!!

J P ( j ) ( j ) = P ( j )
J QV ( j ) V
( j)

= Q ( j )

Compute the updated solution vector as x(j+1)= x(j)+ x(j). Return to step 3 with j=j+1. 5. Stop.

How to see that the FDC algorithm is faster than NR? In NR, step 4 computes

( j)

( j)

P = Q

The Jacobian has dimension (2N-1-NG). P In FDC, J has dimension (N-1), and JQV has dimension (N-NG). For example, if we have 20000 buses and 2000 generators, then the Jacobian in the NR has dimension of 37,999, but the FDC algorithm Jacobians will have dimensions of 19,999 and 18,000, respectively. It is known that the speed of LU decomposition is a function, approximately linear, of the number of elements. The number of elements in NR is (37,999)2=1.44E9, whereas in FDC it is (19,999)2+(18,000)2=7.24E8. Therefore, FDC will be about twice as fast per iteration as NR. However, because the Jacobian gives the direction to move the solution in each iteration, we do suffer a loss in accuracy per iteration, and therefore we may need more iterations to obtain the final solution.

Given these two opposing forces (less time per iteration and more iterations), it is usually the case that FDC is between 1.5 and 2 times faster than NR. But what about accuracy? We have said that the FDC algorithm will be less accurate per iteration. Does that imply that it will provide a less accurate solution once it stops iterating? The answer to this question depends on the stopping criterion. Note that in the above FDC algorithm, the stopping criterion is given in Step 3, and it is exactly the same as the stopping criterion used in the NR. That is, both algorithms are computing the mismatch as Pk ( x ) Pk and Qk ( x ) Qk , and Pk ( x ) and Qk ( x ) are computed with the full real and reactive power flow equations, respectively, in both algorithms. It is very important to recognize that the approximation in FDC algorithm is applied to the Jacobian matrix but NOT the power flow equations used to compute the elements of the mismatch vector. The conclusion that we can make here is that A POWER FLOW SOLUTION OBTAINED BY FDC IS JUST AS ACCURATE AS A POWER FLOW SOLUTION OBTAINED BY NR.
7

3.0 FDC algorithm: enhancements We may simplify the FDC algorithm still further, making it still faster (but less accurate) per iteration by working with the expressions of the Jacobian elements for JP and JQV. Consider the terms J jk . If we neglect G and under small angle approximation (so that sin(j-k)0 and cos(j-k)1):
J P = jk Pj ( x) k = V j Vk G jk sin( j k ) B jk cos( j k ) = V j Vk B jk
P Now consider the terms J jj .
P

)
(7)

J P = jj

Pj ( x) j

= Q j ( x) B jj V j

N = V j Vk G jk sin( j k ) B jk cos( j k ) B jj V j k =1

(8)

Again, using small Gjk approximation, the above is


J P jj = Pj ( x) j

and

small
2

angle (9)

N = V j Vk B jk B jj V j k =1

We will now make use of an assumption that the voltage profile is flat, i.e., |Vk|=|Vj|. Then (9) becomes:

J P jj

Pj ( x) j

N = V j V j B jk B jj V j k =1
2 N

N 2 2 = V j B jk V j B jj = V j k =1
N

B jk B jj k =1

(10)

Now consider the summation in the curly brackets.


k =1

B jk = B j1 + B j 2 + ... + B j , j 1 + B jj + B j , j +1 + ... + B jN

(11)

Recall that from definition of Y-bus elements: kj: Bjk=-bjk bjk=-Bjk k=j: Bjj=bj1+bj2++bj,j-1+bj+bj,j+1++bjn and using the relation from the first bullet: =-Bj1-Bj2--Bj,j-1+bj-Bj,j+1--BjN where bj is sum of all shunt susceptance at bus j.

(12)

Substituting this last expression (12) for Bjj into (11), we obtain:
k =1

B jk = B j1 + B j 2 + ... + B j , j 1
+ B j1 B j 2 ... B j , j 1 + b j B j , j +1 ... B jN + B j , j +1 + ... + B jN =bj

(13)

Substituting (13) into (10), we obtain:


J P jj = Pj ( x) j = V j b j B jj
9

(14)

We could perform the subtraction in (14) using (12) to see that the term is just the negative of the sum of all non-shunt branches connected to bus j. However, bj is typically very small compared to Bjj so that neglecting bj is quite accurate, resulting in:
J P = jj Pj ( x) j = V j B jj
2

(15)

Likewise, under assumptions of flat voltage profile and small angle, we can show that:
J QV = jk Q j ( x) Vk = V j G jk sin( j k ) B jk cos( j k )

)
(16)

= V j B jk

J QV jj

Q j ( x) Vj

Q j ( x) Vj

B jj V j

= V j B jj
J P = jk Pj ( x) = V j Vk B jk

(17)

Summarizing eqs. (7), (15), (16), and (17), we have:


k Pj ( x)

(7) (15) (16) (17)


10

J P = jj
J QV = jk

j
Vk

= V j B jj
= V j B jk

Q j ( x)

J QV jj

Q j ( x) V j

= V j B jj

Noting that the Jacobian matrix has no equations or variables for bus 1 (the swing bus), we define the B matrix as:
B22 B B' = 32 M Bn 2 B23 ... B2 n B33 ... B3n M M... M Bn 3 ... Bnn

(18)

where this matrix may be obtained from the Y-bus by simply stripping off the first row and first column (assuming the swing bus is #1) and taking the imaginary part of all elements. This matrix is appropriate for writing the JP terms of (7) and (15) in compact notation, as given by (19) below:

J P = [V ]B [V ]
0 V3 M 0 K

(19)

where

V2 M [V ] = M 0

0 M M M M K Vn

(20)

Observe that B is pre-multiplied and post-multiplied by [V] to account for the product of two voltages in (7) and (15). Now, regarding the JQV terms
11

If we could assume that we would have reactive power flow equations for all buses in the network, then we would use B for the JQV terms as well. But we do not have reactive power flow equations for the PV buses, only for the PQ buses. To account for this, we need to eliminate the rows and columns corresponding to type PV buses from B and from [V]. Using the numbering scheme 1,,NG, as being the voltage control buses, and bus Ng+1,,N as being the type PQ buses, then eliminate row and column number 1,,Ng-1 from B and [V]. Lets refer to the resulting matrices as B and [V]. Then (16) and (17) become:

J QV = [V ]B

(21) (19) (21)

Summarizing, our decoupled pf equations are:

J P = [V ]B [V ] J QV = [V ]B

Now lets look at our correction formula

12

Recalling eqs. (5) and (6):


J QV ( j ) V
( j)

J P ( j ) ( j ) = P ( j )
= Q ( j )
( j)

(5) (6) (22) (23) (24) (25)

and substituting (19, 21) into (5-6), we obtain:

[V ]B [V ]

( j)

= P

[V ]B V

( j)

= Q ( j )

Multiplying both sides by -1 results in:

[V ]B[V ] ( j ) = P ( j ) [V ]B V ( j ) = Q ( j )

There are two more changes which prove useful in terms of capturing additional computational efficiency (more speed). The first change is an approximation: let the second [V] in eq. (24) be the identity matrix based on the assumption that we have a flat voltage profile (all the same) and that all voltages are close to 1.0. Making this change in eq. (24), our correction equations become:

[V ]B ( j ) = P ( j ) ( j) ]B V [V = Q ( j )
13

(26) (25)

The second change is to pre-multiply (26) by [V]-1 and (25) by [V]-1. This change results in

( j)

= [V ] P
1

( j)

B V

( j)

= [V ]1 Q ( j )
0 1 V3 M 0 K M M K 0 M M 1 Vn
P2 V 2 P3 V3 M P n Vn

(27) (28)

Considering (27), since [V] is diagonal, [V]-1 is

[V ]1

1 V 2 M = M 0

(29)

Multiplication of (29) by the real power mismatch vector gives the right-hand-side of (27):
1 V 2 M M 0 0 1 V3 M 0 0 P2 M M P3 = M M M 1 Pn K Vn K

(30)

A similar thing can be done for the reactive power correction equation (28):
14

[V ]1

1 VN g +1 M = M 0

0 1 VN g + 2 M 0

K M M K

0 M M 1 Vn

(31)

Multiplication of (31) by the reactive power mismatch vector gives the right-hand-side of (28):
1 VN g +1 M M 0 0 1 VN g + 2 M 0 K M M K 0 M M 1 Vn QN g +1 QN +1 VN g +1 g Q N g + 2 Q N g + 2 = M VN g + 2 M (32) Qn Qn V n

Based on (30) and (32), eqs. (27) and (28) become:

15

( j) B

P2 V 2 P3 = V3 M Pn Vn

( j)

~ = P
(33)

B V

( j)

QN g +1 VN g +1 QN g + 2 = VN g + 2 M Qn Vn

( j)

~ = Q
(34)

where the notation of the far right-hand-side in (33) and (34) indicates the right-hand-sides of (31) and (32). Two comments remain:

16

1. Wheres the speed-up? We still retain the speed up of the previous FDC algorithm, which is due to the fact that the LU-decomposition is faster per iteration as a result of the decoupling (and corresponding reduction in total matrix elements). The method described here provides additional speed-up from two sources: The B-matrix need not be reevaluated in each iteration, and the B matrix is formed by simply deleting appropriate rows and columns from B, and so we save the time of evaluating Jacobian matrix elements. Because the left-hand-side of eq. (33) is constant, we need perform LU-decomposition for this equation only once. Given the L and U factors, we need to only perform forward and backward substitution for each different righthand-side. We are not quite as fortunate with the reactive power correction equation, (34), because there we must re-factorize each time the list of voltage control buses changes. 2. Algorithm: I indicated the power flow algorithm is exactly the same as in the NR, but there is a minor difference in that Steps 3 and 4 (page 5 above) can be alternated, as follows:

17

~ P using a. Step 3a: Compute mismatch of

( j 1)

and V

( j 1 )

. using

~ Q c. Step 3b: Compute mismatch of ( j 1 ) ( j) and V .


d. Step 4b: Solve eq. (34) for V . e. Step 3c: Perform stopping criterion tests: If |Pk|< P for all type PQ & PV buses and If |Qk|< Q for all type PQ buses, Then go to step 5 Else ( j + 1) ( j) ( j) = +
V
( j + 1)
( j)

( j) b. Step 4a: Solve eq. (33) for .

=V

( j)

+ V

( j)

Return to step 3 with j=j+1. The reason why this improves speed is because the update on voltages are done using a step based on the most recent update on angles, and this tends to reduce the necessary number of iterations.

18

4.0 DC Power Flow Return to equation convenience: (33),


( j)

repeated

here

for

B '

( j)

P2 V 2 P3 = V3 M Pn Vn
( j)

~ = P
(33)

Now assume all voltages are 1.0. Then eq. (33) becomes:

B ( j )

P2 1 .0 P 3 = 1 .0 M Pn 1 .0

P2 P = 3 M Pn = P

( j)

= P
(35)

So, equation (35) becomes:

( j)

(36)

19

This equation, when solved just once (j=1) for (1), and with a flat-start solution, implies that =0+(1)=(1), and, if we assume that this solution is the correct one, then in other words, (37) where P(0) are the real power flow equations for buses 2 to N evaluated at (0)=0 (i.e., the flat start), and P are the real power flow injections into each bus 2 to N. Therefore, (38) This gives all of the angles for the network with a single solution to a set of linear equations. Then, the real power flows can be computed with (39) which is the power flowing across a circuit connected between buses k and j under conditions of (a) neglecting resistance, (b) small angle approximation, and (c) all voltage magnitudes are 1.0.

B = P = P (0) P = P

B = P

Pkj = Bkj ( k j )

20

Você também pode gostar