0% found this document useful (0 votes)
48 views7 pages

Ps Code

This document contains the code for performing a Gauss-Seidel power flow analysis on a 4 bus system. It initializes parameters such as line impedances, loads, and voltages. It then calculates the bus admittance matrix and iterates to solve for bus voltages and power flows until convergence is reached based on mismatches between scheduled and calculated power within a specified tolerance over a maximum number of iterations.

Uploaded by

Tawsiful Alam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views7 pages

Ps Code

This document contains the code for performing a Gauss-Seidel power flow analysis on a 4 bus system. It initializes parameters such as line impedances, loads, and voltages. It then calculates the bus admittance matrix and iterates to solve for bus voltages and power flows until convergence is reached based on mismatches between scheduled and calculated power within a specified tolerance over a maximum number of iterations.

Uploaded by

Tawsiful Alam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

clc

%Gauss-Seidel power Flow Program%

Iter = 0;

Maxiter = 9;

converge = 0;

tolerance = 0.001;

j =sqrt(-1);

%------Input line Impedace----------%

Z = [0 0.0047+0.0474i 0.0062+0.0632i 0.0047+0.0474i];

%------Base Values -----------------%

kVLL = 230;

MVA3Ph = 100;

%-----Line Impedane in pu-----------%

Z12 = 0.01008+j*0.05040;%Z12_ohm/Zbase;

Z13 = 0.00744+j*0.03720;%Z13_ohm/Zbase;

Z24 = 0.00744+j*0.03720;%Z12_ohm/Zbase;

Z34 = 0.01272+j*0.06360;%Z23_ohm/Zbase;

% --------Susceptance in pu---------%

B12 = j*0.05125;%B12_micro_mho*Zbase*10^-6;

B13 = j*0.03875;%B13_micro_mho*Zbase*10^-6;

B24 = j*0.03875;%B12_micro_mho*Zbase*10^-6;

B34 = j*0.06375;%B23_micro_mho*Zbase*10^-6;
%----Finding the Admittance Matrix Ybus----%

Y = zeros(length(Z),length(Z)); % For three bus system assumed

Y(1,1) = 1/Z12 + 1/Z13+B12+B13;

Y(1,2) = -1/Z12;

Y(1,3) = -1/Z13;

Y(1,4) =0;

Y(2,1) = -1/Z12;

Y(2,2) = 1/Z12 +1/Z24+B12+B24;

Y(2,3) = 0;

Y(2,4) = -1/Z24;

Y(3,1) = -1/Z13;

Y(3,2) = 0;

Y(3,3) = 1/Z13 +1/Z34+B13+B34;

Y(3,4) =-1/Z34;

Y(4,1) = 0;

Y(4,2) = -1/Z24;

Y(4,3) = -1/Z34;

Y(4,4) = 1/Z24+1/Z34+B24+B34;

G = real(Y);

B = imag(Y);

%---Initialize line variables-------%

I = zeros(1,length(Z));

P = zeros(1,length(Z));

Q = zeros(1,length(Z));

S = zeros(1,length(Z));
%---Input bus parameters----%

V = ones(1,length(Z)); % Flat start voltage profile 1+j0

Pload = zeros(1,length(Z));

Qload = zeros(1,length(Z));

Psched = zeros(1,length(Z));

Qsched = zeros(1,length(Z));

Bustype = zeros(1,length(Z));

Bustype(1) = 'S'; %Slack bus

Bustype(2) = 'G'; %PV bus

Bustype(3) = 'L'; %PQ bus

V(4) = 1.02;

Pload(2) = 1.7;

Qload(2) = 1.0535;

Pload(3) = 2;

Qload(3) = 1.2394;

Pload(4) = -.8;

%---set up power schedule----%

totload = 0.0;

for i =1:length(Z)

Psched(i) = -Pload(i);

Qsched(i) = -Qload(i);

totload = totload+Pload(i);

end
%---Calcultate P and Q at each bus----%

for i = 1:length(Z)

I(i) = 0.0+sqrt(-1)*0.0;

for j = 1:length(Z)

I(i) = I(i)+Y(i,j)*V(j);

end

S(i) = V(i)*conj(I(i));

P(i) = real(S(i));

Q(i) = imag(S(i));

end

%--Display bus voltages-------%

fprintf('\n %s %2d %s \n', 'Iter',Iter, ' Vreal Vimag Vmag Vangle P Q')

for i = 1:length(Z)

Vitermag = abs(V(i));

Viterang = (180./pi)*atan2(imag(V(i)), real(V(i)));

fprintf('\n %s %2d %7.4f %7.4f %7.4f %7.4f %7.4f %7.4f \n',' Bus ', i, real(V(i)), imag(V(i)),
Vitermag, Viterang, P(i), Q(i))

end

while converge == 0

Iter = Iter+1;

MAXDP = 0.0;

MAXDPBus = 0;

MAXDQ = 0.0;

MAXDQBus = 0;

for i = 1:length(Z)
%----Calculate net P and Q at bus i ------%

I(i) = 0.0+sqrt(-1)*0.0;

for j = 1:length(Z)

I(i) = I(i)+Y(i,j)*V(j);

end

S(i) = V(i)*conj(I(i));

P(i) =real(S(i));

Q(i) =imag(S(i));

if Bustype(i)=='G'

Qsched(i) = Q(i);

end

deltap(i) = abs(P(i)-Psched(i));

deltaq(i) = 0.0;

if Bustype(i)=='L'

deltaq(i) = abs(Q(i)-Qsched(i));

end

if Bustype(i) == 'S'

deltap(i) = 0.0;

deltaq(i) = 0.0;

end

if Bustype(i)~= 'S'

if deltap(i) > MAXDP

MAXDP = deltap(i);

MAXDPbus = i;

end

if deltaq(i) > MAXDQ

MAXDQ = deltaq(i);

MAXDQbus = i;
end

%Y*V for row i of Y matrix without Yii term------%

sum = 0.0;

for j = 1:length(Z)

if j ~=i

sum = sum+Y(i,j)*V(j);

end

end

Vnew = (1.0/Y(i,i))*(((Psched(i)-sqrt(-1)*Qsched(i))/(conj(V(i))))-sum);

V(i) = Vnew;

end

end

% -------Print and save result from last iteration--------%

%--------Calculate net P and Q at bus i-------%

for i = 1:length(Z)

I(i) = 0.0+sqrt(-1)*0.0;

for j = 1:length(Z)

I(i) = I(i)+Y(i,j)*V(j);

end

S(i) = V(i)*conj(I(i));

P(i) = real(S(i));

Q(i) = imag(S(i));

if Bustype(i) =='G'

Qsched(i) = Q(i);

end

end

fprintf('\n %s %2d %s \n', 'Iter',Iter, ' Vreal Vimag Vmag Vangle P Q')

for i = 1:length(Z)

Vitermag = abs(V(i));
Viterang = (180./pi)*atan2(imag(V(i)), real(V(i)));

fprintf('\n %s %2d %7.4f %7.4f %7.4f %7.4f %7.4f %7.4f \n',' Bus ', i, real(V(i)), imag(V(i)),
Vitermag, Viterang, P(i), Q(i))

end

% -------Check for convergence----%

if MAXDP < tolerance

if MAXDQ < tolerance

converge = 1;

end

end

if Iter > Maxiter

converge = 1;

end

end

You might also like