Está en la página 1de 2

clear vars

format compact
format short

zdatos=[1 2 0 0.08
2 3 0.0043 0.05
2 3 0.0125 0.045]
ni=zdatos(:,1) %zdatos(:,1)
nf=zdatos(:,2)
R=zdatos(:,3)
X=zdatos(:,4)
nra=length(zdatos(:,1))
nnod=max(max(zdatos(:,1)),max(zdatos(:,2)))
Z=R+i.*X
Y=zeros(nnod)
y=ones(nra,1)./Z %tpdas ls filas una sola columna
%necesitamos discriminar por ejemp�o que la barra 4 no etconcetada a la 1,
%usamos un bucle for/end fuera de la diagonal

for k=1:nra
if ni(k)>0 & nf(k)>0
Y(ni(k),nf(k))=Y(ni(k),nf(k))-y(k)
Y(nf(k),ni(k))=Y(ni(k),nf(k))
end
end

for a=1:nnod
for k=1:nra
if ni(k)==a || nf(k)==a
Y(a,a)=Y(a,a)+y(k)
end
end
end
%Yii = sumatoria Yij es la diagonal y Yij= -yij
%nra= aplicamos propiedad de la matriz
%length cantidad de filas o de columas independietes
dis1p('--------------------------Y BARRA-------------------')
Y
S3=140+i*60;
Sbase=100;
P2=-1.1+0.9;
Q21=-0.35;
Q2mvar=0;
S3=-1.4-0.6*i;
v1=1.02+i*0;
v2=1.01+i*0;
v3=1+i*0;
ybarra=Y
iter=input('ingrese el numero de iteraciones')
disp( ' iter/ Ve / delta3 / Q2 / delta2
/ ')
for k=1:iter;
v3(k+1)=(((real(S3)-i*imag(S3))/conj(v3(k)))-(ybarra(1,3))*v1-
(ybarra(2,3)*v2(k)))/(ybarra(3,3));
Q2(k+1)=-imag(conj(v2(k))*(v2(k)*(ybarra(2,2))+v1*ybarra(2,1)+
(v3(k+1))*ybarra(2,3)));
v2(k+1)=(((P2-1i*(Q2(k+1)))/conj(v2(k)))-(ybarra(2,1))*v1-
(ybarra(2,3)*(v3(k+1))))/(ybarra(2,2));
v2r=sqrt((((1.01*1.01)-(imag(v2(k+1))).^2)));
v2c=v2r+i*imag(v2(k+1));
v2(k+1)=v2c;

er2=abs(imag(v2(k+1))-imag(v2(k)));
er3=abs(real(v3(k+1))-real(v3(k)));
er4=abs(imag((v3(k+1)))-imag((v3(k))));

if er2<0.00001 & er3<0.00001 & er4<0.00001


break
end
fprintf('\n %3.0f %4.4f %4.4f� %4.4f %4.4f�
%4.4f %4.4f
%4.4f',k,abs(v3(k+1)),radtodeg(angle((v3(k+1)))),Q2(k+1),abs(v2(k+1)),radtodeg(angl
e((v2(k+1)))))
end

También podría gustarte