Está en la página 1de 35

Trabajo n° 002-2017-Laboratorio

“Espacio de Vectores”

Objetivos:
1) Demostrar que se puede analizar el espacio de vectores obtenido de la
transformación de secuencia 012 en Matlab.
2) Entender el modelamiento de las corrientes trifásicas expresadas a través de
las dos componentes, tanto de la componente permanente como de la
armónica.

Demostración:
El estudio de máquinas eléctricas rotativas depende en gran parte del sistema de
coordenadas elegido. Según donde se han elegido tres fasores cooplanares y
congruentes en un punto, existen seis grados de libertad: la magnitud y ángulo para
cada uno de ellos. Si se elige por ejemplo una condición que puede ser que la suma
de los tres fasores sea nula, uno de estos está determinado por la suma de los otros
dos, con lo que se han eliminado dos grados de libertad.
Para un sistema general de n fasores coplanares y congruentes en un punto, por
tanto, existirán 2*n grados de libertad. Es posible, por medio de una transformación
escribir los n vectores como “n” sistemas con un punto en común.
Análisis del Tema (Marco Conceptual):
Entendiendo la transformada de Fortescue:
Si se considera que los autovectores poseen las siguientes componentes complejas:

Con lo que la matriz de transformación resulta en la conocida matriz compleja de


componentes simétricas de Fortescue.
Nótese que los autovectores, x1, x2, x3, corresponden a la representación de
vectores unitarios de secuencia cero, positiva y negativa respectivamente

Si despejamos I012=P*Iabc, tenemos:


Tomaremos en cuenta para la simulación la siguiente estructura para las
corrientes.

1) Programación en MATLAB:

clear all
clc
j=sqrt(-1);
phi=2*pi/3;
% Matriz de fortescue(Transformada parametros de secuencia)
a=cos(phi)+j*sin(phi);
A=[1 1 1;1 a a^2;1 a^2 a];
% Insertamos los Parámetros "M", "alpha" y "n".
m = input('Enter value of m > ')
alpha = input('Enter attenuation factor, alpha > ')
n = input('Enter value of harmonic order n > ')
% Vector Tiempo de Simulación, controlará la gráfica
t=0:0.01:0.95;
% Magnitudes de Corrientes trifásicas
Ia=10.*exp(-alpha.*t).*cos(m*2*pi.*t)+(10/n).*cos(n*2*pi.*t);
Ib=10.*exp(-alpha.*t).*cos(m*(2*pi.*t-2*pi/3))+(10/n).*cos(n*(2*pi.*t-
2*pi/3));
Ic=10.*exp(-alpha.*t).*cos(m*(2*pi.*t-4*pi/3))+(10/n).*cos(n*(2*pi.*t-
4*pi/3));

Iabc=[Ia;Ib;Ic];
% Transformación en Corrientes de Secuencias "012"
I012=A*Iabc;

% Extracción de Datos-Parte Real y Imaginaria 1-2 respectivamente;


y1(1,:)=abs(I012(2,:)).*cos(angle(I012(2,:)));
y1(2,:)=abs(I012(2,:)).*sin(angle(I012(2,:)));

y2(1,:)=abs(I012(3,:)).*cos(angle(I012(3,:)));
y2(2,:)=abs(I012(3,:)).*sin(angle(I012(3,:)));

% Graficos I1,I2
subplot(2,3,1)
plot(y1(1,:),y1(2,:),'-')
axis([-20 20 -20 20])
axis square
title('Secuencia Positiva I1')
subplot(2,3,2)
plot(y2(1,:),y2(2,:),'-')
axis([-20 20 -20 20])
axis square
title('Secuencia Negativa I2')
subplot(2,3,4)
plot(t,Ia,'-')
axis([0 1 -20 20])
% Graficos Ia,Ib,Ic
axis square
title('Ia(t)')
subplot(2,3,5)
plot(t,Ib,'-')
axis([0 1 -20 20])
axis square
title('Ib(t)')
subplot(2,3,6)
plot(t,Ic,'-')
axis([0 1 -20 20])
axis square
title('Ic(t)')
- Probando con el Séptimo armónico:
Enter value of m > 1
m=
1
Enter attenuation factor, alpha > 0
alpha =
0
Enter value of harmonic order n > 7
n=
7

