Está en la página 1de 6

Contents

AnlisisdeEstabilidaddeVoltajemedianteelmtododeanlisismodal.
DatosdelSistema
ConstruccindeYbus
DatosIniciales
FormacindelJacobiano

clearall;clc;close;

AnlisisdeEstabilidaddeVoltajemedianteelmtododeanlisismodal.
DatosdelSistema
%LosvaloresdadosporaelprogramasetomandelTexto
%PowerSystemStabilityandControl,CH.14.3.4
%TiposdeNodos:
%0Generacinycargaenelmismonodo
%1Carga
%2Generacin(VoltajeControlado)
%3Slack
%DatosdelosNodos
%No.TipoV|V|AngGenCarga
%NodoNodop.u.p.u.DegMWMvarMWMvar
nd=[131.00+0*1i1.0000000;
210.8311+0.2024*1i0.85540.2389000.80.4];

%DatosdelasLneasdeTransmisin
%No.No.RX1/2B
%NodoNodop.u.p.u.p.u.
ld=[1200.250];

ConstruccindeYbus
nl=ld(:,1);nr=ld(:,2);R=ld(:,3);
X=ld(:,4);Bc=1i*ld(:,5);
nbr=length(ld(:,1));nbus=max(max(nl),max(nr));
Z=R+1i*X;y=ones(nbr,1)./Z;
%FormacindeloselementosfueradelaDiagonal
forn=1:nbr
Ybus=zeros(nbus,nbus);
fork=1:nbr;
Ybus(nl(k),nr(k))=Ybus(nl(k),nr(k))y(k);
Ybus(nr(k),nl(k))=Ybus(nl(k),nr(k));

end
end
%FormacindeloselementosfueradelaDiagonal
forn=1:nbus
fork=1:nbr
ifnl(k)==n
Ybus(n,n)=Ybus(n,n)+y(k)+Bc(k);
elseifnr(k)==n
Ybus(n,n)=Ybus(n,n)+y(k)+Bc(k);
else
end
end
end
%Secreaunamatrizdelascapacitancias
G=zeros(length(ld(:,1)),1);B=ld(:,5);
yc=G+B*1i;
%SecreaunaYparalascapacitancias
fork=1:length(ld(:,1))
x=ld(k,1);y=ld(k,2);
Yc(x,y)=yc(k);
Yc(y,x)=yc(k);
end

DatosIniciales
Nodos=length(nd(:,1));%NumerodenodosdelSistema
Nodoslack=1;%Identificacindelnodoslack
error=1e2;%Errorparaladiferenciadepotencias
SB=100;%PotenciaBase
Kmax=20;%NumerodeIteraciones
%IncrementosdeCargaIniciales(DireccinpropuestaparaPyQ)
ciP=0.1*ones(Nodos1,1);
ciQ=0.2*ones(Nodos1,1);
Ktolerancia=1e4;%Toleranciadadaparaladiferenciadedistancias
Kanterior=0;%Condicininicialparalasdistancias
Kactual=1;
z=0;%Contador
%DelaYbusseobtienensunguloymagnitud
[theta,Ym]=cart2pol(real(Ybus),imag(Ybus));
%SeextraendelatablalosdatosdePotenciasactivayreactivaencada
%nodo
forx=1:Nodos
ifnd(x,2)~=3
P0g(x1)=nd(x,6)/SB;
Q0g(x1)=nd(x,7)/SB;
P0c(x1)=nd(x,8)/SB;
Q0c(x1)=nd(x,9)/SB;
end
end
P0caux=P0c';
Q0caux=Q0c';
%Nmerodelnodoquesequiereanalizar
NodoAnalisis=2;
while(abs(KactualKanterior))>Ktolerancia

P0c=P0caux;
Q0c=Q0caux;
P=(P0g'P0c);
Q=(Q0g'Q0c);
D1=[];
D2=[];
EI1=[];
EI2=[];
K=0;
while(K<Kmax)
Sesp=[P;Q];%Vectordepotenciasespecificadas
V=nd(:,4);%Condicionesinicialesdelamatrizdevoltajes
delta=nd(:,5);%Condicionesinicialesdelamatrizdengulos
dS=Sesp;
K=0;
while(((max(abs(dS)))>error)&&(Kmax>K))

Pn=zeros(Nodos,1);
Qn=zeros(Nodos,1);
%CalculodePotenciasNetas
forx=1:Nodos
ifnd(x,2)~=3
fory=1:Nodos
Pn(x)=(V(x)*V(y)*Ym(x,y)*cos(theta(x,y)delta(x)+delta(y)))+Pn(x);
Qn(x)=(V(x)*V(y)*Ym(x,y)*sin(theta(x,y)delta(x)+delta(y)))+Qn(x);
end
end
end
%PotenciaCalculadas
Pn(Nodoslack,:)=[];
Qn(Nodoslack,:)=[];
Sn=[Pn;Qn];
%DiferenciaentrePotenciaespecificadayPotenciaCalculadas
dS=SespSn;

FormacindelJacobiano
%CalculareltamaodelJacobianoH,L,N,J
H=zeros(Nodos,Nodos);L=zeros(Nodos,Nodos);
N=zeros(Nodos,Nodos);J1=zeros(Nodos,Nodos);
n1=0;l1=0;
%ElementosfueradeladiagonaldelJacobiano
forx=1:Nodos
ifnd(x,2)~=3
fory=1:Nodos
ifx~=y
H(x,y)=V(x)*V(y)*Ym(x,y)*sin(theta(x,y)delta(x)+delta(y));
N(x,y)=V(x)*Ym(x,y)*cos(theta(x,y)delta(x)+delta(y));
J1(x,y)=V(x)*V(y)*Ym(x,y)*cos(theta(x,y)delta(x)+delta(y));
L(x,y)=V(x)*Ym(x,y)*sin(theta(x,y)delta(x)+delta(y));
end
end
end

end
%DiagonaldelasmatricesdelJacobiano
forx=1:Nodos
ifnd(x,2)~=3
fory=1:Nodos
ifx~=y
H(x,x)=(V(x)*V(y)*Ym(x,y)*sin(theta(x,y)delta(x)+delta(y)))+H(x,x);
%H(x,x)=H(x,x)+h;
N(x,x)=(V(y)*Ym(x,y)*cos(theta(x,y)delta(x)+delta(y)))+N(x,x);
%n1=n1+n;
J1(x,x)=(V(x)*V(y)*Ym(x,y)*cos(theta(x,y)delta(x)+delta(y)))+J1(x,x);
%J1(x,x)=J1(x,x)+j1;
L(x,x)=(V(y)*Ym(x,y)*sin(theta(x,y)delta(x)+delta(y)))+L(x,x);
%l1=l1+l;
end
end
N(x,x)=(2*V(x)*Ym(x,x)*cos(theta(x,x)))+N(x,x);
L(x,x)=(2*V(x)*Ym(x,x)*sin(theta(x,x)))+L(x,x);
end
end
%EliminacindeFilayColumnaCorrespondientealnodoCompensador
H(Nodoslack,:)=[];H(:,Nodoslack)=[];
N(Nodoslack,:)=[];N(:,Nodoslack)=[];
J1(Nodoslack,:)=[];J1(:,Nodoslack)=[];
L(Nodoslack,:)=[];L(:,Nodoslack)=[];
J=[HN;J1L];JJ=[NH;LJ1];
K=K+1;
[R,D,W]=eig(JJ);
%D=real(D);
%W=real(W);
%Eigenvalores
D1(K,:)=D(1,:);
D2(K,:)=D(2,:);
%Eigenvectoresizquierdos
W=W';
EI1(K,:)=W(1,:);
EI2(K,:)=W(2,:);
%SolucinparaVoltajesyngulos
Ji=inv(J);
X1=Ji*dS;
ddelta=X1(1:length(J)/2);
dV=X1((length(J)/2)+1:length(J));
%SumadelosincrementosdeVoltajeyngulo
forx=2:Nodos
V(x)=V(x)+dV(x1);
delta(x)=delta(x)+ddelta(x1);
end

end
%IncrementodePotencias
P0c=P0c+ciP;
P=(P0g'P0c);
Q0c=Q0c+ciQ;
Q=(Q0g'Q0c);
end

z=z+1;
Jp=1;
%Eigenvalores
D1=D1(:,any(D1));
D2=D2(:,any(D2));
minimo1=min(abs(D1));
minimo2=min(abs(D2));
u1=find((abs(D1))==minimo1);
u2=find((abs(D2))==minimo2);
EV1=EI1(u1,:);
EV2=EI2(u2,:);
%SeguardaelvaloranteriordeladistanciaK
Kanterior=Kactual;
%DefinirculeselEigenvalormscercanoaceroydeterminarsu
%Eigenvectorcorrespondiente
ifminimo1>minimo2
EVI(z,:)=[EV2*Jp];
ciP=EV2(1)*Jp*0.005;
ciQ=EV2(2)*Jp*0.005;
end
ifminimo1<minimo2
EVI(z,:)=[EV2*Jp];
ciP=EV1(1)*Jp*0.005;
ciQ=EV1(2)*Jp*0.005;
end
%Clculodeladistancia
dP=P0cP0caux;
dQ=Q0cQ0caux;
Snew(z,:)=[P0cQ0c];
Kactual=norm([dPdQ]);
Kactual1(z)=Kactual;
Ite(z,:)=z;
end
Iteraciones=Ite;
EVIzq=EVI;
Ki=Kactual1';
Si=Snew;
Resultados=[IteracionesEVIzqKiSi];
fprintf('RESULTADOS')
fprintf('\n\nNumerodeIteraciones=%g\n',z)
fprintf('||\n')
fprintf('|Iteraciones||Eigenvector|')
fprintf('|Ki||Pi||Qi|\n')
disp(Resultados);
fprintf('||')

RESULTADOS

NumerodeIteraciones=7
||
|Iteraciones||Eigenvector||Ki||Pi||Qi|
1.00000.30430.95261.34160.60801.2040
2.00000.09370.99561.03500.32300.9899
3.00000.20780.97821.01500.10311.0145
4.00000.13800.99041.02500.22101.0066

5.00000.09230.99571.02000.14871.0142
6.00000.07600.99711.01500.10171.0147
7.00000.13460.99091.01500.08511.0161
||

PublishedwithMATLABR2014a

Intereses relacionados