Download Diseño de un sistema seguidor del punto de

Document related concepts

Celda Solar Graetzel wikipedia , lookup

Batería de litio wikipedia , lookup

Circuitos de ayuda a la conmutación de transistores wikipedia , lookup

Célula solar de película fina wikipedia , lookup

Potenciostato wikipedia , lookup

Transcript
UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS PROFESIONALES
COORDINACIÓN DE INGENIERÍA ELECTRÓNICA
DISEÑO DE UN SISTEMA SEGUIDOR DEL PUNTO DE MÁXIMA POTENCIA
BASADO EN LA SOLUCIÓN ANALÍTICA DEL MODELO CIRCUITAL DE UNA
CELDA SOLAR
Por:
Antonio Alves Alves
Vincenzo Orlando Carrillo
Sartenejas, Junio de 2010
UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS PROFESIONALES
COORDINACIÓN DE INGENIERÍA ELECTRÓNICA
DISEÑO DE UN SISTEMA SEGUIDOR DEL PUNTO DE MÁXIMA POTENCIA
BASADO EN LA SOLUCIÓN ANALÍTICA DEL MODELO CIRCUITAL DE UNA
CELDA SOLAR
Por:
Antonio Alves Alves
Vincenzo Orlando Carrillo
Realizado con la asesoría de:
María Isabel Giménez de Guzmán
PROYECTO DE GRADO
Presentado ante la Ilustre Universidad Simón Bolívar
como requisito parcial para optar al título de
Ingeniero Electrónico
Sartenejas, Junio de 2010
UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS PROFESIONALES
COORDINACIÓN DE INGENIERÍA ELECTRÓNICA
ACTA DE EVALUACIÓN DEL PROYECTO DE GRADO
CÓDIGO DE LA ASIGNATURA: EP5406
FECHA: ___/___/______
ESTUDIANTE: Antonio Alves Alves
CARNET: 01-33536
ESTUDIANTE: Vincenzo Orlando Carrillo
CARNET: 01-34221
TÍTULO DEL TRABAJO: Diseño de un sistema seguidor del punto de máxima potencia basado
en la solución analítica del modelo circuital de una Celda Solar.
TUTOR: Prof. María Isabel Giménez de Guzmán
JURADO: Profs.
APROBADO:
REPROBADO:
OBSERVACIONES:
El Jurado considera por unanimidad que el trabajo es EXCEPCIONALMENTE BUENO:
SI:
NO:
En caso positivo, justificar razonadamente:
Jurado
Jurado
Tutor Académico
Nota: Colocar los sellos de los respectivos Departamentos. Para jurados externos, usar sello de la
Coordinación
UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS PROFESIONALES
COORDINACIÓN DE INGENIERÍA ELECTRÓNICA
DISEÑO DE UN SISTEMA SEGUIDOR DEL PUNTO DE MÁXIMA POTENCIA
BASADO EN LA SOLUCIÓN ANALÍTICA DEL MODELO CIRCUITAL DE UNA
CELDA SOLAR
PROYECTO DE GRADO PRESENTADO POR
Antonio Alves Alves, carnet 01-33536
Vincenzo Orlando Carrillo, carnet 01-34221
Realizado con la asesoría de la profesora María Isabel Giménez de Guzmán
RESUMEN
Este trabajo describe el proceso de diseño y construcción de un prototipo capaz de
seguir el punto de potencia máxima de un arreglo de celdas solares mediante el cálculo
analítico del voltaje de potencia máxima del arreglo. Se diseñó un método para el cálculo
aproximado de los parámetros de un arreglo de celdas solares y un programa capaz de
caracterizar arreglos de celdas solares con muy poco error. Se implementó el programa en un
prototipo de bajo costo para facilitar su aplicación masiva en áreas no servidas por el sistema
de electricidad tradicional y para poderlo utilizar en un prototipo de carro solar (USB Solar),
obteniéndose resultados satisfactorios.
PALABRAS CLAVES
Celda solar, función de Lambert-W, potencia, punto de potencia máxima, MPPT.
iv
Dedicatorias
A mis padres,
por apoyarme y confiar siempre en mí, a pesar de todo,
A Rafael Antonio,
por enseñarme que las cosas que valen la pena solo se pueden lograr si lo intentas,
y que a pesar de todo, la vida siempre continúa a menos que desistas.
Antonio
A Lexa,
gracias a ti llegué a este punto en mi vida.
A Maribel y Víctor,
por su constante ayuda y apoyo.
A Gerardo,
por ayudarme a encontrar mi norte.
Vincenzo
v
Agradecimientos
A los profesores Adelmo Ortiz y Francisco García, por explicarnos los conocimientos
necesarios para idear este proyecto.
A Carlos Osorio, por ayudarnos a construir el prototipo y estar siempre atento a
nuestro trabajo.
Al profesor Guillermo Villegas, por su constante disposición a ayudarnos, poniendo a
nuestra disposición todas las herramientas que necesitamos durante el desarrollo del proyecto.
A Khalek (Juan C. Serrallonga), por creer en el proyecto y ayudarnos a resolver el
problema del shunt.
A los integrantes de USB Solar, por mostrar interés en nuestro trabajo y poner a
nuestra disposición las instalaciones de la agrupación.
A los profesores María Isabel Giménez y Víctor Manuel Guzmán, por ayudarnos a
hacer una realidad este trabajo.
A Neisa, por asesorarnos y ayudarnos con las tareas administrativas relacionadas con
este proyecto.
A Texas Instruments Latin America, por enviarnos de manera gratuita los
componentes necesarios para la construcción del prototipo.
vi
Índice General
Índice General........................................................................................................................... vii
Índice de Figuras ....................................................................................................................... ix
Índice de tablas .......................................................................................................................... xi
Lista de símbolos ...................................................................................................................... xii
Introducción ................................................................................................................................ 1
Capítulo 1 : Dispositivos Fotovoltaicos...................................................................................... 4
1.1 La Celda Solar. ................................................................................................................. 4
1.2 El Efecto Fotoeléctrico ..................................................................................................... 4
1.3 Modelo equivalente de la Celda Solar. ............................................................................. 5
1.4 Soluciones analíticas para el modelo equivalente de la Celda Solar aplicando la
función de Lambert-W. ........................................................................................................... 7
1.5 Paneles Solares ................................................................................................................. 8
1.5.1 Celdas en serie y paralelo .......................................................................................... 9
1.5.2 Diodos de paso y bloqueo........................................................................................ 11
1.5.3 Efectos de las resistencias parásitas ........................................................................ 13
Capítulo 2 : Herramientas Computacionales ............................................................................ 16
2.1 Maple de Maplesoft ........................................................................................................ 16
2.2 Multisim de National Instruments .................................................................................. 17
2.3 Microsoft Visual C++ 2008 ............................................................................................ 18
2.4 Code Composer Studio de Texas Instruments ................................................................ 20
Capítulo 3 : Métodos para la caracterización de arreglos de celdas solares ............................. 21
3.1 Parámetros necesarios ..................................................................................................... 21
3.2 Métodos experimentales para el cálculo aproximando de las resistencias parásitas
equivalentes de un panel solar .............................................................................................. 24
3.3 Cálculo de la corriente de saturación inversa a partir de los valores aproximados de
las resistencias parásitas ........................................................................................................ 31
3.4 Método analítico para el cálculo del voltaje de potencia máxima .................................. 31
Capítulo 4 : Diseño del programa de caracterización de celdas solares ................................... 35
vii
4.1 Diseño del diagrama de flujo general ............................................................................. 35
4.2 Diseño del programa LAMP en Visual C++ .................................................................. 36
4.3 Implementación del programa LAMP en los microcontroladores 68HC08 y 68HC12
de Freescale ........................................................................................................................... 42
4.4 Implementación del programa LAMP en el microcontrolador MSP430 de Texas
Instruments............................................................................................................................ 43
Capítulo 5 : Caracterización de módulos de celdas solares ...................................................... 45
5.1 Módulos de prueba.......................................................................................................... 45
5.2 Cargas resistivas ............................................................................................................. 48
5.3 Método para caracterizar los módulos ............................................................................ 50
Capítulo 6 : Análisis comparativo de los resultados usando el programa LAMP .................... 53
6.1 Pruebas con celdas de silicio monocristalino en ambiente controlado ........................... 53
6.2 Pruebas con celdas de silicio monocristalino al aire libre al mediodía........................... 56
6.3 Pruebas con celdas de silicio monocristalino al aire libre a las 3:00 pm ........................ 57
6.4 Pruebas con celdas de silicio policristalino al aire libre al mediodía ............................. 59
6.5 Análisis detallado del error en las curvas ....................................................................... 60
Capítulo 7 : Diseño y pruebas del circuito de aplicación. ........................................................ 62
7.1 Circuito de potencia ........................................................................................................ 62
7.2 Sensores .......................................................................................................................... 64
7.3 Circuito de aislamiento ................................................................................................... 66
7.4 Resultados experimentales con el prototipo ................................................................... 68
Capítulo 8 : Conclusiones y recomendaciones ......................................................................... 70
8.1 Conclusiones ................................................................................................................... 70
8.2 Recomendaciones ........................................................................................................... 71
Referencias ............................................................................................................................... 72
Apéndice A: Simulación en Maple para el módulo BP Solar .................................................. 74
Apéndice B: Código en Visual C++ para la simulación del programa LAMP ........................ 78
Apéndice C: Código en Code Composer Studio para programar LAMP en el
microcontrolador ...................................................................................................................... 86
viii
Índice de Figuras
Figura 1.1: Celda Solar de silicio monocristalino ...................................................................... 4
Figura 1.2: Efecto fotoeléctrico en una celda solar .................................................................... 5
Figura 1.3: Circuito equivalente de una celda solar ................................................................... 5
Figura 1.4: Curva I-V de una celda solar comercial de Si monocristalino ................................. 6
Figura 1.5: Panel solar comercial ............................................................................................... 8
Figura 1.6: Arreglo fotovoltaico ................................................................................................. 9
Figura 1.7: Conexión de celdas solares en serie ....................................................................... 10
Figura 1.8: Conexión de celdas solares en paralelo.................................................................. 10
Figura 1.9: Diodos de paso ....................................................................................................... 12
Figura 1.10: Diodos en un arreglo de celdas solares ................................................................ 13
Figura 1.11: Curva I-V para varios valores de Rs..................................................................... 14
Figura 1.12: Curva I-V para varios valores de Gp .................................................................... 15
Figura 2.1: Ambiente gráfico de Maple 12............................................................................... 16
Figura 2.2: Multisim: Hoja de trabajo ...................................................................................... 17
Figura 2.3: Multisim: Análisis transitorio ................................................................................ 18
Figura 2.4: Visual C++: Entorno de Desarrollo Integrado ....................................................... 19
Figura 2.5: Ambiente grafico de Code Composer Studio V4.1.2............................................. 19
Figura 3.1: Efecto del factor de idealidad en un arreglo de celdas solares ............................... 22
Figura 3.2: Efecto de la temperatura en una celda solar ........................................................... 23
Figura 3.3: Efectos de la corriente fotogenerada en la curva I-V ............................................. 24
Figura 3.4: Curva experimental vs. Método de Dhifaoui ......................................................... 25
Figura 3.5: Curva experimental vs. Método de Carrol ............................................................. 27
Figura 3.6: Pendientes usadas en el cálculo de las resistencias parásitas ................................. 28
Figura 3.7: Simulación de celdas solares en Multisim ............................................................. 29
Figura 3.8: Cálculo de la pendiente con el analizador I-V de Multisim................................... 30
Figura 3.9: Curva experimental vs. Método de Chegaar .......................................................... 30
Figura 3.10: Curva I-V de una celda solar genérica simulada en Maple.................................. 32
Figura 3.11: Curva de potencia de una celda solar genérica simulada en Maple. .................... 33
Figura 3.12: Curva de potencia y dP/dV de una celda solar genérica simulada en Maple....... 33
Figura 4.1: Diagrama de flujo general del programa LAMP ................................................... 36
Figura 4.2: Diagrama de flujo para la adquisición de datos iniciales ....................................... 37
Figura 4.3: Diagrama de flujo para el cálculo de Rs (Parte A) ................................................. 38
ix
Figura 4.4: Diagrama de flujo para el cálculo de Rs (Parte B) ................................................. 39
Figura 4.5: Diagrama de flujo para el cálculo de Gp ................................................................ 40
Figura 4.6: Diagrama de flujo para el cálculo del voltaje de potencia máxima (Parte A) ....... 41
Figura 4.7: Diagrama de flujo para el cálculo del voltaje de potencia máxima (Parte B) ........ 42
Figura 4.8: Plataforma de desarrollo MSP-EXP430F5438 ...................................................... 44
Figura 5.1: Arreglo de doce celdas JAM-125 en serie ............................................................. 45
Figura 5.2: Módulo BP Solar BP4170 ...................................................................................... 46
Figura 5.3: Módulo AEE Solar ET-P636110 ........................................................................... 47
Figura 5.4: Reóstato de 10W usado en los experimentos controlados en el laboratorio .......... 49
Figura 5.5: Reóstato de 100
usado en los experimentos al aire libre .................................... 49
Figura 5.6: Circuito para caracterizar los módulos de celdas solares ....................................... 51
Figura 5.7: Curva I-V experimental del módulo BP Solar ....................................................... 52
Figura 5.8: Comparación de la curva I-V experimental con la calculada con Maple .............. 52
Figura 6.1: Curvas I-V 12 celdas JAM en serie (semana 1) ..................................................... 54
Figura 6.2: Curvas I-V 12 celdas JAM en serie (semana 2) ..................................................... 54
Figura 6.3: Curvas de potencia 12 celdas JAM en serie (semana 1) ........................................ 55
Figura 6.4: Curvas de potencia 12 celdas JAM en serie (semana 2) ........................................ 55
Figura 6.5: Curvas I-V módulo BP Solar (12:00 pm) .............................................................. 56
Figura 6.6: Curvas de potencia módulo BP Solar (12:00 pm).................................................. 57
Figura 6.7: Curvas I-V módulo BP Solar (3:00 pm) ................................................................ 58
Figura 6.8: Curvas de potencia módulo BP Solar (3:00 pm).................................................... 58
Figura 6.9: Curvas I-V módulo AEE Solar .............................................................................. 59
Figura 6.10: Curvas de potencia módulo AEE Solar ............................................................... 60
Figura 6.11: Error porcentual en la curva I-V (Módulo JAM-12, semana 1)........................... 61
Figura 6.12: Error porcentual en la curva I-V (Módulo AEE Solar)........................................ 61
Figura 7.1: Diagrama de bloques del sistema ........................................................................... 62
Figura 7.2: Convertidor Boost .................................................................................................. 63
Figura 7.3: Convertidor Boost usado en los experimentos ....................................................... 65
Figura 7.4: Convertidor Boost alimentado con un arreglo de celdas solares ........................... 65
Figura 7.5: Sensores de voltaje ................................................................................................. 66
Figura 7.6: Esquemático del circuito de aislamiento para señales digitales ............................. 67
Figura 7.7: Esquemático del circuito de aislamiento para señales analógicas ......................... 67
Figura 7.8: Sensores de voltaje y circuito de acondicionamiento. ........................................... 68
x
Índice de tablas
Tabla 3.1: Resultados usando el método propuesto por Dhifaoui ............................................ 25
Tabla 3.2: Resultados usando el método propuesto por Carrol ................................................ 26
Tabla 3.3: Resultados usando el método propuesto por Chegaar ............................................. 29
Tabla 5.1: Especificaciones de las celdas solares JAM-125 .................................................... 45
Tabla 5.2: Especificaciones del módulo BP4170 ..................................................................... 46
Tabla 5.3: Especificaciones del módulo ET-P636110.............................................................. 47
Tabla 5.4: Especificaciones del reóstato de 10
usado en los experimentos .......................... 50
Tabla 5.5: Especificaciones del reóstato de 100
usado en los experimentos ........................ 50
Tabla 5.6: Valores experimentales obtenidos usando el reóstato de 100 .............................. 51
Tabla 6.1: Resultados para 12 Celdas JAM en serie (semana 1) .............................................. 54
Tabla 6.2: Resultados para 12 Celdas JAM en serie (semana 2) .............................................. 54
Tabla 6.3: Resultados para el módulo BP Solar (12:00 pm) .................................................... 56
Tabla 6.4: Resultados para el módulo BP Solar (3:00 pm) ...................................................... 57
Tabla 6.5: Resultados para el módulo AEE Solar .................................................................... 59
Tabla 7.1: Especificaciones del ISO124 ................................................................................... 66
Tabla 7.2: Especificaciones del ISO7220 ................................................................................. 67
Tabla 7.3: Resultados para el módulo AEE Solar (mediodía) .................................................. 69
Tabla 7.4: Resultados para el módulo AEE Solar (3:00 pm) ................................................... 69
xi
Lista de símbolos
Iph
Corriente Fotogenerada
Rs
Resistencia parásita en serie de la celda solar
Gp
Conductancia parásita en paralelo de la celda solar
Vth
Voltaje térmico de la juntura de la celda solar
v
Voltaje en los terminales de la celda solar
i
Corriente que circula a través de los terminales de la celda solar
n
Factor de idealidad del diodo
k
Constante de Boltzmann
q
Carga del electrón
T
Temperatura del dispositivo en Kelvin
xii
Introducción
Durante la última década se han realizado numerosos estudios para determinar el
efecto de los combustibles fósiles sobre la naturaleza. El uso de este tipo de combustibles ha
causado efectos negativos sobre la misma, poniendo en peligro la vida de la flora y fauna a
nivel mundial. A esto también hay que sumarle el hecho de que las reservas de petróleo
mundiales están disminuyendo, y según algunas estimaciones, en el 2020 existirá un déficit
de 60 millones de barriles diarios.
Esto ha llevado a una búsqueda intensiva de fuentes de energía alternativas a los
combustibles fósiles, donde una de las más conocidas es la energía solar. Durante millones de
años las plantas han utilizado el sol como fuente de energía y poco a poco el hombre ha
logrado aprovechar parte de la energía entregada por el sol para producir energía térmica y
energía eléctrica.
Las fuentes de energía solar no solo constituyen una alternativa al uso de combustibles
fósiles para la generación de importantes cantidades de energía eléctrica, sino que también
representan una buena solución para suministrar electricidad a aquellas localidades que están
lejos de las grandes redes de distribución. En Venezuela por una parte hay muchos pequeños
pueblos y caseríos que todavía no cuentan con un servicio estable de energía eléctrica, y por
otra parte se tiene un alto nivel de radiación solar debido a la situación geográfica del país
[12]. Esto hace que sea de interés general desarrollar nuevos y mejores sistemas basados en la
energía solar, que sean lo más eficientes y asequibles posible, para poder brindar un mejor
servicio a todos.
Otra aplicación importante para los sistemas de energía solar es su uso en vehículos,
entre ellos los utilizados en carreras como el World Solar Challenge, donde hay que
aprovechar al máximo la energía disponible parar que el carro tenga el mejor desempeño. La
Universidad Simón Bolívar participa en esta competencia con un vehículo desarrollado por el
1
grupo USB Solar y está tratando de optimizar su prototipo. Este trabajo puede constituir un
aporte a este objetivo.
En la actualidad existen múltiples estudios sobre cómo lograr mejorar la eficiencia de
los sistemas eléctricos de energía solar, ya que las celdas solares comerciales apenas logran
convertir entre el 14-16% de la energía solar en energía eléctrica. Existen celdas solares de
aplicaciones especiales, que logran eficiencias de 39-41%. Este valor de eficiencia es el que
los fabricantes obtienen para el punto de potencia máxima de las celdas solares, es decir, para
un valor específico de voltaje y corriente entregado por las mismas. Al aumentar o disminuir
la corriente que circula por la celda, la potencia entregada cae de manera exponencial. Para
evitar estas pérdidas se diseñan sistemas que controlan la corriente que circula por la misma,
de forma que la celda se encuentre entregando en todo momento el máximo de potencia
eléctrica que es capaz de generar a partir de la insolación que está recibiendo. La utilización
de estos sistemas tiene una importancia fundamental, ya que como se mencionó antes, la
eficiencia de conversión de energía solar a energía eléctrica es muy pobre y por ello es
imprescindible operar la celda solar (o el arreglo de celdas solares) en su punto de máxima
potencia.
El objetivo general de este trabajo es diseñar un método general para el seguimiento
del punto de máxima potencia de un arreglo de celdas solares de silicio monocristalino, cuya
efectividad sea igual o superior a la de los métodos ya existentes. Para lograr esto es
necesario cumplir con los siguientes objetivos específicos:
o Implementar la solución analítica del modelo equivalente de celda solar en un
microcontrolador comercial, con el propósito de obtener el punto de potencia
máxima del sistema.
o Diseñar un circuito de potencia que controle la corriente entregada por el
arreglo de celdas solares.
o Integrar el circuito de potencia y control con las soluciones entregadas por el
microcontrolador para mantener el sistema operando en el punto de potencia
máxima.
2
o Realizar experimentos para caracterizar paneles solares y usar estos resultados
para validar los cálculos del punto de potencia máxima realizados con el
microcontrolador.
En los siguientes capítulos se tiene una recopilación de todo el trabajo realizado para
completar el proyecto, el resumen de cada capítulo es el siguiente:
En el capítulo 1 se encuentran todas las bases teóricas necesarias para entender
los conceptos que se manejan este trabajo.
En el capítulo 2 se realiza una introducción a las herramientas computacionales
utilizadas en el desarrollo de este trabajo.
En el capítulo 3 se explican los métodos usados para el cálculo de los
parámetros y el punto de potencia máxima de un arreglo de celdas solares.
En el capítulo 4 se explica el proceso de diseño del programa para celdas
solares y su programación en computadores personales y microcontroladores
para realizar pruebas experimentales con el algoritmo.
En el capítulo 5 se explica el proceso para obtener las curvas experimentales de
los módulos de celdas solares disponibles en el laboratorio.
En el capítulo 6 se realiza un análisis de los resultados obtenidos, comparando
las gráficas experimentales con las gráficas obtenidas usando el programa para
caracterizar celdas solares.
En el capítulo 7 se explica el circuito de potencia y control utilizado en la
construcción de un prototipo capaz de obtener el punto de potencia máxima
para un arreglo comercial basado en un convertidor DC/DC con control de
ciclo de trabajo. También se incluyen los resultados obtenidos al realizar
pruebas experimentales con el prototipo.
En el capítulo 8 se presentan las conclusiones del proyecto y las
recomendaciones para mejorar el programa y el prototipo.
3
Capítulo 1: Dispositivos Fotovoltaicos
1.1 La Celda Solar.
La Celda Solar es un dispositivo capaz de convertir energía solar en energía eléctrica
vía el efecto fotoeléctrico o mediante la previa conversión de la energía solar a calor o energía
química. Se les denomina celdas o células ya que están diseñadas para trabajar
individualmente o para formar un arreglo entre ellas mismas y con esto cumplir con los
valores de corriente y/o voltaje deseados según la aplicación.
En este trabajo se usaron celdas solares de silicio monocristalino, siendo éstas las
celdas solares más usadas en aplicaciones terrestres, ya que tienen una eficiencia de
conversión de energía alta (15-20%) a un costo relativamente bajo (2-5US$/W). PowerSolar
Inc. ofrece más información al respecto [1]. Este tipo de celdas realizan la conversión de
energía solar a energía eléctrica mediante el efecto fotoeléctrico. En la figura 1.1 se puede
observar una celda solar comercial típica PowerSolar Inc. [1].
Figura 1.1: Celda Solar de silicio monocristalino
1.2 El Efecto Fotoeléctrico
El efecto fotoeléctrico consiste en la emisión de electrones por un material cuando
recibe radiación electromagnética. En las celdas de silicio ese efecto ocurre cuando un fotón
es absorbido por el semiconductor y su energía es transferida a un electrón de un átomo de la
celda, lo cual causa que el electrón se libere del núcleo y circule a través del semiconductor,
dejando en el espacio que ocupaba un hueco, que también se desplaza a través del
semiconductor. Esto, sumado a la diferencia de potencial creada por la juntura del dispositivo,
4
logra que los electrones circulen en una dirección y los huecos en la dirección opuesta,
creando una corriente eléctrica. La figura 1.2 explica de forma gráfica el efecto fotoeléctrico
en una celda solar. La potencia eléctrica generada por la celda solar se calcula multiplicando
el potencial eléctrico medido en sus terminales por la corriente que fluye a través del
dispositivo.
Figura 1.2: Efecto fotoeléctrico en una celda solar
1.3 Modelo equivalente de la Celda Solar.
Para obtener un modelo equivalente de la celda solar, es necesario primero conocer el
circuito equivalente de la misma. En el trabajo de Fernández et al. [2] se observa que la celda
solar se puede modelar con cuatro componentes: una fuente de corriente que representa la
corriente fotogenerada, un diodo que representa la juntura P-N, una resistencia en paralelo y
una resistencia en serie, que representan las pérdidas de potencia dentro de la celda solar. En
la figura 1.3 se puede observar el circuito equivalente de una celda solar.
Figura 1.3: Circuito equivalente de una celda solar
5
Conociendo el circuito equivalente de la celda solar se puede obtener la ecuación
matemática que lo modela.
(1.1)
En donde i y v son la corriente y el voltaje en los terminales de la celda en amperes
(A) y voltios (V) respectivamente, I0 es la corriente de saturación inversa del dispositivo en
amperes (A), Iph es la corriente fotogenerada por el dispositivo en amperes (A), n es el factor
de idealidad de la juntura, Vth es el voltaje térmico en voltios (V), Rs es la resistencia en serie
( ) y Gp es la conductancia de shunt (1/ ).
A partir de la ecuación matemática de la celda solar se puede obtener la curva
corriente-voltaje (I-V) y la curva de potencia que modelan el dispositivo. Utilizando estas
curvas se pueden obtener parámetros importantes, como el voltaje de circuito abierto (Voc), la
corriente de corto circuito (Isc), el voltaje de potencia máxima (Vmpp), la corriente de potencia
máxima (Impp) y la potencia máxima (Pmpp) que puede entregar la celda bajo esas condiciones
de iluminación y temperatura. La figura 1.4 muestra una curva I-V típica para una celda solar
de silicio monocristalino.
Figura 1.4: Curva I-V de una celda solar comercial de Si monocristalino
6
1.4 Soluciones analíticas para el modelo equivalente de la Celda Solar aplicando la
función de Lambert-W.
El modelo matemático de la celda solar permite graficar y analizar la curva I-V, pero
debido a que el modelo incluye respuestas exponenciales y lineales combinadas, no es posible
realizar un despeje del voltaje en función de la corriente, o de la corriente en función del
voltaje usando funciones matemáticas comunes. Esto hace muy difícil obtener soluciones
analíticas para los parámetros de la ecuación y por eso durante muchas décadas los cálculos se
han hecho utilizando aproximaciones por métodos numéricos. En el trabajo de Chapman et al.
se encuentra una compilación de algoritmos para el cálculo del punto de potencia máxima,
indicando sus respectivas ventajas y desventajas [3].
Es posible obtener soluciones analíticas para todos los parámetros del modelo usando
la función Lambert-W, también conocida como la función omega o log producto, que es la
función inversa de:
(1.2)
Donde e es la función exponencial natural y W es un número complejo cualquiera. La
función Lambert-W es derivable e integrable, lo que permite manipulaciones matemáticas
luego de aplicarla a ecuaciones. Para entender esta función existe un ejemplo muy sencillo:
(1.3)
El trabajo de Kapoor et al. [4] demuestra que al aplicar la función de Lambert-W a la
ecuación (1.1) es posible obtener la solución analítica de la corriente entregada por el
dispositivo:
(1.4)
7
De manera similar se puede obtener la solución analítica para el voltaje en los
terminales del dispositivo:
(1.5)
Con las ecuaciones (4) y (5) es posible obtener la curva de potencia del dispositivo con
respecto a la corriente y el voltaje respectivamente. Siguiendo el mismo procedimiento es
posible obtener soluciones analíticas para cualquiera de los parámetros que componen la
ecuación (1.1).
1.5 Paneles Solares
Un panel solar es una interconexión de celdas solares en serie y/o paralelo para
obtener voltajes y/o corrientes mayores a los que puede entregar una celda solar. Los paneles
solares comerciales típicos son de 24, 36, 48 ó 72 celdas en serie, ya que estos arreglos
entregan voltajes aproximados a 12V, 18V, 24V ó 36V en potencia máxima, que son valores
nominales de alimentación para la mayoría de los artefactos eléctricos comerciales. Andrés
Villa Loja profundiza sobre esto en una de sus monografías [5]. Para obtener valores de
voltaje y/o corriente mayores a los que entrega un panel solar se pueden conectar múltiples
paneles en serie y/o paralelo, creando lo que se denomina un arreglo de paneles solares o
arreglo fotovoltaico. Las figuras 1.5 y 1.6 muestran ejemplos de un panel solar y un arreglo de
paneles solares respectivamente.
Figura 1.5: Panel solar comercial
8
Figura 1.6: Arreglo fotovoltaico
1.5.1 Celdas en serie y paralelo
En la práctica puede ser necesario realizar una interconexión de celdas solares para
cumplir con los requerimientos energéticos de la aplicación. Las celdas solares pueden ser
conectadas en serie y/o paralelo para cumplir con estos requerimientos. Al conectar celdas
solares en serie, la corriente que fluye por el arreglo es igual a la corriente entregada por una
celda solar y el voltaje que se observa en los terminales es el siguiente:
(1.6)
Donde vt es el voltaje en los terminales del arreglo de celdas solares en serie, Nc es el
número de celdas solares en serie que componen al arreglo y v es el voltaje en los terminales
de una celda solar. En la figura 1.7 se puede observar un diagrama de conexión de celdas
solares en serie, donde se muestra cómo la placa metálica inferior de una celda solar se
conecta a la rejilla superior de la siguiente para formar la serie.
9
Figura 1.7: Conexión de celdas solares en serie
Al conectar celdas solares en paralelo, el voltaje en los terminales del arreglo es igual al
voltaje entregado por una celda solar y la corriente que fluye por el arreglo es la siguiente:
(1.7)
Donde it es la corriente que fluye por el arreglo de celdas solares en paralelo, Np es el número
de celdas solares en paralelo que componen al arreglo e i es la corriente entregada por una
celda solar. La figura 1.8 presenta un diagrama de conexión de celdas solares en paralelo,
donde se puede observar que la conexión entre las placas metálicas y las rejillas para formar
el paralelo.
Figura 1.8: Conexión de celdas solares en paralelo
10
Al despejar i y v en las ecuaciones (1.6) y (1.7) y reemplazar ambos resultados en la
ecuación (1.1) se obtiene un modelo matemático que incluye el efecto de las conexiones de
celdas solares en serie y paralelo:
(1.8)
Con la ecuación (1.8) es posible obtener soluciones analíticas para todos los
parámetros de un panel solar o arreglo fotovoltaico utilizando la función de Lambert-W, y a
partir de dichas soluciones, obtener las curvas que modelan el sistema.
1.5.2 Diodos de paso y bloqueo
Analizando el modelo matemático de la celda solar representada por la ecuación (1.1)
se observa que, si no existe corriente fotogenerada Iph, la celda solar se comporta como un
diodo de gran tamaño:
(1.9)
Este comportamiento trae un inconveniente en arreglos de celdas solares, ya que la
celda no iluminada o parcialmente iluminada consume la potencia entregada por las celdas
que se encuentran en condiciones de iluminación óptimas, disipando esta energía en calor.
Dependiendo del tamaño del arreglo, es posible que se derritan las soldaduras que las unen,
que se rompa el material de encapsulado de las celdas o que la misma celda solar sea
destruida por la energía disipada.
Para resolver parcialmente este problema se pueden colocar diodos en antiparalelo a
cada celda solar, denominados diodos de paso, ya que crean un camino alterno para la
corriente a la celda solar no iluminada (o parcialmente iluminada). Con el diodo de paso la
potencia disipada por la celda solar no iluminada y el diodo se reduce, ya que la potencia
11
disipada total Pdt es la caída de potencial en el diodo Vd por la corriente que pasa a través del
sistema it. La caída de potencial en el diodo es variable y depende del tipo de diodo usado,
pero típicamente se encuentra en el orden de 0.6-0.8V.
(1.10)
En la práctica es muy costoso y complicado colocar diodos de paso en cada una de las
celdas solares que componen el arreglo, por lo que los paneles solares comerciales incluyen
uno o dos diodos de paso que separan el panel de los otros paneles del arreglo. Si incluyen
más de un diodo de paso, se separan sectores del panel para aumentar la protección a las
celdas no iluminadas, asegurando que el arreglo de celdas solares entregue la mayor energía
posible a la carga. En la figura 1.9 se observa un diagrama con el efecto de los diodos de paso
en un arreglo de celdas solares.
Figura 1.9: Diodos de paso
Luego de agregar los diodos de paso según sea necesario en el arreglo de celdas,
todavía existe un problema: En condiciones de poca iluminación es posible que la potencia
entregada por las celdas sea menor a la potencia almacenada en el banco de baterías, causando
un flujo de corriente de las baterías hacia las celdas solares, disipando en éstas la energía de
las baterías. Para evitar esto es necesario agregar otro diodo denominado diodo de bloqueo,
que impide el paso de corriente del banco de baterías del sistema hacia las celdas solares. La
figura 1.10 muestra como se deben colocar los diodos de bloqueo y de paso en un arreglo de
celdas solares. PowerSolar inc. ofrece información más detallada sobre los diodos de bloqueo
y de paso [1].
12
Figura 1.10: Diodos en un arreglo de celdas solares
1.5.3 Efectos de las resistencias parásitas
Los efectos resistivos en las celdas solares reducen la eficiencia de conversión del
dispositivo disipando potencia en las resistencias. Las resistencias parásitas más comunes en
una celda solar son la resistencia en serie y la resistencia de "shunt" (paralelo).
La resistencia en serie en una celda solar tiene múltiples causas: el movimiento de la
corriente a través del emisor y base del dispositivo, la resistencia que aparece entre el contacto
metálico y el silicio en la parte superior del dispositivo y finalmente la resistencia de los
contactos metálicos superiores e inferiores. El efecto principal de esta resistencia es reducir la
potencia máxima entregada por el dispositivo, pero valores muy altos de la misma pueden
reducir la corriente de corto circuito en la celda solar. En la figura 1.11 se puede observar el
efecto de la resistencia en serie sobre la curva I-V, incluyendo la reducción en la corriente de
corto circuito, siendo éste el peor efecto de dicha resistencia.
13
La resistencia de "shunt" se debe generalmente a defectos en la fabricación del
dispositivo, que causan fugas de corriente en los bordes del dispositivo y entre los contactos
de diferente polaridad. Las pérdidas de potencia causadas por esta resistencia son
significativas, ya que la resistencia le proporciona a la corriente fotogenerada un camino
alterno a la juntura del dispositivo. Una resistencia de "shunt" muy pequeña produce caídas
en el voltaje de circuito abierto.
0
0.1
0.2
0.3
0.4
0.5
0.6
0
Densidad de Corriente (A/cm2)
-0.005
-0.01
Ideal
-0.015
1Ω
5Ω
-0.02
20Ω
-0.025
-0.03
-0.035
Voltaje (V)
Figura 1.11: Curva I-V para varios valores de Rs
En la actualidad las celdas solares comerciales de silicio monocristalino tienen
resistencias de "shunt" altas (mayores a 100 ) y por esto las pérdidas de potencia causadas
por esta resistencia son muy bajas y a veces despreciables. En la figura 1.12 se puede observar
el efecto de la resistencia de "shunt" en la curva I-V del dispositivo, incluyendo un valor para
la misma que causa una caída en el voltaje de circuito abierto, creando grandes pérdidas de
potencia en el dispositivo.
14
0
0.1
0.2
0.3
0.4
0.5
0.6
0
Densidad de Corriente (A/cm2)
-0.005
-0.01
Ideal
-0.015
300Ω
50Ω
-0.02
10Ω
-0.025
-0.03
-0.035
Voltaje (V)
Figura 1.12: Curva I-V para varios valores de Gp
15
Capítulo 2: Herramientas Computacionales
2.1 Maple de Maplesoft
Maple es una herramienta computacional capaz de realizar cálculos algebraicos y
simbólicos. Para este proyecto se usó la versión Maple 12 en ambiente Windows y la versión
Maple 13 en ambiente Linux. Esta herramienta cuenta con una extensa biblioteca de
funciones matemáticas, incluyendo la función de Lambert-W, gracias a lo cual es posible
obtener soluciones analíticas para el voltaje y la corriente de la ecuación (1.1) y llegar
directamente a la ecuación (1.4) correspondiente a la corriente en función del voltaje y la
ecuación (1.5) correspondiente al voltaje en función de la corriente. En la figura 2.1 se
observa el ambiente gráfico de la herramienta Maple y un ejemplo de cómo obtener
soluciones analíticas con comandos sencillos.
Figura 2.1: Ambiente gráfico de Maple 12
Esta herramienta, además de realizar los cálculos analíticos, es capaz de obtener
soluciones numéricas con diferentes niveles de precisión, realizar gráficas 2D/3D y exportar
tablas o matrices a archivos de texto para luego ser procesados con otras herramientas. Todos
los cálculos analíticos de este trabajo y sus respectivas soluciones numéricas fueron realizados
usando esta herramienta de modelaje matemático.
16
2.2 Multisim de National Instruments
Multisim es una herramienta para el diseño y simulación de circuitos electrónicos.
Cuenta con una interfaz grafica muy sencilla y el diseño es intuitivo: se seleccionan los
componentes en las bibliotecas y se van interconectando en la hoja de trabajo. El "software"
permite colocar instrumentos de medición en la hoja de trabajo de la misma manera en la que
se conectan en el laboratorio, facilitando así el análisis rápido de los circuitos. Entre estos
instrumentos se encuentran multímetros, osciloscopios, generadores de curva I-V y medidores
de potencia.
Multisim también permite simulaciones más complejas de circuitos: Análisis
transitorio, análisis CA, análisis Fourier, Barrido CD, análisis de ruido, entre otros. Todas
estas simulaciones pueden ser exportadas a otras herramientas para su análisis posterior o para
ser incluidas en documentos. En la figura 2.2 se observa una hoja de trabajo típica de
Multisim con múltiples componentes (que constituyen un convertidor DC/DC elevador) y en
la figura 2.3 se observa el análisis transitorio de este circuito.
Figura 2.2: Multisim: Hoja de trabajo
17
Figura 2.3: Multisim: Análisis transitorio
2.3 Microsoft Visual C++ 2008
Visual C++ es una herramienta de programación que soporta lenguaje C y C++. Para
este proyecto se usó la versión de Visual C++ incluida en el conjunto de herramientas
Microsoft Visual Studio 2008 en ambiente Windows 7. Esta herramienta cuenta con una
interfaz sencilla con entorno de desarrollo integrado (IDE por sus siglas en inglés), que
permite, además del desarrollo del algoritmo, llevar a cabo la depuración del código de
manera simple y eficiente, realizar simulaciones paso a paso y ejecutar el programa
directamente con su depuración, entre otras funciones.
En Visual C++ existen bibliotecas con funciones matemáticas para lenguaje C++, lo
que permitió el desarrollo de algoritmos capaces de hallar soluciones a las ecuaciones antes
resueltas en Maple. De esta forma fue posible hacer el cálculo de las resistencias parásitas y
del punto de potencia máximo de distintos arreglos de celdas solares con un mismo algoritmo.
En la figura 2.4 se puede observar un proyecto en Visual C++ con la ventana de ejecución del
programa ya compilado.
18
Figura 2.4: Visual C++: Entorno de Desarrollo Integrado
Figura 2.5: Ambiente grafico de Code Composer Studio V4.1.2
19
2.4 Code Composer Studio de Texas Instruments
Code Composer Studio es una plataforma con ambiente de desarrollo integrado para
procesadores y microcontroladores Texas Instruments. El programa contiene compiladores
para las diversas familias de dispositivos Texas Instruments, junto con herramientas de
desarrollo y depuración. Para este proyecto se usó la versión Code Composer Studio v4.1.2 en
ambiente Windows. En la figura 2.5 se puede observar la interfaz grafica de Code Composer
Studio con una simulación del cálculo de las resistencias parásitas.
20
Capítulo 3: Métodos para la caracterización de arreglos de celdas solares
3.1 Parámetros necesarios
Para el cálculo del punto de potencia máxima es necesario conocer los parámetros de
la ecuación (1.1). La resistencia en serie (Rs), la conductancia de "shunt" (Gp), la corriente de
saturación inversa (I0) y el factor de idealidad (n) son los parámetros propios de la celda solar.
El voltaje térmico (Vth) se obtiene con una medición directa de la temperatura de la juntura de
la celda solar y la corriente fotogenerada (Iph) depende de la irradiación solar y de la eficiencia
de conversión de energía de la celda solar.
El factor de idealidad de la juntura es un parámetro que mide qué tan parecido es el
comportamiento de la juntura con respecto a la ecuación del diodo ideal. Cuando se asume
que la juntura es un plano infinito y que no existe recombinación en la zona de carga espacial,
el factor de idealidad es igual a uno. Cuando la recombinación en la zona de carga espacial
domina los otros tipos de recombinación en el dispositivo, el factor de idealidad es igual a
dos.
En las celdas solares de silicio monocristalino el factor de idealidad varía con respecto
al voltaje en la juntura y se puede aproximar dependiendo del punto de operación de la
misma. Para voltajes cercanos al punto de potencia máxima de la celda solar se puede
aproximar el factor de idealidad a 1,5, valor verificado en el trabajo de Chegaar et al. [6]. En
la figura 3.1 se observa el efecto que tiene el factor de idealidad en un arreglo de celdas
solares.
El voltaje térmico es un factor que depende de la temperatura del dispositivo,
específicamente la temperatura de la juntura. Es posible obtener la temperatura aproximada de
la celda solar usando sensores de temperatura para medir la temperatura en varios sectores del
arreglo y luego promediar estos valores. Conociendo la temperatura se obtiene el voltaje
térmico usando la siguiente ecuación:
21
(3.1)
Donde Vth es el voltaje térmico en voltios (V), k es la constante de Boltzmann en
electronvoltios sobre Kelvin (eV/K), T es la temperatura en Kelvin (K) y q es la carga del
electrón en coulombs (C). En la figura 3.2 se observa el efecto de la temperatura en una celda
solar.
0
10
20
30
40
50
0
-0.5
-1
Corriente (A)
-1.5
n = 1.0
-2
n = 1.2
-2.5
n = 1.5
n = 1.7
-3
-3.5
-4
-4.5
-5
Voltaje (V)
Figura 3.1: Efecto del factor de idealidad en un arreglo de celdas solares
La corriente fotogenerada (Iph) es la corriente generada por la celda solar por el efecto
fotovoltaico. Para una celda solar de silicio típica se cumple que:
(3.2)
22
Figura 3.2: Efecto de la temperatura en una celda solar
Esta aproximación se obtiene despejando la corriente fotogenerada Iph en la ecuación
de la celda solar en condiciones de cortocircuito:
(3.3)
Analizando la ecuación (3.3) se puede observar que la aproximación depende de los
valores de las resistencias parásitas Rs y Gp. Cuanto mayor sea la calidad de la celda solar,
mejor será esta aproximación. Para celdas de silicio monocristalino comerciales esta
aproximación es, en la mayoría de los casos, una igualdad, lo cual es fácil de comprobar
conociendo los parámetros de la celda solar y reemplazándolos en la ecuación (3.2)
correspondiente a la celda solar en condiciones de cortocircuito. En la figura 3.3 se observa el
efecto de la corriente fotogenerada en la curva I-V de una celda solar simulada en Maple.
23
0
0.1
0.2
0.3
0.4
0.5
0.6
0
-0.5
-1
Corriente (A)
-1.5
-2
Iph = 4.94 A
-2.5
Iph = 3.00 A
Iph = 1.50 A
-3
-3.5
-4
-4.5
-5
Voltaje (V)
Figura 3.3: Efectos de la corriente fotogenerada en la curva I-V
3.2 Métodos experimentales para el cálculo aproximando de las resistencias parásitas
equivalentes de un panel solar
La resistencia en serie (Rs) y la conductancia de "shunt" (Gp) son los parámetros que
definen las pérdidas de potencia del dispositivo, afectando directamente la eficiencia de
conversión del mismo.
Existen numerosos métodos para aproximar estos parámetros. En este trabajo se
probaron múltiples métodos a fin de escoger el que mejor aproxima el punto de potencia
máxima para múltiples arreglos de celdas solares.
Los trabajos de Dhifaoui et al. [7] y Wagner et al. [8] describen un método en el cual
se puede despreciar la resistencia de "shunt" para simplificar el modelaje de la celda solar. Se
basan en la hipótesis de que la resistencia de "shunt" es mucho mayor que la resistencia en
serie, y por eso consideran que es posible despreciarla en la ecuación (1.1) sin crear errores
24
grandes en el modelo. A fin de validar esta hipótesis, se implementó este método en Maple
para comparar los resultados del mismo con múltiples curvas I-V obtenidas en el laboratorio
usando tres tipos de celdas solares. En la figura 3.4 se observa la curva I-V de doce celdas
solares en serie y la curva I-V obtenida usando el método de Dhifaoui.
0
1
2
3
4
5
6
7
0
-0.2
Corriente (A)
-0.4
-0.6
I-V Experimental
I-V Desp. Resist.
-0.8
-1
-1.2
-1.4
Voltaje (V)
Figura 3.4: Curva experimental vs. Método de Dhifaoui
En la tabla 3.1 se observa el error que aparece en el punto de potencia máxima al
utilizar el método de Dhifaoui, debido a que la potencia disipada por la resistencia de shunt no
se puede despreciar para estos arreglos de celdas solares. El método de Dhifaoui no cumple
con los requerimientos de este trabajo, por lo cual fue descartado.
Tabla 3.1: Resultados usando el método propuesto por Dhifaoui
Tipo de arreglo de Celdas Solares
12 Celdas JAM en serie
Módulo BP Solar 72 celdas en serie
Módulo AEE Solar 36 celdas en serie
Potencia Máxima
Potencia Máxima
(Experimental)
(Método Dhifaoui)
Error
5.10 W
5.72 W 10.8%
130.58 W
151.14 W 13.6%
88.31 W
102.52 W 13.9%
25
El segundo método que se analizó para obtener un valor aproximado de las
resistencias parásitas fue el que propone D. Carrol [9]. Carrol ofrece un método
“razonablemente preciso” basado en el voltaje de circuito abierto (Voc) y la corriente de
cortocircuito (Isc). Primero se define la resistencia característica del arreglo de celdas solares
(Rch):
(3.4)
Y con el valor de la resistencia característica se obtienen las resistencias parásitas a
partir de la siguiente aproximación:
(3.5)
(3.6)
En la figura 3.5 se puede observar la curva I-V de doce celdas solares en serie y la
curva I-V obtenida con el método de Carrol.
En la tabla 3.2 se observa el error que aparece en el punto de potencia máxima al
utilizar el método de Carrol. El método es una aproximación que funciona muy bien para
pocas celdas solares, pero a medida que el efecto de las conexiones en serie y/o paralelo
crece, el error también crece notablemente. Este método tampoco cumple con los
requerimientos de este trabajo para la aproximación de las resistencias parásitas.
Tabla 3.2: Resultados usando el método propuesto por Carrol
Tipo de arreglo de Celdas Solares
12 Celdas JAM en serie
Módulo BP Solar 72 celdas en serie
Módulo AEE Solar 36 celdas en serie
Potencia Máxima
Potencia Máxima
(Experimental)
(Método Carrol)
5.10 W
5.02 W
Error
1.5%
130.58 W
61.48 W 52.9%
88.31 W
65.32 W 26.3%
26
0
1
2
3
4
5
6
7
0
-0.2
Corriente (A)
-0.4
-0.6
I-V Experimental
I-V Método Carrol
-0.8
-1
-1.2
-1.4
Voltaje (V)
Figura 3.5: Curva experimental vs. Método de Carrol
El tercer método que se analizó fue el propuesto por Chegaar et al. [6]. En
dicho trabajo se obtiene el valor de las resistencias parásitas a partir de las pendientes en la
curva I-V del dispositivo. En la figura 3.6 se observan las pendientes que se usan para el
cálculo de estos parámetros.
En el trabajo de Chegaar se demuestra que la resistencia de shunt se puede aproximar
como el inverso de la pendiente en la zona de corriente de corto circuito:
(3.7)
Y la resistencia en serie se puede aproximar a la siguiente expresión:
(3.8)
27
Donde Rs0 es la pendiente en la zona de voltaje de circuito abierto:
(3.9)
0
1
2
3
4
5
6
7
0
Pendiente usada para el calculo de Rs
-0.2
Corriente (A)
-0.4
-0.6
-0.8
-1
Pendiente usada para el calculo de Gp
-1.2
-1.4
Voltaje (V)
Figura 3.6: Pendientes usadas en el cálculo de las resistencias parásitas
Usando la herramienta Multisim se simuló un arreglo de celdas solares para verificar
esta aproximación con resultados satisfactorios, obteniéndose errores menores al 5% para
sesenta y tres arreglos diferentes. En la figura 3.7 se puede observar el modelo de Simulink
con ocho celdas solares en serie. La simulación completa se realizó partiendo de nueve celdas
en serie con tres valores diferentes de Rs y Rp, eliminando las celdas de una en una hasta llegar
a dos celdas en serie.
Para obtener las pendientes se usó el analizador I-V de Multisim. Para cada tipo de
arreglo se graficó la curva I-V y con el cursor se obtuvieron los pares voltaje/corriente
necesarios para obtener ambas pendientes. En la figura 3.8 se puede observar el analizador IV de Multisim con un arreglo de 8 celdas en serie.
28
Figura 3.7: Simulación de celdas solares en Multisim
Al comparar el método de Chegaar con las curvas experimentales obtenidas en el
laboratorio para los tres tipos de celdas solares disponibles se obtuvieron los resultados
presentados en la tabla 3.3 para el punto de potencia máxima.
Tabla 3.3: Resultados usando el método propuesto por Chegaar
Tipo de arreglo de Celdas Solares
12 Celdas JAM en serie
Módulo BP Solar 72 celdas en serie
Módulo AEE Solar 36 celdas en serie
Potencia Máxima
Potencia Máxima
(Experimental)
(Método Chegaar)
Error
5.10 W
5.10 W 0.00%
130.58 W
129.82 W 0.58%
88.31 W
88.13 W 0.20%
29
Figura 3.8: Cálculo de la pendiente con el analizador I-V de Multisim
En la figura 3.9 se puede observar la curva I-V de 12 celdas solares en serie y la curva
I-V obtenida con el método de Chegaar.
0
1
2
3
4
5
6
7
0
-0.2
Corriente (A)
-0.4
-0.6
I-V Experimental
I-V Método Chegaar
-0.8
-1
-1.2
-1.4
Voltaje (V)
Figura 3.9: Curva experimental vs. Método de Chegaar
30
Al analizar los datos y compararlos con los obtenidos con los otros métodos para
aproximar el valor de las resistencias parásitas, se decidió que el método de Chegaar cumple
con los requerimientos y fue seleccionado para el cálculo de estos parámetros.
3.3 Cálculo de la corriente de saturación inversa a partir de los valores aproximados de
las resistencias parásitas
Conociendo el resto de los parámetros que modelan la celda solar, descrita por la
ecuación (1.1), es posible obtener un valor aproximado de la corriente de saturación inversa
I0. Además de los parámetros, es necesario conocer el voltaje de circuito abierto Voc y la
corriente de cortocircuito Isc que entrega el dispositivo. La ecuación para obtener la corriente
de saturación inversa es la siguiente:
(3.10)
que se obtiene al despejar I0 de la ecuación (1.1) en condiciones de circuito abierto.
3.4 Método analítico para el cálculo del voltaje de potencia máxima
Para obtener el voltaje de potencia máxima, y con él, el punto de potencia
máxima del arreglo de celdas solares, es necesario manipular matemáticamente la ecuación
(1.1). El primer paso es despejar la corriente como función del voltaje. Para lograr esto es
necesario usar software matemático, ya que esta solución requiere aplicar la función de
Lambert-W. La ecuación de la corriente en función del voltaje calculada con Maple es la
siguiente:
(3.11)
31
Con esta ecuación es posible graficar la curva I-V de la celda solar si se conocen sus
parámetros. En la figura 3.10 se puede observar la curva I-V para una celda solar genérica.
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0
-0.5
-1
Corriente (A)
-1.5
-2
I-V
-2.5
-3
-3.5
-4
-4.5
-5
Voltaje (V)
Figura 3.10: Curva I-V de una celda solar genérica simulada en Maple
El segundo paso es obtener la ecuación de potencia a partir de la ecuación de la
corriente, para lo cual se aplica la ecuación de potencia DC:
(3.12)
Multiplicando ambos lados de la ecuación de corriente por el voltaje, se obtiene la
ecuación analítica para la potencia en función del voltaje, la cual está dada por la siguiente
expresión:
(3.13)
32
Con esta ecuación es posible graficar la curva de potencia en función del voltaje, y a
partir de ella obtener visualmente el punto de potencia máxima para el arreglo de celdas
solares. En la figura 3.11 se puede observar la curva de potencia en función del voltaje para
una celda solar genérica.
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0
Potencia (W)
-0.5
-1
Potencia
-1.5
-2
-2.5
Voltaje (V)
Figura 3.11: Curva de potencia de una celda solar genérica simulada en Maple.
El tercer paso para obtener el voltaje de potencia máxima es derivar la ecuación de la
potencia. En la figura 3.12 se puede observar que el punto en el que la derivada es igual a cero
la potencia entregada por el dispositivo es la máxima.
0.5
0
Potencia | dP/dV
0
0.2
0.4
0.6
-0.5
dP/dV
-1
Potencia
-1.5
-2
-2.5
Voltaje (V)
Figura 3.12: Curva de potencia y dP/dV de una celda solar genérica simulada en Maple
33
La ecuación de la derivada de la potencia en función del voltaje es la siguiente:
(3.14)
A fin de obtener el valor numérico para el voltaje de potencia máxima es necesario
utilizar métodos numéricos, ya que es imposible obtener una ecuación analítica para este
parámetro. La biblioteca de funciones de Maple tiene una función llamada fsolve, que
encuentra soluciones analíticas usando cálculos de punto flotante, con la cual se realizaron las
primeras simulaciones del algoritmo.
34
Capítulo 4: Diseño del programa de caracterización de celdas solares
Para este trabajo se desarrolló el Programa de Análisis de Lambert de punto de
potencia Máxima, por sus siglas en ingles, LAMP (Lambert Analytic Maximum power point
Program) que se encarga de calcular los parámetros necesarios para modelar el arreglo de
celdas solares basado en la solución analítica de la ecuación (1.1) de la celda solar y con éstos
calcular el punto de potencia máxima del arreglo.
4.1 Diseño del diagrama de flujo general
Para implementar el procedimiento propuesto es necesario llevar las ecuaciones
desarrolladas a un diagrama de flujo general, capaz de ser implementado en cualquier
lenguaje de programación. A tal fin se crearon diagramas de flujo para cada uno de los
bloques de dicho procedimiento. Estos diagramas de flujo se crearon partiendo del algoritmo
ordenado programado en Maple, descrito en el capítulo 3, siguiendo los pasos necesarios para
el cálculo de los parámetros y el punto de potencia máxima del arreglo.
Para aumentar la eficiencia del algoritmo se reescribió la ecuación (3.14). Si se
analiza esta ecuación se puede notar que gran parte de sus componentes provienen de la
derivada de las exponenciales, siendo estos términos iguales dentro y fuera de la exponencial
(propiedades de la derivada de la función exponencial). Gracias a esto es posible tratar estos
términos como uno solo y simplificar el código. Además de esto se agrupa y despeja una de
las instancias del voltaje V, para evitar igualar a cero y así comparar el valor de voltaje con
uno fijado por el método numérico que se creó para su cálculo.
En la figura 4.1 se puede observar el diagrama de flujo general del programa LAMP.
Luego en las figuras 4.2, 4.3, 4.4 y 4.5 se pueden observar los diagramas de flujo para la
adquisición de datos, el cálculo de Rs y el cálculo de Gp respectivamente.
Con los diagramas de flujo para el cálculo de los parámetros, el sistema tiene todos los
datos necesarios para completar el cálculo del voltaje de potencia máxima. Para su cálculo es
35
necesario programar la ecuación (3.14) en el microcontrolador y aplicar un método numérico
para obtener el Vmpp. En las figura 4.6 y 4.7 se puede observar el diagrama de flujo con el
método numérico para el cálculo del voltaje de potencia máxima.
4.2 Diseño del programa LAMP en Visual C++
Como primera aproximación a la versión final del programa LAMP se llevó el
diagrama de flujo a lenguaje C. La programación del mismo fue una traducción directa del
diagrama de flujo al lenguaje con la diferencia que la adquisición de datos se realizaba como
entrada de datos por parte del usuario. Al realizar simulaciones del punto de potencia máxima
para todas las curvas experimentales probadas en Maple se comprobó que los valores
obtenidos eran exactamente los mismos para todos los parámetros.
Definir Número de
Celdas
Adquisición de
Datos Iniciales
Cálculo de Gp
Cálculo de Rs
Si
Tiempo = 30 min
Si
Cálculo del Voltaje
del Punto de
Potencia Máxima
(Vmpp)
Tiempo = 500ms
Figura 4.1: Diagrama de flujo general del programa LAMP
36
Adquisición de
Datos Iniciales
Medir Temperatura
de las Celdas
Calcular Vth
Medir Isc y Voc
Volver al Diagrama
Principal
Figura 4.2: Diagrama de flujo para la adquisición de datos iniciales
37
Cálculo de Rs
Tomar un par Voltaje-corriente
para un valor cercano a Isc/4
(punto Rs2)
Calcular la pendiente entre el
punto de Voc y el punto Rs2
Pendiente = Rsm
Rsm > 1
Si
Rsm > 0.5
No
Si
Rs = Rsm/10
No
Rs = Rsm/100
Rs = Rsm/20
Con los valores antes
obtenidos, se calcula Rs1 en
función de Rs
Si
Rs1 > Rs
No
Rs = Rs + 50*precisión
Rs = Rs – 50*precisión
Calcular Rs1
Calcular Rs1
Rs1 > Rs
Rs1 > Rs
Si
No
No
Si
Rs = Rs – 20*precisión
Rs = Rs + 20*precisión
Calcular Rs1
Calcular Rs1
Rs1 > Rs
Rs1 > Rs
No
Si
Rs = Rs + 10*precisión
Si
No
Rs = Rs - 10*precisión
Figura 4.3: Diagrama de flujo para el cálculo de Rs (Parte A)
38
Calcular Rs1
Si
Rs1 > Rs
No
Rs = Rs + 5*precisión
Rs = Rs – 5*precisión
Calcular Rs1
Si
Rs1 > Rs
No
Rs = Rs + 2*precisión
Rs = Rs – 2*precisión
Calcular Rs1
Calcular Rs1
Rs1 > Rs
Rs1 > Rs
Si
No
Si
No
Rs = Rs – 1*precisión
Rs = Rs + 1*precisión
Ya se tiene el valor de Rs con
la precisión deseada
Volver al Diagrama
Principal
Figura 4.4: Diagrama de flujo para el cálculo de Rs (Parte B)
39
Cálculo de Gp
Tomar un par Voltaje-corriente
para un valor cercano a Voc/4
(punto Gp2)
Calcular la pendiente entre el
punto de Isc y el punto Gp2
Gp=Pendiente*Número de
Celdas
Volver al Diagrama
Principal
Figura 4.5: Diagrama de flujo para el cálculo de Gp
40
Cálculo del Voltaje del Punto
de Potencia Máxima (Vmpp)
Medir los valores
instantáneos de Isc y Voc
V = Voc
Con los valores antes
obtenidos, se calcula Vp en
función de V
Si
V=V-2
V – Vp > 2
V=V-1
No
Si
V – Vp > 1
No
Calcular Vp
Si
Vp > V
No
V = V + 50*precisión
V = V – 50*precisión
Calcular Vp
Calcular Vp
Vp > V
Vp > V
No
Si
Si
No
V = V – 20*precisión
V = V + 20*precisión
Calcular Vp
Calcular Vp
Vp > V
Vp > V
Si
No
No
V = V + 10*precisión
Si
V = V - 10*precisión
Figura 4.6: Diagrama de flujo para el cálculo del voltaje de potencia máxima (Parte A)
41
Calcular Vp
Si
Vp > V
No
V = V + 5*precisión
V = V – 5*precisión
Calcular Vp
Si
Si
Vp > V
No
V = V + 2*precisión
V = V – 2*precisión
Calcular Vp
Calcular Vp
Vp > V
Vp > V
No
Si
V = V – 1*precisión
No
V = V + 1*precisión
Vmpp = V
Volver al Diagrama
Principal
Figura 4.7: Diagrama de flujo para el cálculo del voltaje de potencia máxima (Parte B)
4.3 Implementación del programa LAMP en los microcontroladores 68HC08 y 68HC12
de Freescale
Para realizar la selección del microcontrolador ideal para esta aplicación se tomaron en
cuenta dos puntos: Costo y velocidad de cálculo. Con respecto a la velocidad de cálculo se
espera que el microcontrolador sea capaz de realizar el cálculo del punto de potencia máxima
periódicamente con un periodo mínimo de 500ms. Con esta premisa se procedió a seleccionar
42
el microcontrolador de menor costo que sea capaz de cumplir con el requerimiento de
velocidad fijado previamente.
En las instalaciones de USB Solar se dispone de los microcontroladores Freescale
68HC08 y 68HC12, de amplio uso didáctico en el laboratorio de electrónica. Se trató de
compilar el programa LAMP para cada uno de los microcontroladores y no se lograron
resultados satisfactorios ya que los mismos no tienen la capacidad de cálculo de operaciones
de punto flotante necesarias para el funcionamiento del programa.
4.4 Implementación del programa LAMP en el microcontrolador MSP430 de Texas
Instruments
Conociendo las limitaciones de los microcontroladores probados previamente en el
laboratorio se procedió a buscar un microcontrolador de bajo costo capaz de realizar las
operaciones de punto flotante necesarias para el correcto funcionamiento del programa. En el
laboratorio de USB Solar se encuentra disponible el microcontrolador MSP430F5438 de
Texas Instruments que es de bajo costo ($3-4) y el software para su programación es gratuito
(con algunas limitantes).
El microcontrolador MSP430F5438 cuenta con un total de 100 pines, de los cuales 87
son puertos I/O, tiene 256 KB de memoria flash, 16 KB de memoria SRAM, y 12 canales
diferentes para convertir señales analógicas a digitales, lo que lo hace un dispositivo capaz de
ejecutar las tareas de adquisición de datos y el cálculo completo del valor de las resistencias
parásitas de un módulo de celdas solares y el punto de potencia máxima en intervalos de
tiempo aceptables.
Para este microcontrolador se usó una tarjeta experimental que funciona como
plataforma de desarrollo para esta familia de dispositivos. Para esta aplicación se requieren
tres entradas del convertidor análogo-digital,
una entrada digital para el sensor de
temperatura y una salida digital para la señal de ancho de pulso controlado (PWM). En la
figura 7.6 se puede observar una fotografía de la plataforma de desarrollo MSPEXP430F5438.
43
Figura 4.8: Plataforma de desarrollo MSP-EXP430F5438
44
Capítulo 5: Caracterización de módulos de celdas solares
5.1 Módulos de prueba
Para comprobar los resultados obtenidos con las herramientas computacionales es
necesario realizar experimentos en el laboratorio usando módulos de celdas solares reales. En
este capítulo se describen los circuitos de prueba realizados para llevar a cabo dichos
experimentos. En el laboratorio se logró trabajar con tres tipos de celdas solares diferentes y
cuatro arreglos de celdas solares.
Las celdas JAM-125 de Jing Ao Solar son celdas de silicio monocristalino. Se tenían
dos arreglos con estas celdas, un arreglo de doce celdas en serie y otro de ochenta y ocho
celdas en serie. En la tabla 5.1 se pueden observar las especificaciones de estas celdas solares
y en la figura 5.1 se puede observar una fotografía del arreglo de doce celdas en serie.
Tabla 5.1: Especificaciones de las celdas solares JAM-125
Valores para una irradiación de 1000W/m2 @ 25°C
Eficiencia de conversión
17-17.1%
Voltaje de circuito abierto
0.620 V
Voltaje de potencia máxima
0.516 V
Corriente de corto circuito
5.29 A
Corriente de potencia máxima
4.91 A
Potencia máxima
2.53 W
Figura 5.1: Arreglo de doce celdas JAM-125 en serie
45
El módulo BP4170 de BP Solar está compuesto por setenta y dos celdas de silicio
monocristalino conectadas en serie. En la tabla 5.2 se pueden observar las especificaciones de
este módulo y en la figura 5.2 se puede observar una fotografía del mismo.
Tabla 5.2: Especificaciones del módulo BP4170
Valores para una irradiación de 1000W/m2 @ 25°C
Voltaje de circuito abierto
Voltaje de potencia máxima
44 V
34.7 V
Corriente de corto circuito
5.4 A
Corriente de potencia máxima
4.9 A
Potencia máxima
170 W
Figura 5.2: Módulo BP Solar BP4170
46
El módulo ET-P636110 de AEE Solar está compuesto por treinta y seis celdas de
silicio policristalino conectadas en serie. En la tabla 5.3 se pueden observar las
especificaciones de este módulo y en la figura 5.3 se puede observar una fotografía del
mismo.
Tabla 5.3: Especificaciones del módulo ET-P636110
Valores para una irradiación de 1000W/m2 @ 25°C
Voltaje de circuito abierto
21.60 V
Voltaje de potencia máxima
17.20 V
Corriente de corto circuito
7.13 A
Corriente de potencia máxima
6.40 A
Potencia máxima
110 W
Figura 5.3: Módulo AEE Solar ET-P636110
47
5.2 Cargas resistivas
Para la caracterización de los módulos de celdas solares disponibles en el laboratorio
se utilizaron una serie de cargas resistivas variables. Para obtener la curva I-V de estos
arreglos es necesario usar una carga resistiva variable lineal, a fin de obtener punto a punto los
pares voltaje-corriente desde el punto voltaje de circuito abierto hasta el punto de corriente de
corto circuito.
Para obtener la corriente de corto circuito es necesario que la carga sea 0 , lo cual no
es posible ya que los cables usados en las conexiones tienen una resistencia, pero ésta es muy
pequeña y puede considerarse despreciable en los experimentos realizados. Para obtener el
voltaje de circuito abierto se desconecta la carga y se mide el voltaje en los terminales del
arreglo de celdas solares.
A fin de escoger la carga resistiva adecuada para el modelaje es necesario conocer un
valor aproximado para la corriente de corto circuito y para el voltaje de circuito abierto del
arreglo. Este valor se puede medir experimentalmente en un día despejado con un multímetro.
Si se tiene la hoja de datos del arreglo de celdas solares se pueden obtener los valores de la
misma. Para obtener el valor máximo de la carga resistiva se usa la siguiente ecuación:
(5.1)
A partir de esta ecuación se seleccionaron las cargas resistivas necesarias para modelar
los arreglos de celdas solares disponibles: Para el arreglo de doce celdas solares JAM en serie
se requirió un reóstato de 10
y 5W, para el módulo BP Solar se requirió un reóstato de 100
y 200W.
En las figuras 5.4 y 5.5 se pueden observar imágenes de los reóstatos usados en los
experimentos de este trabajo.
48
Figura 5.4: Reóstato de 10W usado en los experimentos controlados en el laboratorio
Figura 5.5: Reóstato de 100
usado en los experimentos al aire libre
49
En las tablas 5.4 y 5.5 se pueden observar las especificaciones de los reóstatos usados
en los experimentos de este trabajo.
Tabla 5.4: Especificaciones del reóstato de 10
Marca
Modelo
PHYWE
06110.00
Resistencia máxima
10
Corriente máxima
8A
Tabla 5.5: Especificaciones del reóstato de 100
Marca
usado en los experimentos
usado en los experimentos
No disponible
Modelo
Resistencia máxima
Corriente máxima
K1
100
20A
5.3 Método para caracterizar los módulos
Para caracterizar los módulos de celdas solares se usó el siguiente método: Primero se
medía el voltaje de circuito abierto, se conectaba la carga en su punto de resistencia máxima y
se tomaban mediciones de voltaje y corriente mientras se reducía la carga hasta llegar a su
valor mínimo, al llegar a este valor se desconectaba la carga y se medía la corriente de corto
circuito. En la figura 5.6 se puede observar el circuito usado para caracterizar los módulos de
celdas solares.
Estos valores luego se llevaron a una computadora del laboratorio para graficar la
curva I-V del arreglo y obtener su punto de potencia máxima.
Como ejemplo, la tabla 5.6 presenta los valores tomados para el módulo BP Solar a las
11:30 am con cielo despejado y en la figura 5.7 se puede observar la curva I-V graficada con
esos valores.
50
Figura 5.6: Circuito para caracterizar los módulos de celdas solares
Tabla 5.6: Valores experimentales obtenidos usando el reóstato de 100
Voltaje (V) Corriente (A) Potencia (W)
36.4
0.00
0.00
35.8
-0.33
-11.99
35.4
-0.65
-23.01
34.4
-1.42
-48.79
32.6
-2.66
-86.70
30
-3.96
-118.79
28.9
-4.37
-126.39
28.1
-4.61
-129.54
27.6
-4.73
-130.49
27.1
-4.81
-130.26
26.8
-4.85
-129.88
26.2
-4.98
-130.58
25.4
-5.12
-130.10
24.7
-5.22
-128.95
24
-5.32
-127.66
23
-5.40
-124.15
22.6
-5.42
-122.44
18.7
-5.56
-103.89
16.3
-5.58
-90.87
10.6
-5.61
-59.51
4
-5.63
-22.54
0.9
-5.69
-5.12
51
0
5
10
15
20
25
30
35
40
0.00
Corriente (A)
-1.00
-2.00
Curva I-V Exp.
-3.00
-4.00
-5.00
-6.00
Voltaje (V)
Figura 5.7: Curva I-V experimental del módulo BP Solar
Para validar los resultados obtenidos se comparó la curva 5.7 con la curva obtenida
usando el programa LAMP para el mismo módulo de celdas solares. La figura 5.8 presenta la
gráfica con ambas curvas, donde se puede observar la similitud de las mismas, lo cual
comprueba la validez de los procedimientos llevados a cabo. En el capítulo 6 se presentan en
detalle las comparaciones entre los valores calculados con el programa LAMP y los valores
experimentales obtenidos con el circuito descrito anteriormente para todos los arreglos
estudiados, bajo diferentes condiciones.
0
10
20
30
40
0.00
Corriente (A)
-1.00
-2.00
Curva I-V Exp.
-3.00
Curva I-V Maple
-4.00
-5.00
-6.00
Voltaje (V)
Figura 5.8: Comparación de la curva I-V experimental con la calculada con Maple
52
Capítulo 6: Análisis comparativo de los resultados usando el programa
LAMP
A fin de comprobar la efectividad del programa LAMP se realizaron dos tipos de
montajes experimentales. El primero se llevó a cabo dentro del laboratorio de USB Solar
(ubicado a 10° 24’ 32” N, 66° 52’ 55” W) utilizando un módulo de doce celdas solares JAM
conectadas en serie, el cual fue iluminado con una lámpara de halógeno de 1000W, y para
mantenerlo a una temperatura baja se utilizó un ventilador comercial. El segundo montaje se
realizó en la azotea del laboratorio C, usando los módulos BP Solar, AEE Solar y el arreglo de
ochenta y ocho celdas JAM conectadas en serie.
6.1 Pruebas con celdas de silicio monocristalino en ambiente controlado
El montaje utilizado dentro del laboratorio de USB Solar permitió realizar
experimentos perfectamente controlados (iluminación y temperatura constante) a baja
potencia, ya que la lámpara solo era capaz de entregar una potencia de irradiación de
aproximadamente 100W/m2, mientras que el experimento llevado a cabo en la azotea del
laboratorio C permitió realizar mediciones con potencias más altas (800-900W/m2 al
mediodía durante el mes de marzo de 2010) en un ambiente no controlado, ya que las brisas y
los cambios atmosféricos afectaban las mediciones.
En las tablas 6.1 y 6.2 se pueden observar los resultados obtenidos para el módulo
JAM de doce celdas solares en serie. Estos dos experimentos fueron realizados en semanas
diferentes, ambos en el ambiente controlado del laboratorio de USB Solar. En las figuras 6.1 y
6.2 se puede observar una comparación entre la curva I-V obtenida experimentalmente para
cada una de las mediciones y la curva I-V calculada por el programa LAMP, mientras que las
figuras 6.3 y 6.4 presentan la comparación entre la curva de potencia obtenida
experimentalmente y la calculada por el programa LAMP para cada uno de los casos. Como
puede observarse, la coincidencia de las curvas es notable, y de acuerdo con las tablas, el error
es menor del 1,7% en el punto de potencia máxima.
53
Tabla 6.1: Resultados para 12 Celdas JAM en serie (semana 1)
Voltaje (V) Corriente (A) Potencia (W)
Experimental
4.91
1.04
5.1064
LAMP
4.95
1.03
5.0985
Error
0.81%
0.97%
0.15%
Tabla 6.2: Resultados para 12 Celdas JAM en serie (semana 2)
Voltaje (V)
Potencia (W)
Experimental
4.85
1.09
5.2865
LAMP
4.86
1.07
5.2002
0.21%
1.87%
1.66%
Error
0
Corriente (A)
1
2
3
4
5
6
7
0
Corriente (A)
-0.2
-0.4
-0.6
I-V Experimental
-0.8
I-V Algoritmo
-1
-1.2
-1.4
Voltaje (V)
Figura 6.1: Curvas I-V 12 celdas JAM en serie (semana 1)
0
1
2
3
4
5
6
7
0
Corriente (A)
-0.2
-0.4
-0.6
I-V Experimental
-0.8
I-V Algoritmo
-1
-1.2
-1.4
Voltaje (V)
Figura 6.2: Curvas I-V 12 celdas JAM en serie (semana 2)
54
0
1
2
3
4
5
6
7
0
-1
Potencia (W)
-2
Potencia
Experimental
-3
-4
Potencia
Algoritmo
-5
-6
Voltaje (V)
Figura 6.3: Curvas de potencia 12 celdas JAM en serie (semana 1)
0
1
2
3
4
5
6
7
0
-1
Potencia (W)
-2
Potencia
Experimental
-3
Potencia
Algoritmo
-4
-5
-6
Voltaje (V)
Figura 6.4: Curvas de potencia 12 celdas JAM en serie (semana 2)
55
6.2 Pruebas con celdas de silicio monocristalino al aire libre al mediodía
En la tabla 6.3 se pueden observar los resultados obtenidos para el módulo BP Solar.
Este experimento se realizó en la azotea del laboratorio C al mediodía durante un día
despejado. Se observa que para el punto de potencia máxima el error en la potencia entregada
por el módulo usando el programa LAMP es menor al 1% confirmando la eficacia del
método. En la figura 6.5 se puede observar una comparación entre la curva I-V obtenida
experimentalmente y la curva I-V calculada por el programa LAMP, mientras que la figura
6.6 presenta la comparación entre la curva de potencia obtenida experimentalmente y la
calculada por el programa LAMP. En este caso los errores son inferiores 1% para la potencia
entregada por el módulo, comprobando la efectividad del procedimiento en condiciones
reales.
Tabla 6.3: Resultados para el módulo BP Solar (12:00 pm)
Voltaje (V)
Experimental
26.8
4.85
129.98
LAMP
26.5
4.86
128.79
1.13%
0.21%
0.92%
Error
0
5
Corriente (A) Potencia (W)
10
15
20
25
30
35
40
0.00
Corriente (A)
-1.00
-2.00
Curva I-V
Experimental
-3.00
Curva I-V
Algoritmo
-4.00
-5.00
-6.00
Voltaje (V)
Figura 6.5: Curvas I-V módulo BP Solar (12:00 pm)
56
0
5
10
15
20
25
30
35
40
0.00
-20.00
Potencia (W)
-40.00
-60.00
Potencia
Experimental
-80.00
Potencia
Algoritmo
-100.00
-120.00
-140.00
Voltaje (V)
Figura 6.6: Curvas de potencia módulo BP Solar (12:00 pm)
6.3 Pruebas con celdas de silicio monocristalino al aire libre a las 3:00 pm
Para comprobar la validez del método durante horas de menor irradiación solar se
realizó un experimento a las tres de la tarde de un día despejado. Se escogió esta hora ya que
la irradiación solar es aproximadamente la mitad de la máxima del día. En la tabla 6.4 se
pueden observar los resultados obtenidos para este experimento. El error en el punto de
potencia máxima es menor a 0.5%, validando el programa LAMP en condiciones de baja
irradiación solar. En la figura 6.7 se puede observar una comparación entre la curva I-V
obtenida experimentalmente y la curva I-V calculada por el programa LAMP. La figura 6.8
presenta la comparación entre la curva de potencia obtenida experimentalmente y la calculada
por el programa LAMP.
Tabla 6.4: Resultados para el módulo BP Solar (3:00 pm)
Voltaje
(V)
Corriente
(A)
Potencia
(W)
Experimental
30.40
2.72
82.688
LAMP
30.14
2.75
82.885
0.86%
1.10%
0.24%
Error
57
0
10
20
30
40
50
0
-0.5
Corriente (A)
-1
-1.5
I-V Experimental
I-V Algoritmo
-2
-2.5
-3
-3.5
Voltaje (V)
Figura 6.7: Curvas I-V módulo BP Solar (3:00 pm)
0
10
20
30
40
0
-10
-20
Potencia
Experimental
Potencia (W)
-30
-40
Potencia
Algoritmo
-50
-60
-70
-80
-90
Voltaje (V)
Figura 6.8: Curvas de potencia módulo BP Solar (3:00 pm)
58
6.4 Pruebas con celdas de silicio policristalino al aire libre al mediodía
Con resultados positivos para dos tipos de celdas de silicio monocristalino bajo varias
condiciones de irradiación solar se procedió a realizar pruebas con el módulo AEE Solar,
compuesto por celdas de silicio policristalino. Este experimento se realizó al mediodía en la
azotea del laboratorio C. Las condiciones ambientales no eran óptimas, ya los incendios
ocurridos en la ciudad en los días anteriores al experimento causaron el efecto “calima” y esto
afectó las mediciones realizadas. En la tabla 6.5 se pueden observar los resultados obtenidos
para el punto de potencia máxima. Aunque el error en la potencia entregada por el dispositivo
es muy bajo, las condiciones ambientales causaron un cambio en la curva I-V del dispositivo,
causando un error de casi 3% en el par voltaje-corriente para este punto. En la figura 6.9 se
puede observar una comparación entre la curva I-V obtenida experimentalmente y la curva IV calculada por el programa LAMP, en la figura 6.10 presenta la comparación entre la curva
de potencia obtenida experimentalmente y la calculada por el programa LAMP.
Tabla 6.5: Resultados para el módulo AEE Solar
Voltaje (V)
Experimental
LAMP
Error
0
5
Corriente (A)
Potencia (W)
13.1
6.74
88.294
13.42
6.56
88.0352
2.44%
2.74%
0.29%
10
15
20
0
-1
-2
Corriente (A)
-3
I-V Experimental
-4
I-V Algoritmo
-5
-6
-7
-8
-9
Voltaje (V)
Figura 6.9: Curvas I-V módulo AEE Solar
59
0
5
10
15
20
0
-10
-20
Potencia (W)
-30
Potencia
Experimental
-40
-50
Potencia
Algoritmo
-60
-70
-80
-90
-100
Voltaje (V)
Figura 6.10: Curvas de potencia módulo AEE Solar
6.5 Análisis detallado del error en las curvas
Para apreciar la eficiencia del programa LAMP es de gran utilidad hacer un estudio del
porcentaje de error en cada uno de los puntos entre las curvas I-V obtenidas. En la figura 6.11
se observa el error porcentual punto a punto para el módulo de doce celdas JAM conectadas
en serie. Los experimentos realizados con este módulo fueron los que tuvieron menor error ya
que fueron realizados en el ambiente controlado del laboratorio.
Al analizar la figura 6.11 se puede observar que en la zona del punto de potencia
máxima se observa el error más pequeño, manteniéndose por debajo del 1% para los valores
de voltaje en la vecindad del mismo. El error es máximo en la zona cercana al voltaje de
circuito abierto ya que los valores de corriente son muy pequeños y comparables al error de
medición de los instrumentos (±10mV y ±10mA para los multímetros utilizados en los
experimentos).
En la figura 6.12 se observa el error porcentual punto a punto en las curvas I-V
obtenidas para el módulo AEE Solar, siendo este experimento el que tuvo el error más alto
durante las pruebas al programa LAMP. Como se puede observar en la figura 6.12 el error es
mínimo en la vecindad del punto de potencia máxima, manteniéndose por debajo del 3% y es
máximo en los puntos cercanos al voltaje de circuito abierto, esto se debe, como en el
60
experimento anterior, a los pequeños valores de corriente entregados por el dispositivo en esta
zona, siendo estos valores comparables al error de medición de los instrumentos.
7.00%
6.00%
5.00%
4.00%
Error %
(Curva I-V)
3.00%
2.00%
1.00%
0.00%
0.55
2.11
3.24
3.86
4.4
4.76
4.95
5.07
5.2
5.33
5.42
5.57
5.78
5.94
6.13
Figura 6.11: Error porcentual en la curva I-V (Módulo JAM-12, semana 1)
30.00%
25.00%
20.00%
Error %
(Curva I-V)
15.00%
10.00%
5.00%
0.00%
3.6
8.6
11.7
12.2
12.7
13.4
13.8
14.3
14.6
14.8
15
15.2
15.4
15.6
15.9
17.5
Figura 6.12: Error porcentual en la curva I-V (Módulo AEE Solar)
En conclusión, los resultados obtenidos experimentalmente demuestran que el
programa LAMP, basado en cálculos analíticos, ofrece resultados aceptables para los cálculos
del punto de potencia máxima de las celdas solares de mayor utilización comercial.
61
Capítulo 7: Diseño y pruebas del circuito de aplicación.
Para implementar físicamente el programa LAMP y aplicarlo a un arreglo específico
es necesario diseñar un circuito de potencia que sea capaz de cambiar el punto de operación
de las celdas solares según las instrucciones del microcontrolador. Además de esto es
necesario incluir un circuito de control que sea capaz de tomar las mediciones necesarias para
entregar los parámetros al microcontrolador y llevar las señales de control al circuito de
potencia. Dentro del circuito de control también existe un circuito de aislamiento que protege
al microcontrolador separando la etapa de potencia del sistema. En la figura 7.1 se puede
observar el diagrama de bloques del sistema completo.
Celdas Solares
Circuito de potencia
Sensores
Carga
Aislamiento
Microcontrolador
Circuito de control
Figura 7.1: Diagrama de bloques del sistema
7.1 Circuito de potencia
El circuito de potencia seleccionado para este trabajo es un convertidor DC-DC
elevador (Convertidor Boost) [10], el cual obtiene a su salida un voltaje mayor que su entrada.
En la figura 7.2 se puede observar el circuito del convertidor Boost. El voltaje de entrada se
puede controlar conociendo el voltaje de salida y el voltaje de potencia máxima del arreglo de
celdas solares usando la siguiente ecuación:
(7.1)
62
Donde D es el ciclo de trabajo de la señal de control, Vmpp es el voltaje de potencia
máxima calculado con el programa LAMP y Vout es el voltaje en la salida del convertidor.
Figura 7.2: Convertidor Boost
Para garantizar que el convertidor opere siempre en modo continuo y así evitar
inestabilidad en el circuito es necesario elegir correctamente la inductancia. La ecuación para
la selección de la inductancia es la siguiente [11]:
(7.2)
Donde L es el valor de la inductancia en Henrios, Vout es el voltaje de salida en voltios,
Vin el voltaje de entrada en voltios, D el ciclo de trabajo, f la frecuencia de operación en
hertzios y ilmax la corriente máxima en la salida del convertidor.
Para obtener mediciones precisas del voltaje de salida del convertidor es necesario que
el rizado en la salida sea menor a 1%. A fin de garantizar esto se debe elegir correctamente el
capacitor de salida. Las ecuaciones necesarias para obtener el valor del capacitor son las
siguientes [11]:
63
(7.3)
(7.4)
(7.5)
(7.6)
Donde ID.pico es el valor pico de la corriente que pasa por el diodo en amperes, ID.RMS es
el valor cuadrático medio de la corriente que pasa por el diodo en amperes, P es la potencia
nominal a la entrada del convertidor en vatios, IC.RMS es el valor cuadrático medio de la
corriente que pasa por el capacitor en amperes y C es el valor del capacitor en faradios.
Los experimentos de este trabajo se realizaron usando un convertidor Boost
previamente construido en el laboratorio, capaz de manejar 10 amperes de corriente y un
voltaje de entrada máximo de 100 voltios. En las figuras 7.3 y 7.4 se pueden observar
imágenes del convertidor Boost utilizado en los experimentos de este trabajo.
7.2 Sensores
Dado que el algoritmo programa LAMP requiere como parámetros el voltaje de
entrada (que es el voltaje entregado por el arreglo de celdas solares), la corriente de entrada
(que es la corriente entregada por el arreglo de celdas solares) y el voltaje de salida (que es el
voltaje del banco de baterías), es necesario incluir sensores adecuados para detectar estas
variables. Para medir la corriente se usa un “shunt” de precisión en el cableado de tierra del
circuito, midiendo la caída de potencial en el mismo y para medir los voltajes se usa un
divisor calibrado al voltaje máximo del circuito. En la figura 7.5 se pueden observar los tres
sensores de voltaje en el circuito convertidor Boost.
64
Figura 7.3: Convertidor Boost usado en los experimentos
Figura 7.4: Convertidor Boost alimentado con un arreglo de celdas solares
65
XMM2
XMM1
L1
4
500mH
V1
10 V
Q1
2
20ETS12
C1
940uF
IRF540N
R1
3
D1
1
0
25mΩ
Figura 7.5: Sensores de voltaje
XMM3
7.3 Circuito de aislamiento
Para proteger el microcontrolador y su tarjeta de desarrollo es necesario separar la
tierra de los circuitos de potencia y sensores de la tierra de la tarjeta de desarrollo, esto se
logra mediante el uso de amplificadores de aislamiento y/o optoacopladores.
Tabla 7.1: Especificaciones del ISO124
Voltaje de entrada
± 10V
Ganancia nominal
1 ± 0.05
Voltaje de salida
± 10V
Voltaje de alimentación
Min ±4.5 V
Max ±15 V
Corriente de salida
±15mA
Para los experimentos de este trabajo se implementó un circuito con amplificadores de
aislamiento donados por Texas Instruments. El amplificador de aislamiento ISO124 de TI se
implementó para la medición de voltaje de entrada y salida del circuito convertidor. En la
tabla 7.1 se pueden observar las especificaciones de este dispositivo.
Para aislar las señales de control del microcontrolador se utilizó el amplificador de
aislamiento ISO7220 de Texas Instruments. Este dispositivo es un aislador digital de gran
ancho de banda. En la tabla 7.2 se pueden observar sus especificaciones.
66
Tabla 7.2: Especificaciones del ISO7220
Voltaje de nivel alto
2V
Voltaje de nivel bajo
0V
Tasa de transmisión máxima
1Mbps
Voltaje de alimentación
Min ± 3.0 V
Max ± 5.5V
Corriente de salida
±15mA
En la figura 7.6 se puede observar el esquemático del circuito para aislar las señales
digitales, en la figura 7.7 se puede observar el esquemático del circuito para aislar las señales
analógicas y en la figura 7.8 se puede observar el circuito de aislamiento con los sensores de
voltaje, una vez montado en protoboard.
Figura 7.6: Esquemático del circuito de aislamiento para señales digitales
Figura 7.7: Esquemático del circuito de aislamiento para señales analógicas
67
Figura 7.8: Sensores de voltaje y circuito de acondicionamiento.
7.4 Resultados experimentales con el prototipo
Una vez diseñado y construido el circuito de potencia y control del prototipo se
procedió a realizar pruebas del mismo. El prototipo se conectó a un banco de baterías de 36V
y a una carga resistiva variable para controlar la potencia consumida por la misma. Para
realizar las pruebas se colocó el módulo AEE Solar en la azotea del laboratorio de electrónica
y se conectó un cable que lleva la energía de la azotea al laboratorio de USB Solar.
El primer experimento realizado con el prototipo fue al mediodía durante un día
nublado. Para verificar los resultados obtenidos con el prototipo se desconectó el mismo y se
conectó el reóstato de 100W y con él se verificaba el verdadero punto de potencia máxima del
módulo bajo esas condiciones. En la tabla 7.3 se pueden observar los resultados obtenidos
para este experimento.
El segundo experimento se realizó a las tres de la tarde con cielo nublado e incidencia
parcial del sol sobre el módulo, ya que una de las paredes en la azotea del laboratorio
68
bloqueaba parcialmente al sol. En la tabla 7.4 se pueden observar los resultados obtenidos
para este experimento.
Tabla 7.3: Resultados para el módulo AEE Solar (mediodía)
Voltaje (V)
Corriente (A)
Potencia (W)
Experimental
12.80
3.41
43.65
LAMP
13.07
3.32
43.39
2.06%
2.64%
0.59%
Error
Tabla 7.4: Resultados para el módulo AEE Solar (3:00 pm)
Voltaje (V)
Corriente (A)
Potencia (W)
Experimental
12.60
1.12
14.11
LAMP
12.12
1.15
13.94
3.80%
2.61%
1.20%
Error
Al verificar el funcionamiento del prototipo se determinó que el error en el convertidor
análogo-digital del microcontrolador tiene un error de 3% en las mediciones de voltaje y
corriente y será corregido en futuras pruebas al sistema. El prototipo fue capaz de calcular el
punto de potencia máxima del arreglo con un error cercano al 1% en condiciones poco
favorables (día nublado y obstrucciones parciales entre el módulo y el sol), demostrando que
el programa LAMP es robusto y eficaz.
69
Capítulo 8: Conclusiones y recomendaciones
8.1 Conclusiones
Durante el desarrollo de este trabajo se demostró que es posible desarrollar un método
analítico para el cálculo del punto de potencia máxima en un arreglo de celdas solares, sin
embargo, para esto es necesario conocer todos los parámetros del mismo. Analizando hojas de
datos y bibliografía relacionada se observó que estos parámetros rara vez son incluidos con el
arreglo, también se observó que en los casos en los que algunos de los parámetros se
encuentran incluidos son solo valores típicos observados durante la fabricación y pueden
diferir con errores mayores al 50% con los obtenidos en el laboratorio. Por esas razones se
desarrolló el programa LAMP que realiza las siguientes funciones:
-
Cálculo aproximado de los parámetros de la ecuación de la celda solar a partir de
mediciones de voltaje, corriente y temperatura del arreglo de celdas solares, este
cálculo se debe realizar periódicamente ya que los parámetros varían con la irradiación
solar.
-
Cálculo analítico de la ecuación para el voltaje de potencia máxima utilizando la
función de Lambert-W
-
Cálculo periódico del voltaje de potencia máxima utilizando la ecuación analítica y los
parámetros calculados para el arreglo de celdas solares.
Se desarrolló un prototipo basado en los requerimientos de USB Solar, implementando el
programa LAMP en un microcontrolador para realizar el control de ciclo de trabajo de un
convertidor DC/DC, siendo éste el encargado de entregar la potencia del arreglo a la carga del
sistema. El prototipo será implementado en los vehículos desarrollados por la agrupación.
Al analizar los resultados se observa que el programa LAMP es capaz de mantener el
arreglo de celdas solares en su punto de potencia máxima con error menor a 1%, siendo este
error principalmente causado por los instrumentos de medición usados para caracterizar el
arreglo y obtener los valores necesarios para el cálculo periódico del punto de potencia
máxima. También se demostró que es posible implementar el programa LAMP en
70
microcontroladores de bajo costo, siempre que éstos sean capaces de realizar funciones
matemáticas complejas (principalmente la función exponencial), mostrando que el prototipo
es viable para sistemas de celdas solares de bajo costo, que pueden utilizarse en localidades
aisladas.
8.2 Recomendaciones
Durante el desarrollo de este proyecto surgieron las siguientes ideas para mejorar el
programa LAMP o ampliar su rango de aplicaciones:
-
Implementar un convertidor DC/DC de alta eficiencia para aprovechar al máximo la
corriente entregada por el arreglo de celdas solares, ya que el convertidor Boost usado
en el prototipo solo cuenta con un 83% de eficiencia.
-
Integrar el prototipo con un inversor y así entregar la potencia del arreglo de celdas
solares a la red eléctrica.
-
Realizar las aproximaciones necesarias para que el programa LAMP funcione con
tecnologías fotovoltaicas emergentes y/o de menor alcance (celdas solares orgánicas,
celdas solares multijuntura, sistemas concentrados, etc).
-
Implementar el cálculo aproximado del factor de idealidad del diodo como función del
voltaje, ya que éste varía dependiendo del punto de operación de la celda solar.
71
Referencias
[1] PowerSolar inc. / Photovoltaic Systems.
http://www.polarpowerinc.com/info/operation20/operation23.htm, Febrero de 2010.
[2] H. Fernández, A. Martínez, V. Guzmán et al. / Modelo genérico de celdas fotovoltaicas.
uct, jul. 2008, vol.12, no.48, p.157-162. ISSN 1316-4821.
[3] P. Chapman, E. Trishan / Comparison of Photovoltaic Array Maximum Power Point
Tracking Techniques / IEEE Transactions on power electronics, vol. 21, no. 5, September
2006
[4] A. Jain, A. Kapoor / Solar Energy Materials & Solar Cells 81 (2004) 269–277.
[5] A. Villa Loja / Energía Fotovoltaica.
http://www.monografias.com/trabajos61/energia-fotovoltaica/energia-fotovoltaica2.shtml,
Febrero de 2010.
[6] M. Chegaar, Z. Ouennoughi et al. / Determination of Solar Cells Parameters under
Illuminated Conditions / Journal of Electron Devices, Vol. 2, 2003, pp. 17-21
[7] R. Dhifaoui, M. Faouzi et al. / Analytical Expressions for the Determination of the MPPT
under different insolation levels for a PV cell / World Renewable Energy Congress (WRECX)
Editor A. Sayigh © 2008 WREC
[8] A. Wagner, G. Kunz / Internal series resistance determinated of only one IV-Curve under
illumination / 19th European Photovoltaic Solar Energy Conference, Paris, France, 7-11 June
2004, Paper No 5BV.2.70
[9] D. Carrol, “The Winning Solar Car”, SAE International, Warrendale, Pa, pp. 80-92, 2003
[10] Daycounter, inc. / Boost Switching Converter Design Equations.
http://www.daycounter.com/LabBook/BoostConverter/Boost-Converter-Equations.phtml,
Marzo de 2010.
[11] E. Soto / Diseño y construcción de tricicleta solar impulsada por motor DC con freno
regenerativo / Universidad Técnica Federico Santa María, Valparaíso, Diciembre de 2007
72
[12] H. Fernández / Contribución al diseño de células de generación mixta fotovoltaica y
eólica para emplazamientos aislados / Universidad de Zaragoza, España / Universidad Simón
Bolívar, Venezuela, Junio de 2007.
73
Apéndice A: Simulación en Maple para el módulo BP Solar
74
75
76
77
Apéndice B: Código en Visual C++ para la simulación del programa LAMP
#include
#include
#include
#include
#include
#include
<iostream>
<iomanip>
<stdio.h>
<conio.h>
<math.h>
<cmath>
using namespace std;
#define isnan(x) ((x) != (x))
#undef isinf
#define isinf(x) (((x) > 999999999999.9) || ((x) < -999999999999.9))
double LambertW(const double z);
const int dbgW=0;
double LambertW(const double z) {
//Rutina que determina el valor de la Funcion LambertW
int i;
const double eps=4.0e-16, em1=0.3678794411714423215955237701614608;
double p,e,t,w;
if (dbgW) fprintf(stderr,"LambertW: z=%g\n",z);
if (z<-em1 || isinf(z) || isnan(z)) {
fprintf(stderr,"LambertW: mal argumento %g, saliendo.\n",z); exit(1);
getch();
}
if (0.0==z) return 0.0;
if (z<-em1+1e-4) { // serie cercana a -em1 en raiz cuadrada(q)
double q=z+em1,r=sqrt(q),q2=q*q,q3=q2*q;
return
-1.0
+2.331643981597124203363536062168*r
-1.812187885639363490240191647568*q
+1.936631114492359755363277457668*r*q
-2.353551201881614516821543561516*q2
+3.066858901050631912893148922704*r*q2
-4.175335600258177138854984177460*q3
+5.858023729874774148815053846119*r*q3
-8.401032217523977370984161688514*q3*q; // error aprox 1e-16
}
/* aprox inicial para la iteración... */
if (z<1.0) { /* serie cercana a 0 */
p=sqrt(2.0*(2.7182818284590452353602874713526625*z+1.0));
w=-1.0+p*(1.0+p*(0.333333333333333333333+p*0.152777777777777777777777));
} else
w=log(z); /* asintótico */
if (z>3.0) w-=log(w);
for (i=0; i<10; i++) { /* Iteración de Halley*/
e=exp(w);
t=w*e-z;
p=w+1.0;
t/=e*p-0.5*(p+1.0)*t/p;
w-=t;
if (fabs(t)<eps*(1.0+fabs(w))) return w;
}
78
/* nunca debería llegar aquí */
fprintf(stderr,"LambertW: No convergence at z=%g, exiting.\n",z);
getch();
exit(1);
}
float calcGp(int Nc){
//Rutina que calcula el valor de Gp
float Vgp1, Vgp2, Igp1, Igp2, Gp;
//Se toman 2 puntos de la curva para hallar la pendiente que representa Gp
printf("\nPar V-I para Voc/4 (introduzca valores positivos)\n");
printf("Vgp1 (V)= ");
cin>>Vgp1;
printf("Igp1 (A)= ");
cin>>Igp1;
printf("\nPar V-I cercano a Isc (introduzca valores positivos)\n");
printf("Vgp2 (V)= ");
cin>>Vgp2;
printf("Igp2 (A)= ");
cin>>Igp2;
Gp=Nc*(Igp1-Igp2)/(Vgp2-Vgp1);
return Gp;
}
double calcRs(float n, float vth, float Voc, float Isc, float Gp, int Nc){
//Rutina que calcula el valor de Rs
int condicion;
double Rs1, Rs, X, Y, Z, T1, T2, T3;
float Vrs1, Vrs2, Irs1, Irs2, Rsm, precisionRs, FC;
precisionRs=0.0001;
condicion=0;
//CÁLCULO DE Rsm
//Se toman 2 puntos de la curva para hallar la pendiente que
representa Rsm
printf("\nPar V-I para Isc/4 (introduzca valores positivos)\n");
printf("Vrs1 (V)= ");
cin>>Vrs1;
printf("Irs1 (A)= ");
cin>>Irs1;
printf("\nPar V-I cercano a Voc (introduzca valores positivos)\n");
printf("Vrs2 (V)= ");
cin>>Vrs2;
printf("Irs2 (A)= ");
cin>>Irs2;
Rsm=(Vrs2-Vrs1)/(Irs1-Irs2);
printf("\nRsm = ");
cout << Rsm << endl;
79
//Se hace una selección del valor inicial de Rs para hacer la iteración
if(Rsm<1){
if(Rsm<0.5){
Rs=Rsm/10;
}else Rs=Rsm/20;
}else Rs=Rsm/100;
do{
//La ecuación de la que se determina Rs se descompone en
ecuaciones mas simples
T1=Nc*n*vth;
T2=-Vrs1-Irs1*Rs*Nc;
T3=T2/T1;
X=Nc*T1*exp(-Voc/T1);
Y=exp(-T3)-1;
Z=Nc*(-Irs1+Isc-Gp*Irs1*Rs)-Gp*Vrs1;
Rs1=Rsm-(X*Y/Z);
//La ecuacion tiene a Rs en ambos lados de la igualdad, por lo
que el lado izquierdo es llamado Rs1
//Se inicia la iteración con la precisión antes fijada
switch(condicion){
case 0:
if(Rs1>Rs){
condicion=1;
Rs=Rs+(50*precisionRs);
}
else{
condicion=2;
Rs=Rs-(50*precisionRs);
}
break;
case 1:
if(Rs1>Rs){
Rs=Rs+(50*precisionRs);
}
else{
Rs=Rs-(20*precisionRs);
condicion=3;
}
break;
case 2:
if(Rs1>Rs){
condicion=4;
Rs=Rs-(20*precisionRs);
}else Rs=Rs-(50*precisionRs);
break;
case 3:
if(Rs1>Rs){
Rs=Rs+(10*precisionRs);
condicion=5;
}
else{
Rs=Rs-(20*precisionRs);
80
}
break;
case 4:
if(Rs1>Rs){
Rs=Rs+(20*precisionRs);
}
else{
Rs=Rs-(10*precisionRs);
condicion=5;
}
break;
case 5:
if(Rs1>Rs){
Rs=Rs+(5*precisionRs);
}else Rs=Rs-(5*precisionRs);
condicion=6;
break;
case 6:
if(Rs1>Rs){
Rs=Rs+(2*precisionRs);
condicion=8;
}
else{
Rs=Rs-(2*precisionRs);
condicion=7;
}
break;
case 7:
if(Rs1>Rs){
Rs=Rs+(1*precisionRs);
condicion=9;
}else Rs=Rs-(2*precisionRs);
break;
case 8:
if(Rs1>Rs){
Rs=Rs+(2*precisionRs);
}
else{
Rs=Rs-(1*precisionRs);
condicion=9;
}
break;
default:
break;
}
}while(condicion!=9);
//El último valor de Rs definido por la iteración es equivalente al
del arreglo de celdas
return Rs;
}
81
void main(){
int Nc, condicion, cont;
double Rs, Kq;
float n, vth, Gp, Isc, Voc, Y, X, W, Z, Io, V, Vp, T, precisionV;
bool flag;
cout << setprecision(4);
//Constante de idealidad de la celda
n=1.5;
do{
//Número de celdas del arreglo
printf("Nc = ");
cin>>Nc;
//Temperatura en grados Kelvin
printf("Temp(K) = ");
cin>>T;
//Kq = Constante de Boltzmann / Carga del Electrón
Kq=0.0000862;
//Voltaje térmico
vth=Kq*T;
//Corriente de corto circuito y Voltaje de circuito abierto
instantaneos en el arreglo
printf("Voc (V)= ");
cin>>Voc;
printf("Isc (A)= ");
cin>>Isc;
//CÁLCULO DE Gp
Gp=calcGp(Nc);
printf("\nGp = ");
cout << Gp << endl;
//CÁLCULO DE Rs
Rs=calcRs(n, vth, Voc, Isc, Gp, Nc);
printf("\nRs = ");
cout << Rs << endl;
do{
flag=0;
condicion=0;
precisionV=0.01;
//Se toman las condiciones instantaneas de Isc y Voc para el cálculo
de VMPP
printf("\n\n\nCondiciones Instantaneas:
\n");
printf("Voc (V)= ");
82
cin>>Voc;
printf("Isc (A)= ");
cin>>Isc;
Io=(Isc*Nc-Voc*Gp)/(Nc*(exp(Voc/(Nc*n*vth))-1));
Y=1/(Nc*n*vth*(1+(Gp*Rs)));
//Se hace una selección del valor inicial de Rs para hacer la
iteración
V=Voc;
//CÁLCULO DE VMPP
do{
printf("\n\nV = ");
cout<<V;
//Se hace una selección del valor inicial de Rs para hacer la
iteración
W=Y*(Rs*Io*Nc+Rs*Isc*Nc+V);
X=Nc*Rs*Io*Y*exp(W);
Z=LambertW(X);
Vp=-(1+Z)*(W-Z)*Nc*n*vth/(Y*Nc*n*vth-2*Z-2);
//La ecuacion tiene a V en ambos lados de la igualdad, por lo
que el lado izquierdo es llamado Vp
printf("\nVp = ");
cout<<Vp;
//Se inicia la iteración con la precisión antes fijada
switch(condicion){
case 0:
if((V-Vp)>=2){
V=V-2;
}
else{
if((V-Vp)>=1){
V=V-1;
}
else{
if(Vp>V){
condicion=1;
V=V+(50*precisionV);
}
else{
condicion=2;
V=V-(50*precisionV);
}
}
}
break;
case 1:
if(Vp>V){
83
V=V+(50*precisionV);
}
else{
V=V-(20*precisionV);
condicion=3;
}
break;
case 2:
if(Vp>V){
condicion=4;
V=V+(20*precisionV);
}else V=V-(50*precisionV);
break;
case 3:
if(Vp>V){
V=V+(10*precisionV);
condicion=5;
}
else{
V=V-(20*precisionV);
}
break;
case 4:
if(Vp>V){
V=V+(20*precisionV);
}
else{
V=V-(10*precisionV);
condicion=5;
}
break;
case 5:
if(Vp>V){
V=V+(5*precisionV);
}else V=V-(5*precisionV);
condicion=6;
break;
case 6:
if(Vp>V){
V=V+(2*precisionV);
condicion=8;
}
else{
V=V-(2*precisionV);
condicion=7;
}
break;
case 7:
if(Vp>V){
V=V+(1*precisionV);
condicion=9;
}else V=V-(2*precisionV);
break;
case 8:
if(Vp>V){
V=V+(2*precisionV);
84
}
else{
V=V-(1*precisionV);
condicion=9;
}
break;
default:
break;
}
}while(condicion!=9);
//El último valor de V definido por la iteración es equivalente al
del Punto de Potencia Máxima
printf("\n\n\n =====> VMPP = ");
cout<<V;
printf("\n\n 1- Para Volver a Calcular \n");
printf(" 2- Para Volver a Calcular las Resistencias Parásitas
printf(" Cualquier Tecla Para Salir \n\n\n");
\n");
cont=getch();
}while(cont=='1');
}while(cont=='2');
}
//FIN
85
Apéndice C: Código en Code Composer Studio para programar LAMP en
el microcontrolador
#include "msp430x54x.h"
#include <math.h>
#include <stdio.h>
#define
#define
#define
#define
#define
#define
q 1.6e-19
n 1.5//n=1.5
K 1.38e-23
Num 8
Nc 72
TempC 323.15
//Numero de celdas
//Temperatura de las celdas
/**********Prototipos**************/
float LambertW1(double );
//PLL
void ConfigFLL(unsigned char );
//ADC
void ConfADC(void);
void ConvertADC12(void);
void ConvertADC12Stop(void);
void InteADC12(void);
//PWM
void ConfPort(void);
void ConfPWM(unsigned int );
//RTC
void TimerRTS(void);
void TimerRTS1(void);
//MPPT
//condiciones Iniciales
void InitMPPT(void);
float promedio(float *);
float calcGp(void);
float calcRs(float);
float Vthm(void);
void calcDuty(float);
float PVinit(void);
/**********Variables**************/
float Voc,Isc,Rs,T=300,Io=0,Vth,V1,I=0,e1,t,Iph,Y,W,X,Vp,Gp,Vbateria,dc1;
float Rsm,Rs1,Z1,E1,E2;
int label=0,contimer=1,contimer2=1,contimer1=1;
float A0results[Num]; //Vpanel
float A1results[Num]; //Ipanel
float A2results[Num]; //Vbateria
float A3results[Num]; //Ibateria
/***************************Configuraciones*************/
//Puerto
void ConfPort(void)
{
P1DIR|=0x03;
P5DIR|=0x20;
86
P8DIR |= 0x40;
P8SEL |= 0x40;
}
//ADC
void ConfADC(void)
{
P7SEL = 0xF0;
ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_8;
sampling time
// Enable A/D channel inputs
// Turn on ADC12, extend
//
results
ADC12CTL1 = ADC12SHP+ADC12CONSEQ_3+ADC12DIV_4;
repeated sequence
ADC12MCTL12 = ADC12INCH_12;
ADC12MCTL13 = ADC12INCH_13;
ADC12MCTL14 = ADC12INCH_14;
ADC12MCTL15 = ADC12INCH_15+ADC12EOS;
end seq.
ADC12IE = 0x8000;
ADC12CTL0 |= ADC12ENC;
}
to
avoid
overflow
of
// Use sampling timer,
//
//
//
//
ref+=AVcc,
ref+=AVcc,
ref+=AVcc,
ref+=AVcc,
channel = A0
channel = A1
channel = A2
channel = A3,
// Enable ADC12IFG.3
// Enable conversions
void ConvertADC12(void)
{
ADC12CTL0 |= ADC12SC;
__delay_cycles(62500);
__bis_SR_register(LPM4_bits + GIE);
}
void ConvertADC12Stop(void)
{
ADC12IE = 0x0000;
ADC12CTL0 &=~ADC12SC;
__bic_SR_register(LPM4_bits + GIE);
}
void InteADC12(void)
{
ADC12IE = 0x8000;
}
//PLL
void ConfigFLL(unsigned char mp)
{
UCSCTL3 |= SELREF_2;
UCSCTL4 |= SELA_2;
switch(mp)
{
case 0://2MHz
__bis_SR_register(SCG0);
UCSCTL0 = 0x0000;
UCSCTL1 = DCORSEL_5;
UCSCTL2 = FLLD_1 + 61;
__bic_SR_register(SCG0);
__delay_cycles(62500);
break;
case 1://4MHz
__bis_SR_register(SCG0);
UCSCTL0 = 0x0000;
UCSCTL1 = DCORSEL_5;
87
UCSCTL2 = FLLD_1 + 122;
__bic_SR_register(SCG0);
__delay_cycles(125000);
break;
case 2://8MHz
__bis_SR_register(SCG0);
UCSCTL0 = 0x0000;
UCSCTL1 = DCORSEL_5;
UCSCTL2 = FLLD_1 + 124;
__bic_SR_register(SCG0);
__delay_cycles(250000);
break;
case 3://12MHz
__bis_SR_register(SCG0);
UCSCTL0 = 0x0000;
UCSCTL1 = DCORSEL_5;
UCSCTL2 = FLLD_1 + 366;
__bic_SR_register(SCG0);
__delay_cycles(375000);
break;
case 4://16MHz
__bis_SR_register(SCG0);
UCSCTL0 = 0x0000;
UCSCTL1 = DCORSEL_5;
UCSCTL2 = FLLD_1 + 488;
__bic_SR_register(SCG0);
__delay_cycles(500000);
break;
case 5://20MHz
__bis_SR_register(SCG0);
UCSCTL0 = 0x0000;
UCSCTL1 = DCORSEL_5;
UCSCTL2 = FLLD_1 + 610;
__bic_SR_register(SCG0);
__delay_cycles(625000);
break;
}
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
//
Clear
XT2,XT1,DCO
flags
SFRIFG1 &= ~OFIFG;
// Clear fault flags
}while (SFRIFG1&OFIFG);
}
fault
void TimerRTS(void)
{
// TRCCR0 interrupt enabled
TBCCR0 = 8000;
// ACLK, upmode, clear TBR
TBCTL = TBSSEL_0 + MC_1 + TBCLR + TBIE ;
TBCCTL0 = CCIE;
_EINT();
}
88
void TimerRTS1(void)
{
TBCCTL2 = CCIE;
// TRCCR0 interrupt enabled
TBCCR2 = 64000;
// ACLK, upmode, clear TBR
TBCTL = TBSSEL_2 + MC_2 + TBCLR + TBIE+ID_3 ;
}
//PWM
void ConfPWM(unsigned int d)
{
//TA1CCR0_L = 117;
/* PWM period = 8Mhz/16 = 500 kHZ == my
desired frequency*/
//TA1CCR0_H = 39;
TA1CCR0=400;
TA1CCTL0 = OUTMOD_7;
TA1CCR1=d*4;
TA1CCTL1 = OUTMOD_7;
/* select SMCLK (8MHz) as clock source, up mode, clear) */
TA1CTL = (TASSEL_2 + MC_1 + TACLR);
//__bis_SR_register(LPM3_bits+GIE);
}
/************************************MPPT******************************/
//condiciones Iniciales
float promedio(float * mh)
{
int i=0;
float rest=0;
for (i=0;i<8;i++)
{
rest+=(*mh++);
}
return (rest/8);
}
void InitMPPT(void)
{
//Medir resistencia paso(1)
ConfPWM(0);
ConvertADC12();
while(!label);
Voc=promedio(A0results);
label=0;
P5OUT|=0x20;
ConvertADC12();
P5OUT&=0x00;
while(!label);
Isc=promedio(A1results);
// Medir Gp paso(2)
Gp=calcGp();
// Medir Rs paso(3)
Rs=calcRs(Vthm());
//Calcular Vp
calcDuty(PVinit());
}
/*****************Calculo de Parametros***********************/
89
float Vthm(void)
{
Vth=(K*TempC)/q;
return (Vth);
}
float calcGp(void){
float Vgp1, Vgp2, Igp1, Igp2, Gp;
ConfPWM(95);
ConvertADC12();
while(!label);
Vgp1=promedio(A0results);
label=0;
ConvertADC12();
while(!label);
Igp1=promedio(A1results);
Vgp2=0;
Igp2=Isc;
Gp=((Igp1-Igp2)/(Vgp2-Vgp1))*Nc;
return Gp;
}
float calcRs(float vth)
{
int condicion;
float Rs1, Rs, X1, Y1, Z1, T1, T2, T3;
float Vrs1, Vrs2, Irs1, Irs2, Rsm, precisionRs, FC;
precisionRs=0.0001;
condicion=0;
ConfPWM(5);
__delay_cycles(10000);
ConvertADC12();
while(!label);
Vrs1=promedio(A0results);
label=0;
ConvertADC12();
while(!label);
Irs1=promedio(A1results);
Vrs2=Voc;
Irs2=0;
FC = 2.1;
Rsm=(Vrs2-Vrs1)/(Irs1-Irs2);
if(Rsm<1){
if(Rsm<0.5){
Rs=Rsm/10;
}else Rs=Rsm/20;
}else Rs=Rsm/100;
do{
T1=Nc*n*vth;
T2=-Vrs1-Irs1*Rs*Nc;
T3=T2/T1;
X1=Nc*T1*exp(-Voc/T1);
Y1=exp(-T3)-1;
Z1=Nc*(-Irs1+Isc-Gp*Irs1*Rs)-Gp*Vrs1;
Rs1=Rsm-((X1*Y1)/Z1);
switch(condicion){
case 0:
if(Rs1>Rs){
90
condicion=1;
Rs=Rs+(50*precisionRs);
}
else{
condicion=2;
Rs=Rs-(50*precisionRs);
}
break;
case 1:
if(Rs1>Rs){
Rs=Rs+(50*precisionRs);
}
else{
Rs=Rs-(20*precisionRs);
condicion=3;
}
break;
case 2:
if(Rs1>Rs){
condicion=4;
Rs=Rs-(20*precisionRs);
}else Rs=Rs-(50*precisionRs);
break;
case 3:
if(Rs1>Rs){
Rs=Rs+(10*precisionRs);
condicion=5;
}
else{
Rs=Rs-(20*precisionRs);
}
break;
case 4:
if(Rs1>Rs){
Rs=Rs+(20*precisionRs);
}
else{
Rs=Rs-(10*precisionRs);
condicion=5;
}
break;
case 5:
if(Rs1>Rs){
Rs=Rs+(5*precisionRs);
}else Rs=Rs-(5*precisionRs);
condicion=6;
break;
case 6:
if(Rs1>Rs){
Rs=Rs+(2*precisionRs);
condicion=8;
}
else{
Rs=Rs-(2*precisionRs);
condicion=7;
}
break;
91
case 7:
if(Rs1>Rs){
Rs=Rs+(1*precisionRs);
condicion=9;
}else Rs=Rs-(2*precisionRs);
break;
case 8:
if(Rs1>Rs){
Rs=Rs+(2*precisionRs);
}
else{
Rs=Rs-(1*precisionRs);
condicion=9;
}
break;
default:
break;
}
}while(condicion!=9);
Rs=Rs/FC;
return Rs;
}
void calcDuty(float vpanel)
{
Vbateria=promedio(A2results);//bateria
label=0;
dc1=((Vbateria-vpanel)/Vbateria)*100;
ConfPWM((unsigned int)dc1);
}
/*******************Funciones Lambert*********************/
float LambertW1(double z)
{
double e=2.71828,p,w,L1,L2,t1;
unsigned char i,eps=4;
if((z>=-0.367879)&&(z<-0.333))
{
p=-sqrt(2*((e*z)+1));
w=(-1+p-((p*p)/3)+(11*(p*p*p)/72)(43*(p*p*p*p)/540)+(769*(p*p*p*p*p)/17280)-(221*(p*p*p*p*p*p)/8505));
return w;
}
else if ((z>=-0.333)&& (z<-0.033))
{
w=((-8.096+(391.0025*z)-(47.4252*z*z)-(4877.633*z*z*z)(5532.776*z*z*z*z))/(1-(82.9423*z)+(433.8688*z*z)+(1515.306*z*z*z)));
return w;
}
else if ((z>=-0.033)&& (z<0))
{
L1=log(-z);
L2=log(-L1);
w=L1-L2+(L1/L2)+(((-2+L2)*L2)/(2*L1*L1))+(((6(9*L2)+(2*L2))*L2)/(6*L1*L1*L1))+((-12+(36*L2)(22*L2*L2)+(3*L2*L2*L2))*L2)/(12*L2*L2*L2*L2)+
((60-(300*L2)+(350*L2*L2)(125*L2*L2*L2)+(12*L2*L2*L2*L2))*L2/(60*L2*L2*L2*L2*L2)) ;
return w;
92
}
else if (z>1)
{
w=log(z);
/* asymptotic */
if (z>3.0) w-=log(w);
/* useful? */
}
if ((z>0)&&(z<1))
{
p=sqrt(2.0*(2.7182818*z+1.0));
w=-1.0+p*(1.0+p*(-0.3333333+p*0.1527777));
}
if(z==0)return 0;
for (i=0; i<36; i++) //36
{ /* Halley iteration */
e1=exp(w);
t=(w*e1)-z;
p=w+1;
t/=(e1*p)-(0.5*(p+1.0)*(t/p)); //e1
w-=t;
}
}
float PVinit(void)
{
int condicion=0;
float V1,precisionV=0.01,Z1;
Iph=Isc;
Io=(Isc*Nc-Voc*Gp)/(Nc*(exp(Voc/(Nc*n*Vth))-1));
Y=1/(Nc*n*Vth*(1+(Gp*Rs)));
V1=Voc;
//CALCULO DE VMPP
do{
W=Y*(Rs*Io*Nc+Rs*Isc*Nc+V1);
X=Nc*Rs*Io*Y*exp(W);
Z1=LambertW1(X);
Vp=-(1+Z1)*(W-Z1)*Nc*n*Vth/(Y*Nc*n*Vth-2*Z1-2);
switch(condicion){
case 0:
if((V1-Vp)>=2){
V1=V1-2;
}
else{
if((V1-Vp)>=1){
V1=V1-1;
}
else{
if(Vp>V1){
condicion=1;
V1=V1+(50*precisionV);
}
else{
condicion=2;
V1=V1-(50*precisionV);
}
}
93
}
break;
case 1:
if(Vp>V1){
V1=V1+(50*precisionV);
}
else{
V1=V1-(20*precisionV);
condicion=3;
}
break;
case 2:
if(Vp>V){
condicion=4;
V1=V1+(20*precisionV);
}else V1=V1-(50*precisionV);
break;
case 3:
if(Vp>V1){
V1=V1+(10*precisionV);
condicion=5;
}
else{
V1=V1-(20*precisionV);
}
break;
case 4:
if(Vp>V1){
V1=V1+(20*precisionV);
}
else{
V1=V1-(10*precisionV);
condicion=5;
}
break;
case 5:
if(Vp>V1){
V1=V1+(5*precisionV);
}else V1=V1-(5*precisionV);
condicion=6;
break;
case 6:
if(Vp>V1){
V1=V1+(2*precisionV);
condicion=8;
}
else{
V1=V1-(2*precisionV);
condicion=7;
}
break;
case 7:
if(Vp>V1){
V1=V1+(1*precisionV);
condicion=9;
}else V1=V1-(2*precisionV);
94
break;
case 8:
if(Vp>V1){
V1=V1+(2*precisionV);
}
else{
V1=V1-(1*precisionV);
condicion=9;
}
break;
default:
break;
}
}while(condicion!=9);
Vp=V1;
return Vp;
}
/***************Interrupcion*****************/
// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
{
static unsigned int index = 0;
switch(__even_in_range(ADC12IV,34))
{
case 0: break;
// Vector 0: No interrupt
case 2: break;
// Vector 2: ADC overflow
case 4: break;
// Vector 4: ADC timing overflow
case 6: break;
// Vector 6: ADC12IFG0
case 8: break;
// Vector 8: ADC12IFG1
case 10:
index =8;
break;
// Vector 10: ADC12IFG2
case 12: break;
// Vector 12: ADC12IFG3
case 14: break;
// Vector 14: ADC12IFG4
case 16: break;
// Vector 16: ADC12IFG5
case 18: break;
// Vector 18: ADC12IFG6
case 20: break;
// Vector 20: ADC12IFG7
case 22: break;
// Vector 22: ADC12IFG8
case 24: break;
// Vector 24: ADC12IFG9
case 26: break;
// Vector 26: ADC12IFG10
case 28: break;
// Vector 28: ADC12IFG11
case 30: break;
// Vector 30: ADC12IFG12
case 32: break;
// Vector 32: ADC12IFG13
case 34: break;
// Vector 34: ADC12IFG14
case 36:
__delay_cycles(62500);
A0results[index] = ((ADC12MEM13*53.097)/4096);
//
Move
A0
results, IFG is cleared //Vpanel
A1results[index] = (3.5)*((ADC12MEM14*3.3)/4096);
//
Move
A1
results, IFG is cleared //Ipanel
A2results[index] = ((ADC12MEM15*103.488)/4096);
//
Move
A2
results, IFG is cleared //Vbateria
A3results[index] = (ADC12MEM12*3.3)/4096;
// Move A3 results,
IFG is cleared //Ibateria
index++;
// Increment results
index, modulo; Set Breakpoint1 here
if (index == 8)
95
{
index = 0;
label=1;
__bic_SR_register_on_exit(LPM4_bits + GIE);
//__bis_SR_register_on_exit(LPM3_bits + GIE);
}
break;
default: break;
}
// Vector 36:
ADC12IFG15
}
#pragma vector=TIMERB1_VECTOR
__interrupt void TIMERB1_ISR(void)
{
switch(__even_in_range(TBIV,14))
{
case 0: break;
case 2: break;
case 4: break;
case 6: break;
case 8: break;
case 10: break;
case 12: break;
case 14: P1OUT ^= 0x01;
contimer++;
contimer1++;
//
//
//
//
//
//
//
//
No interrupt
CCR1 not used
CCR2 not used
reserved
reserved
reserved
reserved
overflow
if(contimer==16)
{
//InteADC12();
InitMPPT();
ConvertADC12Stop();
TimerRTS1();
__bic_SR_register(LPM3_bits+GIE);
}
if(contimer1==150)
{
P8OUT=0x00;
calcDuty(PVinit());
contimer1=0;
}
if(contimer==57600)
{
contimer=15;
contimer1=0;
InteADC12();
}
//ConvertADC12Stop();
TB0CCTL2&=~TBIFG;
__bic_SR_register(LPM3_bits+GIE);
break;
default: break;
}
}
/***********Main************/
int main( void )
{
96
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
ConfPort();
//P1OUT^=0x03;
P5OUT&=0x00;//mosfet=0
P8OUT&=0x00;//Aux=0
ConfigFLL(4);//16MHz
ConfADC();
_EINT(); // Enable interrupts
TimerRTS1();
__bis_SR_register(LPM0_bits+GIE);
for(;;);
return 0;
}
97