reporte de análisis thd y espectro en pwm (gerardo urrea)

45
Contents Análisis de Distorsión Armónica Total en señales PWM.............2 Construcción de la Señal Senoidal...............................2 Construcción de la Señal Senoidal aproximada con dos rectas.....4 Determinación de coordenadas (x,y) para el área máxima........4 Recta 1.......................................................7 Recta 2.......................................................9 Recta 3......................................................11 Recta 4......................................................14 Recta 5......................................................17 Recta 6......................................................19 Recta 7......................................................22 Modelos en Simulink (Generación PWM y Análisis THD).............25 THD en Señal Senoidal Pura.....................................25 THD en Señal Senoidal aproximada con rectas....................25 THD en Señal PWM Senoidal......................................27 TDH en Señal PWM con Senoidal aproximada.......................28

Upload: gerardo-urrea-lugo

Post on 10-Nov-2015

5 views

Category:

Documents


0 download

DESCRIPTION

Analsis THD de una señal PWM con referencia senoidal y senoidal aproximada con rectas

TRANSCRIPT

ContentsAnlisis de Distorsin Armnica Total en seales PWM2Construccin de la Seal Senoidal2Construccin de la Seal Senoidal aproximada con dos rectas.4Determinacin de coordenadas (x,y) para el rea mxima4Recta 17Recta 29Recta 311Recta 414Recta 517Recta 619Recta 722Modelos en Simulink (Generacin PWM y Anlisis THD)25THD en Seal Senoidal Pura25THD en Seal Senoidal aproximada con rectas.25THD en Seal PWM Senoidal27TDH en Seal PWM con Senoidal aproximada.28

Anlisis de Distorsin Armnica Total en seales PWMConstruccin de la Seal Senoidal

En esta seccin se describe el mtodo llevado a cabo para generar la seal senoidal de 60 Hz en Matlab. Posteriormente se realizar un anlisis de contenido armnico para esta seal y servir como referencia y comparacin en el anlisis TDH de una seal senoidal aproximada con rectas. Estas dos seales ( senoidal y senoidal aproximada) servirn como seales de referencia en la generacin de seales PWM. A continuacin se muestra el desarrollo en el Workspace de Matlab para la generacin de la seal senoidal de 60 Hz.

>> t = [0:0.0001:1];>> f = 60;>> w = 2*pi*f;>> senoidal = sin(w*t); Se grafica un ciclo de la seal.

>> plot(t,senoidal,'r')>> axis([0 1/60 -1 1])

Para exportar la seal senoidal generada del Workspace de Matlab a Simulink, es necesario guardar las dos variables (t y senoidal) en una sola variable de la siguiente manera:

>> senoidal_1 = double([t',senoidal']);

Una vez realizado esto, abrimos Simulink Library y buscamos el block From Workspace para importar la seal. Creamos un nuevo modelo mediante File/New/Model y agregamos el block From Workspace. Dando doble click en el block agregado se introducen los parmetros necesarios.

Para visualizar la seal se agrega el bloque Scope que se encuentra en Simulink/Sinks.El bloque necesario para calcular el THD se encuentra en Simscape/SimPowerSistems/Control and Measurements. Para representar el valor del THD en porcentaje se utiliza el bloque Gain ubicado en Simulink/Commonly Used Blocks y el bloque Display que se encuentra en Simulink/Sinks para mostrar la cantidad.

Se simula un ciclo de la seal senoidal de 60 Hz mediante el botn play. Antes de esto es necesario especificar el tiempo de la simulacin (1/60). El modelo debe de quedar de la siguiente forma

Se observa un THD de 0.1495 % para la seal senoidal pura. Si se quiere visualizar la seal se debe de dar doble click en el Scope.

Construccin de la Seal Senoidal aproximada con dos rectas.

Determinacin de coordenadas (x,y) para el rea mxima

Para representar una senoidal con dos lneas rectas que se repiten cada 90 grados, es necesario determinar el las coordenadas para las cuales el rea bajo las rectas es la mxima posible. Considerando que la onda senoidal es simtrica cada 90 grados (de 0 a /2), se har el clculo con la figura geomtrica que va de 0 a /2.

Para el rea A1 correspondiente al tringulo tenemos lo siguiente:

Para el rea A2 que corresponde al cuadriltero tenemos:

El rea total se calcula de la siguiente manera:

Para optimizar derivamos la funcin del rea y despejamos x:

En base al anlisis anterior, el punto (x,y) = (0.8807,0.7712) es el ptimo para representar el rea mxima posible de la seal senoidal con dos rectas.

Con los dos puntos mostrados en la figura anterior podemos calcular siete rectas con sus coordenadas iniciales, coordenadas finales y su pendiente.

Antes de calcular las rectas, debe de considerarse que debido a que la seal senoidal es de 60 Hz, es necesario dimensionar los desplazamientos en x, es decir, en 2 la variable x tiene un valor de 1/60. Para el caso de la amplitud (variable y) no se debe de llevar a cabo dimensionamiento.

Recta 1

Coordenadas:

Pendiente:

Ecuacin de la Recta:

Para generar la recta en Matlab es necesario asignar un conjunto de valores para x, con lo cual se generaran los valores de y. El procedimiento es el siguiente.>> x1 = 0;>> y1 = 0;>> x2 = ((acos(2/pi))*(1/60))/(2*pi)

x2 =

0.0023

>> y2 = sin(acos(2/pi))

y2 =

0.7712

>> m = (y2-y1)/(x2-x1)

m =

330.1133

>> x = [x1:0.0001:x2];>> y = y1 + (m*(x-x1));>> plot(x,y)>> hold on>> axis([0 1/60 -1 1])>> plot(t,senoidal,'r')>> plot(x,y,'b')

La figura anterior muestra el resultado de generar la Recta 1 en Matlab. Se grafica junto con la seal senoidal para verificar que coincidan.

Para poder exportar los valores de la recta generada del Workspace de Matlab hacia Simulink es necesario agrupar los valores de x y los valores de y en una sola variable. Esto se lleva a cabo de la siguiente manera:

>> recta_1 = double([x',y']);

Ya que tenemos en la variable recta_1 valores de x y valores de y, se van guardando en un archivo Excel. Cuando se genere la recta_2 se agregaran sus valores al archivo Excel y asi sucesivamente hasta llegar a la recta_7.

La figura anterior muestra la Recta_1 generada en Excel.Recta 2

Coordenadas:

Pendiente:

Ecuacin de la Recta:

Desarrollo en Matlab:

>> x1 = ((acos(2/pi))*(1/60))/(2*pi)

x1 =

0.0023

>> y1 = sin(acos(2/pi))

y1 =

0.7712

>> x2 = 1/240

x2 =

0.0042

>> y2 = 1

y2 =

1

>> m = (y2-y1)/(x2-x1)

m =

125.0008

>> x = [x1:0.0001:x2];>> y = y1 + (m*(x-x1));>> hold on>> axis([0 1/60 -1 1])>> plot(t,senoidal,'r')>> plot(x,y)

Recta_2 y Seal senoidal de 60 Hz.

Agrupacin de valores x y valores y en variable Recta_2:

>> recta_2 = double([x',y']);

Acumulado de valores de Recta_1 y Recta_2 en Excel.

Recta 3

Coordenadas:

Pendiente:

Ecuacin de la Recta:

Desarrollo en Matlab:

>> x1 = 1/240

x1 =

0.0042

>> y1 = 1

y1 =

1

>> x2 = ((pi*(1/60))/(2*pi))-((acos(2/pi))/(120*pi))

x2 =

0.0060

>> y2 = sin(acos(2/pi))

y2 =

0.7712

>> m = (y2-y1)/(x2-x1)

m =

-125.0008

>> x = [x1:0.0001:x2];>> y = y1 + (m*(x-x1));>> hold on>> axis([0 1/60 -1 1])>> plot(x,y,'b')>> plot(t,senoidal,'r')

Grfica de Recta_3 y seal senoidal de 60 Hz.

Agrupacin de valores x y valores y en variable Recta_3:

>> recta_3 = double([x',y']);

Acumulado de valores de Recta_1, Recta_2 y recta_3 en Excel.

Recta 4

Coordenadas:

Pendiente:

Ecuacin de la Recta:

Desarrollo en Matlab:

>> x1 = (1/120) - ((acos(2/pi))/(120*pi))

x1 =

0.0060

>> x2 = (1/120) + ((acos(2/pi))/(120*pi))

x2 =

0.0107

>> y1 = sin(pi-(acos(2/pi)))

y1 =

0.7712

>> y2 = sin(pi+(acos(2/pi)))

y2 =

-0.7712

>> m = (y2-y1)/(x2-x1)

m =

-330.1133

>> x = [x1:0.0001:x2];>> y = y1 + (m*(x-x1));>> hold on>> axis([0 1/60 -1 1])>> plot(x,y,'b')>> plot(t,senoidal,'r')

Grfica de Recta_4 y seal senoidal de 60 Hz.

Agrupacin de valores x y valores y en variable Recta_4:

>> recta_4 = double([x',y']);

Acumulado de valores de recta_1, recta_2 , recta_3 y recta_4 en Excel.

Recta 5

Coordenadas:

Pendiente:

Ecuacin de la Recta:

Desarrollo en Matlab:>> x1 = (1/120) + ((acos(2/pi))/(120*pi))

x1 =

0.0107

>> x2 = (1/80)

x2 =

0.0125

>> y1 = sin(pi+(acos(2/pi)))

y1 =

-0.7712

>> y2 = -1

y2 =

-1

>> m = (y2-y1)/(x2-x1)

m =

-125.0008

>> x = [x1:0.0001:x2];>> y = y1 + (m*(x-x1));>> hold on>> axis([0 1/60 -1 1])>> plot(t,senoidal)>> plot(x,y,'r')

Grfica de Recta_5 y seal senoidal de 60 Hz.

Agrupacin de valores x y valores y en variable Recta_5:

>> recta_5 = double([x',y']);

Acumulado de valores de rectas 1 a 5.

Recta 6

Coordenadas:

Pendiente:

Ecuacin de la Recta:

Desarrollo en Matlab:>> x1 = (1/80)

x1 =

0.0125

>> x2 = (1/60) - ((acos(2/pi))/(120*pi))

x2 =

0.0143

>> y1 = -1

y1 =

-1

>> y2 = sin(2*pi - acos(2/pi))

y2 =

-0.7712

>> m = (y2-y1)/(x2-x1)

m =

125.0008

>> x = [x1:0.0001:x2];>> y = y1 + (m*(x-x1));>> hold on>> axis([0 1/60 -1 1])>> plot(t,senoidal)>> plot(x,y,'r')

Grfica de Recta_6 y seal senoidal de 60 Hz.

Agrupacin de valores x y valores y en variable Recta_6:

>> recta_6 = double([x',y']);

Acumulado de valores de rectas 1 a 5.

Recta 7

Coordenadas:

Pendiente:

Ecuacin de la Recta:

Desarrollo en Matlab:>> x1 = (1/60) - (acos(2/pi))/(120*pi)

x1 =

0.0143

>> x2 = 1/60

x2 =

0.0167

>> y1 = sin(2*pi - acos(2/pi))

y1 =

-0.7712

>> y2 = 0

y2 =

0

>> m = (y2-y1)/(x2-x1)

m =

330.1133

>> x = [x1:0.0001:x2];>> y = y1 + (m*(x-x1));>> hold on>> axis([0 1/60 -1 1])>> plot(t,senoidal)>> plot(x,y,'r')

Grfica de Recta_7 y seal senoidal de 60 Hz.

Agrupacin de valores x y valores y en variable Recta_7:

>> recta_7 = double([x',y']);

Acumulado de valores de rectas 1 a 5.

Ya que se generaron las 7 rectas y sus respectivos valores, se guardan en una sola variable. Esta variable contendr los datos que el bloque From Workspace cargar al momento de llevar a cabo la simulacin en Simulink.

A medida que se fueron generando las rectas, se fueron guardando los valores en una hoja de Excel. Para guardar estos valores en una variable de Matlab, hay que crear una nueva variable en el Workspace. Ya que se cre esta variable, se da doble click sobre su nombre para abrir la hoja de celdas donde se guardan sus valores. Una vez abierta la hoja de celdas de la variable, se pegan los valores que se guardaron en Excel.

Hasta este punto, tenemos las dos seales portadoras listas para usarse en Simulink. Se utilizar un bloque para cada variable, el cual cargar los valores de dichas variables desde el Workspace de Matlab. Es importante mencionar que para que los bloques de Simulink carguen los valores de las variables, estas deben de estar abiertas en el Workspace. Para esto se debi de haber guardado previamente un archivo con las variables generadas.

Modelos en Simulink (Generacin PWM y Anlisis THD)THD en Seal Senoidal PuraEn este modelo de simulink, se analiza el THD de una onda senoidal pura de 60 Hz. Se realiza la simulacin para un ciclo y se obtiene un resultado de 0.1495 % THD. Aunque el anlisis THD de importancia es para las seales PWM, se hace ste anlisis como referencia y como comparacin con los valores arrojados en las otras seales.

Modelo en Simulink

Seal Senoidal 60 Hz (un ciclo).

Espectro de Frecuencias

Utilizando los datos de la seal senoidal pura podemos obtener su espectro de frecuencias. Tenemos una seal senoidal_pura cuyos datos se cargan al Workspace de Matlab desde Simulink mediante una bloque From Workspace. Con esta serie de datos se puede utilizar la funcin fft(); para obtener el espectro de frecuencias de la seal. Para obtener nicamente la magnitud es necesario utilizar abs(fft(seal)). Una vez obtenidos los valores de las magnitudes estas se pueden graficar.

Valores de Armnicas y Magnitudes

Espectro de Frecuencias Seal Senoidal Pura

Espectro de Frecuencias Seal Senoidal Pura

THD en Seal Senoidal aproximada con rectas.En este caso, se import a Simulink la serie de datos de las rectas generadas en el Workspace de Matlab. Se realiz previamente el clculo para determinar las coordenadas o puntos adecuados que aprovechan el rea mxima de la seal senoidal con las rectas. Se utiliz el bloque From Workspace para importar los datos y poder generar la seal senoidal aproximada. La frecuencia de la seal es de 60 Hz y se analiza un ciclo. El resultado obtenido es de 2.424 % THD.

Modelo en Simulink.

Aproximacin de Seal Senoidal con rectas.

Espectro de FrecuenciasPara el caso de la seal senoidal aproximada con rectas se espera una mayor cantidad de armnicas en el espectro de frecuencias con respecto a la seal anterior puesto que hay una diferencia aproximada de 2% TDH entre una y otra seal. El procedimiento es el mismo para cada seal generada.

Valores de Armnicas y Magnitudes

Espectro de Frecuencias Seal Senoidal Pura

Espectro de Frecuencias Seal Senoidal Pura

THD en Seal PWM SenoidalEn el siguiente modelo, se lleva a cabo la comparacin de la onda senoidal pura de 60 Hz y una seal triangular de 3 kHz. Mediante la comparacin se genera la seal PWM respectiva y despus se realiza el anlisis de THD de la misma seal PWM. En este caso se obtiene un resultado de 99.98 % TDH.

Modelo en Simulink.

Seal Triangular 3 kHz, Seal Senoidal 60 Hz y seal PWM resultante.

Espectro de Frecuencias

Valores de Armnicas y Magnitudes

Espectro de Frecuencias Seal Senoidal Pura

Espectro de Frecuencias Seal Senoidal Pura

TDH en Seal PWM con Senoidal aproximada.En el siguiente modelo, se genera la seal PWM a partir de la comparacin de la seal de rectas (un ciclo de 60 Hz) y la seal triangular (3kHz). La seal PWM resultante tiene 109% THD.

Modelo en Simulink.

Seal Triangular 3 kHz, Seal Senoidal aproximada con rectas 60 Hz y seal PWM resultante.

Espectro de Frecuencias

Valores de Armnicas y Magnitudes

Espectro de Frecuencias Seal Senoidal Pura

Espectro de Frecuencias Seal Senoidal Pura

ConclusinSi observamos los resultados para la Distorsin Armnica Total de las seales senoidales, tanto de la senoidal pura como de la senoidal aproximada con rectas, no existe una cantidad significativa de distorsin armnica (0% THD y 2% THD respectivamente). Cuando estas dos seales se utilizan para generar la seales PWM observamos un incremento considerable en la distorsin armnica. Para la seal PWM generada con la Senoidal Pura como referencia tenemos un 99.98% THD y para la seal PWM generada con la Senoidal Aproximada como referencia tenemos un 109% THD. El espectro de inters es el de las ltimas dos seales, los primeros dos espectros y THD se utilizaron solo como referencia. Podemos observar un 9% THD de diferencia entre las dos seales PWM y un espectro de frecuencias muy parecido. La magnitud de la fundamental de la segunda seal PWM se reduce a un poco ms de la mitad lo cual podra ser un factor importante a considerar.