Matlab
ARCHIVO FUENTE:
function principal ()
global Zpu;
global Spu;
global V;
global I;
global Inodo;
clc;
disp('----------------------------------------------------------------
-----')
disp( 'METODO ESCALONADO');
disp('----------------------------------------------------------------
-----')
Vb=14.4;
Pb=0.1;
Errorpref=0.000001;
iteracion=0;
Datos=xlsread('C:\Users\Asus Pc\Desktop\metodo escalonado\Datos
iteracion');
% Datos=xlsread('C:\Users\Rolando\SkyDrive\Documentos\bluetooth\II-
2016\CARITO\Datos iteracion');
% Datos=xlsread('C:\Users\Asus Pc\Desktop\metodo
escalonado\SIMMSA_A');
Zpu=(Datos(:,1)+i*Datos(:,2)).*Datos(:,3)*(Pb./Vb^2)
Spu=(Datos(:,4)+i*Datos(:,5))./(Pb*1e3)
[m,k]=size(Datos);
%condiciones iniciales
V(m+1)=0.9*exp(-i*0.4*pi()/180);
I(m+1)=0;
Vo=1;
%primera iteracion
iteracion=iteracion+1
for j=m:-1:1
[V(j),I(j)]=calcula(j);
end;
% abs(Vo)
% abs(V(1))
Error=(abs(Vo)-abs(V(1)))
resultado(:,1)=V';
resultado(:,2)=I';
Inodo(1,m+1)=I(1,m+1);
resultado(:,3)=Inodo';
disp( 'Voltajes pu Corrientes de rama C0rriente de nodo');
disp('----------------------------------------------------------------
-----')
resultado
while (Error>Errorpref)
Errorcorrec=Vo-V(1);
V(m+1)=V(m+1)+Errorcorrec;
for j=m:-1:1
[V(j),I(j)]=calcula(j);
end;
% abs(Vo)
% abs(V(1))
Error=(abs(Vo)-abs(V(1)))
iteracion=iteracion+1
resultado(:,1)=V';
resultado(:,2)=I';
Inodo(1,m+1)=I(1,m+1);
resultado(:,3)=Inodo';
resultado
xlswrite('C:\Users\Asus Pc\Desktop\metodo escalonado\Datos
iteracion1',resultado,j);
end
% resultado(:,1)=V';
% resultado(:,2)=I';
% Inodo(1,m+1)=I(1,m+1);
% resultado(:,3)=Inodo';
% resultado
function [vr,Ir]=calcula(m)
global Zpu;
global Spu;
global I;
global V;
global Inodo;
im=conj(Spu(m)/V(m+1));
Inodo(m)=im;
Ir=I(m+1)+im;
vr=Zpu(m)*Ir+V(m+1);
% abs(vr)*1000
% angle(vr)*180/pi()
EJECUTABLE:
1. Al hacer clic en el icono de RUN
entonces el programa de la siguiente
manera:
2. Iterara las veces necesarias para satisfacer
la condicin de error prefijado: