Upload
aless-osorio-vela
View
31
Download
0
Embed Size (px)
DESCRIPTION
tesis
Citation preview
UNIVERSIDAD DE MAGALLANES
FACULTAD DE INGENIERIA DEPARTAMENTO DE
EVALUACIÓN DE CONVERSORES DC/DC Y SISTEMAS DE CONTROL PARA APLICACIONES FOTOVOLTAICAS
HUGO MIGUEL VILLEGAS BARRÍA
-2006-
EVALUACIÓN DE CONVERSORES DC/DC Y SISTEMAS DE CONTROL PARA APLICACIONES FOTOVOLTAICAS
UNIVERSIDAD DE MAGALLANES
FACULTAD DE INGENIERIA DEPARTAMENTO DE
Trabajo de Titulación presentado en conformidad a los requisitos para obtener el Título de: Ingeniero de Ejecución en Electricidad mención Electrónica.Profesor Guía: Dr. Roberto Cárdenas D.
HUGO MIGUEL VILLEGAS BARRÍA
-2006-
i
AGRADECIMIENTOS
Quiero agradecer sinceramente a todas aquellas personas que me
ayudaron directa o indirectamente en el desarrollo de la presente tesis. De
manera especial, agradezco al profesor Dr. Roberto Cárdenas Dobson por su
disposición y guía, igualmente al grupo de alumnos del laboratorio de
Investigación del Dpto. de Electricidad generación 2005 – 2006, conformado
por: Marcelo Pérez Uribe, Fernando Vargas Alvarado, José Proboste
Bórquez, Enrique Escobar Pérez e Iván Andrade Agüero por su amistad,
cooperación, tesón y profesionalismo con que enfrentan el día a día.
También, agradecer a mi familia por el apoyo incondicional y la
comprensión que me han entregado en todos estos años.
De Hugo.
i
RESUMEN
El seguimiento del punto de máxima potencia (MPPT de las siglas en inglés
Maximum Power Point Tracking) se utiliza en sistemas fotovoltaicos (FV) para
maximizar la potencia proporcionada por un panel solar, independiente de las
condiciones de radiación solar incidente, temperatura o características de la carga. El
mencionado sistema fotovoltaico, está compuesto de un conversor DC/DC, el cual se
conecta como interfase entre el panel solar y la carga. A su vez, el conversor cuenta
con una unidad de control, que controla el flujo de potencia proporcionado por el panel
solar, de forma tal de entregar la máxima potencia foto generada por el panel a la carga.
El presente trabajo de titulación tiene como objetivo estudiar tres técnicas de
control para el MPPT dos de ellas clásicas y una difusa, estas son: (a) perturbación y
observación, (b) conductancia incremental y (c) controlador basado en lógica difusa.
Las técnicas serán implementadas en la unidad de control de cada conversor DC/DC
diseñado y construido en el transcurso de esta Tesis, los conversores son: Boost y Buck
- Boost. La unidad de control mencionada esta controlada por un microcontrolador
PIC18F452 de Microchip Corporation.
Estrategias de control clásica serán desarrolladas tanto para ser aplicadas en el
conversor Boost y en el conversor Buck- Boost, además del controlador difuso
implementado sólo en el conversor Boost. Estas estrategias han de permitir la
localización del punto o zona de máxima potencia proporcionada por el panel solar,
ante diversas situaciones tales como: nivel de radiación solar incidente constante,
variación en el nivel de radiación solar y efectos de la temperatura en un panel solar.
3
ÍNDICE GENERAL
1. INTRODUCCIÓN..........................................................................................................2
1.1 INTRODUCCIÓN GENERAL.............................................................................2
1.2 OBJETIVOS DE LA TESIS.................................................................................3
1.3 ESTRUCTURA DE LA TESIS............................................................................4
2. CELDAS SOLARES.....................................................................................................7
2.1 INTRODUCCIÓN................................................................................................7
2.2 PRINCIPIO DE FUNCIONAMIENTO..................................................................8
2.3 CARACTERÍSTICAS ANALÍTICAS..................................................................11
2.4 SEGUIMIENTO DEL MPP................................................................................14
2.5 APLICACIONES...............................................................................................17
2.5.1 ELECTRIFICACIÓN RURAL.........................................................................18
2.5.2 APLICACIONES AGROGANADERAS.........................................................18
2.5.3 ILUMINACIÓN..............................................................................................18
2.5.4 TELECOMUNICACIONES............................................................................18
2.5.5 SEÑALIZACIÓN Y ALARMA.........................................................................18
2.5.6 OTRAS APLICACIONES..............................................................................19
3. SISTEMA EXPERIMENTAL.......................................................................................21
3.1 INTRODUCCIÓN..............................................................................................21
3.2 MICROCONTROLADOR PIC18F452...............................................................23
3.3 TARJETA DE PROGRAMACIÓN DE MICROCONTROLADRES PIC.............24
3.4 CONVERSORES DC/DC.................................................................................25
3.4.1 CONVERSOR BOOST.................................................................................25
3.4.2 CONVERSOR BUCK – BOOST...................................................................27
3.4.3 DISEÑO DEL CONVERSOR DC/DC............................................................30
3.4.4 UNIDAD DE CONTROL................................................................................32
4
3.4.5 DISPARO DEL TRANSISTOR MOSFET....................................................35
3.4.6 TARJETA CONVERSOR BOOST................................................................37
3.4.7 TARJETA CONVERSOR BUCK – BOOST..................................................38
3.5 TARJETA LCD.................................................................................................40
3.6 COMUNICACIÓN SERIAL...............................................................................43
3.7 MEMORIA EXTERNA EEPROM 24LC16B......................................................45
4. ALGORITMOS DE CONTROL...................................................................................48
4.1 INTRODUCCIÓN..............................................................................................48
4.2 PERTURBACIÓN Y OBSERVACIÓN..............................................................49
4.3 CONDUCTANCIA INCREMENTAL..................................................................52
4.4 CONTROLADOR BASADO EN LÓGICA DIFUSA...........................................56
4.4.1 FUZZIFICACIÓN...........................................................................................57
4.4.2 METODO DE INFERENCIA..........................................................................58
4.4.3 DESFUZZIFICACIÓN...................................................................................59
5. RESULTADOS EXPERIMENTALES.........................................................................63
5.1 INTRODUCCIÓN..............................................................................................63
5.2 RESULTADOS EXPERIMENTALES................................................................63
5.2.1 RESULTADOS PARA LA GENERACIÓN DE CURVAS I –V y P – V...........64
5.2.2 RESULTADOS DE MPPT CON RSI CONSTANTE......................................67
5.2.3 RESULTADOS DE MPPT CON VARIACIÓN EN LA RSI............................75
6. CONCLUSIONES.......................................................................................................84
REFERENCIAS BIBLIOGRÁFICAS..............................................................................86
APÉNDICE A. MENSAJES GENERADOS EN EL LCD...............................................90
APÉNDICE B. CÓDIGOS DE PROGRAMAS Y LIBRERÍAS.......................................94
APÉNDICE C. ESQUEMÁTICOS DE LAS TARJETAS IMPLEMENTADAS..............129
APÉNDICE D. HOJAS DE DATOS INTEGRADOS.....................................................134
5
ÍNDICE DE FIGURAS
Figura 1-1 Diagrama de bloques de un sistema fotovoltaico.........................................3
Figura 2-1 Juntura N-P en equilibrio...............................................................................9
Figura 2-2 Efecto Fotovoltaico de una Celda Solar.......................................................10
Figura 2-3 Celda Fotovoltaica con Carga Eléctrica.......................................................10
Figura 2-4 Circuito equivalente de una celda solar.......................................................12
Figura 2-5 Característica de un panel fotovoltaico ante variaciones climáticas............13
Figura 2-6 Interacción de un panel fotovoltaico con carga............................................15
Figura 2-7 Esquema general de un sistema fotovoltaico con carga DC.......................16
Figura 2-8 Aplicaciones de la energía solar fotovoltaica...............................................17
Figura 3-1 Sistema Fotovoltaico Propuesto..................................................................22
Figura 3-2 Tarjeta de Programación de Microcontroladores PIC..................................24
Figura 3-3 Conversor DC/DC Boost..............................................................................25
Figura 3-4 Modo de conducción continua para un conversor DC/DC Boost.................26
Figura 3-5 Conversor Buck – Boost.............................................................................28
Figura 3-6 Modo de conducción continua para un conversor DC/DC Buck - Boost......29
Figura 3-7 Configuración del sensor de corriente LEM LA 55-P...................................33
Figura 3-8 Sensor de corriente de efecto Hall LEM LA 55-P utilizado..........................33
Figura 3-9 Esquema de filtro antialiasing Tschebyscheff de segundo orden................34
Figura 3-10 Circuito de disparo opto acoplado del transistor MOSFET........................36
Figura 3-11 Diagrama de bloque de la Tarjeta Conversor Boost..................................37
Figura 3-12 Tarjeta conversor Boost implementada.....................................................38
Figura 3-13 Diagrama de bloques de la Tarjeta Conversor Buck - Boost.....................39
Figura 3-14 Tarjeta Conversor Buck – Boost implementada.......................................39
Figura 3-15 Diagrama de bloques de la tarjeta LCD.....................................................41
6
Figura 3-16 Diagrama de flujo de la rutina de inicialización del módulo LCD.................41
Figura 3-17 Tarjeta LCD implementada..........................................................................43
Figura 3-18 Diagrama de instrucciones predefinidas en el PIC......................................43
Figura 3-19 Comunicación serial PC / Unidad de control...............................................44
Figura 4-1 Curva P – V bajo seguimiento del MPP con algoritmo P&O.........................50
Figura 4-2 Lazo de control para la tensión del panel solar.............................................50
Figura 4-3 Diagrama de flujo del método perturbación y observación............................51
Figura 4-4 Curva P – V bajo seguimiento del MPP con algoritmo Cond. Inc..................53
Figura 4-5 Diagrama de flujo del algoritmo conductancia incremental...........................55
Figura 4-6 Esquema control difuso para el conversor DC/DC........................................56
Figura 4-7 Funciones de membresía de el controlador difuso........................................58
Figura 4-8 Configuración del controlador difuso.............................................................60
Figura 4-9 Superficie característica del controlador difuso.............................................61
Figura 5-1 Resultado generación de curvas I – V y P –V, a igual temperatura y diferente
nivel de radiación solar ................................................................................. 65
Figura 5-2 Resultado generación de curvas I –V y P – V, a igual nivel de radiación solar
y diferentes temperatura ............................................................................... 66
Figura 5-3 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Boost.............68
Figura 5-4 Resultado de MPPT utilizando P&O y conversor DC/DC Boost....................69
Figura 5-5 Resultado de MPPT utilizando lógica difusa y conversor DC/DC Boost......70
Figura 5-6 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Buck – Boost
actuando como conversor reductor de tensión ............................................ 71
Figura 5-7 Resultado de MPPT utilizando P&O y conversor DC/DC Buck – Boost
actuando como reductor de tensión. ............................................................ 72
Figura 5-8 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Buck – Boost
actuando como conversor elevador de tensión ............................................ 73
v
Figura 5-9 Resultado de MPPT utilizando P&O y conversor DC/DC Buck – Boost
actuando como conversor elevador de tensión............................................74
Figura 5-10 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Boost con
variación en la RSI. ...................................................................................... 76
Figura 5-11 Resultado de MPPT utilizando P&O y conversor DC/DC Boost con variación
en la RSI. ...................................................................................................... 77
Figura 5-12 Resultado de MPPT utilizando lógica difusa y conversor DC/DC Boost con
variación en la RSI. ...................................................................................... 78
Figura 5-13 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Buck – Boost,
actuando como conversor reductor de tensión y con variación en la RSI. ... 79
Figura 5-14 Resultado de MPPT utilizando P&O y conversor DC/DC Buck – Boost,
actuando como conversor reductor de tensión y con variación en la RSI. ... 80
Figura 5-15 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Buck – Boost,
actuando como conversor elevador de tensión y con variación en la RSI. . . 81
Figura 5-16 Resultado de MPPT utilizando P&O y conversor DC/DC Buck – Boost,
actuando como conversor reductor de tensión y con variación en la RSI. ... 82
CAPÍTULO PRIMERO
INTRODUCCIÓN
CAPITULO PRIMERO: 2
1. INTRODUCCIÓN
1.1 INTRODUCCIÓN GENERAL
En la actualidad, ante la necesidad de contar con nuevas fuentes de energía, se
ha invertido esfuerzo en el ámbito de la investigación para el aprovechamiento de
recursos renovables, los cuales puedan ser una alternativa viable al momento de
enfrentar los nuevos escenarios que se avecinan debido a la escasez de los recursos
fósiles. Es por ello, que dichos esfuerzos están dirigidos a la utilización del recurso
eólico y en estos últimos años, al uso de la energía solar como fuentes energéticas
factibles. Sin embargo, los sistemas eólicos y solares poseen ciertos inconvenientes
como el costo y la dependencia de los factores climáticos. Esto ha llevado que en la
actualidad se utilicen sistemas que combinen diversas formas de energía (denominados
sistemas híbridos) a modo de obtener un mejor desempeño, tales como los sistemas
eólico-solar-diesel. Por otra parte, se hace necesario en estos sistemas almacenar la
energía (por ejemplo, en banco de baterías) y de esta forma disminuir los ciclos partida /
parada de los equipos moto generadores.
En el presente trabajo de tesis se presentan estrategias de control para ser
aplicado a dos sistemas basados en energía solar que suministran energía a una carga
aislada. Dichos sistemas están compuesto de un panel solar que se conectará a la
carga (banco de baterías) por medio de un conversor DC/DC Boost y luego un Buck -
Boost. Siendo estos últimos los que se discutirán con mayor nivel de detalle.
En la figura 1.1 se muestra un diagrama de bloques de los elementos más
representativos de una aplicación basada en energía solar.
CAPITULO PRIMERO: 3
Figura 1-1 Diagrama de bloques de un sistema fotovoltaico
El panel solar realiza la conversión directa de energía solar a energía eléctrica.
Mientras que el conversor DC/DC, es utilizado para regular la energía suministrada por
el panel a la carga. Dicha regulación es posible, debido a la señal PWM (Pulse Widht
Modulator) que proporciona el microcontrolador.
La implementación de los sistemas se centra en el Microcontrolador PIC18F452,
perteneciente a la empresa Microchip.
Este trabajo de tesis fue dirigido por el Dr. Roberto Cárdenas Dobson, académico
del departamento de Ingeniería Eléctrica de la Universidad de Magallanes.
1.2 OBJETIVOS DE LA TESIS
Los objetivos considerados en esta Tesis son los siguientes:
Discutir el diseño e implementación del hardware utilizado para la construcción
de los conversores elevador (Boost) y reductor-elevador (Buck-Boost), los cuales
serán controlados de manera digital mediante el uso de un Microcontrolador
(PIC18F452).
CAPITULO PRIMERO: 4
Utilizar técnicas de Control Digital y Control Difuso, para controlar los
conversores DC / DC y realizar un seguimiento del punto de máxima potencia en
un panel solar.
Estudiar el desempeño de los sistemas de control ante diversas situaciones,
tales como: nivel de radiación solar incidente constante, variación en el nivel de
radiación solar y efectos de la temperatura en un panel solar.
Describir el software de control implementado en lenguaje C, del
microcontrolador PIC18F452.
Describir el software de interfaz con el usuario desarrollado para la
comunicación con la unidad de control de cada conversor DC/DC implementado,
en lenguaje Visual Basic.
1.3 ESTRUCTURA DE LA TESIS
La presente tesis cuenta con seis capítulos, que están organizados de la
siguiente forma:
En el capítulo segundo se hace un estudio de las celdas solares. Dicho estudio
se centrará en temas como: principio de funcionamiento, materiales utilizados en su
construcción, aplicaciones típicas, zona de operación más óptima de un panel solar.
En el capítulo tercero describe el hardware diseñado y utilizado para efectos de
validación de resultados. Las siguientes tarjetas fueron construidas durante el desarrollo
de esta tesis:
CAPITULO PRIMERO: 5
Tarjeta LCD: Diseñada para interactuar con el usuario, proporcionando la
información de los niveles de tensiones, corrientes y potencias, a las cuales se
encuentra operando el conversor (Boost o Buck-Boost), además de visualizar el
estado de carga del banco de baterías mediante LED’s (Entre otros).
Tarjeta de programación de microcontroladores de 8, 18, 28 y 40 pines:
Diseñada para el borrado, lectura y escritura de microcontroladores PIC.
El capítulo cuarto describe los algoritmos de control empleados, para efectos de
búsqueda del punto de máxima potencia de un sistema fotovoltaico. En esta tesis, los
algoritmos utilizados son: (a) perturbación y observación, (b) conductancia incremental y
(c) controlador basado en lógica difusa.
El capítulo quinto presenta los resultados experimentales obtenidos mediante los
sistemas fotovoltaicos propuestos, ante diversas situaciones tales como: nivel de
radiación solar incidente constante, variación en el nivel de radiación solar y efectos de
la temperatura en un panel solar.
El capítulo sexto entrega las conclusiones generales de este trabajo.
CAPÍTULO SEGUNDO
CELDAS SOLARES
CAPÍTULO SEGUNDO: CELDAS 7
2. CELDAS SOLARES
2.1 INTRODUCCIÓN
Una celda solar es un dispositivo que absorbe luz (energía solar) y la convierte en
energía eléctrica. Para convertir la energía del Sol en energía eléctrica y poder utilizarla
de la forma más eficiente y racional posible se diseñan los sistemas fotovoltaicos. La
celda solar es el elemento que convierte los fotones que proceden del Sol en una
corriente eléctrica que circula por un elemento denominado carga. Hoy en día la celda
solar más común es un dispositivo de estado sólido fabricado con materiales
semiconductores.
El efecto fotovoltaico fue identificado por primera vez en 1839 por Becquerel [1],
quien observó que la tensión que aparecía entre dos electrodos inmersos en electrolito
dependía de la intensidad de luz que incidiese sobre ellos. El mismo efecto fue
observado por Adams y Day, en 1879, pero esta vez utilizando un elemento sólido: el
Selenio. Sin embargo, la primera celda solar moderna tuvo que esperar a Chapin en
1954. Fue una celda de Silicio y no se dieron muchos detalles de su estructura debido,
probablemente, al temor a que fuese copiada. La motivación para el estudio y desarrollo
de las celdas solares durante los primeros años de investigación fue su aplicación como
fuente suministradora de energía a los satélites espaciales. Hoy se espera que las
celdas solares y la energía solar fotovoltaica contribuyan de forma importante al
suministro de energía limpia a la sociedad.
En el presente capítulo, se discuten principalmente: principio de funcionamiento,
características y aplicaciones de las celdas solares.
CAPÍTULO SEGUNDO: CELDAS 8
2.2 PRINCIPIO DE FUNCIONAMIENTO
Una celda solar es un dispositivo capaz de convertir la energía proveniente de la
radiación solar en energía eléctrica.
El silicio es el material más ampliamente utilizado en la fabricación de celdas
solares. En su forma cristalina pura, es un semiconductor, con muy pocas cargas libres
dentro de él. Por este motivo el silicio tiene una resistencia muy elevada. Utilizando un
proceso llamado difusión [2], se pueden introducir pequeñas cantidades de otros
elementos químicos (dopaje), lo que permite disminuir el valor inicial de la resistividad,
creando al mismo tiempo, zonas con diferentes tipos de carga. La celda fotovoltaica
utiliza dos tipos de materiales semiconductores, el tipo N y el tipo P.
Cuando la sustancia difusa cede fácilmente electrones, se crea dentro del
semiconductor una zona que cuenta con exceso de cargas negativas (electrones). Esto
es lo que se conoce como un semiconductor del tipo N.
Por otra parte, cuando la sustancia difusa capta electrones, los átomos que los
pierden quedan cargados positivamente. En estas zonas predominan las cargas
positivas (huecos) obteniéndose un semiconductor del tipo P.
El proceso de difusión es continuo, permitiendo la fabricación en el mismo material
de dos zonas semiconductoras adyacentes, una del tipo N; la otra del tipo P. El espacio
que separa ambas zonas se denomina juntura de transición.
CAPÍTULO SEGUNDO: CELDAS 9
Según lo expuesto en [2], las cargas mayoritarias en una zona se desplazan hacia
la de baja densidad en la zona opuesta. El desplazamiento de las cargas negativas y
positivas deja a la zona de juntura totalmente libre de cargas. Las zonas adyacentes a
la misma tienen concentraciones de carga minoritarias (cargas negativas en el lado P y
cargas positivas en el lado N). La acumulación de estas cargas a ambos lados de la
juntura crea una diferencia de potencial que impide la continuación del desplazamiento
inicial. Por este motivo, la corriente de desplazamiento se anula. Se dice entonces que
la juntura N-P ha alcanzado el estado de equilibrio. Ver figura 2.1.
Figura 2-1 Juntura N-P en equilibrio
Cuando la luz incide sobre un semiconductor de este tipo, el bombardeo de los
fotones libera electrones de los átomos de silicio creando dos cargas libres, una positiva
y otra negativa. El equilibrio eléctrico de la juntura N – P se ve alterado por la presencia
de estas nuevas carga libres. El resultado de estas cargas libres es lo que se conoce
como efecto fotovoltaico (ver figura 2.2).
CAPÍTULO SEGUNDO: CELDAS 1
Figura 2-2 Efecto Fotovoltaico de una Celda Solar
Si el semiconductor bajo incidencia de luz se le conecta dos cables, uno en la
zona N y en la zona P, se verifica la existencia de un voltaje entre los mismos. Ahora si
los terminales de la celda fotovoltaica son conectados a una carga eléctrica, circulará
una corriente eléctrica guiada por la acción de un campo eléctrico, la cual se origina por
la unión de los materiales N – P. Dicha corriente ha de circular por el circuito formado
por la celda , los cables de conexión y la carga externa. La figura 2.3 muestra este tipo
de circuito.
Figura 2-3 Celda Fotovoltaica con Carga Eléctrica
⎩
T ⎠
⎦
⎝
CAPÍTULO SEGUNDO: CELDAS 1
El efecto fotovoltaico, mencionado en el párrafo anterior solo es posible en una
parte del espectro luminoso. Dicho segmento lo componen básicamente las longitudes
de onda más pequeñas, las cuales están comprendidas entre la luz ultravioleta y en el
espectro visible al color violeta [2]. Además de esto, el material semiconductor utilizado
en la fabricación de la celda, es quien determina que parte del espectro es el óptimo
para provocar el desequilibrio que genera las cargas libres (efecto fotovoltaico).
El voltaje de una celda fotovoltaica es de corriente continua. De acuerdo a lo
mencionado en [3], para celdas de silicio este voltaje es de alrededor de 0.5 [V].
En un instante determinado, la potencia eléctrica proporcionada por una celda
Fotovoltaica, está dada por el producto de los valores instantáneos del voltaje y la
corriente de salida. Este valor es afectado por la temperatura y el nivel de radiación
solar incidente, tal como se verá a continuación.
2.3 CARACTERÍSTICAS ANALÍTICAS
Una celda solar es un dispositivo no lineal [4] al [6], cuya relación I – V esta dada
por la ecuación (2.1). En ella se puede apreciar la dependencia de una celda solar con
respecto a la temperatura, mientras que en 2.3 la dependencia es del nivel de radiación
solar. El circuito equivalente de una celda solar, se ilustra en la figura 2.4.
I I I ⎧ ⎡ q(V
IR)⎤ ⎫
V IRS (2-1)
LG sat ⎨exp⎢⎣ AKTS ⎥ 1⎬
⎭ RSH
3⎡ T ⎤ ⎡ qEgo ⎛ 1 1 ⎞⎤I sat
I or ⎢ ⎥ exp⎢ ⎜ ⎟⎥ (2-2)
⎣Tr ⎦ ⎣⎢ KT ⎜ r T ⎟⎥⎦
CAPÍTULO SEGUNDO: CELDAS 1
I LG
I sc K I (T 25)
100
(2-3)
Donde
I : Corriente de salida de la celda solar.
V : Voltaje de salida de la celda solar.
I LG
Isat
: Es la corriente de la celda solar bajo un determinado nivel de radiación.
: Es la corriente inversa de saturación de la celda solar.
q : Es la carga de un electrón.
K : Es la constante de Boltzmann’s.
A : Es un factor ideal para las junturas N – P.
RS
RSH
Ior
Isc
Tr
: Es la resistencia serie intrínseca de la celda solar
: Es la resistencia paralela intrínseca de la celda solar
: Es la corriente de saturación a Tr
: Es la corriente de corto circuito (Vo 0 )
: Es la temperatura de referencia ºC.T : Es la temperatura de la celda solar ºC.
Ego : Es la banda de energía del semiconductor usado en la celda solar
K I : Es el coeficiente de temperatura de la corriente de cortocircuito
: Es la radiación en mW cm2
Figura 2-4 Circuito equivalente de una celda solar
CAPÍTULO SEGUNDO: CELDAS 1
Se menciona en [4] y [6], que en lugar de la característica I –V dada en (2.1), se
usa en muchos casos la ecuación (2.4), la cual desprecia la resistencia intrínseca en
paralelo de la celda.
V I R AKT ln
⎡ I I I ⎤ (2-4) S
LG sat
q ⎢ I ⎥⎣ sat ⎦
Por medio de las ecuaciones 2.1 al 2.3, se pueden obtener las curvas I – V
teóricas de una celda fotovoltaica. Y por medio del producto de ambas magnitudes, se
obtiene la curva de potencia versus voltaje (P – V) de una celda solar. Como la
potencia proporcionada por una única celda solar es muy baja (del orden de 1 a 2W) las
celdas solares se interconectan formando lo que se conoce como módulo o panel
fotovoltaico. La figura 2.5a y b muestran la variación de la característica de salida
I - V y P – V de un panel fotovoltaico comercial para diferentes niveles de temperatura y
radiación solar, respectivamente.
Figura 2-5 Característica de un panel fotovoltaico I –V y P – V (a) con radiación constante y variación en la temperatura y (b) con temperatura constante y variación
en el nivel de radiación.
CAPÍTULO SEGUNDO: CELDAS 1
Cada curva I – V tiene un punto de máxima potencia (denominado MPP), el cual
es el punto de operación óptimo (Iop,Vop) para el uso eficiente de un panel fotovoltaico.
Según lo mencionado en [6], el punto de máxima potencia se localiza en el codo de la
curva característica corriente versus voltaje I – V. Ver figura 2.5(a) y (b).
2.4 SEGUIMIENTO DEL MPP
Al momento de conectar una carga del tipo resistiva R a un panel solar. Según la
ecuación (2.5), se producirá una recta que intercepta la característica I – V del panel
solar en un punto, en el cual se define las condiciones de corriente – voltaje de
operación del panel. Ver figura 2.6(a).
⎛ 1 ⎞I ⎜ ⎟ V (2-5)
⎝ R ⎠
Por otro lado, la carga más frecuente de un panel solar es una batería, debido a
que las celdas solares encuentran su principal aplicación en el suministro de energía a
localidades aisladas, llámese un pequeño pueblo (de unas decenas de familia), en la
cual la mayor demanda de energía se da entre las 6 p.m. y las 10 p.m. Lapso que no
coincide con las horas de mayor nivel de radiación solar incidente, requiriéndose
almacenar energía.
La tensión de una batería depende de su estado de carga pero además es
afectada por la temperatura del electrolito y su vejez, entre otros factores. Es esta
tensión la que define el voltaje de operación del panel y con ello la corriente. A medida
que la corriente va cargando la batería, su tensión aumenta y con ello el punto de
operación del panel se va desplazando a lo largo de la característica I – V. Ver figura
2.6 (b).
CAPÍTULO SEGUNDO: CELDAS 1
(a) (b)
Figura 2-6 Interacción de un panel fotovoltaico con carga (a) resistiva y (b) galvánica de 12 V.
Tanto la carga resistiva como la galvánica (batería), generalmente no recibirán la
máxima potencia generada por él o los paneles fotovoltaicos. Esto se debe a que será
la carga quien impondrá el punto de operación (V , I ) , que no necesariamente es
coincidente con el punto de operación óptimo (Vop, Iop) . Además, suelen haber
variaciones climáticas que harán del punto (Vop, Iop) un punto en movimiento.
Debido a ello se debe utilizar una estrategia de control para seguir el punto de
máxima potencia y con ello transferir la máxima energía capturada por el panel solar a
la carga. Esto es posible de conseguir mediante la inserción de un conversor DC/DC
como interfaz entre el o los paneles solares y la carga (ver figura 2.7). El mencionado
conversor posee una característica intrínseca asociada a él relacionada con la
capacidad que presentan estos sistemas para reflejar o adaptar la impedancia vista
desde su entrada y la conectada a su salida.
En este sentido, los conversores son similares a los transformadores, cuando son
empleados como adaptadores de impedancia, excepto que en los conversores el
parámetro de adaptación no es la relación de espiras entre el primario y el secundario,
sino el ciclo de trabajo, el cual puede ser controlado de manera electrónica [7].
CAPÍTULO SEGUNDO: CELDAS 1
Figura 2-7 Esquema general de un sistema fotovoltaico con carga DC
En resumen, la principal función de la variación de la impedancia del conversores
ajustar el voltaje de salida del panel fotovoltaico al valor en el cual se entrega la máxima
energía a la carga. Este proceso se denomina: seguimiento del punto de máxima
potencia MPPT (Maximum Power Point Tracking) en sistemas fotovoltaicos.
ENERGÍA SOLARFOTOVOLTAICA
TELECOMUNICA-CIONES
ELECTRIFICACIÓNRURAL
ALUMBRADOAUTÓNOMO
APLICACIONESASILADAS DE LA RED
BOMBEOS
APLICACIONESAGROGANADERAS
SEÑALIZACIÓN YALARMA
APLICACIONESCONECTADAS A LA RED
CENTRALESFOTOELÉCTRICAS
INTEGRACIÓNEN EDIFICIOS
CAPÍTULO SEGUNDO: CELDAS 1
2.5 APLICACIONES
Realizar una descripción exhaustiva de las aplicaciones de la energía solar
fotovoltaica es una tarea incómoda, debido a que como fuente energética es posible su
utilización en principio para cualquier fin.
La introducción al mercado, y por tanto en la sociedad, de una u otra aplicación
viene condicionada por su rentabilidad frente a otras fuentes de energía
convencionales.
Una primera clasificación puede realizarse en función de los campos de
aplicación. Este hecho se ilustra en la figura 2.8.
Figura 2-8 Aplicaciones de la energía solar fotovoltaica
Las aplicaciones aludidas en la figura 2.8, se detallan a continuación.
CAPÍTULO SEGUNDO: CELDAS 1
2.5.1 ELECTRIFICACIÓN RURAL
▪ Viviendas aisladas
▪ Viviendas de fin de semana o de ocupación temporal
▪ Refugios de montañas
2.5.2 APLICACIONES AGROGANADERAS
▪ Bombeo de agua
▪ Riego por goteo
▪ Sistemas de ordeño
▪ Sistemas de refrigeración de leche
2.5.3 ILUMINACIÓN
▪ Iluminación de vallas publicitarias
▪ Iluminación de alumbrado público
2.5.4 TELECOMUNICACIONES
▪ Repetidores y reemisores de radio y televisión
▪ Telemetría
▪ Redes telefónicas rurales
2.5.5 SEÑALIZACIÓN Y ALARMA
▪ Radiofaros y radiobalizas
▪ Señalización de autopistas
CAPÍTULO SEGUNDO: CELDAS 1
▪ Faros y boyas para la navegación marítima
2.5.6 OTRAS APLICACIONES
▪ Relojes electrónicos
▪ Calculadoras
▪ Satélites y misiones espaciales
▪ Etc.
Todas estas aplicaciones caben definirlas como aplicaciones de la energía solar
fotovoltaica para sistemas autónomos, es decir, aquellos en lo que el total de la
necesidad energética es cubierta por el sistema. Mención aparte merecen las centrales
fotovoltaicas conectadas a la red e integración de paneles en edificios. En estos casos,
los sistemas funcionan proporcionando la energía capturada por las celdas solares a la
red eléctrica, sin más limitaciones que la propia producción diaria de energía. Sin
embargo, en los dos tipos es importante realizar la máxima transferencia de potencia.
CAPÍTULO TERCERO
SISTEMA EXPERIMENTAL
CAPÍTULO TERCERO: SISTEMA 2
3. SISTEMA EXPERIMENTAL
3.1 INTRODUCCIÓN
En el presente capítulo se describe el hardware diseñado e implementado para el
sistema fotovoltaico.
El sistema fotovoltaico planteado, está compuesto por un panel solar fabricado por
ISOFOTÓN, y cuya máxima potencia extraíble es de 106 W. Se utilizan también cuatro
baterías de 6V cada una. Las baterías son marca Trojan de ciclo profundo, las cuales
se interconectan entre sí para formar un banco de baterías, y este a su vez es la carga
del sistema fotovoltaico. Como interfaz entre el panel solar y la carga se conectará un
conversor DC/DC, primero un conversor Boost y luego un Buck – Boost, ambos
diseñados e implementados en el desarrollo de esta tesis. Cada conversor cuenta con
una unidad de control, cuyo funcionamiento se basa en un microcontrolador
PIC18F452. El microcontrolador, realiza la tarea de control sobre cada conversor y
maneja una serie de periféricos entre los que destaca:
▪ Comunicación serial con un computador PC.
▪ Lectura / Escritura de una memoria EEPROM externa
Además del diseño y la construcción de los conversores, se cuenta con las
siguientes tarjetas diseñadas e implementadas:
CAPÍTULO TERCERO: SISTEMA 2
Tarjeta LCD: Diseñada para interactuar con el usuario, proporcionando la
información de los niveles de tensiones, corrientes y potencias, a las cuales se
encuentra operando el conversor (Boost o Buck-Boost), además de visualizar el
estado de carga del banco de baterías mediante LED’s ( Entre otros).
Tarjeta de programación de microcontroladores de 8, 18, 28 y 40 pines:
Diseñada principalmente para el borrado, lectura y escritura de
microcontroladores PIC.
El sistema fotovoltaico descrito, se muestra de manera general en la figura 3.1.
Figura 3-1 Sistema Fotovoltaico Propuesto
CAPÍTULO TERCERO: SISTEMA 2
3.2 MICROCONTROLADOR PIC18F452
El microcontrolador PIC18F452 pertenece a la familia de microcontroladores de 8
bits (bus de datos), aún cuando tiene compatibilidad de hardware con las familias
PIC17FXXX, PIC16FXXX, PIC16F5X y PIC12FXXX. Su rendimiento alcanza los 10
MIPS (Mega Instrucciones por Segundo), disponer de tecnología RISC con 77
instrucciones de 16 bit, lograr un rango de direccionamiento de 2Mbytes de memoria de
programa, funcionar a una frecuencia desde 0 a 40 MHz y puede ser programado en el
circuito de aplicación vía comunicación serial. Además, el PIC18F452 posee una
memoria de programa del tipo FLASH de 32Kbytes, una memoria de datos (RAM) de
1536 bytes, 256 bytes de EEPROM. En las características de los periféricos destaca: 5
puertos (A, B, C, D y E), 4 temporizadores, 2 módulos de captura/comparación/pwm,
módulo AUSART, módulo de puerto paralelo, SSP (Puerto Serie Sincrónico) el cual
puede configurarse como SPI (Interfase serial de periféricos) de 3 hilos o como bus
I 2 C de dos hilos y 8 canales con conversión A/D de 10 bits. Para mayores detalles ver
el Apéndice C.
Para realizar la tarea de programación del microcontrolador se utilizó el compilador
PCWH (versión 3.187) de la casa CCS Inc. A su vez, el compilador se ha de integrar en
un entorno de desarrollo integrado (IDE) que ha de permitir todas y cada una de las
fases que compone un proyecto, desde la edición, depuración y finalmente compilación.
El compilador “traduce” el código C del archivo fuente (.C) a lenguaje máquina (.HEX)
del PIC.
CAPÍTULO TERCERO: SISTEMA 2
3.3 TARJETA DE PROGRAMACIÓN DE MICROCONTROLADRES PIC
La tarjeta de programación de microcontroladores PIC permite el borrado, lectura
y escritura de microcontroladores de 8, 18, 28 y 40 pines y memorias seriales EEPROM
de 8 pin. La alimentación de la tarjeta, se realiza mediante fuente externa, a una tensión
de aproximadamente 14 V. Por otra parte, para el traspaso del código máquina (archivo
.HEX) generado por el compilador PCWH de CCS al PIC, se utiliza el software gratuito
ICPROG en su versión 1.05D. Dicho traspaso de la información, se realiza vía
conexión paralela entre la tarjeta de programación y el PC.
La figura 3.2 muestra la tarjeta implementada, mientras que el esquemático de
ésta, se encuentra disponible en el Apéndice B.
Figura 3-2 Tarjeta de Programación de Microcontroladores PIC
CAPÍTULO TERCERO: SISTEMA 2
3.4 CONVERSORES DC/DC
3.4.1 CONVERSOR BOOST
La figura 3.3 muestra a un conversor boost (elevador). Como su nombre lo indica,
el voltaje de salida es siempre mayor que el voltaje de entrada. Cuando el switch S esta
cerrado (figura 3.4 (a)), toda la tensión de la fuente primaria se aplica sobre la bobina, lo
que provoca que la corriente circulante por la misma aumente, y de esta forma la
inductancia almacene energía. Si ahora el interruptor se abre (figura 3.4 (b)), la tensión
existente en la bobina se suma a la tensión de la fuente, obteniéndose de este modo
una tensión de salida siempre mayor a la de la fuente y de idéntica polaridad.
Figura 3-3 Conversor DC/DC Boost
A la suma del tiempo de encendido ( tON ) y el tiempo de apagado ( tOFF ), se conoce
como periodo de switching ( TS ), mientras que al inverso del periodo de switching se le
conoce como frecuencia de switching ( f S ). Al cuociente entre tON
de trabajo D (Ecuación 3.1).
y TS , se le llama ciclo
D tON
TS
; 0 D 1
(3-1)
CAPÍTULO TERCERO: SISTEMA 2
3.4.1.1 MODO DE CONDUCCIÓN CONTINUA
En la figura 3.4 muestra las formas de onda para este modo de conducción,
donde la corriente del inductor fluye continuamente iL t 0.
Figura 3-4 Modo de conducción continua (a) switch encendido; (b) switch apagado
Según lo expuesto en [8], en estado estacionario la integral del voltaje del
inductor sobre un periodo de switching debe ser cero (ver ecuación 3.2 y 3.3).
CAPÍTULO TERCERO: SISTEMA 2
TS
vL dt
00
(3-2)
O bien:
Vd tON Vd VO tOFF
0 (3-3)
Dividiendo la ecuación 3.3 por TS , y arreglando los términos se obtiene la
relación existente entre la tensión de salida y la de entrada. En modo de conducción
continua, esta relación esta dada por la ecuación 3.4.
VO
Vd
TS
tOFF
1
(3-4)1 D
Asumiendo que no existen perdidas en el circuito,
Pd PO .
Vd Id VO IO
Y de esta forma, basándose en la ecuación 3.4, se obtiene la ecuación 3.5
IO 1 D (3-5)I d
3.4.2 CONVERSOR BUCK – BOOST
Un conversor Buck – Boost (reductor – elevador) se puede obtener por la
conexión en cascada de dos conversores básicos: un conversor reductor (Buck) y un
conversor elevador (Boost). El conversor Buck – Boost tiene un voltaje de salida que
puede ser mayor o menor al voltaje de entrada, y una polaridad en el voltaje de salida
invertido con respecto al terminal común de la tensión de entrada.
CAPÍTULO TERCERO: SISTEMA 2
La conexión en cascada de un conversor Buck y un conversor Boost, puede ser
fusionado dentro de un solo conversor denominado Buck – Boost, este hecho se ilustra
en la figura 3.5. Cuando se cierra el switch S, la fuente de entrada (Vd) provee energía
a la bobina y el diodo queda inversamente polarizado (figura 3.6(a)). Al abrir el switch
S, la energía almacenada en el inductor es transferida a la carga (figura 3.6 (b)). No hay
energía suministrada por la fuente de entrada en este intervalo. En el análisis de estado
estacionario presentado aquí, el capacitor de salida se asume muy grande, lo que trae
como consecuencia que el voltaje de salida se suponga constante vo (t) Vo .
Figura 3-5 Conversor Buck – Boost
3.4.2.1 MODO DE CONDUCCIÓN CONTINUA
La figura 3.6 ilustra el comportamiento de un conversor Buck – Boost operando
en modo de conducción continua, donde la corriente de la inductancia fluye
continuamente iL t 0.
CAPÍTULO TERCERO: SISTEMA 2
Figura 3-6 Modo de conducción continua (a) switch encendido (b) switch apagado
De acuerdo a lo mencionado por [8], en estado estacionario la integral del voltaje
del inductor sobre un periodo de switching debe ser cero (ecuación 3.6).
Vd DTS VO 1 DTS 0
(3-6)
Dividiendo la ecuación 3.6 por TS , y arreglando los términos se obtiene la
relación existente entre la tensión de salida y la de entrada. En modo de conducción
continua, esta relación está dada por la ecuación 3.7.
VO
Vd
D1 D
(3-7)
CAPÍTULO TERCERO: SISTEMA 3
Asumiendo que no existen perdidas en el circuito, Pd PO .
Vd Id VO IO
Y de esta forma, basándose en la ecuación 3.7, se obtiene la ecuación 3.8
IO 1 D
I d D (3-8)
3.4.3 DISEÑO DEL CONVERSOR DC/DC
De las secciones 3.4.1 y 3.4.2, se logró apreciar que las diferencias en las
respuestas entre el conversor DC/DC Boost y el Buck – Boost, radican en la variación
en el ordenamiento de los componentes principales que conforman dichos conversores
(inductancia, condensadores, diodo y transistor). Es por ello que de esta sección en
adelante, al momento de mencionar un conversor DC/DC, se hará referencia tanto a la
topología elevadora de tensión (Boost), como a la reductora – elevadora (Buck - Boost).
Según lo anterior y de acuerdo a la referencia [9], el conversor DC/DC se ha
diseñado según las características descritas a continuación:
▪ Entrada de voltaje al conversor DC/DC Vd : 13 a 17.4 V.
▪ Salida de voltaje del conversor DC/DC VO : 26 V
▪ Frecuencia de switching fs: 33kHz
▪ Potencia máxima (peak) del panel solar: 106 Wp (100 mW / cm 2 , 25º C, A.M 1.5 )
▪ Máximo ripple del voltaje de salida Vc : 5%
▪ Máximo ripple de la corriente de entrada I : 35%
▪ Conversor operando en modo de conducción continua hasta ≈0.45A.
CAPÍTULO TERCERO: SISTEMA 3
De acuerdo a lo expuesto por [8] al [11], además de las ecuaciones (3.4) y (3.5), es
necesario para el diseño de un conversor DC/DC las siguientes ecuaciones.
IL
Vd
Df S L
(3-9)
VO
IO
Df S C
(3-10)
Para las especificaciones dadas y utilizando la ecuación (3.4), resulta:
0 D 0.5
Utilizando la ecuación (3.9) con D 0.44 , la inductancia obtenida es:
L 100H
Por otro lado, utilizando la ecuación (3.10) con
IO 2.77 A , el capacitor calculado es:
C 28.41F
En esta tesis, la inductancia utilizada en la construcción del conversor DC/DC es
de 100H y la cual soporta una corriente de 7.8A que se encuentra por encima de los
6.1A capaz de entregar el panel solar. Por otro lado, el condensador de salida utilizado
es de 4700F y soporta una corriente de ripple cercana a los 16 A.
El switch de potencia incorporado en el conversor DC/DC, es un MOSFET de
canal N, específicamente el transistor IRFZ40, el cual tiene como característica una
muy baja resistencia de conducción 30m, soporta además una tensión Vds 50V y
una corriente Id 50A . Por otro lado, el diodo de potencia utilizado es el STTA2512P,
el cual es un diodo ultra rápido, con un tiempo de recuperación de 60ns , capaz de
CAPÍTULO TERCERO: SISTEMA 3
transportar una corriente de 25 A y tener una tensión en conducción menor a 1.9 V.
CAPÍTULO TERCERO: SISTEMA 3
3.4.4 UNIDAD DE CONTROL
La unidad de control (figura 3.1) esta basada en un microcontrolador PIC18F452
y es la encargada de realizar:
▪ Procesamiento de las señales de medición de tensiones y corrientes del sistema
fotovoltaico.
▪ Acondicionar las señales provenientes de los sensores de tensión y corriente
▪ Generar la señal de PWM necesaria para controlar el flujo de potencia del
conversor.
▪ Tener acceso a periféricos (LCD, EEPROM externo, comunicación serial con un
PC).
Lo referente al acceso de periféricos que realiza la unidad de control, será tratado
con mayor nivel de detalle en secciones posteriores de este capítulo.
La medición de corrientes en el sistema fotovoltaico utiliza dos sensores LEM
LA55 – P. La corriente máxima que es capaz de medir estos sensores es 50 A y el
sensado se realiza pasando corriente mediante un conductor por el orificio rectangular
que este posee. Estos sensores tienen tres pines, de los cuales dos de ellos son para
su alimentación de +15V y -15V. El tercer pin denominado M, es quien entrega en
definitiva la medición representado en un valor de tensión. La figura 3.7 ilustra la
configuración de pines de este sensor, junto con las resistencias asociadas que se
deben conectar para su adecuado funcionamiento, mientras que la figura 3.8 muestra el
sensor LEM utilizado.
M
CAPÍTULO TERCERO: SISTEMA 3
Figura 3-7 Configuración del sensor de corriente LEM LA 55-P
Figura 3-8 Sensor de corriente de efecto Hall LEM LA 55-P utilizado
La resistencia RM se obtiene de manera que la tensión máxima de salida se
logre con una corriente de 21mA. Considerando que la tensión máxima de salida
deseada es de 5V, se obtiene el siguiente valor de
RM :
R VM
I S
521e 3
220
(3-11)
Por otro lado, la medición de las tensiones se realizó por medio de divisores de
tensión conformado por resistencias, para efecto de disminución de costos del sistema
fotovoltaico.
El acondicionamiento de señal o interfaz cumple la función de ajustar los niveles
de tensión (0 a 5V) además de filtrar las señales de tensiones y corrientes del sistema
fotovoltaico, disminuyendo el ruido al que se encuentran expuestas, producto de
CAPÍTULO TERCERO: SISTEMA 3
dispositivos de potencia del conversor. Las señales acondicionadas son las siguientes:
tensión y corriente de entrada proveniente del panel solar Vd
y Id y, tensión y
corriente del banco de batería Vo y Io. Además, evitan problemas de distorsión de las
señales causadas por el muestreo, lo cual es conocido como aliasing.
Para solucionar lo anteriormente expuesto se implementó un filtro pasa bajos de
segundo orden Chebyshev [12], con una frecuencia de corte de 10Hz y ganancia
unitaria. La figura 3.9 ilustra el esquema de este tipo de filtro.
Figura 3-9 Esquema de filtro antialiasing Chebyshev de segundo orden
La función de transferencia para el filtro ilustrado en la figura 3.10, se entrega en
la ecuación 3.12.
As
1 2 2 (3-12)
1 C
C1
R1 R2
s C
R1 R2 C1C2 s
2
CAPÍTULO TERCERO: SISTEMA 3
Donde:
a1 C C1 R1 R2 b1 C R1 R2C1C2
Según lo expuesto en [11], los coeficientes a1 y b1
para un filtro Chebyshev de
segundo orden están dados acorde a la siguiente tabla.
Filtro Chebyshev de Segundo Orden
a1 b1
1.0650 1.9365
Tabla 3-1 Filtro 2º orden Tschebyscheff
De la tabla 3.1 y con una fC 10Hz
los valores de condensadores y resistencias
son los siguientes: C1 0.01F , C2 0.1F ,
R1 1M
y R2 1M .
La generación del PWM se discute en la siguiente sección “DISPARO DEL
TRANSISTOR MOSFET”.
3.4.5 DISPARO DEL TRANSISTOR MOSFET
Para efecto de controlar el transistor MOSFET IRFZ40 se hizo uso de un opto
acoplador HCPL 3120, tanto en la tarjeta conversor Boost como en el Buck - Boost.
El opto acoplador actúa como interfaz entre la unidad de control, la cual como ya
se mencionó genera la señal PWM. Esta señal proviene del PIC18F452 con valores de
tensión de 5V o 0V, que no son suficientes para la correcta activación o desactivación
del transistor. Para asegurar dicha activación / desactivación se hace necesario
tensiones del orden de + 15V / - 15 V, respectivamente. Además, el HCPL 3120 realiza
CAPÍTULO TERCERO: SISTEMA 3
una unión de tipo óptica, lo cual hace que se encuentre aislado eléctricamente la
unidad de control con respecto al circuito de potencia. En la figura 3.10 ilustra la forma
de conexión del opto acoplador HCPL – 3120.
Figura 3-10 Circuito de disparo opto acoplado del transistor MOSFET
La resistencia Rg que aparece en la figura 3.10, se obtiene según la hoja de
característica del propio opto acoplador como:
V V V R CC EE OLg I (3-13)
OLPEAK
Donde: VCC es +15V, VEE es -15V, VOL y IOLPEAK están dado en la hoja de
característica (HCPL – 3120) y tienen el valor de 0.5V y 2.5A, respectivamente.
Reemplazando los valores recién dados, se obtiene la resistencia mínima necesaria
para disminuir las perdidas por efecto de conmutación del driver. Según esto, la
resistencia debe ser superior a 12 Ohm.
CO NV E R S O R B OO S T
PW M
UN IDA D DE CO NT RO L BA SA D O E N U NP IC 18F 452
CAPÍTULO TERCERO: SISTEMA 3
3.4.6 TARJETA CONVERSOR BOOST
La tarjeta conversor Boost fue diseñada e implementada como parte de esta tesis
para poder alimentar cargas que necesiten de una mayor tensión, de la proporcionada
por el panel solar.
Esta tarjeta cuenta con una unidad de control, basada en un microcontrolador
PIC18F452, el cual genera una señal modulada por ancho de pulso (PWM), debido a la
acción de un algoritmo de control programado en el mencionado microcontrolador.
Dicho algoritmo determina el ciclo de trabajo óptimo, en el cual se le proporciona la
máxima cantidad de energía a la carga, procedente del módulo o panel solar. La
frecuencia de switching utilizada es de 19.6kHz y el cristal que controla al PIC18F452
es de 20MHz. Además, la tarjeta cuenta con un pulsador que origina un RESET al
microcontrolador al momento de ser presionado.
La figura 3.11 y 3.12 muestran el diagrama de bloques y la tarjeta conversor
Boost implementada, respectivamente.
Figura 3-11 Diagrama de bloque de la Tarjeta Conversor Boost
CO
NE
CTO
R P
AN
EL
SO
LA
ME
DIC
IÓN
DE
TE
NS
IÓN
Y
ME
DIC
IÓN
DE
TE
NS
IÓN
Y
CO
NE
CTO
R B
AN
CO
DE
CAPÍTULO TERCERO: SISTEMA 3
Figura 3-12 Tarjeta conversor Boost implementada
Cabe señalar que esta tarjeta alimenta su unidad de control, por medio del banco
de batería el cual es la carga del sistema fotovoltaico. Para ello, el banco de batería
esta dividido en dos arreglos de dos baterías, cada arreglo esta conectado en serie y
como la tensión nominal de cada batería es de 6V, dicho arreglo es de 12V. Por ende,
el banco completo es de 24V, con una toma central (GND). Lo anterior permite que la
unidad de control cuente con las siguientes tensiones: +12V, -12V y GND, las cuales
son reducidas luego a +9V, -9V,+5V y GND, por medio de reguladores de tensión.
3.4.7 TARJETA CONVERSOR BUCK – BOOST
La tarjeta conversor Buck - Boost fue diseñada e implementada como parte de
esta tesis para poder alimentar cargas que necesiten de una mayor o menor tensión,
de la proporcionada por el panel solar.
Esta tarjeta al igual que la mencionada en la sección 3.4.6, cuenta con una
unidad de control, basada en un microcontrolador PIC18F452, el cual genera una señal
modulada por ancho de pulso (PWM), debido a la acción de un algoritmo de control
C O N V E R S O R B U C K - B O O S T
P W M
U N I D A D D E C O N T R O L B A S A D O E N U NP I C 1 8 F 4 5 2
CAPÍTULO TERCERO: SISTEMA 4
programado en el mencionado microcontrolador. Dicho algoritmo determina el ciclo de
trabajo óptimo, en el cual se le proporciona la máxima cantidad de energía a la carga,
procedente del módulo o panel solar. La frecuencia de switching utilizada es de 19.6kHz
y el cristal que controla el PIC18F452 es de 20MHz. Además, la tarjeta cuenta con un
pulsador que origina un RESET al microcontrolador.
La figura 3.13 y 3.14 muestran el diagrama de bloques y la tarjeta conversor
Buck – Boost implementada, respectivamente.
Figura 3-13 Diagrama de bloques de la Tarjeta Conversor Buck - Boost
Figura 3-14 Tarjeta Conversor Buck – Boost implementada
CO
NE
CTO
R P
AN
EL
SO
LA
ME
DIC
IÓN
DE
TE
NS
IÓN
Y
ME
DIC
IÓN
DE
TE
NS
IÓN
Y
CO
NE
CT
OR
BA
NC
O
DE
CAPÍTULO TERCERO: SISTEMA 4
La unidad de control en esta tarjeta a diferencia de la tarjeta Boost, se alimenta
por fuente externa con las siguientes tensiones: +15V, -15V, +5V y GND.
3.5 TARJETA LCD
La tarjeta LCD permite realizar una interfaz visual con el usuario. Para ello cuenta
con un módulo LCD de 2 x 20 (dos filas de veinte caracteres cada una), la cual se
utiliza principalmente para conocer en tiempo real el estado del conversor DC/DC, como
también la energía proporcionada a la batería desde el momento en que se energizó la
unidad de control. Además de lo anterior, el módulo LCD proporciona al usuario
información cada vez que se envía una señal vía comunicación serial, o la finalización
de algún proceso como por ejemplo “fin de escritura en la eeprom externa”. Los
mensajes generados en el módulo LCD se detallan en el APÉNDICE A, denominado:
MENSAJES DEL MÓDULO LCD.
Por otro lado, además del módulo LCD, la tarjeta cuenta con tres LED’s que
indican el estado de carga del banco de batería, y con dos switch de los cuales el
primero permite realizar un cambio de pantalla (ver APÉNDICE A) y el segundo permite
el borrado de la contabilización de la energía almacenada en la carga, desde el
momento en que se encendió la unidad.
Para lograr lo mencionado en el párrafo anterior, la tarjeta se ha de conectar con
el conversor DC/DC, por medio de un bus conformado por un cable plano de 15 líneas,
el cual se divide en: 4 líneas de datos (DB4 al DB7), 3 líneas de control (RS, R/W y E),
3 LED’s, 2 switch, 1 línea de alimentación +5V y 2 líneas de tierra (GND). Estas señales
son posibles de apreciar en el diagrama de bloque de la figura 3.15.
CAPÍTULO TERCERO: SISTEMA 4
MÓDULO LCD 2 X 20
PORT D PORT B
TARJETA LCD
BUS
Esperar m ás de 15m s
RS R/W D B 7 DB 6 D B 5 DB 4 000011
Esperar m ás de 4.1m s
RS R/W D B 7 DB 6 D B 5 DB 4 000011
Esperar m ás de 100us
RS R/W D B 7 DB 6 D B 5 DB 4 000011
Encendido
C onfiguración
Apagar displayEncender display M odo de D esplazam iento
F in de la In icia lización
Figura 3-15 Diagrama de bloques de la tarjeta LCD
Antes de poder enviar un mensaje al módulo de cristal liquido a través de las
líneas de datos, el módulo se ha de inicializar. Para ello, es necesario crear una rutina
en C que permita configurar los bits involucrados en este proceso. La figura 3.16
proporciona el diagrama de flujo de la rutina creada en C.
RS 0
R/W 0
D B 70
DB 6 0
D B 51
DB 4 0
00
00
0N
0F
1X
0X
00
00
01
00
00
00
00
00
00
00
00
01
00
00
00
01
01/D
0S
Figura 3-16 Diagrama de flujo de la rutina de inicialización del módulo LCD
G ND
SWIT
CH
1
LED
LED
2 D B 4 D R S E
CAPÍTULO TERCERO: SISTEMA 4
Para inicializar el módulo LCD, lo primero que se debe realizar es alimentar el
módulo con una tensión de 5V y esperar un tiempo superior a 15ms para estabilizar la
tensión. Enseguida se habilitan los bits de datos (DB4 al DB7) y los de control RS y R/W
(Register Selection y Read / Write), de acuerdo a la secuencia ilustrado en la figura
3.16. Para finalizar la inicialización, se debe realizar una etapa de configuración en la
cual se elige la línea del módulo en la que se va a enviar el primer mensaje y el tipo de
letra. Posterior a ello, se apaga el módulo LCD y luego se enciende, para finalmente
posicionar el cursor y de esta forma encontrarse listo para recibir datos. La tabla 3-2
muestra el significado de las abreviaturas utilizadas en la figura 3.16.
0 Primera línea del displayN
1 Segunda línea del display
0 5 x 7 píxel por cada carácterF
1 5 x 10 píxel por cada carácter
0 Mensaje fijo en el displayS
1 Desplaza el mensaje en el display
0 Decrementa la posición del cursor1/D
1 Incrementa la posición del cursor
Tabla 3-2 Significado de las abreviaturas
Como ya fue mencionado, el estado de la carga (EDC) del banco de batería
puede ser visualizado mediante LED’s. Para ello, la tarjeta LCD cuenta con tres led’s
(Verde, Amarillo y Rojo), los cuales indican un estado alto, medio y bajo del estado de
carga del banco de baterías de 12V, respectivamente. Un parpadeo sucesivo del LED
verde indica un estado de carga óptimo, superior a 14.8V (x 2 para 24V). Por otro lado,
un parpadeo sucesivo del led amarillo indica un estado de carga medio, o sea, su carga
se encuentra entre los 12.4V y 14.8V. Y por último, el parpadeo del led de color rojo
U
L
MICROCONTROLADOR PIC18F452
P
C
S W
CAPÍTULO TERCERO: SISTEMA 4
indica un estado de carga deficiente, lo cual indica que la tensión esta por debajo de los
12.4V. La figura 3.17 muestra la tarjeta LCD implementada.
Figura 3-17 Tarjeta LCD implementada
3.6 COMUNICACIÓN SERIAL
La comunicación dual existente entre el PC y la unidad de control del sistema
fotovoltaico es implementado vía serial hacia la unidad de control del sistema
fotovoltaico y viceversa. En la unidad de control el encargado de interpretar y generar la
cadena serial de bits es el microcontrolador PIC18F452. Para ello, el programa cuenta
con comandos predefinidos. Este hecho se ilustra en la figura 3.18 y en la tabla 3-3 se
entrega el significado de cada carácter.
Figura 3-18 Diagrama de instrucciones predefinidas en el PIC
CAPÍTULO TERCERO: SISTEMA 4
Carácter FunciónP Habilita el algoritmo perturbación y observaciónC Habilita el algoritmo conductancia incrementalS Realiza un reset al contador de energíaL Permite la lectura de la EEPROM externaW Permite la escritura de la EEPROM externaU Realiza un reset al microcontrolador
Tabla 3-3 Carácter y funciones interpretadas por el PIC18F452
Al momento en que el computador PC envía alguna de los seis caracteres
introducidos en la figura 3.18, el microcontrolador ejecuta una interrupción y da a lugar a
la petición realizada por el PC (ver tabla 3-3).
La comunicación entre el computador PC y la unidad de control, se realiza
mediante comunicación serial asincrónica, utilizando para ello protocolo RS – 232 [13].
Dicha comunicación es posible mediante la conexión de tres hilos: uno de ellos para
transmisión (TX), otro para recepción (RX) y el último como tierra común entre ambas
unidades. Este hecho se ilustra el diagrama de bloques de la figura 3.20.
TX RX
RX TXUNIDAD DE
COMPUTADOR PERSONAL
CONTROL DEL
CONVERSORGNDDC/DC
Figura 3-19 Comunicación serial PC / Unidad de control
El microcontrolador PIC18F452 posee un módulo AUSART [14], esto hace que
sea capaz de generar e interpretar cadenas de bits en formato serial. La cadena de bits
generada en el PIC varía entre 0 y 5V. Tensiones que no son suficientes para
adaptarse a la norma RS – 232 (tensiones entre +15 y -15V), es por ello que se hace
necesario el uso de un conversor MAX232 (ver Apéndice D) como interfase entre el
microcontrolador PIC18F452 y el PC.
CAPÍTULO TERCERO: SISTEMA 4
3.7 MEMORIA EXTERNA EEPROM 24LC16B
La memoria externa EEPROM es la encargada de almacenar en forma de datos,
las corrientes y tensiones a la que se encuentra operando el sistema fotovoltaico. Tanto
la instrucción de lectura como la escritura de esta memoria, se realiza por medio de la
comunicación serial existente entre el PC y la unidad de control del sistema fotovoltaico,
tal como se mencionó en la sección 3.6.
La memoria EEPROM utilizada en esta tesis es el chip 24LC16B fabricado por la
empresa Microchip (Ver Apéndice D) , el cual tiene una capacidad de almacenamiento
de 16Kbyte, y para comunicarse con otros dispositivos hace uso de dos hilos (Ver
apéndice B). Dado que cumple con el protocolo I 2
Ctiene un pin llamado SCL (Serial
Clock) que recibe los pulsos generados por el dispositivo maestro (o sea el PIC18F452)
y el otro llamado SDA (Serial Data) que maneja el flujo de datos de forma bidireccional
(entrada / salida).
Este dispositivo (24LC16B) no requiere de un pin habilitador o chip select ya que
en este esquema, la transferencia de información sólo se puede iniciar cuando el bus
(SDA) esté libre. Cuando el microcontrolador PIC18F452 desea entablar comunicación
con la memoria, debe enviarle una serie de bits que llevan la siguiente información:
1. Se envía el bit de arranque
2. El código 1010
3. La dirección del dispositivo (Ver Apéndice D).
4. Un bit que indica que se desea escribir en la memoria (“0”).
CAPÍTULO TERCERO: SISTEMA 4
Luego de esto la memoria debe enviar un reconocimiento para informarle al
microcontrolador que recibió la información. Dicho asentamiento, llamado ACK
(Acknowledge), consiste en colocar el pin SDA en un nivel bajo (lo hace la memoria).
Después el microcontrolador debe enviar los bits que corresponden a la posición de
memoria que se quiere leer o escribir; nuevamente la memoria envía un
reconocimiento. El paso siguiente depende de la operación que se vaya a realizar. Si se
trata de un proceso de escritura, el microcontrolador PIC18F452 sólo debe enviar el
dato a ser almacenado y esperar el asentamiento por parte de la memoria. Si se trata
de una lectura, nuevamente se deben repetir los primeros cuatro pasos, solo que en
lugar de un ”0” que indica escritura, se debe enviar un ”1” que indica lectura. Después
se espera el asentamiento y luego se puede leer el byte con el dato que estaba en la
posición de memoria que se indicó anteriormente. Cuando se termina la operación, el
microcontrolador debe enviar una señal de parada o stop bit.
Todos los pasos anteriormente descritos están insertos en una librería
proporcionada por el programa PCWH de CCS denominada 2416.C, la cual fue
utilizada en esta tesis y se encuentra disponible en el Apéndice B.
CAPÍTULO CUARTO
ALGORITMOS DE CONTROL
CAPÍTULO CUARTO: ALGORITMOS DE 4
4. ALGORITMOS DE CONTROL
4.1 INTRODUCCIÓN
Como ya se mencionó en el capítulo anterior, la potencia proporcionada por los
paneles solares es dependiente de la temperatura y del nivel de radiación solar
incidente. Es por ello que una consideración importante en el diseño de un sistema
fotovoltaico eficiente es rastrear el punto donde se encuentra la máxima potencia de
manera correcta. El propósito del seguimiento del punto de máxima potencia (MPPT)
es forzar a la tensión del panel solar a las cercanías del punto de máxima potencia
(MPP) bajo condiciones atmosféricas cambiantes. De acuerdo a lo anterior, se han
propuesto numerosos métodos para alcanzar el MPP. Entre estos, la referencia [15]
menciona que la tensión del panel solar donde se encuentra la máxima potencia foto
generada VMP , es proporcional a la tensión de circuito abierto del panel solar VOC .
Este hecho se ilustra en la ecuación 4.1.
VMP K VOC
0.73 K 0.80 (4-1)
Por otro lado, la referencia [16] indica que la corriente del panel solar en donde
se ubica la máxima potencia foto generada IMP , es proporcional a la corriente de corto
circuito del panel solar Isc. Este hecho se ilustra en la ecuación 4.2.
IMP K I SC
0.92 K 0.96
(4-2)
CAPÍTULO CUARTO: ALGORITMOS DE 4
Ambos métodos son de simple implementación [15] y [16], pero necesitan forzar
la potencia a cero durante un pequeño lapso de tiempo para obtener VOC o I SC ,
disminuyendo de esta forma la energía proporcionada a la carga. De acuerdo a esto, los
algoritmos que proporcionan mejor desempeño (según lo expuesto en [17] y [18]) y los
cuales han sido implementados en el desarrollo de esta tesis son:
▪ Perturbación y observación
▪ Conductancia incremental
▪ Controlador basado en lógica difusa
Estos algoritmos se detallan a continuación en las secciones 4.2, 4.3 y 4.4,
respectivamente.
4.2 PERTURBACIÓN Y OBSERVACIÓN
El algoritmo perturbación y observación (P&O), se basa en la comparación entre
un valor actual de potencia P(k) , y un valor obtenido de la muestra anterior
P(k 1) .
Basándose en la figura 4.1, el panel solar se encontraba originalmente operando en el
punto A de la curva P – V, luego se desplaza hacía el B. Ahora en el punto B, se
averigua si la potencia actual P(k) , es mayor o igual a la potencia de la muestra
anterior P(k 1) . Si se cumple la premisa P(k ) P(k 1) , se desplaza el punto de
trabajo de B hacía C. Esto es posible de lograr realizando un aumento a una tensión de
referencia denominada Vref , la cual entra a un lazo de control (Ver figura 4.2) y de esta
forma obliga al panel solar a trabajar en dicha tensión. El aumento de Vref , sólo se
hará efectivo si V (k ) V (k 1) , en caso contrario se realizará una disminución de Vref .
CAPÍTULO CUARTO: ALGORITMOS DE 5
(V(k),P(k))B
(V(k+1),P(k+1)) C
(V(k-1),P(k-1))
A
110
100
90
80
70
60
50
40
30
20
10
00 24 6 8 10121416182022
Tensión (V)
VpVp* Vref+ P+I
-
Circuito dedisparo
ConversorDC/DC
PanelSolar
Figura 4-1 Curva P – V bajo seguimiento del MPP con algoritmo P&O
Ahora en el punto C, se examina nuevamente si la potencia actual (ahora llamada
P(k 1) )) es mayor a la potencia de la muestra anterior
P(k) . Al contrario del caso
anterior, la condición P(k 1) P(k )
es falsa, por ende Vref debe disminuir, esto sólo si
V (k 1) V (k ) . En caso contrario, Vref debe aumentar.
Figura 4-2 Lazo de control para la tensión del panel solar
Para obtener el valor de la potencia proporcionada por el panel solar, se debe
sensar continuamente el valor de la tensión V k y corriente I k
instantánea foto
generada (sección 3.3.4), para luego acondicionar las señales a valores entre 0 y 5V,
los cuales llegan finalmente al conversor A/D del microcontrolador PIC18F452. El PIC
Pot
enci
a (W
CAPÍTULO CUARTO: ALGORITMOS DE 5
Sensar V(k), I(k)
Calcular potenciaP(k)= V(k) x I(k)
NO P(k) > P(k-1) SI
V(k) > V(k-1) V(k) > V(k-1)
SINONOSI
Vref = Vref - C Vref = Vref + C Vref = Vref - C Vref = Vref + C
Retornar
efectuará el cálculo de la potencia (ver ecuación 4.3) y se encargará de almacenar este
dato, para ser comparado con la potencia generada en la muestra siguiente. La figura
4.3 resume el método, mediante un diagrama de flujo del algoritmo de búsqueda
denominado: perturbación y observación (P&O).
Pk V k I k (4-3)
Figura 4-3 Diagrama de flujo del método perturbación y observación
La constante C mencionada en el diagrama de flujo de la figura 4.3, representa
una pequeña variación en la tensión de referencia.
CAPÍTULO CUARTO: ALGORITMOS DE 5
4.3 CONDUCTANCIA INCREMENTAL
El algoritmo de conductancia incremental se basa en la diferenciación de la
potencia proporcionada por el panel solar con respecto al voltaje. Dicha derivada debe
ser cero para situarse en el MPP [17]. Este hecho se muestra en la ecuación 4.4.
dP d (V I ) I V
dI
0dV dV dV
(4-4)
Arreglando los términos de la ecuación 4.4, se obtiene la ecuación 4.5.
I dI
V dV (4-5)
Cabe señalar que el lado izquierdo de la ecuación 4.5 representa la conductancia
instantánea del panel solar, mientras que el lado derecho representa la conductancia
incremental. Así, para situarse en el punto de máxima potencia, estas dos cantidades
deben ser iguales en magnitud, pero opuestos en signo. Si el punto al que se encuentra
operando el panel solar, se encuentra lejos del punto de máxima potencia, se puede
obtener un conjunto de ecuaciones provenientes de la ecuación 4.5 que indican si el
voltaje de operación del panel esta cerca o lejos del MPP (Ver Figura 4.4). Estas
ecuaciones son resumidas en las ecuaciones 4.6 al 4.8.
CAPÍTULO CUARTO: ALGORITMOS DE 5
dP/dV = 0
dP/dV > 0dP/dV < 0
120
100
80
60
40
20
00 5 10 15 20 25
Tensión (V)
dI I
;⎜ dP ⎟ ⎛ 0 ⎞ (4-6)
dV V
dI I
;
⎝ dV ⎠dP⎜ ⎟
⎛ 0 ⎞ (4-7)dV V
dI I
;
⎝ dV ⎠dP⎜ ⎟
⎛ 0 ⎞ (4-8)dV V ⎝ dV ⎠
Figura 4-4 Curva P – V bajo seguimiento del MPP con algoritmo Conductancia Incremental.
La ecuación 4.6 se ha repetido de la ecuación 4.5 por comodidad. Las
ecuaciones 4.6 al 4.8 son utilizadas para determinar la dirección en la cual debe ocurrir
una perturbación para mover el punto de operación a las cercanías del punto de
máxima potencia, y la perturbación se ha de repetir hasta lograr que sea satisfecha la
ecuación 4.6. Una vez localizado el punto de máxima potencia (MPP), el MPPT
continúa operando en este punto hasta existir algún cambio en la corriente medida.
Este cambio en la medición de corriente indica que ha variado el nivel de radiación solar
incidente a carga constante [17]. En la figura 2.5.b se muestra, cuando el nivel de
Pot
enci
a (W
)
CAPÍTULO CUARTO: ALGORITMOS DE 5
radiación solar incidente aumenta, el punto donde se sitúa la máxima potencia se
desplaza hacia la derecha con respecto al voltaje del panel solar. Para compensar el
movimiento del MPP, el MPPT debe incrementar el voltaje de operación del panel solar.
Lo contrario es verdadero cuando existe una disminución del nivel de radiación solar
incidente (por medio de la disminución de la corriente medida).
La figura 4.5 muestra el diagrama de flujo del algoritmo conductancia
incremental. El valor presente y el valor previo de la corriente y voltaje del panel solar
son medidos continuamente por el conversor A/D del microcontrolador PIC18F452. Una
vez en el microcontrolador, los valores de corriente y voltaje son utilizados para calcular
dI y dV . Si dV 0 y
dI 0
las condiciones atmosféricas no han cambiado y el MPPT
seguirá operado en el MPP. Si dV 0 y
dI 0 , entonces la cantidad de radiación ha
aumentado, aumentando el voltaje donde se halla el MPP. Esto requiere que el MPPT
debe incrementar el voltaje de referencia Vref para de esta forma seguir el MPP.
Recíprocamente, si dI 0 , la cantidad de radiación ha disminuido, con lo cual se
reduce el voltaje donde se encuentra el MPP, por ende el MPPT para poder seguir el
nuevo MPP, debe disminuir el voltaje Vref . Si los cambios en el voltaje y la corriente no
son cero, las relaciones dadas en las ecuaciones 4.7 y 4.8 pueden ser utilizadas para
determinar la dirección en la cual el voltaje se debe variar, para alcanzar el nuevo MPP.
Si dI dV I V , entonces dP dV 0 , lo que indica que el panel solar se encuentra
operando a la izquierda del MPP en la curva P – V (Figura 4.4). Así, el voltaje Vref
debe ser incrementado para alcanzar al MPP. De manera similar, si dI dV I V ,
entonces dP dV 0 , lo cual indica que el panel solar se encuentra operando a la
derecha del MPP en la curva P – V, y por ende el voltaje Vref debe ser reducido para
alcanzar el MPP.
Sensar V(k), I(k)
dV = V(k) - V(k-1)dI = I(k) - I(k-1)
NO dV = 0 SI
dI / dV = - I / V dI = 0
NO NO
SI SI
dI / dV > - I / V dI > 0
SINO NO SI
Vref = Vref + C Vref = Vref - C Vref = Vref - C Vref = Vref + C
Retornar
CAPÍTULO CUARTO: ALGORITMOS DE 5
Al igual que en el método perturbación y observación, el voltaje de referencia
obtenido en cada iteración es ingresado al lazo de control ilustrado en la figura 4.2, a
efecto de asegurar que el panel fotovoltaico seguirá la tensión de referencia,
proporcionado por el algoritmo de MPPT.
Figura 4-5 Diagrama de flujo del algoritmo conductancia incremental
La constante C mencionada en el diagrama de flujo de la figura 4.5, representa
una pequeña variación en la tensión de referencia.
CAPÍTULO CUARTO: ALGORITMOS DE 5
Circuito de disparo
Computador Principal
Corriente ytensión Panel Solar
A / D PWM
Base deConocimiento
CalcularE . CE
E
CE
ControladorDifuso
RAM
PIC18F452Microchip
Puerto Serial
4.4 CONTROLADOR BASADO EN LÓGICA DIFUSA
Esquemáticamente la configuración del controlador difuso para un conversor
DC/DC esta dado por la figura 4.6. En dicha figura se observa que tanto la corriente
como la tensión son sensados, y luego llevados a los canales A/D del microcontrolador
PIC18F452, esto para luego obtener el error E(k )
el cual es una de las entradas del
controlador difuso, dicho error se obtiene según la ecuación 4.9.
E(k ) dP
dV P(k ) P(k
1)V (k ) V (k
1)
(4-9)
Donde P(k ) y
V (k )
son la potencia y la tensión del panel fotovoltaico,
respectivamente. Por lo tanto, para obtener la máxima potencia foto generada
debe ser cero [18].
E(k )
Figura 4-6 Esquema control difuso para el conversor DC/DC
La entrada restante al controlador difuso, corresponde al denominado cambio de
error, el cual se determina haciendo la diferencia entre el valor actual del error y su valor
anterior (Ver ecuación 4.10).
CAPÍTULO CUARTO: ALGORITMOS DE 5
CE (k ) E(k ) E(k 1) (4-10)
El algoritmo de control difuso, se divide en tres etapas [18] al [20]. La primera
etapa consiste en la fuzzificación, en ella los datos son transformados para ser
trabajados en un ambiente difuso. Posteriormente, en la etapa de inferencia y toma de
decisión, se definen las reglas del sistema y se evalúan para obtener una salida del tipo
difusa. Finalmente, la salida difusa ingresa a la etapa de desfuzzificación, en donde la
salida obtenida es nuevamente transformada en un variable concreta entendible por el
resto del sistema.
4.4.1 FUZZIFICACIÓN
Las variables de entradaE(k )
y CE(k ) , son expresados en términos lingüísticos
o etiquetas como: PB (Positivo Grande), PM (Positivo Medio), PS (Positivo Pequeño),
ZO (Cero), NS (Negativo Pequeño), NM (Negativo Medio) y NB (Negativo Grande)
utilizando para ello subconjuntos difusos. La figura 4.7 muestra los grados de
pertenencia de los siete subconjuntos difusos para las variables de entrada y de salida.
NB NM NS ZO PS PM PB
(a)
NB NM NS ZO PS PM PB
(b)
u(E)
1
GradoDe Pertenencia
0
u(CE)-6 -4 -2 0 2 4 6
1
GradoDe Pertenencia
0
6u(dD) -6 -4 -2 0 2 4
1
GradoDe Pertenencia
0-6 -4 -2 0 2 4 6
NB NM NS ZO PS PM PB
(c)
CAPÍTULO CUARTO: ALGORITMOS DE 5
Figura 4-7 Funciones de membresía para (a) entrada E, (b) entrada CE y (c) salida dD (variación del ciclo de trabajo).
4.4.2 METODO DE INFERENCIA
La tabla 4-1 muestra las reglas del controlador difuso, la cual se obtiene de todas
las combinaciones posibles entre las entradas E y CE, y a su vez esta combinación
proporciona cuarenta y nueve reglas correspondientes a las posibles salidas del
controlador. La base de conocimiento se conoce como: base de conocimiento de
diagonal cero, y es utilizado en el control de conversores DC/DC [19].
CEE
NB NM NS ZO PS PM PB
NB NB NB NB NB NM NS ZO
NM NB NB NB NM NS ZO PS
NS NB NB NM NS ZO PS PM
ZO NB NM NS ZO PS PM PB
PS NM NS ZO PS PM PB PB
PM NS ZO PS PM PB PB PB
PB ZO PS PM PB PB PB PB
Tabla 4-1 Base de conocimiento del controlador fuzzy
Si (E es NB) y (CE es NS) entonces (dD es NB) Si (E es ZO) y (CE es ZO) entonces (dD es ZO) Si (E es ZO) y (CE es PB ) entonces (dD es PB)
CAPÍTULO CUARTO: ALGORITMOS DE 5
El proceso de toma de decisión se realiza por medio de la evaluación de
conjuntos de reglas como las siguientes (Tabla 4-2):
Tabla 4-2 Formas de regla
Luego de evaluar los antecedentes de cada regla, se obtienen los consecuentes
y con ellos se construye el conjunto difuso correspondiente a la salida (dD).
Sin embargo, la tabla 4-2 proporciona una salida de tipo lingüística y esta debe
ser convertida a un valor concreto con el cual se puede operar y realizar la acción de
control correspondiente, la cual corresponde a una variación del ciclo de trabajo. A este
proceso de conversión se le conoce como desfuzzificación.
El método de inferencia utilizado en la obtención del consecuente a partir de los
antecedentes, corresponde al de Mamdami [20].
4.4.3 DESFUZZIFICACIÓN
La salida del controlador difuso es un subconjunto difuso de control. Un sistema
para operar requiere usualmente un valor de control no difuso (concreto), es por ello
que se hace necesaria una desfuzzificación. La desfuzzificación se puede realizar
normalmente mediante dos algoritmos: método del máximo y método del centro de
CAPÍTULO CUARTO: ALGORITMOS DE 6
n
n
j
j
dDce CE
eSE
ESdD
SCE
gravedad (COA) [20]. El método del centro de gravedad es el más utilizado para casos
discretos y esta dado por la ecuación 4-11.
dD
udD j dD jj 1 (4-11)udDj j 1
DondedDj es la j - ésima regla activa y udD es el grado de cumplimiento de
dicha regla 0 dD 1. Por otro lado, dD
es la salida del controlador difuso y
corresponde a una variación del ciclo de trabajo.
Finalmente, en la figura 4-8 se muestra la configuración del controlador difuso, el
cual esta compuesto de un escalamiento en la entrada y la salida, fuzzificación, toma de
decisiones (inferencia), desfuzzificación. Los factores de escala SE, SCE y SdD cambia
las entradas y salida proporcionalmente. La salida dD se obtiene a partir del estado de
las variables E y CE donde cada uno se deriva de la señal actual dividiendo por el factor
de escala respectivo. La variable de salida es desfuzzificada y multiplicada por el factor
de escala SdD para construir la señal de control PWM. Su papel es afinar el controlador
difuso para obtener el seguimiento del punto de máxima potencia de un sistema
fotovoltaico.
FUZZIFICACIÓN TOMA DE DECISIÓN
DESFUZZIFICACIÓNdd
Figura 4-8 Configuración del controlador difuso
CAPÍTULO CUARTO: ALGORITMOS DE 6
Por otro lado, la figura 4-9 muestra la superficie que representa la respuesta del
controlador difuso, en la cual se aprecia la no linealidad de este, con respecto a sus
entradas E y CE. La figura 4-9 se ha obtenido utilizando la herramienta Fuzzy Logic
Toolbox, el cual viene incorporado en el software MATLAB 7.0.
Figura 4-9 Superficie característica del controlador difuso
CAPÍTULO QUINTO
RESULTADOS EXPERIMENTALES
CAPÍTULO QUINTO: RESULTADOS 6
5. RESULTADOS EXPERIMENTALES
5.1 INTRODUCCIÓN
En este capítulo se presentan los resultados experimentales con la finalidad de
estudiar y observar el comportamiento de los algoritmos de control propuestos, e
implementados tanto en el conversor DC/DC Boost como para el Buck – Boost. El
sistema fotovoltaico utilizado corresponde al descrito en la sección 3.1.
Los resultados que se presentan corresponden al comportamiento del sistema
para las siguientes condiciones:
▪ Generación de curvas I –V y P – V, para diversas condiciones climáticas
▪ MPPT con Radiación Solar Incidente (RSI) constante
▪ MPPT con variación en la RSI
Las principales variables a monitorear son: tensión, corriente, temperatura de
operación del panel solar y ciclo de trabajo del conversor DC / DC. Sin embargo, para
algunas pruebas específicas es posible que se presenten adicionalmente otras
variables que sean consideradas importantes de mostrar.
5.2 RESULTADOS EXPERIMENTALES
Los resultados experimentales se obtuvieron utilizando el sistema detallado en la
sección 3.1 y utilizando como fuente energética el sol. Los conversores DC/DC Boost y
Buck – Boost son controlados mediante un microcontrolador PIC18F452. Dicho control
CAPÍTULO QUINTO: RESULTADOS 6
se centra en la generación de una señal PWM de 19.6kHz, al cual se le varía el ciclo de
trabajo de tal forma de alcanzar el punto óptimo de operación del panel solar.
Las principales características del panel solar utilizado (Ver apéndice D) se
proporcionan a continuación:
o Voltaje de circuito abierto : 21.6 V
o Corriente de corto circuito : 6.54 A
o Voltaje de máxima potencia : 17.4 V
o Corriente de máxima potencia : 6.10 A
o Potencia máxima : 106 W
Cabe señalar que para efecto de ensayos, el panel solar se ha orientado en
dirección norte y con un ángulo de 60º con respecto a la horizontal. Por otro lado, la
carga del sistema lo compone un banco de batería, el cual es de 12V o 24V, según se
este operando con el conversor en la modalidad reductora (Buck) o elevadora de
tensión (Boost), respectivamente.
5.2.1 RESULTADOS PARA LA GENERACIÓN DE CURVAS I –V y P – V.
La primera prueba considerada de importancia corresponde a la generación de
curvas de corriente contra tensión I V y potencia contra tensión P V . La
generación de dichas curvas entrega información importante concerniente al estado de
operación del panel o panel fotovoltaico (FV). En particular, se puede conocer de
manera gráfica la máxima potencia extraíble, esto según lo expuesto en la sección 2.4
(Seguimiento del MPP). Para la obtención de dichas curvas se utilizó los conversores
⎣ ⎦
CAPÍTULO QUINTO: RESULTADOS 6
948 W / m2
810 W / m2
76 W @ 948 W / m2
66 W @ 810 W / m2
7
6
5
4 (a)
3
2
1
00123456789 10 11 12 13 14 15 16Tensión Panel Solar (V)
17 18 19 20 21 22 23 24 25
80
7060
50
40
(b)
30
20
10
0
0123456789 10 11 12 13 14 15 16Tensión Panel Solar (V)
17 18 19 20 21 22 23 24 25
DC/DC como resistencias variables, siendo para ello necesario realizar sucesivos
incrementos en los tiempos de encendido del transistor de cada conversor.
La figura 5.1, entrega una comparación de curvas I – V y P –V, obtenidas ambas
a una temperatura de 32 ºC, y con diferentes niveles de radiación solar incidente
( 810 W / m 2 y 948 W / m 2 ). Los niveles de RSI, fueron obtenidos mediante la medición de
la corriente de cortocircuito del panel solar Isc, y utilizando la ecuación 5.1.
Isc ⎡ mA ⎤R.S.I
K ; K 6.54⎢
W
m2 ⎥ (5-1)
Donde la constante K se obtiene de los datos proporcionados por el fabricante
del panel solar.
Figura 5-1 a) Curvas I – V, b) Curvas P –V
Pot
enci
a P
anel
Sol
ar (W
Cor
rient
e P
anel
Sol
ar (A
7
6
5
4
(a)
3
2
1
0 0123456789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25Tensión Panel Solar (V)
80
70
6050
40 (b)
30
20
10
0
0123456789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25Tensión Panel Solar (V)
31ºC
41ºC
76 W @ 31ºC
72 W @ 41ºC
CAPÍTULO QUINTO: RESULTADOS 6
De la figura 5.1b, se confirma que la curva P – V con mayor potencia foto
generada, es aquella en la cual se ha incidido mayor nivel de radiación solar
( 948 W / m 2 ), alcanzando un valor de 76 W. Por otro lado, la figura 5.1a ilustra el hecho
de que el aumento en el nivel de radiación solar incidente, influye esencialmente en el
acrecentamiento de la corriente de cortocircuito (de 5.3 A € 6.2 A). Además de la
figura
5.1 se aprecia que la curva de menor radiación solar incidente ( 810 W / m 2 ), logra llegar
a un voltaje de 1V cuando hay ≈5.5A en el panel solar, a diferencia de la curva de
mayor nivel radiación, en que la mínima tensión es de 2V a los ≈6.3A. Lo anterior no
tiene como causa el nivel de radiación solar incidente, sino que la curva de 948 W / m 2
fue generada con el conversor DC/DC Boost, mientras que la otra curva (la de
810 W / m 2 ) fue obtenida mediante el conversor Buck – Boost.
La figura 5.2 ilustra la comparación de curvas I – V y P – V, para un mismo nivel
de radiación solar incidente ( 948 W / m 2 ), y cambia la temperatura de 31ºC € 41ºC.
Figura 5-2 a) Curva I – V. b) Curva P – V.
Pot
enci
a P
anel
Sol
ar (W
Cor
rient
e P
anel
Sol
ar (
CAPÍTULO QUINTO: RESULTADOS 6
De la figura 5.2 se ratifica el hecho de que el aumento en la temperatura del
panel solar, va en directo desmedro de la potencia generada, disminuyendo de 76W a
72W. Además, la figura 5.2.a muestra la disminución de la tensión de circuito abierto
(de 20.5 V € 19.4 V), la cual tiene directa relación con el incremento de la temperatura
en el panel solar.
En definitiva, las figuras 5.1 y 5.2 confirman de manera práctica, lo ya
mencionado en la sección 2.3 denominada: Características Analíticas de los Paneles
Solares, la cual aludía la influencia de la potencia generada por un panel solar, por
efecto de la temperatura y el nivel de radiación solar incidente.
5.2.2 RESULTADOS DE MPPT CON RSI CONSTANTE
En esta sección se detallan algunos ensayos realizados concernientes al
seguimiento del punto óptimo del panel FV, para un mismo nivel de radiación solar
incidente (RSI) constante. Los resultados obtenidos en esta sección corresponde a los
logrados mediante los algoritmos: perturbación y observación (P&O), conductancia
incremental (Cond. Inc.) y controlador basado en lógica difusa. Dichos algoritmos se
han implementados en el conversor DC/DC Boost. Para el caso del conversor Buck –
Boost, se utilizaron solo los algoritmos P&O y Cond. Inc.
La figura 5.3 entrega la respuesta del seguimiento del punto de máxima potencia
(MPPT) para un sistema basado en un panel solar y utilizando como algoritmo de
control el método conductancia incremental, con una radiación solar incidente de
658 W m2 y una temperatura de 29ºC. Mientras que la figura 5.4 entrega la respuesta
del MPPT utilizando el algoritmo Perturbación y Observación, para un nivel de radiación
CAPÍTULO QUINTO: RESULTADOS 6
MPPT
1514.75Vref
Vpanel
14.5
14.25
14 0 1 2 3 4 5Tiempo (Seg)
6 7 8 9 10
5410053.590
5352.552
51.551
Eficiencia del ConversorCiclo de Trabajo
34 5Tiempo (Seg)
6 7 8 9
8070(c)60504010
0 1 2
6050403020100
(a)
0510152025Tensión Panel Solar (V)
(b)
solar incidente de 617 W m2y una temperatura de 26ºC. Ambos resultados obtenidos
mediante el conversor Boost.
Figura 5-3 a) Curva P-V con MPPT Cond. Inc.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Boost con MPPT
De la figura 5.3a se puede apreciar que el algoritmo Cond. Inc. cumple el
objetivo. O sea, se sitúa la potencia foto generada en el punto más óptimo de la curva
P–V (55 W), la cual a su vez, se alcanza con una tensión de 14.4 V. Este hecho se
reafirma en la figura 5.3b, donde la respuesta del controlador oscila en torno a la
tensión de referencia. Por otro lado, la salida del controlador es apreciable en la figura
5.3c, donde el ciclo de trabajo fluctúa entre los 51.86 % y 52.15 %. Lo que respecta a la
eficiencia, está se encuentra en torno a los 87%, llegando a un peak de 92 %.
Ten
sión
(VC
iclo
de
Trab
ajo
(%P
oten
cia
Pan
el S
olar
(W
Efic
ienc
ia C
onve
rsor
(%
MPPT
5251.551
50.5Eficiencia del Conversor50
49.549
9590858075706510Ciclo de Trabajo
0 1 2 3 4 5Tiempo (Seg)
6 7 8 9
60504030
(a)20100
(c)
CAPÍTULO QUINTO: RESULTADOS 6
0510152025Tensión Panel Solar (V)
15
14.8VpanelVref14.6
(b)14.4
14.2
14
01234 5Tiempo (Seg)
6 7 8 9 10
De la figura 5.4 se puede evaluar la efectividad del algoritmo P&O en el
seguimiento del MPP, la cual alcanza un valor de 50W a los ≈14.5V. Situación que se
confirma en la 5.4.b, donde la tensión del panel solar oscila en torno a la tensión de
referencia, proporcionada por el algoritmo de control. En lo que respecta a la variación
del ciclo de trabajo, esta se encuentra entre 49.2% y 50.1%, lo cual deja claro que el
algoritmo P&O es de naturaleza más oscilatorio que el algoritmo Cond. Inc. (ver sección
4). Con lo que respecta a eficiencia, esta se mantiene al igual que en el caso anterior en
≈87%, alcanzando un peak de 91%.
Figura 5-4 a) Curva P-V con MPPT P&O.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Boost con MPPT
Por último, para el caso del conversor DC/DC Boost, se ha implementado un
controlador basado en lógica difusa. La respuesta de dicho controlador se ilustra en la
figura 5.5, la cual se ha obtenido con una temperatura de 38ºC y una RSI de 910 W m2 .
Cic
lo d
e T
raba
jo (
%Te
nsi
ón
(V
Po
ten
cia
Pan
el S
ola
r (W
Efic
ien
cia
Con
vers
or
(%
CAPÍTULO QUINTO: RESULTADOS 7
1500Cambio de Error200010000Error(b)500-2000
0-4000
-50001234 5
Tiempo (Seg)6 7 8 9
-600010
MPPT
800.865
70 0.86
Eficiencia del ConversorCiclo de Trabajo
60 0.855
500 1 2 3 4 5
Tiempo (Seg)6 7 8 9
0.8510
80
60
40 (a)
20
0 2 4 6 8 10 12 14 16 18 20Tensión Panel Solar (V)
2000 4000
(c)
Figura 5-5 a) Curva P-V con MPPT Difuso.b) Entradas del controlador difuso
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Boost con MPPT
De la figura 5.5 se puede ver que la máxima potencia foto generada es de
70W, la cual se consigue a una tensión de 14 V (figura 5.5.a). Las entradas del
controlador (figura 5.5.b) difuso oscilan en torno a cero, tal como se mencionó en la
sección 4.4. Por otra parte, la salida del controlador (ciclo de trabajo) fluctúa entre los
≈50% y 60 %. Finalmente, al igual que con los métodos P&O y Cond. Inc., el conversor
DC/DC Boost se encuentra operando con una eficiencia de 86%.
Ahora, para el caso del conversor Buck – Boost, los algoritmos Cond. Inc. y P&O,
fueron puesto a prueba tanto la propiedad elevadora y reductora de tensión que posee
el conversor Buck – Boost.
EC
iclo
de
Tra
bajo
(%P
oten
cia
Pan
el S
ola
Efic
ienc
ia C
onve
rsor
(%C
ambi
o de
Err
CAPÍTULO QUINTO: RESULTADOS 7
Efic
ien
cia
Co
nve
rso
r (
MPPT
Vref
Vpanel
80
60
40
(a)
20
0 0 5 10 15 20 25Tensión Panel Solar (V)
1514.7514.5
14.2514
13.7513.5
(b)
01234 5Tiempo (Seg)
6 7 8 9 10
53.553
0 1 2 3 4 5Tiempo (Seg)
6 7 8 9
706510
Según lo anterior, la figura 5.6 y 5.7 muestran el caso del conversor Buck – Boost
actuando como conversor DC/DC reductor (Buck), y bajo seguimiento del MPP,
utilizando para ello los algoritmos Cond. Inc. y P&O, respectivamente.
La figura 5.6 entrega la respuesta del seguimiento del punto de máxima potencia
(MPPT) para un sistema basado en un panel solar utilizando el algoritmo Cond. Inc.,
con una radiación solar incidente de 899 W m 2 y una temperatura de 33 ºC. Mientras
que la figura 5.7 entrega la respuesta del MPPT utilizando el algoritmo P&O, para un
nivel de radiación solar incidente de 899 W m 2 y una temperatura de 32 ºC.
56 95
55.5 90
55 85
54.5
54 Eficiencia deCiclo de Trabajo
l Conversor80
75
(c)
Figura 5-6 a) Curva P-V con MPPT Cond. Inc.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Buck– Boost con MPPT
Te
nsi
ón
(V
Cic
lo d
e T
rab
ajo
(%P
ote
nci
a P
ane
l So
lar
(
MPPT
VrefVpanel
14.5
14.25
14 0 1 2 3 4 5Tiempo (Seg)
6 7 8 9 10
Eficiencia del Conversor Ciclo de Trabajo
95908580(c)75706510
80
60
40(a)
20
00 2 4 6 8 10
Tensión Panel Solar (V)12 14 16 18 20
15
14.75
(b)
54.554.25
5453.7553.5
53.2553
01234 5Tiempo (Seg)
6 7 8 9
CAPÍTULO QUINTO: RESULTADOS 7
Figura 5-7 a) Curva P-V con MPPT P&O.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Buck– Boost con MPPT
Las figuras 5.6 y 5.7 son muy similares. En ambas, la máxima potencia se
encuentra alrededor de los 65 W. La similitud mencionada, tiene como causa principal
el hecho que el nivel de RSI y la temperatura fueron similares. La leve diferencia entre
la figura 5.6 y la 5.7, lo indica el aumento de la tensión de referencia de ≈14.25 V
€
≈14.3 V. respectivamente. Lo anterior, tiene relación directa con la disminución de la
temperatura de 33º C € 32º C. La eficiencia del conversor DC/DC Buck – Boost,
actuando como reductor se puede apreciar tanto en la figura 5.6.c y 5.7.c, en ambas
esta se encuentra en ≈86 %. Mientras que el ciclo de trabajo es de ≈54 %.
Por otro lado, se realizan las mismas pruebas con los algoritmos Cond. Inc. y
P&O para el conversor Buck – Boost, pero ahora en la modalidad de conversor elevador
Cic
lo d
e Tr
abaj
o (%
Tens
ión
(VP
oten
cia
Pan
el S
olar
(W
Efic
ienc
ia C
onve
rsor
(%
Efic
ienc
ia C
onve
rsor
(%
CAPÍTULO QUINTO: RESULTADOS 7
MPPT
VpanelVref
r
80
60
(a)40
20
0 0 5 10 15 20 25Tensión Panel Solar (V)
1615.515
14.514
13.513
(b)
01234 5Tiempo (Seg)
6 7 8 9 10
68.7595
0 6 9
(Boost). Los resultados del MPPT utilizando el algoritmo Cond. Inc. y P&O, se ilustran
en la figura 5.8 y 5.9, respectivamente.
La figura 5.8 entrega la respuesta del seguimiento del punto de máxima potencia
(MPPT) utilizando el algoritmo Cond. Inc., con una RSI de 764 W m2 y una temperatura
de 31 ºC. Por otra parte, la figura 5.9 ilustra la respuesta del MPPT utilizando el
algoritmo P&O, para un nivel de RSI de 795 W m2y una temperatura de 31 ºC.
68.5 Eficiencia del Conve sor 90
68.25 85
68 Ciclo de Trabajo 80 (c)67.75 75
67.5 70
67.25 651 2 3 4 5
Tiempo (Seg)7 8 10
Figura 5-8 a) Curva P-V con MPPT Cond. Inc .b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Buck– Boost con MPPT
De la figura 5.8.a se observa que el algoritmo Cond. Inc., logra el objetivo de
forzar al panel solar a situarse en la zona donde se encuentra la máxima potencia foto
generada. Dicha potencia es cercana a los 62 W, la cual se obtiene a una tensión de
≈14.25 V. La tensión donde de encuentra la máxima potencia generada por el panel FV,
Cic
lo d
e Tr
abaj
o (%
Tens
ión
(VP
oten
cia
Pan
el S
olar
(W
MPPT
VpanelVref
Eficiencia del Conversor
Ciclo de Trabajo 80(c)75706510
80
60
40 (a)
20
00 5 10 15 20 25
Tensión Panel Solar (V)
15
14.75
14.5(b)
14.25
14
13.750 1 2 3 4 5
Tiempo (Seg)6 7 8 9 10
69.2569
68.7568.5
68.2568
67.75
959085
01234 5Tiempo (Seg)
6 7 8 9
CAPÍTULO QUINTO: RESULTADOS 7
se confirma en la figura 5.8.b, donde se ilustra que la tensión del panel solar oscila en
torno a la tensión de referencia (≈14.25V). Por otro lado, el ciclo de trabajo (ver figura
5.8.c) al cual se encuentra operando el conversor Buck – Boost, aumento de los 54% a
68%, al cambiar la modalidad de trabajo de reductor a elevador de tensión,
respectivamente. Lo que concierne a la eficiencia del conversor, esta fluctúa en torno al
85% llegando a un peak de ≈ 91 %.
Figura 5-9 a) Curva P-V con MPPT P&O.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Buck– Boost con MPPT
Por otra parte, de la figura 5.9 se observa que al igual que con el método Cond.
Inc., el algoritmo P&O logra situarse en la zona donde se encuentra la máxima
proporcionada por el panel solar (≈65 W). El MPP se obtiene a una tensión de ≈ 14.25
V, lo cual se confirma en la figura 5.9.b, donde la tensión del panel solar oscila entorno
Cic
lo d
e Tr
abaj
o (%
Tens
ión
(VP
oten
cia
Pan
el S
olar
(W
Efic
ienc
ia C
onve
rsor
(%
CAPÍTULO QUINTO: RESULTADOS 7
a la tensión de referencia obtenida mediante el algoritmo P&O, dicha tensión de
referencia asciende a los 14.25 V. Por otra parte, la eficiencia del conversor Buck –
Boost operando en la modalidad elevadora, se encuentra cercana a los 85 %, teniendo
un peak de 91 %. Mientras que el ciclo de trabajo, se mantiene constante en 68%.
5.2.3 RESULTADOS DE MPPT CON VARIACIÓN EN LA RSI
En esta sección se detallan algunas pruebas concernientes a aplicar sombras
parciales (variación en el nivel RSI) al panel solar, para lo cual se hace necesario cubrir
una zona del panel solar, durante un pequeño lapso de tiempo (≈1.5 seg. Para la
mayoría de los casos). Los resultados obtenidos corresponde a los logrados mediante
los algoritmos: P&O, Cond. Inc. y Lógica Difusa, los cuales han sido implementados en
el conversor DC / DC Boost. Para el caso del conversor DC / DC Buck – Boost, los
algoritmos empleados para la búsqueda del punto de máxima potencia, ante
variaciones del nivel de RSI corresponden a: P&O y Cond. Inc.
La figura 5.10 entrega la respuesta del sistema en MPPT, utilizando el algoritmo
conductancia incremental a una temperatura de 49º C. Mientras que la figura 5.11,
muestra la respuesta del algoritmo P&O a una temperatura de 25 ºC. Ambos resultados
obtenidos con el conversor DC/DC Boost.
El nivel de radiación solar incidente antes de producirse la perturbación para la
respuesta de la figura 5.10 y 5.11, es de 1040 W m2y 842 W m2 , respectivamente.
MPPT
Vpanel
12Vref
10012 3Tiempo (Seg)
4 5 6
60
50
40(c)
30
20
012 3Tiempo (Seg)
4 5 6
80
60
40 (a)
20
02 4 6 8 10 12 14 16 18 20
Tensión Panel Solar (V)
18
16
14 (b)
CAPÍTULO QUINTO: RESULTADOS 7
De la figura 5.10 se observa como el algoritmo conductancia incremental, actúa
frente a la variación en el nivel de RSI. Antes de producirse la perturbación (en 1.5
seg.), el panel solar se encontraba operando en la zona de mayor potencia foto
generada en ≈70W. Al producirse la perturbación, la tensión del panel decae de manera
abrupta y con ello la potencia foto generada (70W € 10W), por lo cual el sistema de
control actúa disminuyendo el ciclo de trabajo de 55% a 30%. Dicha disminución causa
un aumento en la tensión del panel de los ≈10V a ≈18 V (figura 5.10.b). Por lo cual,
en esta circunstancia el controlador procede ahora aumentando el ciclo de trabajo y con
ello retornando la tensión del panel solar a la de referencia (≈14.5V).
Figura 5-10 a) Curva P-V con MPPT Cond. Inc. y variación en la RSI.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Boost con MPPT
De la figura 5.11, se observa el comportamiento transiente para el algoritmo
Cond. Inc. La tensión donde se encuentra la máxima potencia foto generada (la cual
Cic
lo d
e Tr
abaj
o (%
Tens
ión
(VP
oten
cia
Pan
el S
olar
(W
MPPT
Vpanel
12Vref
108
012 3Tiempo (Seg)
4 5 6
60
50
40(c)
30
20
012 3Tiempo (Seg)
4 5 6
80
60
40(a)
20
00 5 10 15 20 25
Tensión Panel Solar (V)
20181614
(b)
CAPÍTULO QUINTO: RESULTADOS 7
asciende a 65W) es de 15.5V. Por otro lado, el ciclo de trabajo se encuentra entre 25%
y 50% durante la perturbación, y en este lapso la potencia cae de 65W € 8W.
Figura 5-11 Curva P-V con MPPT P&O y variación en la RSI.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Boost con MPPT
Para finalizar las pruebas con el conversor DC/DC Boost, se observó el
comportamiento del controlador basado en lógica difusa, ante una sombra parcial
aplicada al panel solar a una temperatura de 26º C. La respuesta de la prueba recién
mencionada, se muestra en la figura 5.12.
Cic
lo d
e Tr
abaj
o (%
Tens
ión
(VP
oten
cia
Pan
el S
olar
(W
MPPT
Cambio de Error Error
-15006
60
50
40(c)
30
20
012 3Tiempo (Seg)
4 5 6
80
60
40 (a)
20
00 5 10 15 20 25
Tensión Panel Solar (V)
300 500
200 0
100 -500(b)
0 -1000
-1000 1 2 3
Tiempo (Seg)4 5
CAPÍTULO QUINTO: RESULTADOS 7
Figura 5-12 a) Curva P-V con MPPT Difuso y variación en la RSI.b) Entradas del controlador difuso
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Boost con MPPT
De la figura 5.12 se observa una respuesta muy similar a las obtenidas en las
figuras 5.10 y 5.11, y es que el ciclo de trabajo disminuye ante la perturbación, para
luego nuevamente aumentar y oscilar en torno al ciclo de trabajo óptimo para
suministrar la máxima potencia disponible en ese momento del panel solar. De la figura
5.12 se aprecia también, como la señal de error y la del cambio de error fluctúan en
torno a cero. Durante la perturbación el error crece cuantitativamente, forzando al
controlador a aumentar el ciclo de trabajo.
La máxima potencia proporcionada por el panel FV es de ≈76W
a 26º C y 927W m2 , la cual cae a 10W por efecto de la sombra aplicada al panel solar.
EC
iclo
de
Trab
ajo
(%P
oten
cia
Pan
el S
ola
Cam
bio
de E
rro
CAPÍTULO QUINTO: RESULTADOS 7
MPPT
Vpanel
Vref
55
50
45(c)
40
35
012 3Tiempo (Seg)
4 5 6
80
60
40(a)
20
00 2 4 6 8 10
Tensión Panel Solar (V)12 14 16 18 20
18
16
14 (b)
12
100 1 2 3
Tiempo (Seg)4 5 6
Ahora, para el caso del conversor Buck – Boost, se probaron los algoritmos: P&O
y Cond. Inc., tanto en la modalidad reductora como elevadora de dicho conversor.
La figura 5.13 entrega la respuesta del sistema en MPPT, utilizando el algoritmo
conductancia incremental a una temperatura de 45º C. Mientras que la figura 5.14,
muestra la respuesta del algoritmo P&O a una temperatura de 30 ºC. Ambos resultados
obtenidos con el conversor DC/DC Buck – Boost, operando en la modalidad reductora.
El nivel de radiación solar incidente antes de producirse la perturbación para la
respuesta de la figura 5.13 y 5.14, es de 890 W m 2 y 683 W m2 , respectivamente.
Figura 5-13 a) Curva P-V con MPPT Cond. Inc. y variación en la RSI.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Buck – Boost con MPPT
De la figura 5.13 se aprecia como la potencia cae de los cerca de 65W € 8W, al
momento de producirse la perturbación. La máxima potencia se encuentra a una
Cic
lo d
e T
raba
jo (
%T
ensi
ón (
VP
oten
cia
Pan
el S
olar
(W
CAPÍTULO QUINTO: RESULTADOS 8
MPPT
Vpanel
Vref
80
60
40 (a)
20
00 5 10 15 20 25
Tensión Panel Solar (V)
20
17.5
15 (b)
12.5
100 1 2 3
Tiempo (Seg)4 5 6
55
50
45 (c)40
35
300 1 2 3
Tiempo (Seg)4 5 6
tensión de ≈14.5V. Por otra parte, el ciclo de trabajo desciende durante la perturbación
de 54% a 40%. El tiempo que dura la perturbación, es de aproximadamente 1.5 seg.
Figura 5-14 a) Curva P-V con MPPT P&O. y variación en la RSI.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Buck – Boost con MPPT
De la figura 5.14 se observa que la RSI sufre una perturbación de duración
≈1seg. En dicha perturbación actúa el algoritmo de control, de igual forma que en el
caso del conversor DC/DC elevador (Boost). Por otra parte, la perturbación causa un
descenso en el ciclo de trabajo de 54 a ≈33%.
Para finalizar, se verificó el seguimiento del punto de máxima potencia del
sistema fotovoltaico, utilizando ahora el conversor DC/DC Buck – Boost, en su
Tens
ión
(VC
iclo
de
Trab
ajo
(%P
oten
cia
Pan
el S
olar
(W
CAPÍTULO QUINTO: RESULTADOS 8
MPPT
Vpanel
Vref
80
60
40 (a)
20
00 5 10 15 20 25
Tensión Panel Solar (V)
2017.515
12.5107.5
5 (b)
012 3Tiempo (Seg)
4 5 6
70
65
60 (c)55
50
450 1 2 3
Tiempo (Seg)4 5 6
modalidad elevadora de tensión. Los resultados de esta modalidad se ilustran en la
figura 5.15 y 5.16, para el caso del algoritmo Cond. Inc. y P&O, respectivamente.
El nivel de radiación solar incidente antes de producirse la perturbación para la
respuesta de la figura 5.15 y 5.16, es de 846 W m 2 (a 36ºC) y
954 W m2 (a 36ºC),
respectivamente.
Figura 5-15 a) Curva P-V con MPPT Cond. Inc. y variación en la RSI.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Buck – Boost con MPPT.
De la figura 5.15 se observa la caída de la potencia de ≈60W a 10W durante la
perturbación. En dicha perturbación, el ciclo de trabajo cae de 68% a 47%.
Tens
ión
(VC
iclo
de
Trab
ajo
(%P
oten
cia
Pan
el S
olar
(W
MPPT
Vpanel
Vref
80
60
40 (a)
20
00 5 10 15 20 25
Tensión Panel Solar (V)
20
17.5
15 (b)
12.5
100 1 2 3
Tiempo (Seg)4 5 6
70
65(c)
60
550 1 2 3Tiempo (Seg)
4 5 6
CAPÍTULO QUINTO: RESULTADOS 8
Figura 5-16 a) Curva P-V con MPPT P&O. y variación en la RSI.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Buck – Boost con MPPT.
Para finalizar, de la figura 5.16 se observa la caída de la potencia de 78W a 20W,
al momento de producirse la baja en el nivel de RSI, la cual tiene una duración de ≈1
seg. En dicha perturbación, el ciclo de trabajo desciende de 68% a 58%.
Tens
ión
(VC
iclo
de
Trab
ajo
(%P
oten
cia
Pan
el S
olar
(W
CAPÍTULO QUINTO
CONCLUSIONES
CAPÍTULO SEXTO: 8
6. CONCLUSIONES
La potencia proporcionada por un panel solar puede ser maximizada utilizando
para ello un sistema de control con seguimiento del punto de máxima potencia, el cual
consiste de un conversor DC/DC como interfase entre el panel solar y la carga, y una
unidad de control, que controla al conversor DC/DC de forma tal de obtener la máxima
energía proporcionada por el panel FV. En el presente trabajo de tesis se han
implementado dos conversores DC/DC: Boost y Buck – Boost. Cada conversor cuenta
con una unidad de control, basada en un microcontrolador PIC18F452. A su vez, en el
microcontrolador se han implementado tres algoritmos de MPPT, estos son:
perturbación y observación, conductancia incremental y controlador basado en lógica
difusa.
Los resultados experimentales presentados se obtuvieron para diferentes
condiciones, tales como: nivel de radiación solar incidente constante, aplicación de
sombra parcial al panel solar (equivalente a una baja en el nivel de radiación solar) y
efectos de la temperatura en un panel solar. En todas ellas, los resultados obtenidos
muestran un buen desempeño en el funcionamiento. En particular, para la generación
de curvas I –V y P – V, se muestra la buena eficacia de los conversores DC/DC, al
momento de utilizarse como adaptadores de impedancia, siendo el parámetro de
adaptación el ciclo de trabajo. Por otra parte, la respuesta del controlador de tensión
utilizado en los algoritmos P&O y Conductancia Incremental es aceptable (menos de un
5% de la tensión de referencia para la mayoría de los casos). Para el caso del
controlador difuso, aun cuando es más oscilatorio que los algoritmos recién
mencionados, logra mantener el error en torno a cero. La robustez del sistema también
se hizo cierta al momento de aplicársele una sombra parcial al panel solar.
CAPÍTULO SEXTO: 8
Los resultados experimentales obtenidos en esta tesis muestran las ventajas que
presentan las técnicas de control clásica y difuso en los sistemas fotovoltaicos. Además,
se aprecia los beneficios de utilizar un microcontrolador de bajo costo, para
aplicaciones en la cual el tiempo de muestreo no es critico (procesos lentos),
permitiendo también realizar de manera simple modificaciones al sistema. Si bien es
cierto, este trabajo se centró en sistemas de carga aislada, estás técnicas son
aplicables a sistemas híbridos (solar – diesel o eólico – solar – diesel), como también a
sistemas conectados a la red eléctrica, siendo para esto último necesario el uso de un
inversor.
REFERENCIAS 8
REFERENCIAS BIBLIOGRÁFICAS
[1] Biografía Henry Becquerel
http://es.wikipedia.org/wiki/Henri_Becquerel
[2] Jacob Millmans and Christos C Halkias, "ELECTRONICA INTEGRADA".
[3] “Preguntas y respuestas sobre la energía solar”.
http://www.construir.com/ECONSULT/Construr/Nro59/document/solar.htm
[4] Chihchiang Hua, Jongrong Lin and Chihming Shen., “IMPLEMENTATION OF A
DSP-CONTROLLED PHOTOVOLTAIC SYSTEM WITH PEAK POWER
TRACKING”. IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL.
45, NO.1, FEBRUARY 1998.
[5] E. Koutroulis, K. Kalatzakis and Nicholas C. Voulgaris. “DEVELOPMENT OF A
MICROCONTROLLER – BASED, PHOTOVOLTAIC MAXIMUM POWER POINT
TRACKING CONTROL SYSTEM”. IEEE TRANSACTIONS ON POWER
ELECTRONICS, VOL. 16, NO.1, JANUARY 2001.
[6] Chihchiang Hua and Chihming Shen., “STUDY FOR MAXIMUM POWER POINT
TRACKING TECHNIQUES AND CONTROL OF DC/DC CONVERTERS
PHOTOVOLTAIC POWER SYSTEM ”.ANNUAL IEEE PESC, IEEE COMPUTER
SOC. PRESS, pp. 86 – 93. NEW YORK 1998.
[7] Andujar M. José, Enrique G. Juan, Durán A. Eladio, Martínez B. Miguel .,
“SISTEMA PARA LA GENERACIÓN AUTOMÁTICA DE CURVAS I – V, P – V Y
MONITORIZACIÓN DE MÓDULOS FOTOVOLTAICOS ”.
[8] Moham. M. “POWER ELECTRONIC: CONVERTER, APLICATIONS AND
DESIGN”, 1989.
REFERENCIAS 8
[9] Jancarle L. Santos y Fernando L. M. Antunes., “MAXIMUM POWER POINT
TRACKER FOR PV SYSTEM”. RIO 3 – WORLD CLIMATE & ENERGY EVENT,
1 – 5 DECEMBER 2003, RIO DE JANEIRO, BRAZIL.
[10] APPLICATION NOTES. “UNDERSTANDING BOOST POWER STAGES IN
SWITCHMODE POWER SUPPLIES”. TEXAS INSTRUMENTS, 1999.
[11] APPLICATION NOTES. “UNDERSTANDING BUCK – BOOST POWER STAGES
IN SWITCHMODE POWER SUPPLIES”. TEXAS INSTRUMENTS, 2002.
[12] TEXAS INSTRUMENTS, CHAPTER 16. “ACTIVE FILTER DESIGN
TECHNIQUES”.
[13] Tehuana C. Jorge, “INTERFASE GRÁFICA PARA MEDIDOR DE NIVEL”.
[14] DATASHEET PIC18FXX2 HIGH PERFORMANCE MICROCONTROLLERS
WITH 10 BITS A/D. Disponible en www.microchip.com.
[15] Johan H. R. Enslin, Mario S. Wolf, Daniel B. Snyman , and Wernher Swiegers.,
“INTEGRATED PHOTOVOLTAIC MAXIMUM POWER POINT TRACKING
CONVERTER ”. IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL.
44, NO.6, DECEMBER 1997.
[16] Toshihiko Noguchi, Shigenori Togashi, and Ryo NakIamoto., “SHORT –
CURRENT PULSE – BASED MAXIMUM – POWER – POINT TRACKING
METHOD FOR MULTIPLE PHOTOVOLTAIC – AND – CONVERTER MODULE”.
IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 49, NO.1,
FEBRUARY 2001.
[17] D. P. Hohm and M. E. Ropp., “COMPARIVE STUDY OF MAXIMUM POWER
POINT TRACKING ALGORITHMS”, June 2002.
[18] Chung – Yuen Won, Duk – Weon Kim, Sei – Chan Kim, Won – Sam Kim, and
Hack – Sung Kim., “A NEW MAXIMUM POWER POINT TRACKER OF
PHOTOVOLTAIC ARRAYS USING FUZZY CONTROLLER”. IEEE 1994.
REFERENCIAS 8
[19] Tarun Gupta, R. R. Boudreaux, R. M. Nelms and John Y. Hung.,
“IMPLEMENTATION OF A FUZZY CONTROLLER FOR DC – DC
CONVERTERS USING AN INEXPENSIVE 8 – b MICROCONTROLLER”. IEEE
TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 44, NO.5, OCTOBER
1997.
[20] Reyero R y Nicolás C., “SISTEMAS DE CONTROL BASADO EN LÓGICA
BORROSA: FUZZY CONTROL”, CAPÍTULO 1, 2, 3 y 4 AÑO 1995.
APÉNDICES
APÉNDICE A
MENSAJES GENERADOS EN EL LCD
APÉNDICE A: MENSAJES GENERADOS EN EL 9
La figura A1.a y b, ilustra la pantalla principal y secundaria, respectivamente. La
pantalla principal proporciona los niveles de tensiones y corrientes a los cuales se
encuentra operando el conversor DC/DC. Dichos niveles tienen un tiempo de refresco
de 1.5 seg. Por otro lado, para acceder a la pantalla secundaria, se debe presionar
uno de los botones existentes en la tarjeta LCD. Realizando dicha operación, se informa
al usuario del ciclo de trabajo y la potencias a las cuales se encuentra operando el
conversor DC/DC (salida y entrada), además de conocer la energía entregada por el
panel solar a la carga. La pantalla secundaria se encontrará activa hasta que se deje de
presionar el pulsador.
(a)
(b)
Figura A.1 a) Pantalla principal. b) Pantalla secundaria
La figura A.2 muestra el algoritmo de MPPT que esta utilizando el
microcontrolador. Salvo el mensaje de la figura A.2.c, el cual surge al momento de
energizar el sistema, los mensajes restantes aparecerán cada vez que por medio de la
comunicación serial existente entre el PC y la unidad de control de cada conversor
DC/DC, se elija el algoritmo P&O ó Cond. Inc.
APÉNDICE A: MENSAJES GENERADOS EN EL 9
(a)
(b)
(c)
Figura A.2 a) Mensaje algoritmo Perturbación y Observaciónb) Mensaje algoritmo Conductancia Incremental
c) Mensaje algoritmo basado en un controlador difuso
De la figura A.3 se observa los mensajes generados en el LCD, al momento de
realizar u solicitar una operación relacionada con la memoria EEPROM externa.
(a)
(b)
(c)
Figura A.3 a) Indicación de escritura de la memoria externab) Indicación de lectura de la memoria externa
c) Indicación de término de la lectura de la memoria externa
APÉNDICE A: MENSAJES GENERADOS EN EL 9
Por último, la figura A.4a y b muestra el caso de una solicitud de generación de
tabla (I –V) y de la ejecución de un borrado de la energía contabilizada por el
microcontrolador, respectivamente.
(a)
(b)
Figura A.1 a) Mensaje de generación de tabla I –Vb) Mensaje de borrado de energía
APÉNDICE B
CÓDIGOS DE PROGRAMAS Y LIBRERÍAS
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 9
Programa: Cond_inc.c
Este programa es el encargado de realizar el seguimiento del MPP de un panel solar utilizando el conversor Boost. Para ello realiza los siguientes procesos: adquirir datos, crear las interrupciones del timer (cada 10ms) y de la comunicación serial, generar la señal de PWM proveniente de un PI para el conversor DC/DC.
Según lo solicitado por el usuario, mediante el software de interfaz y la comunicación serial, el seguimiento del MPP se puede efectuar con el algoritmo P&O o Cond Inc. Siendo este último el programado por defecto.
#include <18F452.H>#device adc=10;#include <math.h>#fuses HS,NOWDT,NOPUT,NOPROTECT,NOLVP#use delay (clock=20000000)#use rs232 (baud=9600, xmit=PIN_C6 , rcv=PIN_C7)#include "lcd420b452.c"#include "2416.c"
float di; float dv; float vp; float vp_old; float ip; float ip_old; float m1; float m; float x1; float x; float n; float n1; float y1; float y; float p_new; float p_old; float vref; float ibat; float vbat; float o0; float o1; float e; float en; float energy; float fduty;float suma_pot; int16 dato; int16 dato1; int16 dato2; int16 dato3; int16 dato4; int16 dato5; int16 duty; int16 i;int16 ii; int32 j; int32 jj; int16 jjj; int32 cnta;int32 cnt_read; int16 cnta1; int16 medicion; int16 duty_per;
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 9
int16 p_i; int16 p_i_i; int16 p_o; int16 p_o_o; int8 cnt_e;char c; // caracter que selecciona el método cond incchar p; // caracter que selecciona el método perturbación y obs. char r; // reset energychar w; // escribir datos en la e2prom externa char l; // leer datos de la e2prom externa
boolean ENABLE; boolean clear_energy; boolean clear_cpu; boolean w_eeprom; boolean eeprom; boolean leer_eeprom; boolean pp;boolean cc;
byte vp_i;byte vp_o;byte ip_i;byte vref_i;byte ddd;
float const ki = 0.922799538; // Constante del PIfloat const kpr = 2.884600482; // Constante del PIfloat const aa1 = 0.5335; // Constante del Filtro (10Hz y 10ms)float const aa2 = 0.4665; // Constante del Filtro (10HZ Y 10ms)
#INT_RDAvoid recepcion(){
char value; value = getc();if(value=='p') // Habilita algoritmo P&O{
ENABLE = FALSE; pp = TRUE;
}if(value=='c') // Habilita algoritmo cond. inc.{
ENABLE = TRUE; cc = TRUE;
}if(value=='s') // Limpia el contador de Energía{
clear_energy = TRUE;}if(value=='u') // Resetea el PIC y genera nuevamente una tabla{
reset_cpu();}if(value=='w'){
w_eeprom = TRUE; // Escribir la EEPROM EXT. eeprom = TRUE;
}if(value=='l'){
leer_eeprom = TRUE;
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 9
}
}
#INT_RTCCvoid interrupcion(){
set_timer0(53036); // Interrupción c/10mseg. output_high(pin_C0);ip_old = ip; vp_old = vp; p_old = p_new;set_pwm1_duty(duty);
// SENSAR CORRIENTE DEL PANELset_adc_channel(0); delay_us(10);medicion = read_adc();m = medicion * (22.73/(3*1023));ip = aa1*m1 + aa2*m; // Filtro Digital m1=m;// FIN DE LA MEDICION DE CORRIENTE DEL PANEL
// set_adc_channel(2); delay_us(10);medicion = read_adc();x = medicion *(30.7/859.32); //vp = aa1*x1 + aa2*x; // Filtro Digital x1=x;// FIN DE LA MEDICION DEL VOLTAJE
di=ip-ip_old; dv=vp-vp_old; p_new = vp * ip; if(enable==TRUE){if(dv!=0){
if((di/dv)!=(ip/vp)){
if((di/dv)>(-ip/vp)){
vref = vref + 0.002;}else{
vref = vref - 0.006; //0.005}
}}else{
if(di!=0){
if(di>0){
vref = vref + 0.002;}else{
vref = vref - 0.006;}
}
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 9
}}else // Si no se elige Cond Inc, entonces se utiliza P&O{if(p_new>p_old){
if(vp>vp_old){
vref = vref + 0.002;}else{
vref = vref - 0.006; //0.1}
}else{
if(vp>vp_old){
vref = vref - 0.006;}else{
vref = vref + 0.002;}
}}
if (vref>20.0) vref=20.0;else if (vref<10.0) vref=10.0;
// Controlador PI e=vp-vref; o1=o0+ki*e;fduty=(o1+kpr*e); // salida del controlador// Se aplica Antiwinding Up if(fduty>1023){
fduty = 1023;}else if(fduty<0){
fduty = 0;}else{
o0 = o1;}duty=(int16)(fduty);
// Almacenar datos en la EEPROM EXT. if(w_eeprom && j<=250){ddd = (byte)(0.33*duty); vp_i = (byte)(vp*8); vref_i = (byte)(vref*8); p_i_i = (byte)(p_i*2); vp_o = (byte)(vbat*8); p_o_o = (byte)(p_o*2);
if(jjj==0) // Cada 100ms escribir en la eeprom{j+=1; // Se incrementa la variable j
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 9
jjj+=1; // Se incrementa la variable jjj write_ext_eeprom(j,ddd); // Almacenamos duty 0 - 250 write_ext_eeprom(j+251,vp_i); // Almacenamos Vpanel 251 - 501write_ext_eeprom(j+502,vref_i); // Almacenamos VRef panel 502 - 752 write_ext_eeprom(j+753,p_i_i); // Potencia de In 753 - 1003 write_ext_eeprom(j+1004,vp_o); // tensión batería 1004 - 1254 write_ext_eeprom(j+1255,p_o_o); // potencia batería 1255 - 1505}else{
if(jjj==3){jjj=0;} else {jjj+=1;}
}}// FIN de Almacenar datos en la EEPROM
// SENSAR CORRIENTE DE LA BATERIAset_adc_channel(1); delay_us(10);medicion = read_adc();n = medicion * (22.73/(3*1023)); // Filtro Digital ibat = aa1*n1 + aa2*n;n1=n;// FIN DE LA MEDICION DE CORRIENTE DE LA BATERIA
// SENSAR VOLTAJE DE LA BATERIAset_adc_channel( 3 ); delay_us(10);medicion = read_adc();y = medicion * (30.7/859.32); //vbat = aa1*y1 + aa2*y; // Filtro Digital y1 = y;// FIN DE LA MEDICION DEL VOLTAJE
// VISUALIZACION ESTADO DE LA BATERIAif(cnta1==1){
if(vbat>29.4){
output_high(pin_D0);}if(25.4<=vbat && vbat<=29.2){
output_high(pin_D1);}if(vbat<25.2){
output_high(pin_D2);}cnta1=cnta1+1;
}else{
if(cnta1==50){
output_low(pin_D2); output_low(pin_D1); output_low(pin_D0);
}if(cnta1==100){ cnta1=0; } cnta1=cnta1+1;
}
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 1
// Fin de Visualización del estado de la Batería
duty_per=ceil(100*(fduty)/1024); // Traspaso del ciclo de trabajo, de binario a %
p_i=ceil(p_new); p_o=ceil(ibat*vbat); if(cnt_e<20){
cnt_e+=1; suma_pot+=p_new;
}else{
cnt_e=0;en=(suma_pot/20)*0.2; //energia dada en Watts*seg energy+=(en*0.00028); // energía dada en Watts*hora suma_pot=0;
}
output_low(pin_c0);}
main(){
p_i_i = 0;dato = 0;dato1 = 0;dato2 = 0;dato3 = 0;dato4 = 0;dato5 = 0;cnta = 0;cnta1 = 0;duty_per = 0;medicion = 0;vbat = 0;ibat = 0;vp = 0;vp_old = 0;ip = 0;ip_old = 0;dv = 0;di = 0;m = 0;m1 = 0;x = 0;x1 = 0;p_new = 0;p_old = 0;o0 = 0;o1 = 0;vref = 14;e = 0;fduty = 0;duty = 0;i = 0;j = 0;p_i = 0;p_o = 0;duty_per = 0;ii = 0;jj = 0;jjj = 0;en = 0;
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 10
energy = 0;suma_pot = 0;cnt_e = 0;cnt_read = 0;vp_i = 0;vp_o = 0;vref_i = 0;ddd = 0;ip_i = 0;p_o_o = 0; enable = TRUE; clear_energy= FALSE; pp = FALSE;cc = FALSE;w_eeprom = FALSE; leer_eeprom = FALSE; eeprom = FALSE;output_low(PIN_C5); // Apagado del mosfet de SHORT CIRCUIT
lcd_init(); init_ext_eeprom(); setup_adc_ports(ALL_ANALOG);setup_adc(ADC_CLOCK_INTERNAL);
setup_ccp1(CCP_PWM); // Configura CCP1 como PWM setup_timer_2(T2_DIV_BY_1,255, 1); // fs = 19.53kHz
lcd_gotoxy(1,1); lcd_putc("******* MPPT *******"); lcd_gotoxy(1,2);lcd_putc("* Incremental Cond *"); delay_ms(1500);lcd_gotoxy(1,1);lcd_putc(" Table Generating "); lcd_gotoxy(1,2);lcd_putc(" Wait "); do{set_pwm1_duty(duty); delay_ms(5);// SENSAR CORRIENTE DEL PANELset_adc_channel(0); delay_us(10);medicion = read_adc();m = medicion * (22.73/(3*1023)); // Filtro Digital ip = aa1*m1 + aa2*m;m1 = m;// FIN DE LA MEDICION DE CORRIENTE DEL PANEL
// SENSAR VOLTAJE DEL PANELset_adc_channel( 2 ); delay_us(10);medicion = read_adc();x= medicion * (30.7/859.32); //vp = aa1*x1 + aa2*x; // Filtro Digital x1 = x;// FIN DE LA MEDICION DEL VOLTAJE
// SENSAR CORRIENTE DE LA BATERIAset_adc_channel(1); delay_us(10);medicion = read_adc();n = medicion * (22.73/(3*1023)); // Filtro Digital ibat = aa1*n1 + aa2*n;
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 10
n1=n;// FIN DE LA MEDICION DE CORRIENTE DE LA BATERIA
// SENSAR VOLTAJE DE LA BATERIAset_adc_channel( 3 ); delay_us(10);medicion = read_adc();y = medicion * (30.7/859.32); //vbat = aa1*y1 + aa2*y; // Filtro Digital y1 = y;
// FIN DE LA MEDICION DEL VOLTAJEprintf("%lu %02.3f %02.3f %02.3f
%02.3f\r\n",duty,vp,ip,vbat,ibat);
duty+=4; delay_ms(5);
}while(duty<=1024);
duty = 200;medicion = 0;vp = 0;ip = 0;vbat = 0;ibat = 0;x1 = 0;x = 0;m1 = 0;m = 0;n1 = 0;n = 0;y1 = 0;y = 0;
enable_interrupts(INT_TIMER0); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
for(;;){if(cnta==1){
lcd_putc("\f"); lcd_gotoxy(1,1); lcd_putc("IN"); lcd_gotoxy(9,1); lcd_putc("V"); lcd_gotoxy(20,1); lcd_putc("V"); lcd_gotoxy(9,2); lcd_putc("A"); lcd_gotoxy(20,2); lcd_putc("A"); lcd_gotoxy(11,1 ); lcd_putc("OUT");
lcd_gotoxy(4,1); printf(lcd_putc,"%02.1f",vp); lcd_gotoxy(15,1); printf(lcd_putc,"%02.1f",vbat); lcd_gotoxy(4,2); printf(lcd_putc,"%02.1f",ip); lcd_gotoxy(15,2);
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 10
printf(lcd_putc,"%02.1f",ibat);
}if(!input(pin_D3)){
lcd_putc("\f"); lcd_gotoxy(1,1); lcd_putc("IN"); lcd_gotoxy(11,1); lcd_putc("OUT"); lcd_gotoxy(9,1); lcd_putc("W"); lcd_gotoxy(20,1); lcd_putc("W"); lcd_gotoxy(1,2); lcd_putc("Duty"); lcd_gotoxy(9,2); lcd_putc("%"); lcd_gotoxy(11,2); lcd_putc("E"); lcd_gotoxy(19,2); lcd_putc("Wh");
lcd_gotoxy(5,1);printf(lcd_putc,"%Lu",p_i); // Potencia de Entrada lcd_gotoxy(15,1);printf(lcd_putc,"%Lu",p_o); // Potencia de Salida lcd_gotoxy(6,2);printf(lcd_putc,"%Lu",duty_per); // Ciclo de trabajo en % lcd_gotoxy(13,2);printf(lcd_putc,"%02.2f",energy); // Energía en Watts-Hora do{}while(!input(pin_D3)); // Detectar que se solto tecla
}if(!input(pin_D4) || clear_energy ){
lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Reset Energy "); lcd_gotoxy(1,2);lcd_putc("--------------------");do{}while(!input(pin_D4)); // Detectar que se solto tecla clear_energy = FALSE;delay_ms(500); energy = 0;
}if(pp){
pp = FALSE;lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc("******* MPPT *******"); lcd_gotoxy(1,2);lcd_putc("* P&O Algorithm *"); delay_ms(1500);
}if(cc){
cc = FALSE;lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc("******* MPPT *******"); lcd_gotoxy(1,2);lcd_putc("* Incremental Cond *");
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 10
delay_ms(1500);}if(eeprom){
eeprom = FALSE; lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Write Ext EEPROM "); lcd_gotoxy(1,2);lcd_putc(" 24C16B "); delay_ms(1500);
}if(leer_eeprom) // Para mostrar datos{
leer_eeprom = FALSE; lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Read Ext EEPROM "); lcd_gotoxy(1,2);lcd_putc(" 24C16B "); delay_ms(1500); for(jj=0;jj<=250;jj++){
dato = (read_ext_eeprom(jj)); // Se recupera duty dato1 = (read_ext_eeprom(jj+251)); // Se recupera Vpanel dato2 = (read_ext_eeprom(jj+502)); // Se recupera Vref dato3 = (read_ext_eeprom(jj+753)); // Se recupera Pot panel dato4 = (read_ext_eeprom(jj+1004)); // Se recupera la Vout dato5 = (read_ext_eeprom(jj+1255)); // Se recupera la pot
printf("%lu %lu %lu %lu %lu %lu\r\n",dato,dato1,dato2,dato3,dato4,dato5);}if(jj==251){
lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Read Ready "); lcd_gotoxy(1,2);lcd_putc(" 24C16B "); delay_ms(5000);
}}if(cnta == 150000){ cnta = 0; } cnta+=1;}
}
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 10
Programa: Cond_inc_bb.c
Este programa es el encargado de realizar el seguimiento del MPP de un panel solar utilizando el conversor Buck - Boost. Para ello realiza los siguientes procesos: adquirir datos, crear las interrupciones del timer (cada 10ms) y de la comunicación serial, generar la señal de PWM proveniente de un PI para el conversor DC/DC.
Según lo solicitado por el usuario, mediante el software de interfaz y la comunicación serial, el seguimiento del MPP se puede efectuar con el algoritmo P&O o Cond Inc. Siendo este último el programado por defecto.
#include <18F452.H>#device adc=10;#include <math.h>#fuses HS,NOWDT,NOPUT,NOPROTECT,NOLVP#use delay (clock=20000000)#use rs232 (baud=9600, xmit=PIN_C6 , rcv=PIN_C7)#include "lcd420b452.c"#include "2416.c"
float di; float dv; float vp; float vp_old; float ip; float ip_old; float p_new; float p_old; float vref; float ibat; float vbat; float o0; float o1; float e; float en; float energy; float fduty;float suma_pot; int16 dato; int16 dato1; int16 dato2; int16 dato3; int16 dato4; int16 dato5; int16 duty;int16 duty_aux=0; int16 i;int16 ii; int32 j; int32 jj; int16 jjj; int32 cnta;int32 cnt_read; int16 cnta1; int16 medicion; int16 duty_per; int16 p_i; int16 p_i_i; int16 p_o; int16 p_o_o; int8 cnt_e;char c; // carácter que selecciona el método cond inc
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 10
char p; // carácter que selecciona el método perturbación y obs. char r; // reset energychar w; // escribir datos en la e2prom externa char l; // leer datos de la e2prom externa
boolean ENABLE; boolean clear_energy; boolean clear_cpu; boolean w_eeprom; boolean eeprom; boolean leer_eeprom; boolean pp;boolean cc;
byte vp_i;byte vp_o;byte ip_i;byte vref_i;byte ddd;
float const ki = 0.922799538; // Constante del PIfloat const kpr = 2.884600482; // Constante del PIfloat const aa1 = 0.7304; // Constante del Filtro (5Hz y 10ms)float const aa2 = 0.2696; // Constante del Filtro (5HZ y 10ms)float const aa3 = 0.9391; // Constante del Filtro (1Hz y 10ms)float const aa4 = 0.0609; // Constante del Filtro (1Hz y 10ms)float const aa5 = 0.9691; // Constante del Filtro (0.5Hz y 10ms)float const aa6 = 1-aa5; // Constante del Filtro (0.5Hz y 10ms)float const aa7 = 0.9937 ; // Constante del Filtro (0.1Hz y 10ms)float const aa8 = 1-aa7; // Constante del Filtro (0.1Hz y 10ms)float const aa9 = 0.9994; // Constante del Filtro (0.01Hz y 10ms) float const aa10= 1- aa9;
Float m=0,m1=0,n=0,n1=0,y=0,y1=0,x=0,x1=0;
#INT_RDAvoid recepcion(){
char value; value = getc();if(value=='p') // Habilita algoritmo P&O{
ENABLE = FALSE; pp = TRUE;
}if(value=='c') // Habilita algoritmo cond. inc.{
ENABLE = TRUE; cc = TRUE;
}if(value=='s') // Limpia el contador de Energía{
clear_energy = TRUE;}if(value=='u') // Resetea el PIC y genera nuevamente una tabla{
reset_cpu();}if(value=='w'){
w_eeprom = TRUE; // Escribir la EEPROM EXT. eeprom = TRUE;
}if(value=='l')
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 10
{leer_eeprom = TRUE;
}
}
#INT_RTCCvoid interrupcion(){
set_timer0(53036); // Interrupción c/10mseg. output_high(pin_C0);ip_old = ip; vp_old = vp; p_old = p_new;set_pwm1_duty(duty);
// SENSAR CORRIENTE DEL PANELset_adc_channel(0); delay_us(10);medicion = read_adc();m = medicion * 6.45e-3; // Filtro Digital ip = aa1*m1 + aa2*m;m1 = m;// FIN DE LA MEDICION DE CORRIENTE DEL PANEL
// SENSAR VOLTAJE DEL PANELset_adc_channel(2); delay_us(10);medicion = read_adc(); x = medicion* 0.02975;vp = aa1*x1 + aa2*x; // Filtro Digital x1=x; //// FIN DE LA MEDICION DEL VOLTAJE
di=ip-ip_old; dv=vp-vp_old; p_new = vp * ip; if(enable==TRUE){if(dv!=0){
if((di/dv)!=(ip/vp)){
if((di/dv)>(-ip/vp)){
vref = vref + 0.01;}else{
vref = vref - 0.03; //0.005}
}}else{
if(di!=0){
if(di>0){
vref = vref + 0.01;}else{
vref = vref - 0.03;
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 10
}}
}}else // Si no se elige Cond Inc, entonces se utiliza P&O{if(p_new>p_old){
if(vp>vp_old){
vref = vref + 0.01;}else{
vref = vref - 0.03; //0.1}
}else{
if(vp>vp_old){
vref = vref - 0.03;}else{
vref = vref + 0.01;}
}}
if (vref>20.0) vref=20.0;else if (vref<11.5) vref=11.5;
// Controlador PI e=vp-vref; o1=o0+ki*e;fduty=(o1+kpr*e); // salida del controlador// Se aplica Antiwinding Up if(fduty>1023){
fduty = 1023;}else if(fduty<0){
fduty = 0;}else{
o0 = o1;}duty=(int16)(fduty);
// Almacenar datos en la EEPROM EXT. if(w_eeprom && j<=250){ddd = (byte)(0.33*duty); vp_i = (byte)(vp*8); vref_i = (byte)(vref*8); p_i_i = (byte)(p_i*2); vp_o = (byte)(vbat*8); p_o_o = (byte)(p_o*2);
if(jjj==0) // Cada 100ms escribir en la eeprom
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 10
{j+=1; // Se incrementa la variable j jjj+=1; // Se incrementa la variable jjjwrite_ext_eeprom(j,ddd); // Almacenamos duty 0 - 250 write_ext_eeprom(j+251,vp_i); // Almacenamos Vpanel 251 - 501 write_ext_eeprom(j+502,vref_i); // Voltaje Ref panel 502 - 752 write_ext_eeprom(j+753,p_i_i); // Potencia de In 753 - 1003 write_ext_eeprom(j+1004,vp_o); // tensión batería 1004 - 1254 write_ext_eeprom(j+1255,p_o_o); // potencia batería 1255 - 1505}else{
if(jjj==3){jjj=0;} else {jjj+=1;}
}}// FIN de Almacenar datos en la EEPROM
// SENSAR CORRIENTE DE LA BATERIAset_adc_channel(1); delay_us(10);medicion = read_adc(); n = medicion*6.45e-3; ibat = aa1*n1 + aa2*n; n1=n;// FIN DE LA MEDICION DE CORRIENTE DE LA BATERIA
// SENSAR VOLTAJE DE LA BATERIAset_adc_channel( 3 ); delay_us(10);medicion = read_adc(); y = medicion* 0.02975; vbat = aa1*y1 + aa2*y; y1=y;// FIN DE LA MEDICION DEL VOLTAJE
// VISUALIZACION ESTADO DE LA BATERIAif(cnta1==1){
if(vbat>29.4){
output_high(pin_D0);}if(25.4<=vbat && vbat<=29.2){
output_high(pin_D1);}if(vbat<25.2){
output_high(pin_D2);}cnta1=cnta1+1;
}else{
if(cnta1==50){
output_low(pin_D2); output_low(pin_D1); output_low(pin_D0);
}if(cnta1==100){ cnta1=0; }
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 1
cnta1=cnta1+1;}// Fin de Visualización del estado de la Batería
duty_per=ceil(100*(fduty)/1024); // Traspaso del ciclo de trabajo, de binario a %
p_i=ceil(p_new); p_o=ceil(ibat*vbat); if(cnt_e<20){
cnt_e+=1; suma_pot+=p_new;
}else{
cnt_e=0;en=(suma_pot/20)*0.2; //energia dada en Watts*seg energy+=(en*0.00028); // energía dada en Watts*hora suma_pot=0;
}
output_low(pin_c0);}
main(){
p_i_i = 0;dato = 0;dato1 = 0;dato2 = 0;dato3 = 0;dato4 = 0;dato5 = 0;cnta = 0;cnta1 = 0;duty_per = 0;medicion = 0;vbat = 0;ibat = 0;vp = 0;vp_old = 0;ip = 0;ip_old = 0;dv = 0;di = 0;p_new = 0;p_old = 0;o0 = 0;o1 = 0;vref = 14.5;e = 0;fduty = 0;duty = 0;i = 0;j = 0;p_i = 0;p_o = 0;duty_per = 0;ii = 0;jj = 0;jjj = 0;en = 0;energy = 0;suma_pot = 0;
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 11
cnt_e = 0;cnt_read = 0;vp_i = 0;vp_o = 0;vref_i = 0;ddd = 0;ip_i = 0;p_o_o = 0; enable = TRUE; clear_energy= FALSE; pp = FALSE;cc = FALSE;w_eeprom = FALSE; leer_eeprom = FALSE; eeprom = FALSE;
output_low(PIN_C5); // Apagado del mosfet de SHORT CIRCUIT
lcd_init();init_ext_eeprom(); setup_adc_ports(ALL_ANALOG); setup_adc(ADC_CLOCK_INTERNAL);
setup_ccp1(CCP_PWM); // Configura CCP1 como PWM setup_timer_2(T2_DIV_BY_1,255, 1); // fs = 19.53kHz
lcd_gotoxy(1,1); lcd_putc("******* MPPT *******"); lcd_gotoxy(1,2);lcd_putc("* Incremental Cond *"); delay_ms(1500);lcd_gotoxy(1,1);lcd_putc(" Table Generating "); lcd_gotoxy(1,2);lcd_putc(" Wait "); do{set_pwm1_duty(duty); delay_ms(5);
// SENSAR CORRIENTE DEL PANELset_adc_channel(0); delay_us(10);medicion = read_adc(); m = medicion * 6.45e-3; ip = aa1*m1 + aa2*m;m1 = m;// FIN DE LA MEDICION DE CORRIENTE DEL PANEL
// SENSAR VOLTAJE DEL PANELset_adc_channel(2); delay_us(10);medicion = read_adc(); x = medicion* 0.02975;vp = aa1*x1 + aa2*x; // Filtro Digital x1=x;// FIN DE LA MEDICION DEL VOLTAJE
// SENSAR CORRIENTE DE LA BATERIAset_adc_channel(1); delay_us(10);medicion = read_adc(); n = medicion*6.45e-3;
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 11
ibat = aa1*n1 + aa2*n; n1=n;// FIN DE LA MEDICION DE CORRIENTE DE LA BATERIA
// SENSAR VOLTAJE DE LA BATERIAset_adc_channel( 3 ); delay_us(10);medicion = read_adc(); y = medicion* 0.02975; vbat = aa1*y1 + aa2*y; y1=y;// FIN DE LA MEDICION DEL VOLTAJE
printf("%lu %02.3f %02.3f %02.3f %02.3f\r\n",duty,vp,ip,vbat,ibat);
duty+=4; delay_ms(5);
}while(duty<=1024);
duty = 200;medicion = 0;vp = 0;ip = 0;vbat = 0;ibat = 0;
enable_interrupts(INT_TIMER0); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
for(;;){if(cnta==1){
lcd_putc("\f"); lcd_gotoxy(1,1); lcd_putc("IN"); lcd_gotoxy(9,1); lcd_putc("V"); lcd_gotoxy(20,1); lcd_putc("V"); lcd_gotoxy(9,2); lcd_putc("A"); lcd_gotoxy(20,2); lcd_putc("A"); lcd_gotoxy(11,1 ); lcd_putc("OUT");
lcd_gotoxy(4,1); printf(lcd_putc,"%02.1f",vp); lcd_gotoxy(15,1); printf(lcd_putc,"%02.1f",vbat); lcd_gotoxy(4,2); printf(lcd_putc,"%02.1f",ip); lcd_gotoxy(15,2); printf(lcd_putc,"%02.1f",ibat);
}
if(!input(pin_D3)){
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 11
lcd_putc("\f"); lcd_gotoxy(1,1); lcd_putc("IN"); lcd_gotoxy(11,1); lcd_putc("OUT"); lcd_gotoxy(9,1); lcd_putc("W"); lcd_gotoxy(20,1); lcd_putc("W"); lcd_gotoxy(1,2); lcd_putc("Duty"); lcd_gotoxy(9,2); lcd_putc("%"); lcd_gotoxy(11,2); lcd_putc("E"); lcd_gotoxy(19,2); lcd_putc("Wh");
lcd_gotoxy(5,1);printf(lcd_putc,"%Lu",p_i); // Potencia de Entrada lcd_gotoxy(15,1);printf(lcd_putc,"%Lu",p_o); // Potencia de Salida lcd_gotoxy(6,2);printf(lcd_putc,"%Lu",duty_per); // Ciclo de trabajo en % lcd_gotoxy(13,2);printf(lcd_putc,"%02.2f",energy); // Energía en Watts-Hora do{}while(!input(pin_D3)); // Detectar que se solto tecla
}if(!input(pin_D4) || clear_energy ){
lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Reset Energy "); lcd_gotoxy(1,2);lcd_putc("--------------------");do{}while(!input(pin_D4)); // Detectar que se solto tecla clear_energy = FALSE;delay_ms(500); energy = 0;
}
if(pp){
pp = FALSE;lcd_putc("\f"); lcd_gotoxy(1,1);
lcd_putc("******* MPPT *******"); lcd_gotoxy(1,2);lcd_putc("* P&O Algorithm *"); delay_ms(1500);
}if(cc){
cc = FALSE;lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc("******* MPPT *******"); lcd_gotoxy(1,2);lcd_putc("* Incremental Cond *"); delay_ms(1500);
}if(eeprom)
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 11
{eeprom = FALSE; lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Write Ext EEPROM "); lcd_gotoxy(1,2);lcd_putc(" 24C16B "); delay_ms(1500);
}if(leer_eeprom) // Para mostrar datos{
leer_eeprom = FALSE; lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Read Ext EEPROM "); lcd_gotoxy(1,2);lcd_putc(" 24C16B "); delay_ms(1500); for(jj=0;jj<=250;jj++){
dato = (read_ext_eeprom(jj)); // Se recupera duty dato1 = (read_ext_eeprom(jj+251)); // Se recupera Vpanel dato2 = (read_ext_eeprom(jj+502)); // Se recupera Vrefdato3 = (read_ext_eeprom(jj+753)); // Se recupera Potencia panel dato4 = (read_ext_eeprom(jj+1004)); // Se recupera la tensión out dato5 = (read_ext_eeprom(jj+1255)); // Se recupera la potencia salida
printf("%lu %lu %lu %lu %lu %lu\r\n",dato,dato1,dato2,dato3,dato4,dato5);}if(jj==251){
lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Read Ready "); lcd_gotoxy(1,2);lcd_putc(" 24C16B "); delay_ms(5000);
}}if(cnta == 150000){ cnta = 0; } cnta+=1;}
}
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 11
Programa: fuzzy.c
Este programa es el encargado de realizar el seguimiento del MPP de un panel solar utilizando el conversor Boost. Para ello realiza los siguientes procesos: adquirir datos, crear las interrupciones del timer (cada 20ms) y de la comunicación serial, generar la señal de PWM proveniente de un controlador basado en lógica difusa.
// ***************************************************************|// MPPT EN SISTEMAS FOTOVOLTAICOS |// UTILIZANDO FUZZY LOGIC CONTROL |// |// Todas las funciones de pertenencia: tanto entradas e y de |// como salida (dd) son del tipo TRIANGULAR con un solapamiento |// de un 50%. |// |// nb nm ns zo ps pm pb |// |// \ /\ /\ /\ /\ /\ / |// \ \ \ \ \ \ |// / \/ \/ \/ \/ \/ \ |// -6 -4 -2 0 2 4 6 |// |// |// PROGRAMA FUNCIONANDO EN PERFECTO ESTADO |// ***************************************************************|
#include <18F452.H>#device adc=10;#include <math.h>#fuses HS,NOWDT,NOPUT,NOPROTECT,NOLVP#use delay (clock=20000000)#use rs232 (baud=9600, xmit=PIN_C6 , rcv=PIN_C7)#include "lcd420b452.c"#include "2416.c"
float vp=0.0,ip=0.0,vb=0.0,ib=0.0,ip_old=0.0,pk=0.0,pk_old=0.0,ek=0.0; float vb_old=0.0,ib_old=0.0,vp_old=0.0,vpf=0.0,ipf=0.0,vbf=0.0,ibf=0.0; float ek_old=0.0,cek=0.0,xx=0.0,xxx=0.0,yyy=0.0,pout_aux=0.0;float perror[2],pderror[2],c[7],regla[7][7],fdu[3],pdu[3],min=0.0,max=0.0; float fin[90],pout=0;float num=0.0, den=1.0,dd=0.0,fduty=0.0,ffduty=0.0; int ferror[2],fderror[2],kkk=0,uuu=0,ja=0;int16 indice,z=0,zzz=0,dato=0,dato1=0,dato2=0,dato3=0,dato4=0,dato5=0,kkkk=0; int32 medicion=0,duty=0,cnta=0;
float const aa1 = 0.9875; // Constante del Filtro (0.1Hz y 20ms) float const aa2 = 1-aa1; // Constante del Filtro (0.1HZ Y 20ms) float const dutymax = 1023;float const dutymin = 0;
float m=0,m1=0,n1=0,n=0,x1=0,x=0,y1=0,y=0; boolean eeprom = FALSE;boolean leer_eeprom = FALSE; boolean w_eeprom = FALSE; boolean chip = FALSE;
byte vp_i =0, ip_i=0, ek_m=0, cek_m=0,dduty=0,p_o=0;
//=====================================================|// Funciones de Pertenencia |//=====================================================|int const NB=0; /* NEGATIVE BIG */
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 11
int const NM=1; /* NEGATIVE MEDIUM */int const NS=2; /* NEGATIVE SMALL */int const ZO=3; /* ZERO */int const PS=4; /* POSITIVE SMALL */int const PM=5; /* POSITIVE MEDIUM */int const PB=6; /* POSITIVE BIG *///=====================================================|// Fin Funciones de Pertenencia |//=====================================================|
float minimo(xxx,yyy){
if(yyy<=xxx) min=yyy; else min=xxx; return min;
}float maximo(xxx,yyy){
if(yyy>=xxx) max=yyy; else max=xxx; return max;
}
#INT_RDAvoid recepcion(){
char value; value = getc(); if(value=='w'){
eeprom = TRUE; // orden de escribir eeprom w_eeprom = TRUE;
}if(value=='l'){
leer_eeprom = TRUE; // orden de leer eeprom}if(value=='u') // Resetea el PIC{
reset_cpu();}if(value=='q'){
chip = TRUE;}
}
#INT_RTCCvoid interrupcion(){
set_timer0(53036); // Interrupción Timer c/20ms output_high(pin_C0); // medición time ejec. programa/* SENSAR CORRIENTE DEL PANEL */set_adc_channel(0); delay_us(10);medicion = read_adc();ip = medicion*(22.73/(3069)); // 3*1023=3069//ip = aa1*m1 + aa2*m;//m1=m;/* FIN DE SENSAR CORRIENTE DEL PANEL */
/* SENSAR TENSION DEL PANEL*/set_adc_channel(2); delay_us(10);
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 11
medicion = read_adc();vp = medicion*(30.7/859.32); ////vp = aa1*x1 + aa2*x; // Filtro Digital//x1=x;/* FIN DE SENSAR TENSION DEL PANEL */pk=vp*ip;ek=(pk-pk_old)/(vp_old-vp); ek = 3.4*ek;//0.04 / 3.25 cek=ek-ek_old;cek= 3.4*cek; ek_old=ek; pk_old= pk; ip_old = ip; vp_old = vp; vb_old = vb; ib_old = ib;
//==================================================================// Fuzzificación E(K)//==================================================================
if((ek>-6.0)&&(ek<6.0)){
indice=(int16)((ek+6.0)*7.5); perror[0]=fin[indice]; perror[1]=1-perror[0]; ferror[0]=(int16)(indice/15.0); ferror[1]=ferror[0]+1;
}if(ek<=-6.0){
perror[0]=1.0; perror[1]=0.0; ferror[0]=NB; ferror[1]=NM;
}if(ek>=6.0){
perror[0]=1.0; perror[1]=0.0; ferror[0]=PB; ferror[1]=PM;
}//==================================================================// Fuzzificación CE(K)//==================================================================if((cek>-6.0)&&(cek<6.0)){
indice=(int16)((cek+6.0)*7.5); pderror[0]=fin[indice]; pderror[1]=1-pderror[0]; fderror[0]=(int16)(indice/15.0); fderror[1]=fderror[0]+1;
}if(cek<=-6.0){
pderror[0]=1.0; pderror[1]=0.0; fderror[0]=NB; fderror[1]=NM;
}if(cek>=6.0){
pderror[0]=1.0;
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 11
pderror[1]=0.0; fderror[0]=PB; fderror[1]=PM;
}//===========================================================// Toma de Decisión//===========================================================fdu[0]=regla[ferror[0]][fderror[0]];fdu[1]=regla[ferror[0]][fderror[1]];fdu[2]=regla[ferror[1]][fderror[1]]; pdu[0]=minimo(perror[0],pderror[0]);pdu[1]=maximo(minimo(perror[0],pderror[1]),minimo(perror[1],pderror[0])); pdu[2]=minimo(perror[1],pderror[1]);//===========================================================// FIN Toma de Decisión//===========================================================
//===========================================================// Desfuzzificación//===========================================================den=(pdu[0]+pdu[1]+pdu[2]); num=((c[fdu[0]]*pdu[0])+(c[fdu[1]]*pdu[1])+(c[fdu[2]]*pdu[2])); dd=1.4*(num/den); // dd: delta duty cycle / 2.25//===========================================================// FIN Desfuzzificación//===========================================================
//===========================================================// Se aplica Antiwinding Up//===========================================================fduty=ffduty+dd;if(fduty>dutymax) {fduty=dutymax;}else if(fduty<dutymin) {fduty=dutymin;} else {ffduty=fduty;} // Se integraduty=(int16)(fduty); // Se hace el traspaso de flot a int
set_pwm1_duty(duty);//===========================================================// FIN Antiwinding Up//===========================================================//===========================================================// Sensar Tensión y Corriente de Salida//===========================================================set_adc_channel(1); delay_us(10);medicion = read_adc();ib = medicion * (22.73/3069);
set_adc_channel( 3 ); delay_us(10);medicion = read_adc();vb = medicion*(30.7/859.32);//===========================================================// Fin de Sensado de Tensión y Corriente de Salida//===========================================================
//===========================================================// Filtrado de las Variables//===========================================================pout_aux=vb*ib; vpf=aa1*vp_old+aa2*vp; ipf=aa1*ip_old+aa2*ip; vbf=aa1*vb_old+aa2*vb;
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 11
ibf=aa1*ib_old+aa2*ib; pout=vpf*ipf;//===========================================================// Fin Filtrado de las Variables//===========================================================
//===========================================================// ALMACENAR DATOS EN LA EEPROM EXTERNA//===========================================================if(eeprom && z<251){
vp_i = (byte)(vpf*8); // guardar tensión del panel ip_i = (byte)(ipf*30); // guardar corriente del panel ek_m = (byte)(ek); // guardar el errorcek_m = (byte)(cek); // guardar cambio de el error dduty = (byte)(duty*0.33); // guardar ciclo de trabajo p_o = (byte)(pout_aux*2); // guardar potencia salida
if(zzz==0) // Cada 100ms escribir en la eeprom{
z+=1; // Se incrementa la variable z zzz+=1; // Se incrementa la variable zzzwrite_ext_eeprom(z,vp_i); // Almacenamos Voltaje Panel 0 - 250 write_ext_eeprom(z+251,ip_i); // Almacenamos corriente pv 251 - 501 write_ext_eeprom(z+502,ek_m); // Almacenamos error 502-752 write_ext_eeprom(z+753,cek_m); // Almacenamos cerror 753 - 1003 write_ext_eeprom(z+1004,dduty); // Almacenamos duty 1004 - 1254 write_ext_eeprom(z+1255,p_o);
}
else{
if(zzz>1){zzz=0;} else {zzz+=1;}
}}//============================================================// FIN DE ALMACENAMIENTO EN LA E2PROM//============================================================
if(kkk==0 && chip){
kkk+=1; kkkk+=1;if(kkkk>249) { chip = FALSE; }else printf("\n\r %02.2f %02.2f %02.2f %02.2f %lu %02.2f
\n\r",vp,ip,ek,cek,duty,pout_aux);}else{ if(kkk>1) kkk=0; else kkk=kkk+1; }output_low(pin_C0); // fin medicion del time de ejecución programa
}
main(){
int iii=0,jjj=0; for(iii=0;iii<90;iii++){
fin[iii]=0.0; // Inicialización del vector fin[iii]}for(iii=0;iii<2;iii++){
perror[iii]=0.0; pderror[iii]=0.0;
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 1
ferror[iii]=0; fderror[iii]=0;
}for(iii=0;iii<3;iii++){
pdu[iii]=0.0; fdu[iii]=0;
}output_low(PIN_C5); // Apagado del mosfet de SHORT CIRCUIT lcd_init();init_ext_eeprom();//|===========================================================|//| Centro de las Funciones de Pertenencia |//|===========================================================| c[NB]=-6.0;c[NM]=-4.0;c[NS]=-2.0;c[ZO]= 0.0; c[PS]=-c[NS];c[PM]=-c[NM];c[PB]=-c[NB];//|===========================================================|//| Creación de las Funciones de Pertenencia de entrada |//|===========================================================|for(iii=0;iii<16;iii++){
xx=(1.0-(iii/15.0)); fin[iii] =xx; fin[15+iii]=xx; fin[30+iii]=xx; fin[45+iii]=xx; fin[60+iii]=xx; fin[75+iii]=xx; fin[15]=1.0;fin[30]=1.0;fin[45]=1.0;fin[60]=1.0;fin[75]=1.0;
}//============================================================|// REGLAS DEL CONTROLADOR DE FUZZY LOGIC |//============================================================|for(iii=0;iii<4;iii++){
for(jjj=0;jjj<(4-iii);jjj++){
regla[iii][jjj]=NB; regla[6-iii][6-jjj]=PB;
}}for(iii=0;iii<5;iii++){
regla[iii][4-iii]=NM; regla[iii+2][6-iii]=PM;
}for(iii=0;iii<6;iii++){
regla[iii][5-iii]=NS; regla[iii+1][6-iii]=PS;
}for(iii=0;iii<7;iii++){
regla[iii][6-iii]=ZO;}
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 12
//===============================================================|// LAS REGLAS CREAN LA MATRIZ SIGUIENTE |// |// CE(K) |// |// NB NM NS ZO PS PM PB |// \---------------------------------- |// NB | NB | NB | NB | NB | NM | NS | ZO |// ----------------------------------- |// NM | NB | NB | NB | NM | NS | ZO | PS |// ----------------------------------- |// NS | NB | NB | NM | NS | ZO | PS | PM |// ----------------------------------- |// E(K) ZO | NB | NM | NS | ZO | PS | PM | PB |// ----------------------------------- |// PS | NM | NS | ZO | PS | PM | PB | PB |// ----------------------------------- |// PM | NS | ZO | PS | PM | PB | PB | PB |// ----------------------------------- |// PB | ZO | PS | PM | PB | PB | PB | PB |// ----------------------------------- |// |//================================================================
setup_adc_ports(ALL_ANALOG); setup_adc(ADC_CLOCK_INTERNAL); setup_ccp1(CCP_PWM); // Configura CCP1 como PWMsetup_timer_2(T2_DIV_BY_1,255, 1); // fs = 19.53kHz
enable_interrupts(INT_TIMER0);enable_interrupts(INT_RDA); // Interrupción al existir un evento en com1 enable_interrupts(GLOBAL);setup_timer_0(RTCC_INTERNAL|RTCC_DIV_8); lcd_putc("******* MPPT *******"); lcd_gotoxy(1,2);lcd_putc("Fuzzy Logic Control"); delay_ms(1500);for(;;){cnta+=1; if(cnta==1){
lcd_putc("\f"); lcd_gotoxy(1,1); lcd_putc("IN"); lcd_gotoxy(9,1); lcd_putc("V"); lcd_gotoxy(20,1); lcd_putc("V"); lcd_gotoxy(9,2); lcd_putc("A"); lcd_gotoxy(20,2); lcd_putc("A"); lcd_gotoxy(11,1 ); lcd_putc("OUT");
lcd_gotoxy(4,1); printf(lcd_putc,"%02.1f",vpf); lcd_gotoxy(15,1); printf(lcd_putc,"%02.1f",vbf); lcd_gotoxy(4,2); printf(lcd_putc,"%02.1f",ipf); lcd_gotoxy(15,2);
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 12
printf(lcd_putc,"%02.1f",ibf);}if(w_eeprom){
w_eeprom = FALSE; lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Write Ext EEPROM "); lcd_gotoxy(1,2);lcd_putc(" 24C16B "); delay_ms(1500);
}if(leer_eeprom) // Para mostrar datos{
leer_eeprom = FALSE; lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Read Ext EEPROM "); lcd_gotoxy(1,2);lcd_putc(" 24C16B "); delay_ms(1500); for(z=0;z<251;z++){
dato = (read_ext_eeprom(z)); // Se recupera Vp dato1 = (read_ext_eeprom(z+251)); // Se recupera Ip dato2 = (read_ext_eeprom(z+502)); // Se recupera errordato3 = (read_ext_eeprom(z+753)); // Se recupera cambio de error dato4 = (read_ext_eeprom(z+1004)); // se recupera el ciclo de trabajo dato5 = (read_ext_eeprom(z+1255)); // Se recupera la potencia de out
printf("%lu %lu %lu %lu %lu %lu\r\n",dato,dato1,dato2,dato3,dato4,dato5);} if(z==251){
lcd_putc("\f"); lcd_gotoxy(1,1);lcd_putc(" Read Ready "); lcd_gotoxy(1,2);lcd_putc(" 24C16B "); delay_ms(1500);
}}delay_ms(1500);{ cnta = 0; }
}}
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 12
Programa: lcd420b.c
Esta librería es la encargada del manejo del módulo LCD.
// As defined in the following structure the pin connection is as follows:// B0 enable// B1 rs// B2 rw// B4 D4// B5 D5// B6 D6// B7 D7//// LCD pins D0-D3 are not used and PIC B3 is not used.
struct lcd_pin_map { // This structure is overlayed BOOLEAN enable; // on to an I/O port to gainBOOLEAN rs; // access to the LCD pins.BOOLEAN rw; // The bits are allocated from BOOLEAN unused; // low order up. ENABLE will int data : 4; // be pin B0.
} lcd;
#byte lcd = 0x6 // This puts the entire structure// on to port D (at address 8)
#define lcd_type 2 // 0=5x7, 1=5x10, 2=2 lines
BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0xc, 1, 6};// These bytes need to be sent to the LCD// to start it up.
// The following are used for setting// the I/O port direction register.
struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; // For write mode all pins are outstruct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins are in
BYTE lcdline;
BYTE lcd_read_byte() { BYTE low,high;
set_tris_b(LCD_READ); lcd.rw = 1; delay_cycles(1); lcd.enable = 1; delay_cycles(1);high = lcd.data; lcd.enable = 0; delay_cycles(1); lcd.enable = 1; delay_us(1);low = lcd.data; lcd.enable = 0; set_tris_b(LCD_WRITE); return( (high<<4) | low);
}
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 12
void lcd_send_nibble( BYTE n ) { lcd.data = n; delay_cycles(1); lcd.enable = 1; delay_us(2);lcd.enable = 0;
}
void lcd_send_byte( BYTE address, BYTE n ) {
lcd.rs = 0;while ( bit_test(lcd_read_byte(),7) ) ; lcd.rs = address;delay_cycles(1); lcd.rw = 0; delay_cycles(1); lcd.enable = 0;lcd_send_nibble(n >> 4); lcd_send_nibble(n & 0xf);
}
void lcd_init() { BYTE i;
set_tris_b(LCD_WRITE); lcd.rs = 0;lcd.rw = 0;lcd.enable = 0; delay_ms(15); for(i=1;i<=3;++i) {
lcd_send_nibble(3); delay_ms(5);
}lcd_send_nibble(2); for(i=0;i<=3;++i)
lcd_send_byte(0, LCD_INIT_STRING[i]);}
void lcd_gotoxy( BYTE x, BYTE y) { BYTE address;
switch(y) {case 1 : address=0x80;break; case 2 : address=0xc0;break; case 3 : address=0x94;break; case 4 : address=0xd4;break;
}address+=x-1; lcd_send_byte(0,address);
}
void lcd_putc( char c) { switch (c) {case '\f' : lcd_send_byte(0,1);
lcdline=1; delay_ms(2);
break;case '\n' : lcd_gotoxy(1,++lcdline);
break; case '\b' : lcd_send_byte(0,0x10); break;default : lcd_send_byte(1,c); break;
}}
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 12
char lcd_getc( BYTE x, BYTE y) { char value;
lcd_gotoxy(x,y); lcd.rs=1;value = lcd_read_byte(); lcd.rs=0;return(value);
}
Programa: test.vbp
Este programa es el encargado de ser interfaz para el usuario. En su pantalla presenta: el algoritmo que esta siendo utilizado para el MPPT, la tabla I –V generada, acceso a MATLAB, etc. Además, posee varios botones entre los que destaca: Lectura EEPROM externa, escritura EEPROM externa, reset al microcontrolador, guardar datos adquiridos, borrado de la contabilización de energía, etc.
Private Sub chkestablecer_Click() If chkestablecer.Value = 0 Then
ChkOnline.Value = 1 MSComm1.PortOpen = False CmdPer.Enabled = False CmdCond.Enabled = False CmdClearEnergy.Enabled = False cmdreset.Enabled = False cmdLeerEeprom.Enabled = False mnuGuardarEeprom.Enabled = False mnuLeerEeprom.Enabled = False Timer2.Enabled = True ChkOnline.Enabled = True
End IfIf chkestablecer.Value = 1 Then
ChkOnline.Value = 0If MSComm1.PortOpen = False Then
MSComm1.PortOpen = TrueEnd IfCmdPer.Enabled = True CmdClearEnergy.Enabled = True cmdreset.Enabled = True cmdLeerEeprom.Enabled = True mnuGuardarEeprom.Enabled = True mnuLeerEeprom.Enabled = True Timer2.Enabled = False
End If End Sub
Private Sub ChkOnline_Click()If ChkOnline.Value = 0 Then
chkestablecer.Value = 1Else
chkestablecer.Value = 0 End IfEnd Sub
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 12
Private Sub CmdClearEnergy_Click() MSComm1.Output = "s" 'En el PIC hacer energy = 0 End Sub
Private Sub CmdCond_Click()If CmdPer.Enabled = False Then CmdPer.Enabled = TrueEnd IfMSComm1.Output = "c" 'Cond Inc. Timer1.Enabled = True CmdCond.Enabled = FalseLblEstado.Caption = "Conductancia Incremental" End Sub
Private Sub cmdLeerEeprom_Click()MSComm1.Output = "l" ' Envia señal de lectura de la e2prom al 'PICEnd Sub
Private Sub CmdLimpiar_Click() txtrx.Text = ""End Sub
Private Sub cmdreset_Click() CmdPer.Enabled = False CmdCond.Enabled = TrueMSComm1.Output = "u" ' Establece un reset en el PICEnd Sub
Private Sub CmdSalir_Click()If MSComm1.PortOpen = True Then MSComm1.PortOpen = FalseEnd If Unload MeEnd Sub
Private Sub CmdPer_Click()If CmdCond.Enabled = False Then CmdCond.Enabled = TrueEnd IfMSComm1.Output = "p" ' P&O Timer1.Enabled = True CmdPer.Enabled = FalseLblEstado.Caption = "Perturbación y Observación" End Sub
Private Sub Form_Load()MSComm1.Settings = "9600,n,8,1" ' velocidad, paridad MSComm1.CommPort = 1'MSComm1.PortOpen = True CmdPer.Enabled = False CmdCond.Enabled = False CmdClearEnergy.Enabled = False cmdreset.Enabled = False chkestablecer.Value = 1 Timer1.Enabled = True Timer2.Enabled = False ChkOnline.Enabled = FalseLblEstado.Caption = "Conductancia Incremental"
End Sub
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 12
Private Sub Image2_Click()Call Shell("C:\MATLABR11\BIN\MATLAB.EXE")End Sub
Private Sub mnuColorTextBox_Click()CommonDialog1.Flags = &H1& ' Cambio de color de la caja de texto CommonDialog1.ShowColortxtrx.BackColor = CommonDialog1.Color
End Sub
Private Sub mnuGuardar_Click()'nota: todo el archivo se almacenará como una única cadena
CommonDialog1.Filter = "Archivos de texto (*.DAT)|*.DAT" CommonDialog1.ShowSave 'muestra el cuadro de diálogo Guardar If CommonDialog1.FileName <> "" Then
Open CommonDialog1.FileName For Output As #1 Print #1, txtrx.Text 'guarda el texto en un archivo Close #1 'cerrar archivo
End If End Sub
Private Sub mnuGuardarEeprom_Click() MSComm1.Output = "w" ' write ext eeprom (PIC 18F452)
End Sub
Private Sub mnuLeerEeprom_Click()MSComm1.Output = "l" ' Envia señal de lectura de la e2prom al 'PICEnd Sub
Private Sub mnuMatlab_Click()Call Shell("C:\MATLABR11\BIN\MATLAB.EXE")End Sub
Private Sub mnuPropiedad_Click() CommonDialog1.Flags = &H1& CommonDialog1.ShowColor txtrx.ForeColor = CommonDialog1.Color
End Sub
APÉNDICE B: CÓDIGOS DE PROGRAMAS Y 12
Private Sub mnuSalir_Click()If MSComm1.PortOpen = True Then MSComm1.PortOpen = FalseEnd If Unload Me End Sub
Private Sub Timer1_Timer()If chkestablecer.Value = 1 Then txtrx.Text = txtrx.Text & MSComm1.Input End IfEnd SubPrivate Sub Timer2_Timer() If ChkOnline.Value = 1 ThenIf MSComm1.PortOpen = False Then
MSComm1.PortOpen = TrueEnd If End IfText1.Text = "Hola"
End Sub
APÉNDICE C
DIAGRAMAS ESQUEMÁTICOS DE LAS TARJETAS IMPLEMENTADA
APÉNDICE C: DIAGRAMAS DE ESQUEMÁTICOS DE LAS TARJETAS 13
Figura C.1 Diagrama Esquemático de la Tarjeta Conversor DC/DC Boost
APÉNDICE C: DIAGRAMAS DE ESQUEMÁTICOS DE LAS TARJETAS 13
Figura C.2 Diagrama Esquemático de la Tarjeta Conversor DC/DC Buck - Boost
APÉNDICE C: DIAGRAMAS DE ESQUEMÁTICOS DE LAS TARJETAS 13
Figura C.3 Diagrama Esquemático de la Tarjeta de Programación de Microcontroladores PIC.
APÉNDICE C: DIAGRAMAS DE ESQUEMÁTICOS DE LAS TARJETAS 13
Figura C.4 Diagrama Esquemático de la Tarjeta LCD.
APÉNDICE D
HOJAS DE DATOS INTEGRADOS
APÉNDICE D: HOJAS DE DATOS 13
APÉNDICE D: HOJAS DE DATOS 13
APÉNDICE D: HOJAS DE DATOS 13
APÉNDICE D: HOJAS DE DATOS 13
APÉNDICE D: HOJAS DE DATOS 13
APÉNDICE D: HOJAS DE DATOS 1
APÉNDICE D: HOJAS DE DATOS 14
APÉNDICE D: HOJAS DE DATOS 14
APÉNDICE D: HOJAS DE DATOS 14
APÉNDICE D: HOJAS DE DATOS 14
APÉNDICE D: HOJAS DE DATOS 14
APÉNDICE D: HOJAS DE DATOS 14
APÉNDICE D: HOJAS DE DATOS 14
APÉNDICE D: HOJAS DE DATOS 14
APÉNDICE D: HOJAS DE DATOS 14
APÉNDICE D: HOJAS DE DATOS 1
APÉNDICE D: HOJAS DE DATOS 1
Universidad de Magallanes Facultad de IngenieríaIngeniería de Ejec. en Electricidad
“EVALUACIÓN DE CONVERSORES DC / DC Y SIST. DE CONTROL PARA APLICACIONES
FOTOVOLTAICAS”
Hugo Miguel Villegas Barría2006
Contenidos
QIntroducciónQ Celdas SolaresQ Sistema ExperimentalQ Algoritmos de ControlQ Resultados ExperimentalesQ Conclusiones
Introducció■ Ante la necesidad de contar con nuevas fuentes de energía se
ha efectuado una fuerte actividad de investigación en el área de energía solar.
■ Ventajas:□ Energía no contaminante.□ Costos a largo plazo bajos.□ Libre o escaso de mantenimiento.
■ Desventajas:□ Dependencia de los factores climáticos.□ Alta inversión inicial.
■ Aparecen los denominados sistemas híbridos, tal como solar – diesel o eólico – solar – diesel.
Introducció■ En el presente trabajo se presentan estrategias de
control, para ser aplicados a sistemas fotovoltaicos que suministran energía a una carga aislada.
■ El sistema experimental esta compuesto de un panel solar que se conectará a la carga (banco de batería) por medio de un conversor DC/DC Boost y luego un Buck – Boost. Siendo ambos sistemas discutidos en este trabajo.
Celdas Solares
Celdas■ Una celda solar es un dispositivo capaz de convertir
la energía proveniente de la radiación solar en energía eléctrica.
■ El efecto fotovoltaico mencionado en el párrafo anterior, solo es posible en una parte del espectro luminoso. Dicho segmento lo componen básicamente las longitudes de onda más pequeñas, las cuales están comprendidas entre la luz ultravioleta y en el espectro visible al color violeta.
CeldasMPP: Punto de Máxima Potencia MPP
Figura 1. Característica I – V de un panel solar
Celdas
Figura 2. Efectos de la temperatura y la radiación en un panel solar
Celdas
(a) (b)
Figura 3. Interacción de un panel fotovoltaico con carga (a) resistiva y(b) galvánica de 12 V.
Sistema Experimental
Sistema
Figura 4. Sistema fotovoltaico propuesto
Sistema
Figura 5. Sistema fotovoltaico implementado con conversor DC/DC Boost.
Sistema
Seguimiento del Punto de Máxima Potencia MPPT
■ El conversor DC/DC es empleado como adaptador de impedancia.
■ Esta propiedad intrínseca del conversor DC/DC se utiliza para ajustar la tensión del panel solar, al valor en el cual se entrega la máxima potencia a la carga.
■ Este proceso se denomina:
Algoritmos de Control
Algoritmos de Control
■ Los algoritmos utilizados en estaTesis para realizar MPPT, son los siguientes:
□ Perturbación y Observación (P&O)□ Conductancia Incremental (Cond. Inc.)□ Controlador basado en lógica difusa (Fuzzy Logic)
Algoritmos de Control
(V(k),P(k))B(V(k+1),P(k+1))
C
(V(k-1),P(k-1))
A
(P&O)110
100
90
80
70
60
50
40
30
20
10
00 2 4 6 8 10 12 14 16 18 20 22
Tensión (V)
Figura 6. Curva P – V bajo seguimiento del MPP con algoritmo P&O
Pot
enci
a (W
)
P+I Circuito de disparo Conversor DC/DC Panel SolarVp* Vref
+-
Algoritmos de Control
Vp
Figura 7. Lazo de control para la tensión del panel solar
■ En la figura 7 se muestra el controlador PI, el cual es el encargado de controlar la tensión del panel solar, mediante el aumento o disminución (según sea el caso) del ciclo de trabajo de la señal PWM aplicada al conversor DC/DC.
Sensar V(k), I(k)
Calcular potencia P(k)= V(k) x I(k)
Vref = Vref - C Vref = Vref + C Vref = Vref - C Vref = Vref + C
NO P(k) > P(k-1) SI
V(k) > V(k-1) V(k) > V(k-1)
SI NO NO SI
Retornar
Algoritmos de Control (P&O)
Figura 8. Diagrama de flujo del método de MPPT P&O
dP/dV = 0
dP/dV > 0 dP/dV < 0
dVdP d (V I ) I V dI
dV dV 0
dI dV IV
Algoritmos de Control (Cond. Inc.)
120
100
80
60
40
20
00 5 10 15 20 25
Tensión (V)
Figura 9. Curva P – V bajo seguimiento del MPP con algoritmo Cond. Inc.
Pot
enci
a (W
Sensar V(k), I(k)
dV = V(k) - V(k-1)dI = I(k) - I(k-1)
Vref = Vref + C Vref = Vref - C Vref = Vref - C Vref = Vref + C
NO dV = 0 SI
dI / dV = - I / V dI = 0
NO NO
SI SI
dI / dV > - I / V dI > 0
SINO NO SI
Algoritmos de Control (Cond. Inc.)
Figura 10. Diagrama de flujo del método de MPPT Cond. Inc.
Retornar
ce CEdD
E(k ) dP P(k ) P(k 1)dV V (k ) V (k 1)
CE (k ) E (k ) E (k 1)
Algoritmos de Control (Fuzzy Logic)
e SE
E
SCESdD
Figura 11. Configuración del controlador difuso
FUZZIFICACIÓN TOMA DE DECISIÓN DESFUZZIFICACIÓN
dd
NB NM NS ZO PS PM PB
(a)
NB NM NS ZO PS PM PB
(b)
Algoritmos de Control (Fuzzy Logic)
NB NM NS ZO PS PM PB
(c)
u(E)
1
Grado De
Pertenencia
0
u(CE) -6 -4 -2 0 2 4 6
1
Grado De
Pertenencia
0
u(dD) -6 -4 -2 0 2 4 6
1
Grado De
Pertenencia
0-6 -4 -2 0 2 4 6
Figura 12. Funciones de membresía para (a) entrada E, (b) entrada CE y (c) salida dD (variación del ciclo de trabajo).
Algoritmos de Control (Fuzzy
Figura 13. Base de conocimiento y formas de regla del controlador difuso
CEE
NB NM NS ZO PS PM PB
NB NB NB NB NB NM NS ZO
NM NB NB NB NM NS ZO PS
NS NB NB NM NS ZO PS PM
ZO NB NM NS ZO PS PM PB
PS NM NS ZO PS PM PB PB
PM NS ZO PS PM PB PB PB
PB ZO PS PM PB PB PB PB
Si (E es N B ) y (C E es N S ) entonces (d D es
NB) Si (E es ZO ) y (C E es ZO ) entonces (d D
es ZO ) Si (E es ZO ) y (C E es PB ) entonces (d
D es P B )
dD u dD j dD jj 1n
n
u dD j j 1
Algoritmos de Control (Fuzzy ■ La salida del controlador difuso es un subconjunto difuso
de control. Un sistema para operar requiere usualmente un valor de control no difuso (concreto), es por ello que se hace necesaria una desfuzzificación.
■ El método del centro de gravedad es el más utilizado para casos discretos y esta dado por la siguiente ecuación.
Resultados Experimentales
Resultados ■ En este capítulo se presentan los resultados experimentales con
la finalidad de estudiar y observar el comportamiento de los algoritmos de control propuestos, e implementados tanto en el conversor DC/DC Boost como para el Buck – Boost. Los resultados que se presentan corresponden al comportamiento del sistema para las siguientes condiciones:
□ Generación de curvas I – V y P – V para diversas condiciones climáticas.
□ MPPT con Radiación Solar Incidente (RSI) constante□ MPPT con variación en la RSI
Resultados ■ Las principales variables a monitorear son: tensión,
corriente, temperatura de operación del panel solar y ciclo de trabajo del conversor DC/DC.
■ Las características principales del panel solar utilizado son:
TENSIÓN DE CIRCUITO ABIERTO (Voc) 21.6 V
CORRIENTE DE CORTO CIRCUITO ( Isc) 6.54 A
TENSIÓN DE MÁXIMA POTENCIA (Vp) 17.4 V
CORRIENTE DE MÁXIMA POTENCIA ( Ip) 6.1 A
POTENCIA MÁXIMA 106 W
Resultados ■ El panel se ha orientado en dirección norte y con un ángulo de
inclinación de 60º con respecto a la horizontal.
■ La carga del sistema lo compone un banco de batería, el cual es de 12V o 24V, según se este operando en la modalidad reductora (Buck) o elevadora de tensión (Boost), respectivamente.
RESULTADOS GENERACIÓN DE CURVAS I – V Y P –V .
■ La figura 14 entrega una comparación de curvas I – V y P – V, obtenidas ambas a una temperatura de 32ºC y con diferentes niveles de radiación solar incidente (810 W/m2 y 948 W/m2).
Resultados
Figura 14. a) Curvas I – V, b) Curvas P – V.
Tensión Panel Solar
80
76 W @ 948 W
Tensión Panel Solar
4 (3 810 W /
2
1
0 5 1 1 2 2
60
566 W @ 810 W (
30
20
10 5 1 1 2 2
Pot
enci
a P
anel
Sol
ar (W
Cor
rient
e P
anel
Sol
ar (A
7
6
5
948 W /
Resultados Experimentales
■ De la figura 14, se confirma que la curva P – V con mayor potencia foto generada, es aquella en la cual se ha incidido mayor nivel de radiación solar (948 W/m2), alcanzando un valor de 76 W.
■ La figura 15 ilustra la comparación de curvas I – V y P – V, para un mismo nivel de radiación solar incidente (948 W/m2), y cambia la temperatura de 31º C € 41º C.
Resultados Experimentales
Figura 15. a) Curvas I – V, b) Curvas P – V.
7
6
5
31 (
Tensión Panel Solar 3
412
1
0 5 1 1 2 2
80
7 76 W @
5 72 W @ 40
(b)30
20
10
Pot
enci
a P
anel
Sol
ar (W
Cor
rient
e P
anel
Sol
ar (A
Resultados Experimentales■ La figura 15 ratifica el hecho de que el aumento en la
temperatura del panel solar, va en directo desmedro de la potencia generada, disminuyendo de 76W a 72W.
RESULTADOS DE MPPT CON RSI CONSTANTE
■ La figura 16 entrega la respuesta del seguimiento del punto de máxima potencia (MPPT) para un sistema basado en un panel solar y utilizando como algoritmo de control el método conductancia incremental. Las condiciones para la prueba son las siguientes: utilización conversor DC/DC Boost, temperatura del panel solar de 29ºC y una RSI de 658 W/m2.
0 5 10 15 20 25Tensión Panel Solar
Resultados Experimentales
Figura 16. a) Curva P-V con MPPT Cond. Inc.b) Tensión del panel y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Boost con MPPT
15
V
54
10
Vpa
1 (
14.25
0 1 2 3 4 5Tiempo
6 7 8 9 153
52.5
Eficiencia del Ciclo de
3 4 5Tiempo
6 7 8 9
80
70
60
(
0 1 2
Tens
ión
(VC
iclo
de
Trab
ajo
(%P
oten
cia
Pan
el S
olar
(W
Efic
ienc
ia C
onve
rsor
(%
60
50
40
30
MP(
Resultados ■ De la figura 16 se puede apreciar que se logra situar la potencia
generada por el panel solar en el punto más óptimo de la curva P–V (55 W), la cual a su vez se alcanza con una tensión de
14.4 V. Por otro lado, el ciclo de trabajo fluctúa entre los
51.86 % y 52.15 %. En lo que respecta a eficiencia esta oscila en torno a los 87%, teniendo un peak de 92%.
■ La figura 17 ilustra el comportamiento del controlador basado en lógica difusa. Las condiciones utilizadas para la prueba son: utilización del conversor DC/DC Boost, temperatura del panel solar de 38ºC y una RSI de 910 W/m2.
Resultados
500 -
Cam
bio
de E
rror
Figura 17. a) Curva P-V con MPPT Difuso.b) Entradas del controlador difuso
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Boost con MPPT
Tensión Panel Solar
20 4
1500 Cambio de Error
10 0Error
0 -
-0 1 2 3 4 5 6 7 8 9
-
80
20
2 4 6 8 1 1 1 1 1 2
7 0.
Eficiencia del Ciclo de (6 0.8
50 1 2 3 4 5 6 7 8 9
0.
Erro
Cic
lo d
e Tr
abaj
o (%
Pot
enci
a P
anel
Sol
a
Efic
ienc
ia C
onve
rsor
(%
80
60
MP (
Resultados ■ De la figura 17 se aprecia que se hace trabajar al panel solar en
el punto más óptimo (70 W a 14 V). Por otro lado, las entradas del controlador (E y CE) se encuentran en torno a cero. Mientras que el ciclo de trabajo fluctúa entre los 50 % y 60%. Por otro lado, el conversor DC/DC Boost se encuentra operando con una eficiencia de 86%.
RESULTADOS DE MPPT CON VARIACIÓN EN LA RSI■ La figura 18 ilustra el comportamiento algoritmo de control
P&O. Las condiciones utilizadas para la prueba son: utilización del conversor DC/DC Buck – Boost operando como reductor de tensión, cubrimiento del panel solar durante un pequeño lapso de tiempo, temperatura del panel solar de 30ºC y una RSI antes de producirse la perturbación de 683 W/m2.
Resultados 80
60
40 MPPT (a)20
00 5 10 15 20 25
Tensión Panel Solar (V)
20
17.5Vpanel
15 (b)
12.5
101
Vref
4 6
55
50
45(c)
40
35
301 4 6
Figura 18. a) Curva P-V con MPPT P&O y variación en la RSI.b) Tensión del panel solar y tensión de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Buck - Boost con MPPT
Tens
ión
(VC
iclo
de
Trab
ajo
(%P
oten
cia
Pan
el S
olar
(W
0 2 3Tiempo (Seg)
5
0 2 3Tiempo (Seg)
5
Resultados ■ De la figura 18 se aprecia que la potencia cae de 60 W €
10 W durante la perturbación, por lo cual el sistema de control actúa disminuyendo el ciclo de trabajo de 54% € 33%. Dicha disminución causa un aumento en la tensión del panel solar de11V € 20 V. Por lo cual, el controlador procede ahora aumentado el ciclo de trabajo para retornar la tensión del panelsolar a la tensión de referencia.
■ La figura 19 ilustra el comportamiento del controlador basado en lógica difusa. Las condiciones utilizadas para la prueba son: utilización del conversor DC/DC Boost, cubrimiento del panel solar durante un pequeño lapso de tiempo, temperatura del panel solar de 26º C y una RSI antes de producirse la
Resultados perturbación de 927 W/m2.
Resultados
Cam
bio
de E
rro
Figura 19. a) Curva P – V con MPPT Difuso y variación en la RSI.b) Entradas del controlador difuso.
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Boost con MPPT
Tensión Panel Solar
3 5
2 0
1 Cambio de Er -500
0 -
-0 1 2 3 4 5
-
60
50 (
20
0 5 1 1 2 2
30
0 1 2 3 4 5 6
Err
oC
iclo
de
Tra
bajo
(%
Pot
enci
a P
anel
Sol
a
80
60
MP (
Conclusiones
Conclusione■ Los resultados experimentales presentados se obtuvieron para
diferentes condiciones, tales como: nivel de radiación solar incidente constante, aplicación de sombra parcial al panel solar y efectos de la temperatura en un panel solar. En todas ellas, los resultados obtenidos muestran un buen desempeño en el funcionamiento. En particular, para la generación de curvas I –V y P – V, se muestra la buena eficacia de los conversores DC/DC, al momento de utilizarse como adaptadores de impedancia.
■ Por otra parte, la respuesta del controlador de tensión utilizado en los algoritmos P&O y Conductancia Incremental es aceptable (menos de un 5% de la tensión de referencia para la mayoría de los casos).
Conclusione■ Para el caso del controlador difuso, aun cuando es más
oscilatorio que los algoritmos recién mencionados, logra mantener el error en torno a cero. La robustez del sistema también se hizo cierta al momento de aplicársele una sombra parcial al panel solar
■ Se observó los beneficios de utilizar un microcontrolador de bajo costo para aplicaciones en la cual el tiempo de muestreo no es crítico (procesos lentos).
■ Algunas aplicaciones:□ Sistemas aislados□ Sistemas híbridos (Solar – Diesel o Eólico – Solar - Diesel)□ Sistemas conectados a la red eléctrica
¿ Preguntas ?
Universidad de Magallanes Facultad de IngenieríaIngeniería de Ejec. en Electricidad
“EVALUACIÓN DE CONVERSORES DC / DC Y SIST. DE CONTROL PARA APLICACIONES
FOTOVOLTAICAS”
Hugo Miguel Villegas Barría2006