FIGURA: Secuencias Positiva, Negativa y gráficos de corrientes de


fase.
- Probando con el Quinto armónico:
Enter value of m > 1
m=
1
Enter attenuation factor, alpha > 0
alpha =
0
Enter value of harmonic order n > 5
n=
5

FIGURA: Secuencias Positiva, Negativa y gráficos de corrientes de


fase.
Probaremos el circuito cambiando valores del parámetro “m“.
m= 2
Enter value of m > 2
m=
2
Enter attenuation factor, alpha > 0
alpha =
0
Enter value of harmonic order n > 1
n=
1
Probaremos el circuito cambiando valores del parámetro “m“.

m= 5
Enter value of m > 5
m=
5
Enter attenuation factor, alpha > 0
alpha =
0
Enter value of harmonic order n > 1
n=
1
Probaremos el circuito cambiando valores del parámetro “m y
n“.
m= 5 y n=3

Enter value of m > 5


m=
5
Enter attenuation factor, alpha > 0
alpha =
0
Enter value of harmonic order n > 3
n=
3
Probaremos el circuito cambiando valores del parámetro “m y
n“.
m=7 y n=5

Enter value of m > 7


m=
7
Enter attenuation factor, alpha > 0
alpha =
0
Enter value of harmonic order n > 5
n=
5
Trabajo n° 003-2017-Laboratorio

“Transformación de abc a qd0”

Objetivos:
1) Verificar el comportamiento de las corrientes qd0s y qd0 en el tiempo.
2) Entender el modelamiento de las corrientes trifásicas expresadas a través de
las dos componentes, tanto de la componente permanente como de la
armónica.

Análisis del Tema (Marco Conceptual):

Para aclarar
- qd0s: Estacionario
- qd0: Rotacional

PASO1: Primero transformamos del sistema abc al sistema qd0s(sistema


estacionario)
PASO2: Segundo transformamos del sistema qd0s al sistema qd0(sistema
Rotacional)

Tomamos en cuenta la variación de θ en el tiempo: θ(t)=2*pi*t+ θ(0)


1) Programación en MATLAB:

clear all
clc
j=sqrt(-1);

% Insertamos los Parámetros "M", "alpha" y "n".


m = input('Ingrese el valor de m')
alpha = input('Ingrese el valor de alpha')
n = input('Ingrese el valor de n')
theta = input('Ingrese el valor inicial de theta(angulo
rotacional)')
% Vector Tiempo de Simulación, controlará la gráfica
i=1
t1=0:0.01:3;

for t=0:0.01:3
% Magnitudes de Corrientes trifásicas
Ia=10.*exp(-alpha.*t).*cos(m*2*pi.*t)+(10/n).*cos(n*2*pi.*t);
Ib=10.*exp(-alpha.*t).*cos(m*(2*pi.*t-
2*pi/3))+(10/n).*cos(n*(2*pi.*t-2*pi/3));
Ic=10.*exp(-alpha.*t).*cos(m*(2*pi.*t-
4*pi/3))+(10/n).*cos(n*(2*pi.*t-4*pi/3));
IIa(:,i)=Ia;
Iabc=[Ia;Ib;Ic];
% Aplicamos la Transformada de qd0s(abc a qd0s)
IIqd0s=(2/3).*[1 -0.5 -0.5;0 -sqrt(3)/2 sqrt(3)/2;0.5 0.5
0.5]*Iabc;
Iqd0s(:,i)=IIqd0s;
% Aplicamos la Transformada de qd0(qd0s a qd0)
phi=2*pi.*t+theta*pi/180;
IIqd0=[cos(phi) -1*sin(phi) 0;sin(phi) cos(phi) 0;0 0 1]*IIqd0s;
Iqd0(:,i)=IIqd0;
i=i+1;
end

% Graficos Ia,Iqs,Ids,I0s,Iq,Id
subplot(3,3,1)
plot(t1,IIa,'-')
axis([0 3 -20 20])
axis square
title('Ia(t)')
subplot(3,3,2)
plot(t1,Iqd0s(1,:),'-')
axis([0 3 -20 20])
axis square
title('Iqs(t)')
subplot(3,3,3)
plot(t1,Iqd0s(2,:),'-')
axis([0 3 -20 20])
axis square
title('Ids(t)')
subplot(3,3,4)
plot(t1,Iqd0s(3,:),'-')
axis([0 3 -20 20])
axis square
title('I0s(t)')
subplot(3,3,5)
plot(t1,Iqd0(1,:),'-')
axis([0 3 -20 20])
axis square
title('Iq(t)')
subplot(3,3,6)
plot(t1,Iqd0(2,:),'-')
axis([0 3 -20 20])
axis square
title('Id(t)')
Probaremos eliminando del código el efecto del armónico (borrando n
de la estructura de las corrientes):
Y logramos la figura del libro entregado por el ingeniero.
Estas son las corrientes que se consideró para este primer grafico
- Ia=10.*exp(-alpha.*t).*cos(m*2*pi.*t);
- Ib=10.*exp(-alpha.*t).*cos(m*(2*pi.*t-2*pi/3));
- Ic=10.*exp(-alpha.*t).*cos(m*(2*pi.*t-4*pi/3));

Ingrese el valor de m1

m=

Ingrese el valor de alpha0

alpha = 0

Ingrese el valor inicial de theta(angulo rotacional)45

theta =

45
Estas son las corrientes que se consideró para este segundo grafico

- Ia=10.*exp(-alpha.*t).*cos(m*2*pi.*t)+(10/n).*cos(2*pi.*t);

- Ib=10.*exp(-alpha.*t).*cos(m*(2*pi.*t-
2*pi/3))+(10/n).*cos((2*pi.*t-2*pi/3));

- Ic=10.*exp(-alpha.*t).*cos(m*(2*pi.*t-
4*pi/3))+(10/n).*cos((2*pi.*t-4*pi/3));

Ingrese el valor de m 5

m= 5

Ingrese el valor de Alpha 0

alpha = 0

Ingrese el valor de n 1

n= 1

Ingrese el valor inicial de theta(angulo rotacional)45

theta = 45
Trabajo n° 003-2017-Laboratorio

“Simulación s1 de un Generador Síncrono”

Objetivos:
1) Observar como son afectados tanto los parámetros como las variables de la
máquina síncrona al generar una perturbación en su Tensión de excitación,
Torque Mecánico, o en las tensiones del Estator.
2) Entender el modelamiento de las corrientes trifásicas expresadas a través de
las dos componentes, tanto de la componente permanente como de la
armónica-ya que considerando ambas componentes se pueden simular fallas.

Análisis del Tema (Marco Conceptual):


Entendiendo las Transformadas y el Concepto de flujos magnéticos en la
Máquina Síncrona.

a) Una vez que comprendemos las transformadas, de los capítulos anteriores


tenemos las tensiones en qd0(rotacional)de las Tensiones Estatóricas:
b) Ahora formulamos las ecuaciones de Flujos totales en la máquina,
relacionándolos con los parámetros inductivos de la misma en ambas partes
de la máquina.

c) Ahora analizamos el torque


d) Consideramos lo siguiente con respecto al Angulo de la máquina, en función
el Angulo que presente ambas partes de la máquina con respecto a la
referencia.

e) Consideraremos al final el arreglo a través de valores unitarios de la máquina,


teniendo las siguientes ecuaciones del movimiento:
2) Programación en MATLAB(Usaremos el simulink para
poder resolver los sistemas de ecuaciones diferenciales):

% MATLAB script file m1.m file for Projects 1 and 5 on

clear all
clc

% parameters of SET3C.M

Perunit = 1 % parameters given in per unit of machine base

Frated = 60;
Poles = 2;
Pfrated= 0.9;
Vrated =26e3;
Prated=722.222e6;
rs = 0.004; % estimate
xd = 1.92;
xq = 1.85;
xls = 0.19;
xpd = 0.34;
xpq = 0.60;
xppd = 0.26;
xppq = 0.26;
Tpdo = 4.8;
Tpqo = 1.0;
Tppdo = 0.04;
Tppqo = 0.053;
H = 3.; % estimate
Domega = 0; % mechanical damping coeff

% Calculate base quantities


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;

% Calculate dq0 equivalent circuit parameters

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);

% Convert to per unit dqo circuit parameters

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;

end
%****************************************************
% Establish initial conditions for starting simulation

wb=wbase;
xMQ = (1/xls + 1/xmq + 1/xplkq)^(-1);
xMD = (1/xls + 1/xmd + 1/xplf + 1/xplkd)^(-1);

% Specify desired operating condition lists


P = 1.0;% specify range and increment of real
Q = 0; % and reactive output power,
% P is negative for motoring
Vt = 1. + 0*j; % specify terminal voltage
thetaeo = angle(Vt); % initial value of voltage angle
Vm = abs(Vt);
St = P+Q*j; % generated complex power

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

% compute q-d steady-state variables

Eqo = abs(Eq);
I = It*(cos(delt) - sin(delt)*j);% same as I = (conj(Eq)/Eqo)*It;
Iqo = real(I);
Ido = -imag(I); % when the d-axis lags the q-axis
Efo = Eqo + (xd-xq)*Ido;
Ifo = Efo/xmd;

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

% set up loop for repeating multiple cases using the same


% starting condition

repeat_option = 2 ; % set initially to 2 to repeat yes for more cases


while repeat_option == 2

% prompt for choice of disturbance


