You are on page 1of 11

TEMA: MAQUINA

SINCRONA
Ref.:CHEE-MUN ONG: Dynamic
Simulation of Electric Machinery using
MATLAB/SIMULINK, PRENTICE HALL PTR

PROYECTO 2:
Falla en los Terminales de un Generador
Sncrono
El propsito de este Ejercicio es examinar la respuesta de un
generador sincrnico operando a valores fijados de velocidad del
rotor y de tensin de excitacin ante diferentes clases de fallas
elctricas en los terminales del estator.

El primer paso ser hacer una copia del archivo S1 de SIMULINK y


modificar esa copia para poder simular los siguientes tipos de falla
en terminales del estator:
1. Falla trifsica metlica (sin impedancia de falla)
2. Falla de fase a fase entre las fases b y c con contacto a
tierra
3. Falla monofsica a tierra en la fase a
Verifique su simulacin utilizando el conjunto 2 (Set 2) de
parmetros del generador sincrnico dado en la Tabla 7.2 con la
ayuda del archivo m1_gc.m (modelo s1_gc.mdl) de MATLAB.

La simulacin as modificada le debe permitir a Ud. simular la condicin de


aplicar cualquier tipo de falla directamente a los terminales del estator de la
mquina los que estn inicialmente a circuito abierto (mquina en vaco).
Fije la inercia en un valor grande, digamos 999, para mantener la velocidad
del rotor constante sobre un breve perodo antes y durante el cortocircuito.
Edite las condiciones iniciales especificadas en el archivo m1 para arrancar
su simulacin con la mquina funcionando a velocidad sincrnica, a circuito
abierto y con tensin nominal en sus terminales.

(a)Cuando los transitorios iniciales se han atenuado, aplique un cortocircuito


trifsico en el instante del valor de pico de . Registre las respuestas de .
Compare las formas de onda de las corrientes de falla con aqullas dadas
en los textos estndar sobre mquinas elctricas. Repita la corrida con el
cortocircuito aplicado en el instante en que . Comente sobre las diferencias
en las componentes unidireccionales de la corriente de cortocircuito en los
dos casos simulados.

(b)Cuando los transitorios iniciales se han atenuado, aplique un cortocircuito


de fase a fase entre las fases b y c en el instante correspondiente al valor
de pico de . Registre las respuestas de .
(c)Cuando los transitorios iniciales se han atenuado, aplique un cortocircuito
de fase a trierra en la fase a en el instante correspondiente al valor de pico
de . Registre las respuestas de .

Simulacin S1de un generador sncrono

A continuacin simularemos en
MATLAB

clear variables;
% seleccionamos el archivo con los parametros de la maquina para entrar en el area de trabajo de MATLAB
disp('introduzca nombre del archivo de parametros de la maquina .m')
disp('ejemplo: set1 or set3c')
setX = input('Input machine parameter filename > ','s')% string s
eval(setX); % evaluate MATLAB command

% Calculo de las cantidades de base


we = 2*pi*Frated;
wbase = 2*pi*Frated;
wbasem = wbase*(2/Poles);
Sbase = Prated/Pfrated;
Vbase = Vrated*sqrt(2/3); % Use peak values as base quantites
Ibase = sqrt(2)*(Sbase/(sqrt(3)*Vrated));
Zbase = Vbase/Ibase;
Tbase = Sbase/wbasem;
% Calculo de los parametros del circuitoequivalente dq0
if(xls ==0) xls = x0 % assume leakage reactance = zero_sequence
end
xmq = xq - xls;
xmd = xd - xls;
xplf = xmd*(xpd - xls)/(xmd - (xpd-xls));
xplkd = xmd*xplf*(xppd-xls)/(xplf*xmd - ...
(xppd-xls)*(xmd+xplf));

xplkq = xmq*(xppq - xls)/(xmq - (xppq-xls));


