For the given system data construct Ybus matrix Solve for un

For the given system data, construct Y_bus matrix. Solve for unknown variables using the Gauss-Seidel or Newton-Raphson Power flow method. Solve until the tolerance is less than 0.0001. Also calculate the power flows in all the lines. System Data and Y_bus matrix are: Bus tolerance = ||v_x^k + 1 - v_x^k|| where V is the solution vector. ||V|| is the norm operator. If V = [V_1 V_2], ||V|| = squareroot v_1^2 + V_2^2 You must compute the values of tolerance at the end of each iteration.

Solution

clc
clear all;
load data.m;
bus=data(1,:);
nb=bus(1);
nl=bus(3)+bus(5);
tibus=data(2,:);
Npv=tibus(2);
npq=tibus(1);
Npq=nb-Npv;
linedata=data(3:nl+2,1:end);
sn=bus(6);
if sn~=0,
    bu=data(nl+3:nl+2+sn,1:end);
else
    bu=zeros(1,end);
end
pqdata1=zeros(nb,1);
pqdata=data(nl+3+sn:(nl+npq++sn+2),(1:end));
pvdata=data((nl+npq+sn+3):(nl+npq+sn+Npv+2),(1:end));
for i=1:10,
    pqdata1(pqdata(:,1),i)=pqdata(:,i);
end
for j=1:nb,
    if pqdata1(j,1)==0,
        pqdata1(j,1)=j;
    end
end
pqdata1(:,5)=1;
pqdata1(:,6)=max(pvdata(:,6));
pqdata1(:,7)=min(pvdata(:,7));
pqdata1(:,8)=pqdata1(:,3);
pqdata(:,3)=0;
for i=1:npq,
    if i<=Npv,
        loaddata=pvdata;
    end
end
for i=1:Npv,
if pqdata(i,1)==pvdata(i,1),
    loaddata(i,10)=pqdata(i,2);
end
end
loaddata=[loaddata; pqdata1(Npv+1:nb,1:end)];
disp(\'---------------------------------------------% given data%-------------------------------------------------------------------------------\');
disp(\'----------------------------------------------%bus data%---------------------------------------------------------------------------------\');
disp(\'   b          itr           rtr       nrtr   trl          sz      SVC    Pd\');
disp(bus);
disp(\'-----------------------------------------------%transmission bus data%--------------------------------------------------------------------\');
disp(\'     pq          g           tol\');
disp(tibus);
disp(\'------------------------------------------------%line data%--------------------------------------------------------------------------------\');
disp(\' From           To       R        X             G/2        B/2      TAP     limits    tmin     tmax\');
disp(linedata);
disp(\'-----------------------------------------------%shunt admitance data%-----------------------------------------------------------------------\');
disp(\'Bus                   R               X\')
disp(bu);
disp(\'------------------------------------------------%loadf data%--------------------------------------------------------------------------------\');
disp(\'     Bus      MW      Qgmx       Qgmn      Vsp         Vmax     Vmin\');
disp(loaddata);
itr=0;
a=linedata(:,7);                %---------Ybus caluculation------------%
r=linedata(:,3);
x=linedata(:,4);
z=r+1i*x;
b=zeros(nb,1);
if bu(:,1)~=0,
b(bu(:,1))=1./bu(:,4);
end
c=1i.*b;
disp(\'b\');
disp(b)
y=1./z;
disp(\'y\');
disp(y)
fb=linedata(:,1);
tb=linedata(:,2);
v=ones(nb,1);
d=zeros(nb,1);
Y=zeros(nb,nb);
for i=1:nl
    Y(fb(i),tb(i))=Y(fb(i),tb(i))-(y(i)/conj(a(i)));
    Y(tb(i),fb(i))=Y(fb(i),tb(i));
end
for i=1:nb
     for j=1:nl
         if fb(j)==i
             Y(i,i)=Y(i,i)+y(j)/((a(j))^2)+complex(0,linedata(j,6));
         else if tb(j)==i
              Y(i,i)=Y(i,i)+y(j)+complex(0,linedata(j,6));
             end
         end
     end
      Y(i,i)=Y(i,i)-c(i);
end
disp(\'Y\');
disp(Y)
G=real(Y);
B=imag(Y);
g=2*Npq+Npv;
bus=ones(nb,1);
for i=Npv+1:nb,
    bus(i,1)=2;
end
for i=1:nb
    v(i,1)=loaddata(i,5);
    d(i,1)=0;
end
disp(\'v\');
disp(v)
vmx=loaddata(:,6);
vmn=loaddata(:,7);
if max(loaddata(:,2))>50,
    base=100;
else
    base=1;
end
qlmx=loaddata(:,3)/base;
qlmn=loaddata(:,4)/base;
tol=10;
                                    %--------NEWTON RAPHSON METHOD----------
    while (tol>0.0001)
    vprev=v;
    P=zeros(nb,1);
    Q=zeros(nb,1);
    for i=1:nb
        for k=1:nb
        P(i,1)=P(i,1)+(v(i,1))*(G(i,k)*cos(d(i,1)-d(k,1))+B(i,k)*sin(d(i,1)-d(k,1)))*v(k,1);
        Q(i,1)=Q(i,1)+(v(i,1))*(G(i,k)*sin(d(i,1)-d(k,1))-B(i,k)*cos(d(i,1)-d(k,1)))*v(k,1);
        end
        if bus(i)==1,
            if (Q(i)>qlmx(i) || Q(i)<qlmn(i)),
               if(Q(i)<qlmn(i)),
                   Q(i)=qlmn(i);
               else
                   Q(i)=qlmx(i);
               end
               bus(i)=2;
           else
               bus(i)=1;
            end
        end
    end
    disp(\'bus\')
    disp(bus)
disp(\'P\')
disp(P)
disp(\'Q\')
disp(Q)
Pspec=zeros(nb-1,1);
Qspec=zeros(Npq,1);
for i=2:nb
Pspec(i-1,1)=(loaddata(i,2)-loaddata(i,10))/base;
end
for i=Npv+1:nb,
    Qspec(i-(Npv),1)=loaddata(i,8)/base;
end
delP=zeros(nb-1,1);                                 %--------mismatch calculation----------------%
delQ=zeros(Npq,1);
for i=2:Npv
    delP(i-1,1)=Pspec(i-1,1)-P(i,1);
end
for i=Npv+1:nb
    delP(i-1,1)=(-1)*Pspec(i-1,1)-P(i,1);
   delQ(i-(Npv),1)=(-1)*Qspec(i-(Npv),1)-Q(i,1);
end
disp(\'delP\');
disp(delP)
disp(\'delQ\');
disp(delQ)
del=zeros(g-1,1);
for i=1:g-1
    if (i<nb)
        del(i,1)=delP(i,1);
    end
    if (i>=nb)
        del(i,1)=delQ(i-(nb-1),1);
    end
end
disp(\'del\');
disp(del)
J11=zeros(nb-1,nb-1);                             %-----------jacobian matrix calculation------------%
J12=zeros(nb-1,Npq);
J21=zeros(Npq,nb-1);
J22=zeros(Npq,Npq);
for i=2:nb
    for k=2:nb
        if(k==i)
            for l=1:nb
                if(l~=i)
                    J11(i-1,k-1)=J11(i-1,k-1)+v(i,1)*v(l,1)*(-G(i,l)*sin(d(i,1)-d(l,1))+B(i,l)*cos(d(i,1)-d(l,1)));
                end
            end
        else
            J11(i-1,k-1)=(v(i,1)*v(k,1)*(G(i,k)*sin(d(i,1)-d(k,1))-B(i,k)*cos(d(i,1)-d(k,1))));
        end
    end
end
for i=2:nb
    for k=Npv+1:nb
        if(i==k)
            for l=1:nb
                if(l~=i)
                    J12(i-1,k-(Npv))=J12(i-1,k-(Npv))+v(l,1)*(G(i,l)*cos(d(i,1)-d(l,1))+B(i,l)*sin(d(i,1)-d(l,1)));
                end
            end
            J12(i-1,k-(Npv))=J12(i-1,k-(Npv))+2*v(i,1)*G(i,i);
        else
            J12(i-1,k-(Npv))=v(i,1)*(G(i,k)*cos(d(i,1)-d(k,1))+B(i,k)*sin(d(i,1)-d(k,1)));
        end
    end
end
for i=Npv+1:nb
    for k=2:nb
        if(i==k)
            for l=1:nb
                if(l~=i)
                    J21(i-(Npv),k-1)=J21(i-(Npv),k-1)+v(i,1)*v(l,1)*(G(i,l)*cos(d(i,1)-d(l,1))+B(i,l)*sin(d(i,1)-d(l,1)));
                end
            end
        else
            J21(i-(Npv),k-1)=(v(i,1)*v(k,1)*(-G(i,k)*cos(d(i,1)-d(k,1))-B(i,k)*sin(d(i,1)-d(k,1))));
        end
    end
end
for i=Npv+1:nb
    for k=Npv+1:nb
        if(k==i)
            for l=1:nb
                if(l~=i)
                    J22(i-(Npv),k-(Npv))=J22(i-(Npv),k-(Npv))+(v(l,1)*(G(i,l)*sin(d(i,1)-d(l,1))-B(i,l)*cos(d(i,1)-d(l,1))));
                end
            end
            J22(i-(Npv),k-(Npv))=J22(i-(Npv),k-(Npv))-2*v(i,1)*B(i,i);
        else
            J22(i-(Npv),k-(Npv))=v(i,1)*(G(i,k)*sin(d(i,1)-d(k,1))-B(i,k)*cos(d(i,1)-d(k,1)));
        end
    end
end
disp(\'J11\');
disp(J11)
disp(\'J12\');
disp(J12)
disp(\'J21\');
disp(J21)
disp(\'J22\');
disp(J22)
J=[J11 J12;J21 J22];
disp(\'J\');
disp(J)
Ji = inv(J);
Vcn=(inv(J))*del;                                 %---------change in load angles and voltages----------%
disp(\'Vcn\');
disp(Vcn)
deld=zeros(nb-1,1);
delv=zeros(Npq,1);
for i=1:nb-1
    deld(i,1)=Vcn(i,1);
end
disp(\'deld\');
disp(deld)
for i=nb:g-1
    delv(i-(nb-1),1)=Vcn(i,1);
end
disp(\'delv\');
disp(delv)
dnew=zeros(nb-1,1);
vnew=zeros(Npq,1);
for i=2:nb                                          %-----------updating the voltages and load angles-----------%
    d(i,1)=d(i,1)+deld(i-1,1);
end
disp(\'d\');
disp(d)
for i=Npv+1:nb
    v(i,1)=v(i,1)+delv(i-Npv,1);
end
disp(\'v\');
disp(v)
tol=max(abs(abs(v(:,1))-abs(vprev(:,1))));
if tol<=0.0001,
    disp(\'the system is converging in the no.of iterations= \');
    disp(itr);
end
itr=itr+1;
disp(\'tol\');
disp(tol)
    end
    p1=0;q1=0;
    for k=1:nb
        P(1,1)=p1+(v(1,1))*(G(1,k)*cos(d(1,1)-d(k,1))+B(1,k)*sin(d(1,1)-d(k,1)))*v(k,1);
        Q(1,1)=q1+(v(1,1))*(G(1,k)*sin(d(1,1)-d(k,1))-B(1,k)*cos(d(1,1)-d(k,1)))*v(k,1);
        p1=P(1);
        q1=Q(1);
    end
    disp(\'P\');
    disp(P)
    disp(\'Q\');
    disp(Q)
    d=d*(180/pi);
disp(\'VM\');
disp(v);
disp(\'delta_bus load angle\');
disp(d);
vrect=zeros(nb,1);
for i=1:nb,
vrect(i)=v(i)*(cosd(d(i))+1i*sind(d(i)));
end
pls=zeros(11,4);
plss=zeros(11,4);
I0=zeros(nl,1);
Ic=zeros(nl,1);
sflow=zeros(nl,1);
I=zeros(nl,1);
ploss=zeros(nl,1);
for i=1:nl,
    for j=1:nb,
        for k=1:nb,
            if fb(i)==j && tb(i)==k,
                I0(i)=1i*b(j)*vrect(j);
                Ic(i)=v(j)*complex(0,linedata(i,6));
                I(i)=(conj(vrect(j))-conj(vrect(k)))*(-(conj(Y(j,k))));
                ploss(i,1)=(abs(I(i))^2)*real(1./(-(conj(Y(j,k)))));
                 pls(i,1)=i;
                pls(i,2)=j;
                pls(i,3)=k;
                pls(i,4)=ploss(i,1);
            end
        end
    end
end
disp(\'----------------%power loss%-------------------\');
disp(\'tr.line no. bus(from) bus(to) powerloss\');
disp(pls)
pl=0;
for i=1:nl,
    pl=pl+pls(i,4);
end
disp(\'total powerloss in per unit..........,\');
disp(pl);
if base==100,
    disp(\'power loss in MWs..................,\');
    pl=pl*base;
    disp(pl);
end
sf=zeros(nl,3);
for i=1:nl,
    sf(i,1)=fb(i);
    sf(i,2)=tb(i);
    sf(i,3)=vrect(fb(i))*((conj(vrect(fb(i)))-conj(vrect(tb(i))))*a(i)*(-conj(Y(fb(i),tb(i))))+conj(vrect(fb(i)))*conj(complex(0,0.5*linedata(i,6))));
end
sf=conj(sf);
disp(\'------------------------%forward power flow%-------------------------------------------\');
disp(\'         from       to                    power flow\');
disp(sf);
sr=zeros(nl,3);
for i=1:nl,
    sr(i,1)=tb(i);
    sr(i,2)=fb(i);
    sr(i,3)=vrect(tb(i))*((conj(vrect(tb(i)))-conj(vrect(fb(i))))*a(i)*(-conj(Y(tb(i),fb(i))))+conj(vrect(tb(i)))*conj(complex(0,0.5*linedata(i,6))));
end
sr=conj(sr);
disp(\'------------------------%reverse power flow%-------------------------------------------\');
disp(\'         from       to                    power flow\');
disp(sr);

 For the given system data, construct Y_bus matrix. Solve for unknown variables using the Gauss-Seidel or Newton-Raphson Power flow method. Solve until the tole
 For the given system data, construct Y_bus matrix. Solve for unknown variables using the Gauss-Seidel or Newton-Raphson Power flow method. Solve until the tole
 For the given system data, construct Y_bus matrix. Solve for unknown variables using the Gauss-Seidel or Newton-Raphson Power flow method. Solve until the tole
 For the given system data, construct Y_bus matrix. Solve for unknown variables using the Gauss-Seidel or Newton-Raphson Power flow method. Solve until the tole
 For the given system data, construct Y_bus matrix. Solve for unknown variables using the Gauss-Seidel or Newton-Raphson Power flow method. Solve until the tole
 For the given system data, construct Y_bus matrix. Solve for unknown variables using the Gauss-Seidel or Newton-Raphson Power flow method. Solve until the tole
 For the given system data, construct Y_bus matrix. Solve for unknown variables using the Gauss-Seidel or Newton-Raphson Power flow method. Solve until the tole

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site