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