disp('Choices of disturbance')
opt_dist = menu('Your choice of disturbances? ','Step change in Eex', 'Step
change in Tmech','Step change in Vm')

if (opt_dist == 1) % step change in Eex


tstop = 5; % run time
Vm_time = [0 tstop];
Vm_value = [1 1]*Vm; % Bus voltage kept constant
tmech_time = [0 tstop];
tmech_value = [1 1]*Tmech; % Tmech kept constant
Ex_time = [0 0.2 0.2 tstop];
Ex_value = [1 1 1.1 1.1]*Efo; % step change in Eex
disp(' Disturbance sequence in Eex is ')
Ex_time
Ex_value
end % if for step change in Eex

if (opt_dist == 2) % step change in Tmech


tstop = 5; % run time
Vm_time = [0 tstop];
Vm_value = [1 1]*Vm; % Bus voltage kept constant
tmech_time = [0 0.5 0.5 3 3 tstop];
tmech_value = [1 1 0 0 -1 -1]*Tmech; % step change in Tmech
Ex_time = [0 tstop];
Ex_value = [1 1]*Efo; % Eex kept constant
disp(' Disturbance sequence in Tmech is ')
tmech_time
tmech_value
end % if for step change in Tmech

if (opt_dist == 3) % step change in Vm


tstop = 100.5; % run time
tmech_time = [0 tstop];
tmech_value = [1 1]*Tmech; % step change in Tmech
Ex_time = [0 tstop];
Ex_value = [1 1]*Efo; % Eex kept constant
disp('Three phase terminal short-circuit fault')
disp('will be applied at 0.1 second into the simulation')
ncycle = input('Enter in the number of cycles desired > ')
tfault = ncycle/Frated; % fault time
tfstart = 0.1; % set fault to begin at 0.1 sec into simulation
Vm_time = [0 tfstart tfstart (tfstart+tfault) (tfstart+tfault) tstop];
Vm_value = [1 1 1 1 1 1]*Vm; % Vm is zero during short circuit
disp(' Disturbance sequence in Vm is ')
Vm_time % print array
Vm_value % print array
end % if for step change in Vm

% Transfer to keyboard for simulation


disp('Simulation s1.m is now ready for running,');
disp(' You may still enter changes to parameters or input values')
disp(' via the MATLAB window before running s1')
disp('Ater running 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('stator voltage magnitude')
subplot(4,1,2)
plot(y(:,1),y(:,3),'-')
ylabel('|It| in pu')
axis([-inf inf 0 inf])
title('stator current magnitude')
subplot(4,1,3)
plot(y(:,1),y(:,4),'-')
ylabel('Pgen in pu')
title('Real power generated')
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('Instantaneous electrical torque')
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
Graficaremos teniendo en cuenta los tres tipos de
perturbaciones.
Con la primera perturbación que es la perturbación de Tensión de Excitación(Eexc)
Tenemos:
Choices of disturbance
opt_dist =
1
Disturbance sequence in Eex is
Ex_time =
0 0.2000 0.2000 5.0000
Ex_value =
2.1664 2.1664 2.3830 2.3830

En simulink:
En Matlab:
Graficaremos teniendo en cuenta los tres tipos de
perturbaciones.
Con Segunda perturbación que es la perturbación de Torque Mecánico(Tmech)
Choices of disturbance
opt_dist = 2
Disturbance sequence in Tmech is
tmech_time =
Columns 1 through 5
0 0.5000 0.5000 3.0000 3.0000
Column 6
5.0000
tmech_value =
1 1 0 0 -1 -1

En simulink:
En Matlab
Graficaremos teniendo en cuenta los tres tipos de
perturbaciones.
Con Tercera perturbación que es la perturbación de Tension Estator Maxima(Vm)

Choices of disturbance
opt_dist =
3
Three phase terminal short-circuit fault
will be applied at 0.1 second into the simulation
Enter in the number of cycles desired > 1
ncycle =
1
Disturbance sequence in Vm is
Vm_time =
Columns 1 through 5
0 0.1000 0.1000 0.1167 0.1167
Column 6
100.5000
Vm_value =
1 1 1 1 1 1
En Simulink:
En Matlab:
CONCLUSIONES:
- Como pudimos evaluar con la inserción de datos(m,n,alpha)
podemos variar el tipo de señal entrante(corriente) y generar
fallas o la aparición de armónicos en la misma señal.
- En la simulación dqo se pudo evaluar el desarrollo de las
transformadas tanto para un mismo sistema o para sistemas
referidos como lo es la transformada dq0(en máquinas rotativas)
- En el último laboratorio, con el análisis realizado se pudo
establecer un sistema en Matlab-Simulink de la máquina
Síncrona, pudiendo así notar las variaciones en sus variables al
momento de la ocurrencia de una perturbación, estamos
hablando de las tres antes vistas, perturbación en la excitación,
en el torque mecánico y en la tensión de fase del estator.
- Para finalizar se pudo completar los primeros laboratorios
cumpliendo con el requisito de haberlo desarrollado todo en
MATLAB, pero en el último laboratorio, no se pudo cumplir este
requisito ya que se presentaron sistemas de ecuaciones
diferenciales, por lo cual se vieron involucrados los parámetros
matemáticos de integración y derivación, teniendo como
consecuencia la complejidad de la solución en solo MATLAB sin la
ayuda de SIMULINK, en conclusión, el ultimo laboratorio solo se
analizó a través de la modelación de la máquina síncrona, como
influencia los parámetros externos al funcionamiento de la
máquina.

También podría gustarte