Sunteți pe pagina 1din 5

clc; % clear command window

clear all; % clear Workspace


cd('E:\semester\6 TH SEMISTER\main\RAKIBUL HASAN\Power System
I');
% Change current directory

a=xlsread('EXPNO5_1_3.xlsx'); % Read data from MS Excel file


[r,c]=size(a); % Size of Matrix a

%-----------To know total bus number---------------


n=max(max(a(:,1)),max(a(:,2)));
Z=zeros(n); % Z has n-by-n matrices with Zero...
% ........values in all elements
q=1;
for p=1:r
Z(a(p,q),a(p,q+1))=a(p,q+2)+i*a(p,q+3); % Z receive the..
%...values from a
Z(a(p,q+1),a(p,q))=Z(a(p,q),a(p,q+1)); % For symmetry
end
for l=1:n
for k=1:n
if(Z(l,k)==0)
Z(l,k)=inf;
end
end
end
y=1./Z; % To get admittance from Impedance
Y=zeros(n); % Y has n-by-n matrices with ZERO...
% ........values in all elements
%--------For Y bus Matrices from y Matrices---------
for l=1:n
for k=1:n
if(l~=k)
Y(l,k)=-y(l,k);
else
for l1=1:n
Y(l,l)=Y(l,l)+y(l,l1);
end
end
end
end

disp(['This Problem is ',num2str(n),' Bus System']);


%For display
disp('The Admittance Matrix is:');
disp(Y)
%-------For Load Flow Study by Gauss-Seidel ------------
cd('E:\semester\6 TH SEMISTER\main\RAKIBUL HASAN\Power System
I');
ab=xlsread('EXPNO5_2_3.xlsx');
for lb=1:n
v(1,ab(lb,1))=ab(lb,2); % Here, v(iteration ,Bus no.)
Pg(ab(lb,1),1)=ab(lb,3);
Qg(ab(lb,1),1)=ab(lb,4);
Pl(ab(lb,1),1)=ab(lb,5);
Ql(ab(lb,1),1)=ab(lb,6);
A(ab(lb,1),1)=ab(lb,7);
V(1,ab(lb,1))=v(1,ab(lb,1))*exp(i*deg2rad(A(ab(lb,1),1)));
end
for l=2:n
P(l,1)=Pg(l,1)-Pl(l,1);
Q(l,1)=Qg(l,1)-Ql(l,1);
end
%iteration start__________________________
tol=.000001; % error tolerance level
it=input('Iteration: ');
for d=2:it
pp=0;qq=0;ppp=0;qqq=0;del_P=0;del_Q=0;
for l1=2:n
I(l1,1)=0;
S(l1,1)=0;
for l2=1:n
%CURRENT DETERMINATION
I(l1,1)=Y(l1,l2)*V(d-1,l2)+I(l1,1);
end
%INJECTED POWER
S(l1,1)=V(d-1,l1)*conj(I(l1,1));
%POWER MISMATCH
if Pg(l1,1)==0 && Qg(l1,1)==0
pp=pp+1;
ppp(pp)=l1; % matrix of BUS no. which
% is need to find angle(del_P)
qq=qq+1;
qqq(qq)=l1; % matrix of BUS no. which is
% need to find Voltage(del_Q)
del_P(pp,1)=P(l1,1)-real(S(l1,1));
del_Q(qq,1)=Q(l1,1)-imag(S(l1,1));
else
pp=pp+1;
ppp(pp)=l1;
del_P(pp,1)=P(l1,1)-real(S(l1,1));
end
end
del_PQ=0;
del_PQ=[del_P;del_Q]; %DEL MATRIX
%__________JACOBIAN MATRIX__________
H=zeros(n);
for p=1:n
for k=1:n
if k~=p
H(p,k)=-abs(V(d-1,p))*abs(V(d-
1,k))*abs(Y(p,k))*sin(angle(Y(p,k))-angle(V(d-1,p))+angle(V(d-
1,k)));
H(p,p)=H(p,p)+abs(V(d-1,p))*abs(V(d-
1,k))*abs(Y(p,k))*sin(angle(Y(p,k))-angle(V(d-1,p))+angle(V(d-
1,k)));
end
end
end
%In Jacobian matrix, H is PxP dimension where P=size(del_P)
H(:,1)=[];
H(1,:)=[];
L1=zeros(n);
for p=1:n
for k=1:n
if k~=p
L1(p,k)=abs(V(d-
1,p))*abs(Y(p,k))*cos(angle(Y(p,k))-angle(V(d-1,p))+angle(V(d-
1,k)));
L1(p,p)=L1(p,p)+abs(V(d-
1,k))*abs(Y(p,k))*cos(angle(Y(p,k))-angle(V(d-1,p))+angle(V(d-
1,k)));
end
end
L1(p,p)=L1(p,p)+2*abs(V(d-
1,p))*abs(Y(p,p))*cos(angle(Y(p,p)));
end
%In Jacobian matrix, L is PxQ dimension where P=size(del_P)
and Q=size(del_Q)
for p=1:max(size(ppp))
for k=1:max(size(qqq))
L(p,k)=L1(ppp(p),qqq(k));
end
end
M1=zeros(n);
for p=1:n
for k=1:n
if k~=p
M1(p,k)=-abs(V(d-1,p))*abs(V(d-
1,k))*abs(Y(p,k))*cos(angle(Y(p,k))-angle(V(d-1,p))+angle(V(d-
1,k)));
M1(p,p)=M1(p,p)+abs(V(d-1,p))*abs(V(d-
1,k))*abs(Y(p,k))*cos(angle(Y(p,k))-angle(V(d-1,p))+angle(V(d-
1,k)));
end
end
end
%In Jacobian matrix, M is QxP dimension where P=size(del_P)
and Q=size(del_Q)
for p=1:max(size(qqq))
for k=1:max(size(ppp))
M(p,k)=M1(qqq(p),ppp(k));
end
end
N1=zeros(n);
for p=1:n
for k=1:n
if k~=p
N1(p,k)=-abs(V(d-
1,p))*abs(Y(p,k))*sin(angle(Y(p,k))-angle(V(d-1,p))+angle(V(d-
1,k)));
N1(p,p)=N1(p,p)-abs(V(d-
1,k))*abs(Y(p,k))*sin(angle(Y(p,k))-angle(V(d-1,p))+angle(V(d-
1,k)));
end
end
N1(p,p)=N1(p,p)-2*abs(V(d-
1,p))*abs(Y(p,p))*sin(angle(Y(p,p)));
end
%In Jacobian matrix, N is QxQ dimension where Q=size(del_Q)
for p=1:max(size(qqq))
for k=1:max(size(qqq))
N(p,k)=N1(qqq(p),qqq(k));
end
end
J=[H L;M N]; % Jacobian matrix
del_Vdel(:,1)=inv(J)*del_PQ;
% Seperate del_del and del_V according BUS no.
del_del=zeros(1,n);
for p=1:max(size(ppp))
del_del(1,ppp(p))=del_Vdel(p,1);
end
pppqqq=[ppp qqq];
del_V=zeros(1,n);
for p=max(size(ppp))+1:max(size(pppqqq))
del_V(1,pppqqq(p))=del_Vdel(p,1);
end
V(d,:)=(abs(V(d-1,:))+del_V).*exp(i*(angle(V(d-
1,:))+del_del));
% Newton_Raphson Voltage
%_____________For Error Checking_______
noerror=1; % Let, initially no error
for k=2:n
if(Pg(k) ~=0)
% For gen, check (|angle difference|<tol)
noerror=noerror && ((abs(rad2deg(angle(V(d,k))-
angle(V(d-1,k)))))<tol);
elseif((Pg(k)==0) && (Qg(k)==0))
% For load, check (|magnitude difference|<tol)
% and (|angle difference|<tol)
noerror=noerror && ((abs(abs(V(d,k))-abs(V(d-
1,k))))<tol) && ((abs(rad2deg(angle(V(d,k))-angle(V(d-
1,k)))))<tol);
end
end
% Here, if all above difference < tol; noerror=1
% program enter into following if condition and
% iteration break. Otherwise iteration continues
if (noerror)
break;
end
end
%_____For Showing Output____
for k=1:n
disp(['Voltage of BUS ',num2str(k),': ',
num2str(abs(V(d,k))),' Angle= ',
num2str(rad2deg(angle(V(d,k))))]);
end

S-ar putea să vă placă și