rpf = (xplf + xmd)/(wbase*Tpdo);
rpkd = (xplkd + xpd - xls)/(wbase*Tppdo);
rpkq = (xplkq + xmq)/(wbase*Tppqo);
% Convirtiendo los parametros del circuito dq0 a sistemas por unidad
if(Perunit == 0) % parameters given in Engineering units
fprintf('Dq0 circuit paramters in per unit\n')
H = 0.5*J_rotor*wbasem*wbasem/Sbase;
rs = rs/Zbase;
xls = xls/Zbase;
xppd = xppd/Zbase;
xppq = xppq/Zbase;
xpd = xpd/Zbase;
xpq = xpq/Zbase;
x2 = x2/Zbase;
x0 = x0/Zbase;
xd = xd/Zbase;
xq = xq/Zbase;
xmd = xmd/Zbase;
xmq = xmq/Zbase;
rpf = rpf/Zbase;
rpkd = rpkd/Zbase;
rpkq = rpkq/Zbase;
xplf = xplf/Zbase;
xplkd = xplkd/Zbase;
xplkq = xplkq/Zbase;

%****************************************************
% condicones iniciales establecidas para la simulacion puesta en marcha
wb=wbase;
xMQ = (1/xls + 1/xmq + 1/xplkq)^(-1);
xMD = (1/xls + 1/xmd + 1/xplf + 1/xplkd)^(-1);
% especifique las codiciones de las listas operativas deseadas
P = 1.0;% especifique el rango e incremento
Q = 0; % y la energia reactiva de salida,
% P is negative for motoring
Vt = 1. + 0*j;
% especifique el voltaje terminal
thetaeo = angle(Vt); % ingrese el angulo del voltaje
Vm = abs(Vt);
St = P+Q*j; % generated complex power

%
%
%
%
%
%
%
%
%

Use steady-state phasor equations to determine


steady-state values of fluxes, etc to establish good
initial starting condition for simulation
- or good estimates for the trim function
It - phasor current of generator
St - complex output power of generator
Vt - terminal voltage phasor
Eq - Voltage behind q-axis reactance
I - d-q current with q axis align with Eq

It = conj(St/Vt);
Eq = Vt + (rs + j*xq)*It;
delt = angle(Eq);
% angle Eq leads Vt

Psiado = xmd*(-Ido + Ifo);


Psiaqo = xmq*(-Iqo);
Psiqo = xls*(-Iqo) + Psiaqo;
Psido = xls*(-Ido) + Psiado;
Psifo = xplf*Ifo + Psiado;
Psikqo = Psiaqo;
Psikdo = Psiado;
Vto = Vt*(cos(delt) - sin(delt)*j);
Vqo = real(Vto);
Vdo = -imag(Vto);
Sto = Vto*conj(I);
Eqpo = Vqo + xpd*Ido + rs*Iqo;
Edpo = Vdo - xpq*Iqo + rs*Ido;
delto = delt;% initial value of rotor angle
thetaro = delto+thetaeo;% thetar(0) in variable frequency oscillator
Pemo = real(Sto);
Qemo = imag(Sto);
Tmech = Pemo;
T2piby3 = 2*pi/3; % phase angle of bus phase voltages
% estableciendo lazo para repetir casos multiples usando lo mismo
% iniciando condicion
repeat_option = 2 ; % set initially to 2 to repeat yes for more cases
while repeat_option == 2
% eleccion de disturbio
disp('las elecciones de disturbio')
opt_dist = menu('su eleccion de disturbio? ','el cambio de paso en Eex', 'el cambio de paso en Tmech','el cambio de paso en Vm')
if (opt_dist == 1) % el cambio de paso en Eex
tstop = 5; % tiempo de ejecucion
Vm_time = [0 tstop];
Vm_value = [1 1]*Vm; % Bus voltage siguio constante
tmech_time = [0 tstop];
tmech_value = [1 1]*Tmech; % Tmech siguio constante
Ex_time = [0 0.2 0.2 tstop];
Ex_value = [1 1 1.1 1.1]*Efo; % el cambio de paso en Eex
disp(' la secuencia de disturbio en Eex es ')
Ex_time
Ex_value
end % si para el cambio de paso en Eex

if (opt_dist == 2) % el cambio de paso en Tmech


tstop = 5; % tiempo de ejecucion
Vm_time = [0 tstop];
Vm_value = [1 1]*Vm; % Bus voltaje sigue constante
tmech_time = [0 0.5 0.5 3 3 tstop];
tmech_value = [1 1 0 0 -1 -1]*Tmech; % cambio de paso en Tmech
Ex_time = [0 tstop];
Ex_value = [1 1]*Efo; % Eex sigue constante
disp(' secuencia de disturbio en Tmech es ')
tmech_time
tmech_value
end % si para el cambio de paso en Tmech
if (opt_dist == 3) % el cambio de paso en Vm
tstop = 1.5; % tiempo de ejecucion
tmech_time = [0 tstop];
tmech_value = [1 1]*Tmech; % cambio de paso en Tmech
Ex_time = [0 tstop];
Ex_value = [1 1]*Efo; % Eex siguio constante
disp('ponga en fase la falla del terminal de corto cirvuito')
disp('sera aplicado en 0.1 segundos lugar en la simulacion')
ncycle = input('Entre el numero de ciclos deseados> ')
tfault = ncycle/Frated; % tiempo de falla
tfstart = 0.1; % establecio falla en 0.1 sec en la simulacion
Vm_time = [0 tfstart tfstart (tfstart+tfault) (tfstart+tfault) tstop];
Vm_value = [1 1 0 0 1 1]*Vm; % Vm es cero durante el cortocircuito
disp(' la secuencia de disturbio en Vm es ')
Vm_time % print array
Vm_value % print array
end % if for step change in Vm
% Transfer para teclado para la simulacion
disp('Simulacion s1.m esta listo ahora para correr,');
disp(' usted todavia puede introducir cambios para los paarmetros o los valores de aporte')
disp(' por la ventana MATLAB antes de correr a s1')
disp('Ater corriendo s1, type ''return'' for plots');
keyboard
clf;

subplot(4,1,1)
plot(y(:,1),y(:,2),'-')
ylabel('|Vt| in pu')
axis([-inf inf 0.9 1.1])
title('la magnitud del voltaje del estator')
subplot(4,1,2)
plot(y(:,1),y(:,3),'-')
ylabel('|It| in pu')
axis([-inf inf 0 inf])
title('la magnitud de la corriente del estator')
subplot(4,1,3)
plot(y(:,1),y(:,4),'-')
ylabel('Pgen in pu')
title('el verdadero poder generado')
subplot(4,1,4)
plot(y(:,1),y(:,5),'-')
ylabel('Qgen in pu')
xlabel('time in sec')
title('Reactive power generated')
h2=figure;
subplot(4,1,1)
plot(y(:,1),y(:,6),'-')
ylabel('Delta in rad')
title('Power angle delta')
subplot(4,1,2)
plot(y(:,1),y(:,7),'-')
ylabel('Tem in pu')
title('la fuerza de torcion electrica instantanea')
subplot(4,1,3)
plot(y(:,1),y(:,8),'-')
ylabel('If in pu')
title('Field current')
subplot(4,1,4)
plot(y(:,1),y(:,9),'-')
ylabel('ia in pu')
xlabel('time in sec')
title('Instantaneous phase a current')
disp('Save plots array before typing return to exit')
keyboard
close (h2)
% prompt for options to repeat over with determination of Ipm
% for new terminal condition or
% just with new parameters, eg inertia or loading.
repeat_option = menu('Repeat run?,','Quit','Repeat run');
if isempty(repeat_option) % if empty return a 1 to terminate
repeat_option = 1;
end % if isempty
end % while repeat for another runs

You might also like