Kron Reduction
In power system anylasis, kron reduction is a way of reducing buses in Y bus matrix of the power system. It usually used for two reasons
- To
remove a bus where current injection is zero to reduce size of matrix thereby
effectively making computation easy. Buses with no load or source don't inject
currents.
- To
use only some buses specific buses instead of whole system to know required
voltages only. This way we can get voltages of our interest with less
computational power of our computer.
If Y j ,k is our matrix to
be kron reduced and p is number of row and coloum to be reduced then this
formula is used to find kron reduced elements.
Matlab Code:
%Author: Muhammad Awais
fb/awais12506
%Kron Reduction
%p is row and colum to be
removed
%Y is array to be kron
reduced
clear all
clc
p=2;
Y=[-16.75i 11.75i 2.5i 2.5i
11.75i -19.25i 2.5i 5i
2.5i 2.5i -5.8i 0
2.5i 5i 0 8.3i];
[row,col]=size(Y);
Y_new=zeros(row,col); %Produces 4 by 4 matrixes of zeros
%In this loop all p colum
and row is replaced by 0 and other by respective
%value
for k=1 :row
for l=1 : col
if k==p || l==p
Y_new(k,l)=0;
else
Y_new(k,l)=Y(k,l)-((Y(k,p)*Y(p,l))/(Y(p,p)));
end
end
end
% To remove p row and colum
Y_new(:, p) = [];
Y_new(p, :) = [];
Y_new
Example:
Kron Reduction
by calculation
Kron Reduction
by our Program:
Y_new =
0 - 9.5779i 0 + 4.0260i 0 + 5.5519i
0 + 4.0260i 0 - 5.4753i 0 + 0.6494i
0 + 5.5519i 0 + 0.6494i 0 + 9.5987i
There was a mistake while entering data so answer was a bit wrong. Mistake is corrected and now also I have written the code in function form ....
MATLAB Code:
function Y_Reduced=KronReduction(Y,p)
[row,col]=size(Y);
Y_new=zeros(row,col);
for k=1 :row
for l=1 : col
if k==p || l==p
Y_new(k,l)=0;
else
Y_new(k,l)=Y(k,l)-((Y(k,p)*Y(p,l))/(Y(p,p)));
end
end
end
Y_new(:, p) = [];
Y_new(p, :) = [];
Y_Reduced=Y_new;
end
Output: