ADSP-CM403 HAE - Análisis de armónicos en aplicaciones solares

Introducción

Un inversor fotovoltaico convierte la energía de un panel solar y despliega esa energía en la red eléctrica de forma eficiente. Los inversores solares fotovoltaicos del pasado eran simples módulos que vertían energía a la red eléctrica. Sin embargo, los nuevos diseños requieren que los inversores fotovoltaicos contribuyan a la estabilidad de la red.

Este artículo examinará cómo la nueva tecnología ADI en forma de motor de análisis de armónicos (HAE) mejora la integración de la red inteligente y controla la calidad de la energía en la red, contribuyendo así en gran medida a la estabilidad de la misma.

Red inteligente

¿Qué es una red inteligente? IMS Research define una red inteligente como "una infraestructura de suministro de servicios públicos con la capacidad inherente de igualar y gestionar eficientemente la generación y el consumo, obteniendo el máximo beneficio de los recursos disponibles" Para que la nueva generación de inversores fotovoltaicos se conecte a una red inteligente, se necesita cada vez más inteligencia en el inversor para conseguirlo. Esto en sí mismo es preocupante, sobre todo por los desequilibrios que pueden crearse como resultado de demasiadas conexiones a la red cuando la demanda no está a la altura de lo que se suministra a la red. Sobre esta base, como se ha mencionado anteriormente, los inversores solares fotovoltaicos necesitarán más inteligencia, y esta inteligencia debe centrarse en la integración en la red, donde los sistemas tendrán que ayudar a estabilizar la red en lugar de servir simplemente como proveedor de energía a la red.

Figura 1. Diagrama de bloques del ADSP-CM403 HAE, Analog Devices.

Esto requiere una mejor medición, control y análisis de la calidad de la energía inyectada en la red. Por supuesto, esto conlleva nuevas directrices y mayores requisitos técnicos, lo que se traduce directamente en nueva tecnología.

Bloque periférico HAE del ADSP-CM403XY

El bloque HAE es esencialmente un PLL digital simplificado, como se muestra a continuación. El AEH recibe los datos de V e I de forma continua y, tras varios ciclos, se bloquea a la fundamental de la forma de onda de entrada. El rango de entrada del bloque HAE es de 45 Hz a 66 Hz. Se pueden analizar hasta 40 armónicos, 12 a la vez. Para cada armónico, el PLL intentará fijar la señal requerida.

Figura 2. PLL digital simplificado del AEH.

El bloque de hardware del motor de armónicos trabaja conjuntamente con el analizador de armónicos para coprocesar los resultados. Cuando el motor armónico produce los resultados en su formato final, se almacenan en la memoria de resultados. El motor del AEH calcula la información armónica en un ancho de banda no atenuado de 2,8 kHz (correspondiente a un ancho de banda de -3 dB de 3,3 kHz) para las frecuencias de línea entre 45 Hz y 66 Hz.

Figura 3. Ancho de banda de frecuencia del AEH.

La corriente del neutro también puede analizarse simultáneamente con la suma de las corrientes de fase. Al comienzo de un nuevo período de muestreo, el motor de armónicos explora ubicaciones predefinidas en la RAM de datos, que contienen los resultados del procesamiento del analizador. El contenido se procesa posteriormente, si es necesario.

Los datos de tensión y corriente se pueden recibir del bloque sinc o del ADC (ambos almacenados en la SRAM) y se introducen en el bloque HAE a una frecuencia de 8 kHz. Se puede generar una interrupción a esta frecuencia de 8 kHz para avisar al inversor fotovoltaico de que introduzca los datos disponibles. Cuando se analizan los datos y se realizan los cálculos siguientes, el bloque AEH genera otra interrupción para informar al sistema solar fotovoltaico de que los datos del análisis de armónicos están listos para ser mostrados. El ADSP-CM403 también puede instruir al AEH para que haga un DMA de todos los resultados a la SRAM, donde el código del sistema puede mostrar los resultados. Esto da lugar a una baja sobrecarga de código para todo el sistema de AEH.

Resultados del HAE ADSP-CM403XY

Los resultados del AEH en la Figura 4 muestran claramente qué armónicos están presentes en el sistema cuando se observan los datos de tensión RMS. La fundamental a 50 Hz está claramente presente, pero los armónicos por debajo de 250 Hz y 350 Hz (es decir, los armónicos 5º y 7º) están presentes en este ejemplo de resultados.

Figura 4. Resultados de la muestra rms del AEH para los armónicos 1-12.

Las ecuaciones específicas utilizadas en estos cálculos se muestran a continuación, tanto para los cálculos fundamentales como para los armónicos.

Salidas del motor armónico y registros donde se almacenan los valores

Tabla 1. Cálculos matemáticos del AEH
Cantidad Definición Registros del AEH
RMS de la componente fundamental V1,I1 F_VRMS, F_IRMS
RMS de la componente armónica Vn,In,n = 2,3,...,12 Hnn_VRMS, Hnn_XIRMS
Potencia activa del componente fundamental P1 = V1I1cos( φ1 - γ1) F_ACT
Potencia activa de la componente armónica Pn = VnInporquen - γn), n = 2,3,...,12 Fnn_ACT
Potencia reactiva del componente fundamental Q1 = V1I1sin1 - γ1) F_REACT
Potencia reactiva de la componente armónica Qn = VnInsin1 - γ1), n = 2,3,...,12 Hnn_REACT
Potencia aparente del componente fundamental S1 = V1I1 F_APP
Potencia aparente de la componente armónica Sn = VnIn, n = 2,3,...,12 Hnn_APP
Factor de potencia de la componente fundamental Ecuación 1 F_PF
Factor de potencia de la componente armónica Ecuación 2 Hnn_PF
Distorsión armónica de una componente armónica Ecuación 3 Hnn_VHDN, Hnn_IHDN

Ejemplo de programación

INT HAE_CONFIG(VOID)
[INTI;

HAE_INPUT_DATA(VOUTPUT, SINC_VEXT_DATA) ;
HAE_INPUT_DATA(IOUTPUT, SINC_IMEAS_DATA) ;

RÉSULTAT = ADI_HAE_OPEN(DEVNUM, DEVMEMORY, MEMORY_SIZE, &DEV) ;
RÉSULTAT = ADI_HAE_REGISTERCALLBACK(DEV, HAECALLBACK, 0) ;
RESULTAT = ADI_HAE_SELECTLINEFREQ(DEV, ADI_HAE_LINE_FREQ_50) ;
RESULT = ADI_HAE_CONFIGRESULTS(DEV, ADI_HAE_RESULT_MODE_IMMEDIATE, ADI_HAE_SETTLE_TIME_512, ADI_HAE_UPDATE_RATE_128000);
RÉSULTAT = ADI_HAE_SETVOLTAGELEVEL (DEV, 1.0) ;
RESULT = ADI_HAE_ENABLEINPUTPROCESSING(DEV, FALSE, FALSE) ; /* FILTRE ACTIVÉ */
/* ACTIVER TOUTES LES HARMONIQUES (DANS L'ORDRE) */
RÉSULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_1, 1) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_2, 2) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_3, 3) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_4, 4) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_5, 5) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_6, 6) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_7, 7) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_8, 8) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_9, 9) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_10, 10) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_11, 11) ;
RESULTAT = ADI_HAE_HARMONICINDEX (DEV, ADI_HAE_HARMONIC_INDEX_12, 12) ;

RÉSULTAT = ADI_HAE_SUBMITTXBUFFER(DEV, &TXBUFFER1[0], SIZEOF(TXBUFFER1)) ;
RESULTADO = ADI_HAE_SUBMITTXBUFFER(DEV, &TXBUFFER2[0], SIZEOF(TXBUFFER2)) ;
RESULTADO = ADI_HAE_ENABLEINTERRUPT(DEV, ADI_HAE_INT_RX, TRUE) ;
RESULTADO = ADI_HAE_ENABLEINTERRUPT(DEV, ADI_HAE_INT_TX, TRUE) ;
RESULTADO = ADI_HAE_CONFIGSAMPLEDIVIDER(DEV, 100000000) ;
RESULTADO = ADI_HAE_RUN(DEV, TRUE) ;
// RESULTADO = ADI_HAE_CLOSE(DEV) ;

}

/* EVENTOS */

VOID HAECALLBACK(VOID* PHANDLE, UINT32_T EVENT, VOID* PARG) /* RUTINA ISR PARA CARGAR/DESCARGAR DATOS DE HAE

{

UINT32_T N ;
ADI_HAE_EVENT EEVENT = (ADI_HAE_EVENT)EVENT ; /* RESULTADOS RECIBIDOS DE HAE 128MS */
IF (EEVENT == ADI_HAE_EVENT_RESULTS_READY)

{ /* OBTENER RESULTADOS */

PRESULTS = (ADI_HAE_RESULT_STRUCT*)PARG ; /* PUNTERO AL TXBUFFER1 O AL TXBUFFER2 */

/* HAZ ALGO CON LOS RESULTADOS */
FOR (N=0; N

{

IRMS[N] = PRESULTAS[N].IRMS ;

VRMS[N] = PRESULTAS[N].VRMS ;
ACTIVEPWR[N] = PRESULTAS[N].ACTIVEPWR ;

}

} /* TRANSMITE MUESTRAS DE ENTRADA A HAE - 8KHZ */

IF (EEVENT = ADI_HAE_EVENT_INPUT_SAMPLE)

{ /* ENCUENTRA LAS MUESTRAS LATENTES EN EL BUFFER SINC. */

ADI_HAE_INPUTSAMPLE(DEV, (SINC_IMEAS_DATA[PWM_SINC_LOOP]),(SINC_VEXT_DATOS[PWM_SINC_LOOP])) ;
INDEX++ ;
SI (ÍNDICE >= NÚMERO/MUESTRAS) ÍNDICE = 0 ;

}

COUNT++ ;

}

Si quieres conocer otros artículos parecidos a ADSP-CM403 HAE - Análisis de armónicos en aplicaciones solares puedes visitar la categoría Generalidades.

¡Más Contenido!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir