Вы находитесь на странице: 1из 6

Kron Reduction

æ I1 ö æ Y11 Y12 Y13 ö æ V1 ö


ç ÷ ç ÷ç ÷
Let ç I2 ÷ ç Y21 Y22 Y23 ÷ × ç V2 ÷
ç0÷ çY Y Y ÷ çV ÷
è ø è 31 32 33 ø è 3 ø
Pull out the last equation and solve for V3:
-Y31 Y32
V3 × V1 - × V2
Y33 Y33

Substitute this into the other two equations:

æ Y13 × Y31 Y13 × Y32 ö


ç Y11 - Y12 - ÷
æ I1 ö ç
Y33 Y33
÷ ×æ 1 ö
V
ç ÷ ç ÷
è I2 ø ç Y23 × Y31 Y23 × Y32 ÷ è V2 ø
ç Y21 - Y Y22 -
Y33
÷
è 33 ø
Generalization to eliminate bus k:
Yik× Ykj
Ynewij Yij -
Ykk

where i and j are understood to range over all values except for k.
It is assumed that Ykk is not zero or the reduction fails.
Shipley's Partial Inverse
It is no longer necessary to assume that any current injections are
zero. Let

æ I1 ö æ Y11 Y12 Y13 ö æ V1 ö


ç ÷ ç ÷ç ÷
ç I2 ÷ ç 21 22 23 ÷ × ç V2 ÷
Y Y Y
çI ÷ çY Y Y ÷ çV ÷
è 3ø è 31 32 33 ø è 3 ø
1
Solve the last equation for V3 in terms of V1, V2, and I3:
-Y31 Y32 1
V3 × V1 - × V2 + × I3
Y33 Y33 Y33

Substitute that into the other equations, but keep this one also:

éæ Y13 × Y31 ö æ Y23 × Y32 ö Y13 ù


ê ç 11
Y - ÷ ç 22
Y - ÷ ú
è Y33 ø è Y33 ø Y33
æ I1 ö ê ú æ V1 ö
ç ÷ êæ Y23 × Y31 ö æ Y23 × Y32 ö Y23 ú ç ÷
ç I2 ÷ ê ç Y21 - Y ÷ ç Y22 - Y ÷ V
ú ×ç 2 ÷
Y
çV ÷ êè 33 ø è 33 ø 33 úçI ÷
è 3ø ê è 3 ø
Y31 Y32 1 ú
ê - - ú
ë Y33 Y33 Y33 û

Notice that we have derived a hybrid matrix representation that is


completely equivalent to the original one, except we have
"partially" inverted the matrix. This is very useful in many cases
where some voltages are known and other currents are known.
To formalize the idea, we describe these operations as pivoting
on the matrix axis. Here we pivoted on axis 3, but in general we
would pivot on axis k:
Now pivot on bus k: a) on all elements not on pivot row (row k) or
pivot column (column k), perform the Kron reduction. On the pivot
column, replace Yik by Yik/Ykk. On the pivot row, replace the
element by its old value divided by the pivot element (Ykk). On
the pivot column, replace the element by the negative of its old
value divided by the pivot element. Replace the pivot element by
its inverse.
ORIGIN := 1

2
Pinv ( A , k) := n ¬ rows ( A )
1
Ak ,k ¬
Ak , k
for i Î 1 .. n
A i , k ¬ A i , k × A k , k if i ¹ k
for j Î 1 .. n
if j ¹ k
for i Î 1 .. n
A i , j ¬ ( A i , j - A i , k × A k , j) if i ¹ k
A k , j ¬ -A k , j × A k , k
A

æ 19.56 -18.76 0 0 0 ö
ç -18.76 29.27 -4.00 -6.67 0
÷
ç ÷
Y := -j × ç 0 -4.00 7.78 -4.00 0 ÷
ç 0 -6.67 -4.00 23.01 -12.50 ÷
ç ÷
è 0 0 0 -12.50 13.30 ø
pivot on axis 5:
Y5 := Pinv ( Y , 5)

æ -19.560j 18.760j 0.000 0.000 0.000 ö


ç 18.760j -29.270j 4.000j 6.670j 0.000
÷
ç ÷
Y5 = ç 0.000 4.000j -7.780j 4.000j 0.000 ÷
ç 0.000 6.670j 4.000j -11.262j -0.940 ÷
ç ÷
è 0.000 0.000 0.000 0.940 0.075j ø
continue by pivoting on axis 4 also

3
Y4 := Pinv ( Y5 , 4)

æ -19.560j 18.760j 0.000 0.000 0.000 ö


ç 18.760j -25.320j 6.369j -0.592 -0.557
÷
ç ÷
Y4 = ç 0.000 6.369j -6.359j -0.355 -0.334 ÷
ç 0.000 0.592 0.355 0.089j 0.083j ÷
ç ÷
è 0.000 0.557 0.334 0.083j 0.154j ø
continue by pivoting on axis 3 also
Y3 := Pinv ( Y4 , 3)

æ -19.560j 18.760j 0.000 0.000 0.000 ö


ç 18.760j -18.941j -1.002 -0.948 -0.891
÷
ç ÷
Y3 = ç 0.000 1.002 0.157j 0.056j 0.052j ÷
ç 0.000 0.948 0.056j 0.109j 0.102j ÷
ç ÷
è 0.000 0.891 0.052j 0.102j 0.171j ø
Go back to original matrix and pivot on axis 2:

æ -7.536j -0.641 2.564j 4.275j ö


0.000
ç 0.641 0.034j 0.137 0.228 0.000
÷
ç ÷
Pinv ( Y , 2) = ç 2.564j -0.137 -7.233j 4.912j 0.000 ÷
ç 4.275j -0.228 4.912j -21.490j 12.500j ÷
ç ÷
è 0.000 0.000 0.000 12.500j -13.300j ø
Partial inverse done repeatedly over all axes of the matrix gives
the matrix inverse:

4
Inv( A ) := n ¬ rows ( A )
for k Î 1 .. n
A ¬ Pinv ( A , k)
A
Z := Inv( Y)

æ 1.021j 1.012j 1.013j 0.959j 0.901j ö


ç 1.012j 1.055j 1.056j 1.000j 0.940j
÷
ç ÷
Z = ç 1.013j 1.056j 1.215j 1.057j 0.994j ÷
ç 0.959j 1.000j 1.057j 1.057j 0.993j ÷
ç ÷
è 0.901j 0.940j 0.994j 0.993j 1.008j ø

æ 1.000 0.000 0.000 0.000 0.000 ö


ç 0.000 1.000 0.000 0.000 0.000
÷
ç ÷
Check Y × Z = ç 0.000 0.000 1.000 0.000 0.000 ÷
ç 0.000 0.000 0.000 1.000 0.000 ÷
ç ÷
è 0.000 0.000 0.000 0.000 1.000 ø
Numerical results will be better if the pivoting is done on the large
diagonal elements first and on the small diagonal elements last. If
a diagonal element is zero, the method fails (as will most inverse
matrix routines). If the zero pivot elements are saved until last,
the result is the best partial inverse.
Matrix condition number checks for ill-conditioning:
condi( Y) = 313.226

Example

æ 1 -1 ö -1 æ 3.000 2.000 ö
m := ç ÷ m = ç ÷
è -1 1.5 ø è 2.000 2.000 ø

5
æ 0.333 -0.667 ö
condi( m) = 12.500 Pinv ( m , 2) = ç ÷
è 0.667 0.667 ø
This example is OK, but the next one is ill conditioned or nearly
singular:

æ 1 -1 ö 4
mill := ç ÷ condi( mill) = 4.000 ´ 10
è -1 1.0001 ø
æ 1.000 ´ 10 4 1.000 ´ 10 4 ö
-1
mill = ç ÷
ç 1.000 ´ 10 4 1.000 ´ 10 4 ÷
è ø
æ 9.999 ´ 10 - 5 -1.000 ö
Pinv (mill, 2) = ç ÷
è 1.000 1.000 ø
The next one is actually singular:

æ 1 -1 ö
msing := ç ÷ rank( msing) = 1.000
è -1 1 ø
Will have an infinite condition number, since it is rank deficient
(i.e., singular). The inverse will not exist. This method (and all
others) will fail on the singular matrix.