Está en la página 1de 210

UNIVERSIDAD DE

MAGALLANES
FACULTAD DE INGENIERIA
DEPARTAMENTO DE

EVALUACIN DE CONVERSORES DC/DC Y SISTEMAS DE CON

HUGO MIGUEL VILLEGAS BARRA


-2006-

EVALUACIN DE CONVERSORES DC/DC Y SISTEMAS DE CON

Trabajo

de

Titulacin

presentado

en

conformidad a los requisitos para obtener el


Ttulo

de:

Ingeniero

de

Ejecucin

Electricidad mencin Electrnica.


Profesor Gua: Dr. Roberto Crdenas D.

HUGO MIGUEL VILLEGAS


BARRA
-2006-

en

AGRADECIMIENTOS
Quiero agradecer sinceramente a todas aquellas personas que me ayudaron directa o
indirectamente en el desarrollo de la presente tesis. De manera especial, agradezco al profesor Dr.
Roberto Crdenas Dobson por su disposicin y gua, igualmente al grupo de alumnos del
laboratorio de Investigacin del Dpto. de Electricidad generacin 2005 2006, conformado por:
Marcelo Prez Uribe, Fernando Vargas Alvarado, Jos Proboste Brquez, Enrique Escobar Prez e
Ivn Andrade Agero por su amistad, cooperacin, tesn y profesionalismo con que enfrentan el
da a da. Tambin, agradecer a mi familia por el apoyo incondicional y la comprensin que me
han entregado en todos estos aos.

De Hugo.

ii

RESUMEN

El seguimiento del punto de mxima potencia (MPPT de las siglas en ingls


Maximum Power Point Tracking) se utiliza en sistemas fotovoltaicos (FV) para
maximizar la potencia proporcionada por un panel solar, independiente de las
condiciones de radiacin solar incidente, temperatura o caractersticas de la carga. El
mencionado sistema fotovoltaico, est compuesto de un conversor DC/DC, el cual se
conecta como interfase entre el panel solar y la carga. A su vez, el conversor cuenta
con una unidad de control, que controla el flujo de potencia proporcionado por el panel
solar, de forma tal de entregar la mxima potencia foto generada por el panel a la carga.

El presente trabajo de titulacin tiene como objetivo estudiar tres tcnicas de


control para el MPPT dos de ellas clsicas y una difusa, estas son: (a) perturbacin y
observacin, (b) conductancia incremental y (c) controlador basado en lgica difusa.
Las tcnicas sern implementadas en la unidad de control de cada conversor DC/DC
diseado y construido en el transcurso de esta Tesis, los conversores son: Boost y Buck
- Boost. La unidad de control mencionada esta controlada por un microcontrolador
PIC18F452 de Microchip Corporation.

Estrategias de control clsica sern desarrolladas tanto para ser aplicadas en el


conversor Boost y en el conversor Buck- Boost, adems del controlador difuso
implementado slo en el conversor Boost. Estas estrategias han de permitir la
localizacin del punto o zona de mxima potencia proporcionada por el panel solar,
ante diversas situaciones tales como: nivel de radiacin solar incidente constante,
variacin en el nivel de radiacin solar y efectos de la temperatura en un panel solar.

NDICE GENERAL

1. INTRODUCCIN............................................................................................................2
1.1

INTRODUCCIN GENERAL...............................................................................2

1.2

OBJETIVOS DE LA TESIS..................................................................................3

1.3

ESTRUCTURA DE LA TESIS..............................................................................4

2. CELDAS SOLARES...................................................................................................... 7
2.1

INTRODUCCIN................................................................................................. 7

2.2

PRINCIPIO DE FUNCIONAMIENTO...................................................................8

2.3

CARACTERSTICAS ANALTICAS................................................................... 11

2.4

SEGUIMIENTO DEL MPP.................................................................................14

2.5

APLICACIONES................................................................................................ 17

2.5.1 ELECTRIFICACIN RURAL..........................................................................18


2.5.2 APLICACIONES AGROGANADERAS.......................................................... 18
2.5.3 ILUMINACIN................................................................................................18
2.5.4 TELECOMUNICACIONES.............................................................................18
2.5.5 SEALIZACIN Y ALARMA..........................................................................18
2.5.6 OTRAS APLICACIONES............................................................................... 19
3. SISTEMA EXPERIMENTAL........................................................................................ 21
3.1

INTRODUCCIN............................................................................................... 21

3.2

MICROCONTROLADOR PIC18F452................................................................23

3.3

TARJETA DE PROGRAMACIN DE MICROCONTROLADRES PIC..............24

3.4

CONVERSORES DC/DC...................................................................................25

3.4.1 CONVERSOR BOOST...................................................................................25


3.4.2 CONVERSOR BUCK BOOST.................................................................... 27
3.4.3 DISEO DEL CONVERSOR DC/DC.............................................................30
3.4.4 UNIDAD DE CONTROL.................................................................................32

3.4.5 DISPARO DEL TRANSISTOR MOSFET.....................................................35


3.4.6 TARJETA CONVERSOR BOOST..................................................................37
3.4.7 TARJETA CONVERSOR BUCK BOOST....................................................38
3.5

TARJETA LCD...................................................................................................40

3.6

COMUNICACIN SERIAL................................................................................43

3.7

MEMORIA EXTERNA EEPROM 24LC16B.......................................................45

4. ALGORITMOS DE CONTROL....................................................................................48
4.1

INTRODUCCIN...............................................................................................48

4.2

PERTURBACIN Y OBSERVACIN................................................................49

4.3

CONDUCTANCIA INCREMENTAL....................................................................52

4.4

CONTROLADOR BASADO EN LGICA DIFUSA............................................56

4.4.1 FUZZIFICACIN............................................................................................57
4.4.2 METODO DE INFERENCIA...........................................................................58
4.4.3 DESFUZZIFICACIN.....................................................................................59
5. RESULTADOS EXPERIMENTALES...........................................................................63
5.1

INTRODUCCIN...............................................................................................63

5.2

RESULTADOS EXPERIMENTALES..................................................................63

5.2.1 RESULTADOS PARA LA GENERACIN DE CURVAS I V y P V.............64


5.2.2 RESULTADOS DE MPPT CON RSI CONSTANTE.......................................67
5.2.3 RESULTADOS DE MPPT CON VARIACIN EN LA RSI.............................75
6. CONCLUSIONES.........................................................................................................84
REFERENCIAS BIBLIOGRFICAS...............................................................................86
APNDICE A. MENSAJES GENERADOS EN EL LCD................................................90
APNDICE B. CDIGOS DE PROGRAMAS Y LIBRERAS........................................94
APNDICE C. ESQUEMTICOS DE LAS TARJETAS IMPLEMENTADAS...............129
APNDICE D. HOJAS DE DATOS INTEGRADOS......................................................134

NDICE DE FIGURAS

Figura 1-1 Diagrama de bloques de un

sistema fotovoltaico..........................................3

Figura 2-1 Juntura N-P en equilibrio.................................................................................9


Figura 2-2 Efecto Fotovoltaico de una Celda Solar.......................................................10
Figura 2-3 Celda Fotovoltaica con Carga Elctrica........................................................10
Figura 2-4 Circuito equivalente de una celda solar........................................................12
Figura 2-5 Caracterstica de un panel fotovoltaico ante variaciones climticas............13
Figura 2-6 Interaccin de un panel fotovoltaico con carga............................................15
Figura 2-7 Esquema general de un sistema fotovoltaico con carga DC........................16
Figura 2-8 Aplicaciones de la energa solar fotovoltaica................................................17
Figura 3-1 Sistema Fotovoltaico Propuesto...................................................................22
Figura 3-2 Tarjeta de Programacin de Microcontroladores PIC...................................24
Figura 3-3 Conversor DC/DC Boost...............................................................................25
Figura 3-4 Modo de conduccin continua para un conversor DC/DC Boost.................26
Figura 3-5 Conversor Buck Boost..............................................................................28
Figura 3-6 Modo de conduccin continua para un conversor DC/DC Buck - Boost......29
Figura 3-7 Configuracin del sensor de corriente LEM LA 55-P...................................33
Figura 3-8 Sensor de corriente de efecto Hall LEM LA 55-P utilizado...........................33
Figura 3-9 Esquema de filtro antialiasing Tschebyscheff de segundo orden.................34
Figura 3-10 Circuito de disparo opto acoplado del transistor MOSFET........................36
Figura 3-11 Diagrama de bloque de la Tarjeta Conversor Boost...................................37
Figura 3-12 Tarjeta conversor Boost implementada......................................................38
Figura 3-13 Diagrama de bloques de la Tarjeta Conversor Buck - Boost......................39
Figura 3-14 Tarjeta Conversor Buck Boost implementada........................................39
Figura 3-15 Diagrama de bloques de la tarjeta LCD......................................................41

Figura 3-16 Diagrama de flujo de la rutina de inicializacin del mdulo LCD.................41


Figura 3-17 Tarjeta LCD implementada...........................................................................43
Figura 3-18 Diagrama de instrucciones predefinidas en el PIC......................................43
Figura 3-19 Comunicacin serial PC / Unidad de control................................................44
Figura 4-1 Curva P V bajo seguimiento del MPP con algoritmo P&O..........................50
Figura 4-2 Lazo de control para la tensin del panel solar..............................................50
Figura 4-3 Diagrama de flujo del mtodo perturbacin y observacin............................51
Figura 4-4 Curva P V bajo seguimiento del MPP con algoritmo Cond. Inc..................53
Figura 4-5 Diagrama de flujo del algoritmo conductancia incremental............................55
Figura 4-6 Esquema control difuso para el conversor DC/DC.........................................56
Figura 4-7 Funciones de membresa de el controlador difuso........................................58
Figura 4-8 Configuracin del controlador difuso..............................................................60
Figura 4-9 Superficie caracterstica del controlador difuso..............................................61
Figura 5-1 Resultado generacin de curvas I V y P V, a igual temperatura y diferente
nivel de radiacin solar .................................................................................. 65
Figura 5-2 Resultado generacin de curvas I V y P V, a igual nivel de radiacin solar
y diferentes temperatura ................................................................................ 66
Figura 5-3 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Boost.............68
Figura 5-4 Resultado de MPPT utilizando P&O y conversor DC/DC Boost....................69
Figura 5-5 Resultado de MPPT utilizando lgica difusa y conversor DC/DC Boost.......70
Figura 5-6 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Buck Boost
actuando como conversor reductor de tensin ............................................. 71
Figura 5-7 Resultado de MPPT utilizando P&O y conversor DC/DC Buck Boost
actuando como reductor de tensin. ............................................................. 72
Figura 5-8 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Buck Boost
actuando como conversor elevador de tensin ............................................. 73

vii

Figura 5-9 Resultado de MPPT utilizando P&O y conversor DC/DC Buck Boost
actuando como conversor elevador de tensin............................................74
Figura 5-10 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Boost con
variacin en la RSI. ........................................................................................ 76
Figura 5-11 Resultado de MPPT utilizando P&O y conversor DC/DC Boost con variacin
en la RSI. ....................................................................................................... 77
Figura 5-12 Resultado de MPPT utilizando lgica difusa y conversor DC/DC Boost con
variacin en la RSI. ........................................................................................ 78
Figura 5-13 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Buck Boost,
actuando como conversor reductor de tensin y con variacin en la RSI. ... 79
Figura 5-14 Resultado de MPPT utilizando P&O y conversor DC/DC Buck Boost,
actuando como conversor reductor de tensin y con variacin en la RSI. ... 80
Figura 5-15 Resultado de MPPT utilizando Cond Inc y conversor DC/DC Buck Boost,
actuando como conversor elevador de tensin y con variacin en la RSI. . . 81
Figura 5-16 Resultado de MPPT utilizando P&O y conversor DC/DC Buck Boost,
actuando como conversor reductor de tensin y con variacin en la RSI. ... 82

CAPTULO PRIMERO
INTRODUCCIN

CAPITULO PRIMERO: INTRODUCCIN

1. INTRODUCCIN
1.1

INTRODUCCIN GENERAL
En la actualidad, ante la necesidad de contar con nuevas fuentes de energa, se

ha invertido esfuerzo en el mbito de la investigacin para el aprovechamiento de


recursos renovables, los cuales puedan ser una alternativa viable al momento de
enfrentar los nuevos escenarios que se avecinan debido a la escasez de los recursos
fsiles. Es por ello, que dichos esfuerzos estn dirigidos a la utilizacin del recurso
elico y en estos ltimos aos, al uso de la energa solar como fuentes energticas
factibles. Sin embargo, los sistemas elicos y solares poseen ciertos inconvenientes
como el costo y la dependencia de los factores climticos. Esto ha llevado que en la
actualidad se utilicen sistemas que combinen diversas formas de energa (denominados
sistemas hbridos) a modo de obtener un mejor desempeo, tales como los sistemas
elico-solar-diesel. Por otra parte, se hace necesario en estos sistemas almacenar la
energa (por ejemplo, en banco de bateras) y de esta forma disminuir los ciclos partida /
parada de los equipos moto generadores.

En el presente trabajo de tesis se presentan estrategias de control para ser


aplicado a dos sistemas basados en energa solar que suministran energa a una carga
aislada. Dichos sistemas estn compuesto de un panel solar que se conectar a la
carga (banco de bateras) por medio de un conversor DC/DC Boost y luego un Buck Boost. Siendo estos ltimos los que se discutirn con mayor nivel de detalle.

En la figura 1.1 se muestra un diagrama de bloques de los elementos ms


representativos de una aplicacin basada en energa solar.

Figura 1-1 Diagrama de bloques de un sistema fotovoltaico

El panel solar realiza la conversin directa de energa solar a energa elctrica.


Mientras que el conversor DC/DC, es utilizado para regular la energa suministrada por
el panel a la carga. Dicha regulacin es posible, debido a la seal PWM (Pulse Widht
Modulator) que proporciona el microcontrolador.

La implementacin de los sistemas se centra en el Microcontrolador PIC18F452,


perteneciente a la empresa Microchip.

Este trabajo de tesis fue dirigido por el Dr. Roberto Crdenas Dobson, acadmico
del departamento de Ingeniera Elctrica de la Universidad de Magallanes.

1.2

OBJETIVOS DE LA TESIS

Los objetivos considerados en esta Tesis son los siguientes:

Discutir el diseo e implementacin del hardware utilizado para la construccin


de los conversores elevador (Boost) y reductor-elevador (Buck-Boost), los cuales
sern controlados de manera digital mediante el uso de un Microcontrolador
(PIC18F452).

Utilizar tcnicas de Control Digital y Control Difuso, para controlar

los

conversores DC / DC y realizar un seguimiento del punto de mxima potencia en


un panel solar.

Estudiar el desempeo de los sistemas de control ante diversas situaciones,


tales como: nivel de radiacin solar incidente constante, variacin en el nivel de
radiacin solar y efectos de la temperatura en un panel solar.

Describir

el

software

de

control

implementado

en

lenguaje

C,

del

microcontrolador PIC18F452.

Describir el software de interfaz con el usuario desarrollado para la


comunicacin con la unidad de control de cada conversor DC/DC implementado,
en lenguaje Visual Basic.

1.3

ESTRUCTURA DE LA TESIS

La presente tesis cuenta con seis captulos, que estn organizados de la


siguiente forma:

En el captulo segundo se hace un estudio de las celdas solares. Dicho estudio


se centrar en temas como: principio de funcionamiento, materiales utilizados en su
construccin, aplicaciones tpicas, zona de operacin ms ptima de un panel solar.

En el captulo tercero describe el hardware diseado y utilizado para efectos de


validacin de resultados. Las siguientes tarjetas fueron construidas durante el desarrollo
de esta tesis:

Tarjeta LCD: Diseada para interactuar con el usuario, proporcionando la


informacin de los niveles de tensiones, corrientes y potencias, a las cuales se
encuentra operando el conversor (Boost o Buck-Boost), adems de visualizar el
estado de carga del banco de bateras mediante LEDs (Entre otros).

Tarjeta de programacin de microcontroladores de 8, 18, 28 y 40 pines:


Diseada para el borrado, lectura y escritura de microcontroladores PIC.

El captulo cuarto describe los algoritmos de control empleados, para efectos de


bsqueda del punto de mxima potencia de un sistema fotovoltaico. En esta tesis, los
algoritmos utilizados son: (a) perturbacin y observacin, (b) conductancia incremental y
(c) controlador basado en lgica difusa.

El captulo quinto presenta los resultados experimentales obtenidos mediante los


sistemas fotovoltaicos propuestos, ante diversas situaciones tales como: nivel de
radiacin solar incidente constante, variacin en el nivel de radiacin solar y efectos de
la temperatura en un panel solar.

El captulo sexto entrega las conclusiones generales de este trabajo.

CAPTULO SEGUNDO
CELDAS SOLARES

CAPTULO SEGUNDO: CELDAS SOLARES

2. CELDAS SOLARES
2.1

INTRODUCCIN
Una celda solar es un dispositivo que absorbe luz (energa solar) y la convierte en

energa elctrica. Para convertir la energa del Sol en energa elctrica y poder utilizarla
de la forma ms eficiente y racional posible se disean los sistemas fotovoltaicos. La
celda solar es el elemento que convierte los fotones que proceden del Sol en una
corriente elctrica que circula por un elemento denominado carga. Hoy en da la celda
solar ms comn es un dispositivo de estado slido fabricado con materiales
semiconductores.

El efecto fotovoltaico fue identificado por primera vez en 1839 por Becquerel [1],
quien observ que la tensin que apareca entre dos electrodos inmersos en electrolito
dependa de la intensidad de luz que incidiese sobre ellos. El mismo efecto fue
observado por Adams y Day, en 1879, pero esta vez utilizando un elemento slido: el
Selenio. Sin embargo, la primera celda solar moderna tuvo que esperar a Chapin en
1954. Fue una celda de Silicio y no se dieron muchos detalles de su estructura debido,
probablemente, al temor a que fuese copiada. La motivacin para el estudio y desarrollo
de las celdas solares durante los primeros aos de investigacin fue su aplicacin como
fuente suministradora de energa a los satlites espaciales. Hoy se espera que las
celdas solares y la energa solar fotovoltaica contribuyan de forma importante al
suministro de energa limpia a la sociedad.

En el presente captulo, se discuten principalmente: principio de funcionamiento,


caractersticas y aplicaciones de las celdas solares.

2.2

PRINCIPIO DE FUNCIONAMIENTO

Una celda solar es un dispositivo capaz de convertir la energa proveniente de la


radiacin solar en energa elctrica.

El silicio es el material ms ampliamente utilizado en la fabricacin de celdas


solares. En su forma cristalina pura, es un semiconductor, con muy pocas cargas libres
dentro de l. Por este motivo el silicio tiene una resistencia muy elevada. Utilizando un
proceso llamado difusin [2], se pueden introducir pequeas cantidades de otros
elementos qumicos (dopaje), lo que permite disminuir el valor inicial de la resistividad,
creando al mismo tiempo, zonas con diferentes tipos de carga. La celda fotovoltaica
utiliza dos tipos de materiales semiconductores, el tipo N y el tipo P.

Cuando la sustancia difusa cede fcilmente electrones, se crea dentro del


semiconductor una zona que cuenta con exceso de cargas negativas (electrones). Esto
es lo que se conoce como un semiconductor del tipo N.

Por otra parte, cuando la sustancia difusa capta electrones, los tomos que los
pierden quedan cargados positivamente. En estas zonas predominan las cargas
positivas (huecos) obtenindose un semiconductor del tipo P.

El proceso de difusin es continuo, permitiendo la fabricacin en el mismo material


de dos zonas semiconductoras adyacentes, una del tipo N; la otra del tipo P. El espacio
que separa ambas zonas se denomina juntura de transicin.

Segn lo expuesto en [2], las cargas mayoritarias en una zona se desplazan hacia
la de baja densidad en la zona opuesta. El desplazamiento de las cargas negativas y
positivas deja a la zona de juntura totalmente libre de cargas. Las zonas adyacentes a
la misma tienen concentraciones de carga minoritarias (cargas negativas en el lado P y
cargas positivas en el lado N). La acumulacin de estas cargas a ambos lados de la
juntura crea una diferencia de potencial que impide la continuacin del desplazamiento
inicial. Por este motivo, la corriente de desplazamiento se anula. Se dice entonces que
la juntura N-P ha alcanzado el estado de equilibrio. Ver figura 2.1.

Figura 2-1 Juntura N-P en equilibrio

Cuando la luz incide sobre un semiconductor de este tipo, el bombardeo de los


fotones libera electrones de los tomos de silicio creando dos cargas libres, una positiva
y otra negativa. El equilibrio elctrico de la juntura N P se ve alterado por la presencia
de estas nuevas carga libres. El resultado de estas cargas libres es lo que se conoce
como efecto fotovoltaico (ver figura 2.2).

CAPTULO SEGUNDO: CELDAS SOLARES

10

Figura 2-2 Efecto Fotovoltaico de una Celda Solar


Si el semiconductor bajo incidencia de luz se le conecta dos cables, uno en la
zona N y en la zona P, se verifica la existencia de un voltaje entre los mismos. Ahora si
los terminales de la celda fotovoltaica son conectados a una carga elctrica, circular
una corriente elctrica guiada por la accin de un campo elctrico, la cual se origina por
la unin de los materiales N P. Dicha corriente ha de circular por el circuito formado
por la celda , los cables de conexin y la carga externa. La figura 2.3 muestra este tipo
de circuito.

Figura 2-3 Celda Fotovoltaica con Carga Elctrica

CAPTULO SEGUNDO: CELDAS SOLARES

11

El efecto fotovoltaico, mencionado en el prrafo anterior solo es posible en una


parte del espectro luminoso. Dicho segmento lo componen bsicamente las longitudes
de onda ms pequeas, las cuales estn comprendidas entre la luz ultravioleta y en el
espectro visible al color violeta [2]. Adems de esto, el material semiconductor utilizado
en la fabricacin de la celda, es quien determina que parte del espectro es el ptimo
para provocar el desequilibrio que genera las cargas libres (efecto fotovoltaico).

El voltaje de una celda fotovoltaica es de corriente continua. De acuerdo a lo


mencionado en [3], para celdas de silicio este voltaje es de alrededor de 0.5 [V].

En un instante determinado, la potencia elctrica proporcionada por una celda


Fotovoltaica, est dada por el producto de los valores instantneos del voltaje y la
corriente de salida. Este valor es afectado por la temperatura y el nivel de radiacin
solar incidente, tal como se ver a continuacin.

2.3

CARACTERSTICAS ANALTICAS

Una celda solar es un dispositivo no lineal [4] al [6], cuya relacin I V esta dada
por la ecuacin (2.1). En ella se puede apreciar la dependencia de una celda solar con
respecto a la temperatura, mientras que en 2.3 la dependencia es del nivel de radiacin
solar. El circuito equivalente de una celda solar, se ilustra en la figura 2.4.

LG

I
sat

sat

q
IR

exp
AKT

qEgo 1

exp
T
Tr
KT r

I or

T 3

) V
IR
S

(V
S

(2-1)

RSH

(2-2)

I
LG

I sc K I (T 25)

(2-3)

100
Donde
I

: Corriente de salida de la celda solar.

: Voltaje de salida de la celda solar.

I
LG

: Es la corriente de la celda solar bajo un determinado nivel de radiacin.

Isat

: Es la corriente inversa de saturacin de la celda solar.

: Es la carga de un electrn.

: Es la constante de Boltzmanns.

: Es un factor ideal para las junturas N P.

RS

: Es la resistencia serie intrnseca de la celda solar

RS

: Es la resistencia paralela intrnseca de la celda solar

Io

: Es la corriente de saturacin a Tr

: Es la corriente de corto circuito (Vo 0 )

Isc

: Es la temperatura de referencia C.

Tr
T

: Es la temperatura de la celda solar C.

Ego

: Es la banda de energa del semiconductor usado en la celda solar

KI

: Es el coeficiente de temperatura de la corriente de cortocircuito

: Es la radiacin en mW cm

Figura 2-4 Circuito equivalente de una celda solar

Se menciona en [4] y [6], que en lugar de la caracterstica I V dada en (2.1), se


usa en muchos casos la ecuacin (2.4), la cual desprecia la resistencia intrnseca en
paralelo de la celda.
V
R

AKT

ln

I I
LG

sat

I sat

(2-4)

Por medio de las ecuaciones 2.1 al 2.3, se pueden obtener las curvas I V
tericas de una celda fotovoltaica. Y por medio del producto de ambas magnitudes, se
obtiene la curva de potencia versus voltaje (P V) de una celda solar. Como la
potencia proporcionada por una nica celda solar es muy baja (del orden de 1 a 2W) las
celdas solares se interconectan formando lo que se conoce como mdulo o panel
fotovoltaico. La figura 2.5a y b muestran

la variacin de la caracterstica de salida

I - V y P V de un panel fotovoltaico comercial para diferentes niveles de temperatura y


radiacin solar, respectivamente.

Figura 2-5 Caracterstica de un panel fotovoltaico I V y P V (a) con radiacin


constante y variacin en la temperatura y (b) con temperatura constante y variacin
en el nivel de radiacin.

Cada curva I V tiene un punto de mxima potencia (denominado MPP), el cual


es el punto de operacin ptimo (Iop,Vop) para el uso eficiente de un panel fotovoltaico.
Segn lo mencionado en [6], el punto de mxima potencia se localiza en el codo de la
curva caracterstica corriente versus voltaje I V. Ver figura 2.5(a) y (b).
2.4

SEGUIMIENTO DEL MPP

Al momento de conectar una carga del tipo resistiva R a un panel solar. Segn la
ecuacin (2.5), se producir una recta que intercepta la caracterstica I V del panel
solar en un punto, en el cual se define las condiciones de corriente voltaje de
operacin del panel. Ver figura 2.6(a).

1
I V
R

(2-5)

Por otro lado, la carga ms frecuente de un panel solar es una batera, debido a
que las celdas solares encuentran su principal aplicacin en el suministro de energa a
localidades aisladas, llmese un pequeo pueblo (de unas decenas de familia), en la
cual la mayor demanda de energa se da entre las 6 p.m. y las 10 p.m. Lapso que no
coincide con las horas de mayor nivel de radiacin solar incidente, requirindose
almacenar energa.

La tensin de una batera depende de su estado de carga pero adems es


afectada por la temperatura del electrolito y su vejez, entre otros factores. Es esta
tensin la que define el voltaje de operacin del panel y con ello la corriente. A medida
que la corriente va cargando la batera, su tensin aumenta y con ello el punto de
operacin del panel se va desplazando a lo largo de la caracterstica I V. Ver figura
2.6 (b).

(a)

(b)

Figura 2-6 Interaccin de un panel fotovoltaico con carga (a) resistiva y (b) galvnica
de 12 V.
Tanto la carga resistiva como la galvnica (batera), generalmente no recibirn la
mxima potencia generada por l o los paneles fotovoltaicos. Esto se debe a que

ser

la carga quien impondr el punto de operacin (V , I ) , que no necesariamente es


coincidente con el punto de operacin ptimo (Vop, Iop) . Adems, suelen

haber

variaciones climticas que harn del punto (Vop, Iop) un punto en movimiento.

Debido a ello se debe utilizar una estrategia de control para seguir el punto de
mxima potencia y con ello transferir la mxima energa capturada por el panel solar a
la carga. Esto es posible de conseguir mediante la insercin de un conversor DC/DC
como interfaz entre el o los paneles solares y la carga (ver figura 2.7). El mencionado
conversor posee una caracterstica intrnseca asociada a l relacionada con la
capacidad que presentan estos sistemas para reflejar o adaptar la impedancia vista
desde su entrada y la conectada a su salida.

En este sentido, los conversores son similares a los transformadores, cuando son
empleados como adaptadores de impedancia, excepto que en los conversores el
parmetro de adaptacin no es la relacin de espiras entre el primario y el secundario,
sino el ciclo de trabajo, el cual puede ser controlado de manera electrnica [7].

Figura 2-7 Esquema general de un sistema fotovoltaico con carga DC

En resumen, la principal funcin de la variacin de la impedancia del conversores


ajustar el voltaje de salida del panel fotovoltaico al valor en el cual se entrega la mxima
energa a la carga. Este proceso se denomina: seguimiento del punto de mxima
potencia MPPT (Maximum Power Point Tracking) en sistemas fotovoltaicos.

2.5

APLICACIONES

Realizar una descripcin exhaustiva de las aplicaciones de la energa solar


fotovoltaica es una tarea incmoda, debido a que como fuente energtica es posible su
utilizacin en principio para cualquier fin.

La introduccin al mercado, y por tanto en la sociedad, de una u otra aplicacin


viene

condicionada

por

su

rentabilidad

frente

otras

fuentes

de

energa

convencionales.

Una primera clasificacin puede realizarse en funcin de los campos de


aplicacin. Este hecho se ilustra en la figura 2.8.

ENERGA SOLAR
FOTOVOLTAICA

TELECOMUNICACIONES

ALUMBRADO
AUTNOMO

ELECTRIFICACIN
RURAL

APLICACIONES
ASILADAS DE LA RED

APLICACIONES
AGROGANADERAS

BOMBEOS

SEALIZACIN Y
ALARMA

APLICACIONES
CONECTADAS A LA RED

CENTRALES
FOTOELCTRICAS

INTEGRACIN
EN EDIFICIOS

Figura 2-8 Aplicaciones de la energa solar fotovoltaica


Las aplicaciones aludidas en la figura 2.8, se detallan a continuacin.

2.5.1 ELECTRIFICACIN RURAL

Viviendas aisladas
Viviendas de fin de semana o de ocupacin temporal
Refugios de montaas

2.5.2 APLICACIONES AGROGANADERAS

Bombeo de agua
Riego por goteo
Sistemas de ordeo
Sistemas de refrigeracin de leche

2.5.3 ILUMINACIN

Iluminacin de vallas publicitarias


Iluminacin de alumbrado pblico

2.5.4 TELECOMUNICACIONES

Repetidores y reemisores de radio y televisin


Telemetra
Redes telefnicas rurales
2.5.5 SEALIZACIN Y ALARMA
Radiofaros y radiobalizas
Sealizacin de autopistas

Faros y boyas para la navegacin martima

2.5.6 OTRAS APLICACIONES

Relojes electrnicos
Calculadoras
Satlites y misiones espaciales
Etc.

Todas estas aplicaciones caben definirlas como aplicaciones de la energa solar


fotovoltaica para sistemas autnomos, es decir, aquellos en lo que el total de la
necesidad energtica es cubierta por el sistema. Mencin aparte merecen las centrales
fotovoltaicas conectadas a la red e integracin de paneles en edificios. En estos casos,
los sistemas funcionan proporcionando la energa capturada por las celdas solares a la
red elctrica, sin ms limitaciones que la propia produccin diaria de energa. Sin
embargo, en los dos tipos es importante realizar la mxima transferencia de potencia.

CAPTULO TERCERO
SISTEMA EXPERIMENTAL

CAPTULO TERCERO: SISTEMA EXPERIMENTAL

21

3. SISTEMA EXPERIMENTAL
3.1

INTRODUCCIN

En el presente captulo se describe el hardware diseado e implementado para el


sistema fotovoltaico.

El sistema fotovoltaico planteado, est compuesto por un panel solar fabricado por
ISOFOTN, y cuya mxima potencia extrable es de 106 W. Se utilizan tambin cuatro
bateras de 6V cada una. Las bateras son marca Trojan de ciclo profundo, las cuales
se interconectan entre s para formar un banco de bateras, y este a su vez es la carga
del sistema fotovoltaico. Como interfaz entre el panel solar y la carga se conectar un
conversor DC/DC, primero un conversor Boost y luego un Buck Boost, ambos
diseados e implementados en el desarrollo de esta tesis. Cada conversor cuenta con
una unidad de control, cuyo funcionamiento se basa en

un

microcontrolador

PIC18F452. El microcontrolador, realiza la tarea de control sobre cada conversor y


maneja una serie de perifricos entre los que destaca:

Comunicacin serial con un computador PC.


Lectura / Escritura de una memoria EEPROM externa

Adems del diseo y la construccin de los conversores, se cuenta con las


siguientes tarjetas diseadas e implementadas:

Tarjeta LCD: Diseada para interactuar con el usuario, proporcionando la


informacin de los niveles de tensiones, corrientes y potencias, a las cuales se
encuentra operando el conversor (Boost o Buck-Boost), adems de visualizar el
estado de carga del banco de bateras mediante LEDs ( Entre otros).

Tarjeta de programacin de microcontroladores de 8, 18, 28 y 40 pines:


Diseada

principalmente

para

el

borrado,

lectura

escritura

microcontroladores PIC.

El sistema fotovoltaico descrito, se muestra de manera general en la figura 3.1.

Figura 3-1 Sistema Fotovoltaico Propuesto

de

3.2

MICROCONTROLADOR PIC18F452

El microcontrolador PIC18F452 pertenece a la familia de microcontroladores de 8


bits (bus de datos), an cuando tiene compatibilidad de hardware con las familias
PIC17FXXX, PIC16FXXX, PIC16F5X y PIC12FXXX. Su rendimiento alcanza los 10
MIPS (Mega Instrucciones por Segundo), disponer de tecnologa RISC con 77
instrucciones de 16 bit, lograr un rango de direccionamiento de 2Mbytes de memoria de
programa, funcionar a una frecuencia desde 0 a 40 MHz y puede ser programado en el
circuito de aplicacin va comunicacin serial. Adems, el PIC18F452 posee una
memoria de programa del tipo FLASH de 32Kbytes, una memoria de datos (RAM) de
1536 bytes, 256 bytes de EEPROM. En las caractersticas de los perifricos destaca: 5
puertos (A, B, C, D y E), 4 temporizadores, 2 mdulos de captura/comparacin/pwm,
mdulo AUSART, mdulo de puerto paralelo, SSP (Puerto Serie Sincrnico) el cual
puede configurarse como SPI (Interfase serial de perifricos) de 3 hilos o como

bus

I C de dos hilos y 8 canales con conversin A/D de 10 bits. Para mayores detalles ver

el Apndice C.

Para realizar la tarea de programacin del microcontrolador se utiliz el compilador


PCWH (versin 3.187) de la casa CCS Inc. A su vez, el compilador se ha de integrar en
un entorno de desarrollo integrado (IDE) que ha de permitir todas y cada una de las
fases que compone un proyecto, desde la edicin, depuracin y finalmente compilacin.
El compilador traduce el cdigo C del archivo fuente (.C) a lenguaje mquina (.HEX)
del PIC.

3.3

TARJETA DE PROGRAMACIN DE MICROCONTROLADRES PIC

La tarjeta de programacin de microcontroladores PIC permite el borrado, lectura


y escritura de microcontroladores de 8, 18, 28 y 40 pines y memorias seriales EEPROM
de 8 pin. La alimentacin de la tarjeta, se realiza mediante fuente externa, a una tensin
de aproximadamente 14 V. Por otra parte, para el traspaso del cdigo mquina (archivo
.HEX) generado por el compilador PCWH de CCS al PIC, se utiliza el software gratuito
ICPROG en su versin 1.05D. Dicho traspaso de la informacin, se realiza
conexin paralela entre la tarjeta de programacin y el PC.

La figura 3.2 muestra la tarjeta implementada, mientras que el esquemtico de


sta, se encuentra disponible en el Apndice B.

Figura 3-2 Tarjeta de Programacin de Microcontroladores PIC

va

3.4

CONVERSORES DC/DC

3.4.1 CONVERSOR BOOST

La figura 3.3 muestra a un conversor boost (elevador). Como su nombre lo indica,


el voltaje de salida es siempre mayor que el voltaje de entrada. Cuando el switch S esta
cerrado (figura 3.4 (a)), toda la tensin de la fuente primaria se aplica sobre la bobina, lo
que provoca que la corriente circulante por la misma aumente, y de esta forma la
inductancia almacene energa. Si ahora el interruptor se abre (figura 3.4 (b)), la tensin
existente en la bobina se suma a la tensin de la fuente, obtenindose de este modo
una tensin de salida siempre mayor a la de la fuente y de idntica polaridad.

Figura 3-3 Conversor DC/DC Boost


A la suma del tiempo de encendido ( tON ) y el tiempo de apagado ( tOFF ), se conoce
como periodo de switching ( TS ), mientras que al inverso del periodo de switching se le
conoce como frecuencia de switching ( f S ). Al cuociente entre tON y TS , se le llama ciclo
de trabajo D (Ecuacin 3.1).

tON
TS

;0D
1

(3-1)

3.4.1.1 MODO DE CONDUCCIN CONTINUA

En la figura 3.4 muestra las formas de onda para este modo de conduccin,
donde la corriente del inductor fluye continuamente iL t 0.

Figura 3-4 Modo de conduccin continua (a) switch encendido; (b) switch apagado
Segn lo expuesto en [8], en estado estacionario la integral del voltaje del
inductor sobre un periodo de switching debe ser cero (ver ecuacin 3.2 y 3.3).

(3-2)

TS

v L dt

0
0

O bien:
(3-3)

Vd t ON Vd VO t OFF
0

Dividiendo la ecuacin 3.3 por T , y arreglando los trminos se obtiene la


S
relacin existente entre la tensin de salida y la de entrada. En modo de conduccin
continua, esta relacin esta dada por la ecuacin 3.4.

TS 1
VO
Vd tOFF 1 D

(3-4)

Asumiendo que no existen perdidas en el


circuito,

Pd PO .

Vd I d VO I O
Y de esta forma, basndose en la ecuacin 3.4, se obtiene la ecuacin 3.5
IO
Id

1 D

(3-5)

3.4.2 CONVERSOR BUCK BOOST

Un conversor Buck Boost (reductor elevador) se puede obtener por la


conexin en cascada de dos conversores bsicos: un conversor reductor (Buck) y un
conversor elevador (Boost). El conversor Buck Boost tiene un voltaje de salida que
puede ser mayor o menor al voltaje de entrada, y una polaridad en el voltaje de salida
invertido con respecto al terminal comn de la tensin de entrada.

La conexin en cascada de un conversor Buck y un conversor Boost, puede ser


fusionado dentro de un solo conversor denominado Buck Boost, este hecho se ilustra
en la figura 3.5. Cuando se cierra el switch S, la fuente de entrada (Vd) provee energa
a la bobina y el diodo queda inversamente polarizado (figura 3.6(a)). Al abrir el switch
S, la energa almacenada en el inductor es transferida a la carga (figura 3.6 (b)). No hay
energa suministrada por la fuente de entrada en este intervalo. En el anlisis de estado
estacionario presentado aqu, el capacitor de salida se asume muy grande, lo que

trae

como consecuencia que el voltaje de salida se suponga constante vo (t) Vo .

Figura 3-5 Conversor Buck Boost

3.4.2.1 MODO DE CONDUCCIN CONTINUA

La figura 3.6 ilustra el comportamiento de un conversor Buck Boost operando


en modo de conduccin continua, donde la corriente de la inductancia fluye
continuamente i L t 0 .

Figura 3-6 Modo de conduccin continua (a) switch encendido (b) switch apagado
De acuerdo a lo mencionado por [8], en estado estacionario la integral del voltaje
del inductor sobre un periodo de switching debe ser cero (ecuacin 3.6).

Vd DTS VO 1 D TS
0

(3-6)

Dividiendo la ecuacin 3.6 por T , y arreglando los trminos se obtiene la


S
relacin existente entre la tensin de salida y la de entrada. En modo de conduccin
continua, esta relacin est dada por la ecuacin 3.7.

VO
Vd

D
1
D

(3-7)

CAPTULO TERCERO: SISTEMA EXPERIMENTAL

30

Asumiendo que no existen perdidas en el circuito, P P .


d
O

Vd I d VO I O
Y de esta forma, basndose en la ecuacin 3.7, se obtiene la ecuacin 3.8

IO 1 D

I d D

(3-8)

3.4.3 DISEO DEL CONVERSOR DC/DC

De las secciones 3.4.1 y 3.4.2, se logr apreciar que las diferencias en las
respuestas entre el conversor DC/DC Boost y el Buck Boost, radican en la variacin
en el ordenamiento de los componentes principales que conforman dichos conversores
(inductancia, condensadores, diodo y transistor). Es por ello que de esta seccin en
adelante, al momento de mencionar un conversor DC/DC, se har referencia tanto a la
topologa elevadora de tensin (Boost), como a la reductora elevadora (Buck - Boost).

Segn lo anterior y de acuerdo a la referencia [9], el conversor DC/DC se ha


diseado segn las caractersticas descritas a continuacin:

Entrada de voltaje al conversor DC/DC Vd : 13 a 17.4 V.


Salida de voltaje del conversor DC/DC VO : 26 V
Frecuencia de switching

fs: 33kHz
2

Potencia mxima (peak) del panel solar: 106 Wp (100 mW / cm , 25 C, A.M 1.5 )
Mximo ripple del voltaje de salida Vc : 5%
Mximo ripple de la corriente de entrada I : 35%
Conversor operando en modo de conduccin continua hasta 0.45A.

CAPTULO TERCERO: SISTEMA EXPERIMENTAL

31

De acuerdo a lo expuesto por [8] al [11], adems de las ecuaciones (3.4) y (3.5), es
necesario para el diseo de un conversor DC/DC las siguientes ecuaciones.
I L

Vd

(3-9)

fS
L
V
O

(3-10)

IO
fS
C

Para las especificaciones dadas y utilizando la ecuacin (3.4), resulta:


0 D 0.5
Utilizando la ecuacin (3.9) con D 0.44 , la inductancia obtenida es:
L 100H

Por otro lado, utilizando la ecuacin (3.10)


con

I O 2.77 A , el capacitor calculado es:

C 28.41F

En esta tesis, la inductancia utilizada en la construccin del conversor DC/DC es


de 100H y la cual soporta una corriente de 7.8A que se encuentra por encima de los
6.1A capaz de entregar el panel solar. Por otro lado, el condensador de salida utilizado
es de 4700
F

y soporta una corriente de ripple cercana a los 16 A.

El switch de potencia incorporado en el conversor DC/DC, es un MOSFET de


canal N, especficamente el transistor IRFZ40, el cual tiene como caracterstica una
muy baja resistencia de conduccin 30m, soporta adems una tensin Vds 50V y
una corriente Id 50A . Por otro lado, el diodo de potencia utilizado es el STTA2512P,
el cual es un diodo ultra rpido, con un tiempo de recuperacin de 60ns , capaz de

CAPTULO TERCERO: SISTEMA EXPERIMENTAL


transportar una corriente de 25 A y tener una tensin en conduccin menor a 1.9 V.

32

3.4.4 UNIDAD DE CONTROL

La unidad de control (figura 3.1) esta basada en un microcontrolador PIC18F452


y es la encargada de realizar:

Procesamiento de las seales de medicin de tensiones y corrientes del sistema


fotovoltaico.
Acondicionar las seales provenientes de los sensores de tensin y corriente
Generar la seal de PWM necesaria para controlar el flujo de potencia del
conversor.
Tener acceso a perifricos (LCD, EEPROM externo, comunicacin serial con un
PC).

Lo referente al acceso de perifricos que realiza la unidad de control, ser tratado


con mayor nivel de detalle en secciones posteriores de este captulo.

La medicin de corrientes en el sistema fotovoltaico utiliza dos sensores LEM


LA55 P. La corriente mxima que es capaz de medir estos sensores es 50 A y el
sensado se realiza pasando corriente mediante un conductor por el orificio rectangular
que este posee. Estos sensores tienen tres pines, de los cuales dos de ellos son para
su alimentacin de +15V y -15V. El tercer pin denominado M, es quien entrega en
definitiva la medicin representado en un valor de tensin. La figura 3.7 ilustra la
configuracin de pines de este sensor, junto con las resistencias asociadas que se
deben conectar para su adecuado funcionamiento, mientras que la figura 3.8 muestra el
sensor LEM utilizado.

Figura 3-7 Configuracin del sensor de corriente LEM LA 55-P

Figura 3-8 Sensor de corriente de efecto Hall LEM LA 55-P utilizado

La resistencia RM se obtiene de manera que la tensin mxima de salida se


logre con una corriente de 21mA. Considerando que la tensin mxima de salida
deseada es de 5V, se obtiene el siguiente valor de R :
M

R
M

5 220
M 21e
I 3

(3-11)

Por otro lado, la medicin de las tensiones se realiz por medio de divisores de
tensin conformado por resistencias, para efecto de disminucin de costos del sistema
fotovoltaico.

El acondicionamiento de seal o interfaz cumple la funcin de ajustar los niveles


de tensin (0 a 5V) adems de filtrar las seales de tensiones y corrientes del sistema
fotovoltaico, disminuyendo el ruido al que se encuentran expuestas, producto

de

dispositivos de potencia del conversor. Las seales acondicionadas son las siguientes:
tensin y corriente de entrada proveniente del panel solar

Vd

y Id

y,

tensin y

corriente del banco de batera Vo y Io. Adems, evitan problemas de distorsin de las
seales causadas por el muestreo, lo cual es conocido como aliasing.

Para solucionar lo anteriormente expuesto se implement un filtro pasa bajos de


segundo orden Chebyshev [12], con una frecuencia de corte de 10Hz y ganancia
unitaria. La figura 3.9 ilustra el esquema de este tipo de filtro.

Figura 3-9 Esquema de filtro antialiasing Chebyshev de segundo orden

La funcin de transferencia para el filtro ilustrado en la figura 3.10, se entrega en


la ecuacin 3.12.

A s

1 C
C1

R1
R2

1
s

R1 R2 C1C2 s

(3-12)

Donde:
a1 C C1 R1 R2
b1 C2 R1 R2C1C2

Segn lo expuesto en [11], los coeficientes a y


1
b1

para un filtro Chebyshev de

segundo orden estn dados acorde a la siguiente tabla.

Filtro Chebyshev de Segundo Orden


a1

b1

1.0650

1.9365

Tabla 3-1 Filtro 2 orden Tschebyscheff


De la tabla 3.1 y con una f
C
10Hz
son los siguientes: C1 0.01F , C2 0.1F
,

los valores de condensadores y resistencias

R1
1M

y R2 1M .

La generacin del PWM se discute en la siguiente seccin DISPARO DEL


TRANSISTOR MOSFET.
3.4.5 DISPARO DEL TRANSISTOR MOSFET

Para efecto de controlar el transistor MOSFET IRFZ40 se hizo uso de un opto


acoplador HCPL 3120, tanto en la tarjeta conversor Boost como en el Buck - Boost.
El opto acoplador acta como interfaz entre la unidad de control, la cual como ya
se mencion genera la seal PWM. Esta seal proviene del PIC18F452 con valores de
tensin de 5V o 0V, que no son suficientes para la correcta activacin o desactivacin
del transistor. Para asegurar dicha activacin / desactivacin se hace necesario
tensiones del orden de + 15V / - 15 V, respectivamente. Adems, el HCPL 3120 realiza

una unin de tipo ptica, lo cual hace que se encuentre aislado elctricamente la
unidad de control con respecto al circuito de potencia. En la figura 3.10 ilustra la forma
de conexin del opto acoplador HCPL 3120.

Figura 3-10 Circuito de disparo opto acoplado del transistor MOSFET


La resistencia Rg que aparece en la figura 3.10, se obtiene segn la hoja de
caracterstica del propio opto acoplador como:

CC

V V
EE
OL
I

(3-13)

OLPEAK

Donde: V
CC es +15V, VEE es -15V, VOL y IOLPEAK estn dado en la hoja de
caracterstica (HCPL 3120) y tienen el valor de 0.5V y 2.5A, respectivamente.
Reemplazando los valores recin dados, se obtiene la resistencia mnima necesaria
para disminuir las perdidas por efecto de conmutacin del driver. Segn esto, la
resistencia debe ser superior a 12 Ohm.

3.4.6 TARJETA CONVERSOR BOOST

La tarjeta conversor Boost fue diseada e implementada como parte de esta tesis
para poder alimentar cargas que necesiten de una mayor tensin, de la proporcionada
por el panel solar.

Esta tarjeta cuenta con una unidad de control, basada en un microcontrolador


PIC18F452, el cual genera una seal modulada por ancho de pulso (PWM), debido a la
accin de un algoritmo de control programado en el mencionado microcontrolador.
Dicho algoritmo determina el ciclo de trabajo ptimo, en el cual se le proporciona la
mxima cantidad de energa a la carga, procedente del mdulo o panel solar. La
frecuencia de switching utilizada es de 19.6kHz y el cristal que controla al PIC18F452
es de 20MHz. Adems, la tarjeta cuenta con un pulsador que origina un RESET al
microcontrolador al momento de ser presionado.

La figura 3.11 y 3.12 muestran el diagrama de bloques y la tarjeta conversor

Figura 3-11 Diagrama de bloque


de la Tarjeta Conversor Boost
PW M

U N I D A D D E C O N T R O L BA S A D O E N U N
P IC 1 8 F 4 5 2

CONECTOR BANCO DE BATERA

CO NV E R S O R B OOS T

MEDICIN DE TENSIN Y CORRIENTE

MEDICIN DE TENSIN Y CORRIENTE

CONECTOR PANEL SOLAR

Boost implementada, respectivamente.

Figura 3-12 Tarjeta conversor Boost implementada


Cabe sealar que esta tarjeta alimenta su unidad de control, por medio del banco
de batera el cual es la carga del sistema fotovoltaico. Para ello, el banco de batera
esta dividido en dos arreglos de dos bateras, cada arreglo esta conectado en serie y
como la tensin nominal de cada batera es de 6V, dicho arreglo es de 12V. Por ende,
el banco completo es de 24V, con una toma central (GND). Lo anterior permite que la
unidad de control cuente con las siguientes tensiones: +12V, -12V y GND, las cuales
son reducidas luego a +9V, -9V,+5V y GND, por medio de reguladores de tensin.
3.4.7 TARJETA CONVERSOR BUCK BOOST

La tarjeta conversor Buck - Boost fue diseada e implementada como parte de


esta tesis para poder alimentar cargas que necesiten de una mayor o menor tensin,
de la proporcionada por el panel solar.
Esta tarjeta al igual que la mencionada en la seccin 3.4.6, cuenta con una
unidad de control, basada en un microcontrolador PIC18F452, el cual genera una seal
modulada por ancho de pulso (PWM), debido a la accin de un algoritmo de control

programado en el mencionado microcontrolador. Dicho algoritmo determina el ciclo de


trabajo ptimo, en el cual se le proporciona la mxima cantidad de energa a la carga,
procedente del mdulo o panel solar. La frecuencia de switching utilizada es de 19.6kHz
y el cristal que controla el PIC18F452 es de 20MHz. Adems, la tarjeta cuenta con un
pulsador que origina un RESET al microcontrolador.
La figura 3.13 y 3.14 muestran el diagrama de bloques y la

tarjeta conversor

C ON VE R S ORBU C K - BOOST

Figura 3-13 Diagrama de bloques de la Tarjeta Conversor Buck - Boost

P W M

U NID AD DE C ON TR OLB AS AD O E N UN
PIC 18F452

Figura 3-14 Tarjeta Conversor Buck Boost implementada

CONECTOR BANCO DE

MEDICIN DE TENSIN Y CORRIENTE

MEDICIN DE TENSIN Y CORRIENTE

CONECTOR PANEL SOLAR

Buck Boost implementada, respectivamente.

CAPTULO TERCERO: SISTEMA EXPERIMENTAL

40

La unidad de control en esta tarjeta a diferencia de la tarjeta Boost, se alimenta


por fuente externa con las siguientes tensiones: +15V, -15V, +5V y GND.

3.5

TARJETA LCD

La tarjeta LCD permite realizar una interfaz visual con el usuario. Para ello cuenta
con un mdulo LCD de 2 x 20 (dos filas de veinte caracteres cada una), la cual se
utiliza principalmente para conocer en tiempo real el estado del conversor DC/DC, como
tambin la energa proporcionada a la batera desde el momento en que se energiz la
unidad de control. Adems de lo anterior, el mdulo LCD proporciona al usuario
informacin cada vez que se enva una seal va comunicacin serial, o la finalizacin
de algn proceso como por ejemplo fin de escritura en la eeprom externa. Los
mensajes generados en el mdulo LCD se detallan en el APNDICE A, denominado:
MENSAJES DEL MDULO LCD.

Por otro lado, adems del mdulo LCD, la tarjeta cuenta con tres LEDs que
indican el estado de carga del banco de batera, y con dos switch de los cuales el
primero permite realizar un cambio de pantalla (ver APNDICE A) y el segundo permite
el borrado de la contabilizacin de la energa almacenada en la carga, desde el
momento en que se encendi la unidad.

Para lograr lo mencionado en el prrafo anterior, la tarjeta se ha de conectar con


el conversor DC/DC, por medio de un bus conformado por un cable plano de 15 lneas,
el cual se divide en: 4 lneas de datos (DB4 al DB7), 3 lneas de control (RS, R/W y E),
3 LEDs, 2 switch, 1 lnea de alimentacin +5V y 2 lneas de tierra (GND). Estas seales
son posibles de apreciar en el diagrama de bloque de la figura 3.15.

CAPTULO TERCERO: SISTEMA EXPERIMENTAL

41

BUS

RS

DB4 DB5 DB6

LED 2

PORT B

LED 1

GND

SWITCH 1

PORT D

TARJETA LCD
MDULO LCD 2 X 20

Figura 3-15 Diagrama de bloques de la tarjeta LCD


Antes de poder enviar un mensaje al mdulo de cristal liquido a travs de las
lneas de datos, el mdulo se ha de inicializar. Para ello, es necesario crear una rutina
en C que permita configurar los bits involucrados en este proceso. La figura 3.16
proporciona el diagrama de flujo de la rutina creada en C.

Encendido

Esperar m s de 15m s

RS R/W D B 7 DB 6 D B 5 DB 4 000011

Esperar m s de 4.1m s

RS R/W D B 7 DB 6 D B 5 DB 4 000011

Esperar m s de 100us

RS R/W D B 7 DB 6 D B 5 DB 4 000011

RS R/W D B 7 DB 6 D B 5 DB 4
0
0
0
0
1
0
0
0

0
0

0
N

0
F

1
X

0
X

0
0

0
0

0
1

0
0

0
0

0
0

0
0

0
0

0
0

0
0

0
0

0
1

0
0

0
0

0
0

0
1

0
1/D

0
S

C onfi guracin

Ap agar display
Encender display M odo de
D esplazam iento

F in de la In icia lizacin

Figura 3-16 Diagrama de flujo de la rutina de inicializacin del mdulo LCD

Para inicializar el mdulo LCD, lo primero que se debe realizar es alimentar el


mdulo con una tensin de 5V y esperar un tiempo superior a 15ms para estabilizar la
tensin. Enseguida se habilitan los bits de datos (DB4 al DB7) y los de control RS y R/W
(Register Selection y Read / Write), de acuerdo a la secuencia ilustrado en la figura
3.16. Para finalizar la inicializacin, se debe realizar una etapa de configuracin en la
cual se elige la lnea del mdulo en la que se va a enviar el primer mensaje y el tipo de
letra. Posterior a ello, se apaga el mdulo LCD y luego se enciende, para finalmente
posicionar el cursor y de esta forma encontrarse listo para recibir datos. La tabla 3-2
muestra el significado de las abreviaturas utilizadas en la figura 3.16.

N
F
S
1/D

0 Primera lnea del display


1 Segunda lnea del display
0 5 x 7 pxel por cada carcter
1 5 x 10 pxel por cada carcter
0 Mensaje fijo en el display
1 Desplaza el mensaje en el display
0 Decrementa la posicin del cursor
1 Incrementa la posicin del cursor

Tabla 3-2 Significado de las abreviaturas

Como ya fue mencionado, el estado de la carga (EDC) del banco de batera


puede ser visualizado mediante LEDs. Para ello, la tarjeta LCD cuenta con tres leds
(Verde, Amarillo y Rojo), los cuales indican un estado alto, medio y bajo del estado de
carga del banco de bateras de 12V, respectivamente. Un parpadeo sucesivo del LED
verde indica un estado de carga ptimo, superior a 14.8V (x 2 para 24V). Por otro lado,
un parpadeo sucesivo del led amarillo indica un estado de carga medio, o sea, su carga
se encuentra entre los 12.4V y 14.8V. Y por ltimo, el parpadeo del led de color rojo

indica un estado de carga deficiente, lo cual indica que la tensin esta por debajo de los
12.4V. La figura 3.17 muestra la tarjeta LCD implementada.

Figura 3-17 Tarjeta LCD implementada

3.6

COMUNICACIN SERIAL

La comunicacin dual existente entre el PC y la unidad de control del sistema


fotovoltaico es implementado va serial hacia la unidad de control del sistema
fotovoltaico y viceversa. En la unidad de control el encargado de interpretar y generar la
cadena serial de bits es el microcontrolador PIC18F452. Para ello, el programa cuenta
con comandos predefinidos. Este hecho se ilustra en la figura 3.18 y en la tabla 3-3 se
entrega el significado de cada carcter.

MICROCONTROLADOR PIC18F452

Figura 3-18 Diagrama de instrucciones predefinidas en el PIC

Carcter
P
C
S
L
W
U

Funcin
Habilita el algoritmo perturbacin y observacin
Habilita el algoritmo conductancia incremental
Realiza un reset al contador de energa
Permite la lectura de la EEPROM externa
Permite la escritura de la EEPROM externa
Realiza un reset al microcontrolador

Tabla 3-3 Carcter y funciones interpretadas por el PIC18F452


Al momento en que el computador PC enva alguna de los seis caracteres
introducidos en la figura 3.18, el microcontrolador ejecuta una interrupcin y da a lugar a
la peticin realizada por el PC (ver tabla 3-3).
La comunicacin entre el computador PC y la unidad de control, se realiza
mediante comunicacin serial asincrnica, utilizando para ello protocolo RS 232 [13].
Dicha comunicacin es posible mediante la conexin de tres hilos: uno de ellos para
transmisin (TX), otro para recepcin (RX) y el ltimo como tierra comn entre ambas
unidades. Este hecho se ilustra el diagrama de bloques de la figura 3.20.

COMPUTADOR
PERSONAL

TX

RX

RX

TX
GND

UNIDAD DE
CONTROL
DEL
CONVERSOR
DC/DC

Figura 3-19 Comunicacin serial PC / Unidad de control


El microcontrolador PIC18F452 posee un mdulo AUSART [14], esto hace que
sea capaz de generar e interpretar cadenas de bits en formato serial. La cadena de bits
generada en el PIC vara entre 0 y 5V. Tensiones que no son suficientes

para

adaptarse a la norma RS 232 (tensiones entre +15 y -15V), es por ello que se hace
necesario el uso de un conversor MAX232 (ver Apndice D) como interfase entre el
microcontrolador PIC18F452 y el PC.

3.7

MEMORIA EXTERNA EEPROM 24LC16B

La memoria externa EEPROM es la encargada de almacenar en forma de datos,


las corrientes y tensiones a la que se encuentra operando el sistema fotovoltaico. Tanto
la instruccin de lectura como la escritura de esta memoria, se realiza por medio de la
comunicacin serial existente entre el PC y la unidad de control del sistema fotovoltaico,
tal como se mencion en la seccin 3.6.

La memoria EEPROM utilizada en esta tesis es el chip 24LC16B fabricado por la


empresa Microchip (Ver Apndice D) , el cual tiene una capacidad de almacenamiento
de 16Kbyte, y para comunicarse con otros dispositivos hace uso de dos hilos (Ver
apndice B). Dado que cumple con el protocolo I 2
C

tiene un pin llamado SCL (Serial

Clock) que recibe los pulsos generados por el dispositivo maestro (o sea el PIC18F452)
y el otro llamado SDA (Serial Data) que maneja el flujo de datos de forma bidireccional
(entrada / salida).

Este dispositivo (24LC16B) no requiere de un pin habilitador o chip select ya que


en este esquema, la transferencia de informacin slo se puede iniciar cuando el bus
(SDA) est libre. Cuando el microcontrolador PIC18F452 desea entablar comunicacin
con la memoria, debe enviarle una serie de bits que llevan la siguiente informacin:

1. Se enva el bit de arranque


2. El cdigo 1010
3. La direccin del dispositivo (Ver Apndice D).
4. Un bit que indica que se desea escribir en la memoria (0).

Luego de esto la memoria debe enviar un reconocimiento para informarle al


microcontrolador que recibi la informacin. Dicho asentamiento, llamado ACK
(Acknowledge), consiste en colocar el pin SDA en un nivel bajo (lo hace la memoria).
Despus el microcontrolador debe enviar los bits que corresponden a la posicin de
memoria que se quiere leer o escribir; nuevamente la memoria enva un
reconocimiento. El paso siguiente depende de la operacin que se vaya a realizar. Si se
trata de un proceso de escritura, el microcontrolador PIC18F452 slo debe enviar el
dato a ser almacenado y esperar el asentamiento por parte de la memoria. Si se trata
de una lectura, nuevamente se deben repetir los primeros cuatro pasos, solo que en
lugar de un 0 que indica escritura, se debe enviar un 1 que indica lectura. Despus
se espera el asentamiento y luego se puede leer el byte con el dato que estaba en la
posicin de memoria que se indic anteriormente. Cuando se termina la operacin, el
microcontrolador debe enviar una seal de parada o stop bit.

Todos los pasos anteriormente descritos estn insertos en una librera


proporcionada por el programa PCWH de CCS denominada 2416.C, la cual

fue

utilizada

B.

en

esta

tesis

se

encuentra

disponible

en

el

Apndice

CAPTULO CUARTO
ALGORITMOS DE CONTROL

CAPTULO CUARTO: ALGORITMOS DE CONTROL

48

4. ALGORITMOS DE CONTROL
4.1

INTRODUCCIN

Como ya se mencion en el captulo anterior, la potencia proporcionada por los


paneles solares es dependiente de la temperatura y del nivel de radiacin solar
incidente. Es por ello que una consideracin importante en el diseo de un sistema
fotovoltaico eficiente es rastrear el punto donde se encuentra la mxima potencia de
manera correcta. El propsito del seguimiento del punto de mxima potencia (MPPT)
es forzar a la tensin del panel solar a las cercanas del punto de mxima potencia
(MPP) bajo condiciones atmosfricas cambiantes. De acuerdo a lo anterior, se han
propuesto numerosos mtodos para alcanzar el MPP. Entre estos, la referencia [15]
menciona que la tensin del panel solar donde se encuentra la mxima potencia foto
generada VMP , es proporcional a la tensin de circuito abierto del panel solar

VOC .

Este hecho se ilustra en la ecuacin 4.1.

VMP K VOC

0.73

K 0.80

(4-1)

Por otro lado, la referencia [16] indica que la corriente del panel solar en donde
se ubica la mxima potencia foto generada

IMP , es proporcional a la corriente de corto

circuito del panel solar Isc. Este hecho se ilustra en la ecuacin 4.2.

I MP K I
SC

0.92 K
0.96

(4-2)

Ambos mtodos son de simple implementacin [15] y [16], pero necesitan forzar
la potencia a cero durante un pequeo lapso de tiempo para obtener V
OC o I SC ,
disminuyendo de esta forma la energa proporcionada a la carga. De acuerdo a esto, los
algoritmos que proporcionan mejor desempeo (segn lo expuesto en [17] y [18]) y los
cuales han sido implementados en el desarrollo de esta tesis son:

Perturbacin y observacin
Conductancia incremental
Controlador basado en lgica difusa

Estos algoritmos se detallan a continuacin en las secciones 4.2, 4.3 y 4.4,


respectivamente.

4.2

PERTURBACIN Y OBSERVACIN

El algoritmo perturbacin y observacin (P&O), se basa en la comparacin entre


un valor actual de potencia

P(k) , y un valor obtenido de la muestra

P(k 1) .

anterior
Basndose en la figura 4.1, el panel solar se encontraba originalmente operando en el
punto A de la curva P V, luego se desplaza haca el B. Ahora en el punto B, se
averigua si la potencia actual P(k) , es mayor o igual a la potencia de la
muestra
anterior

P(k 1) . Si se cumple la

premisa P(k ) P(k 1) , se desplaza el punto

de

trabajo de B haca C. Esto es posible de lograr realizando un aumento a una tensin de


referencia denominada Vref , la cual entra a un lazo de control (Ver figura 4.2) y de esta
forma obliga al panel solar a trabajar en dicha tensin. El aumento de Vref , slo se
har efectivo si V (k ) V (k 1) , en caso contrario se realizar una disminucin de Vref .

CAPTULO CUARTO: ALGORITMOS DE CONTROL

50

110
100
90
(V(k),P(k))
80

B
(V(k+1),P(k+1))

70

(V(k-1),P(k-1))
60
Potencia (W)

50
40
30
20
10
0

24

10121416182022
Tensin (V)

Figura 4-1 Curva P V bajo seguimiento del MPP con algoritmo P&O
Ahora en el punto C, se examina nuevamente si la potencia actual (ahora llamada
P(k 1) )) es mayor a la potencia de la muestra
anterior

P(k) . Al contrario del caso

anterior, la condicin P(k 1) P(k ) es falsa, por ende Vref debe disminuir, esto slo si
V (k 1) V (k ) . En caso contrario, Vref debe aumentar.

Vp* Vref
+

P+I

Circuito de
disparo

Conversor
DC/DC

Panel
Solar

Vp

Figura 4-2 Lazo de control para la tensin del panel solar


Para obtener el valor de la potencia proporcionada por el panel solar, se debe
sensar continuamente el valor de la tensin

V k y corriente I k instantnea foto

generada (seccin 3.3.4), para luego acondicionar las seales a valores entre 0 y 5V,
los cuales llegan finalmente al conversor A/D del microcontrolador PIC18F452. El PIC

CAPTULO CUARTO: ALGORITMOS DE CONTROL

51

efectuar el clculo de la potencia (ver ecuacin 4.3) y se encargar de almacenar este


dato, para ser comparado con la potencia generada en la muestra siguiente. La figura
4.3 resume el mtodo, mediante un diagrama de flujo del algoritmo de bsqueda
denominado: perturbacin y observacin (P&O).

Pk V k I

(4-3)

Sensar V(k), I(k)

Calcular potencia
P(k)= V(k) x I(k)

NO

P(k) > P(k-1)

SI

V(k) > V(k-1)

V(k) > V(k-1)

SINONOSI

Vref = Vref - C

Vref = Vref + C

Vref = Vref - C

Vref = Vref + C

Retornar

Figura 4-3 Diagrama de flujo del mtodo perturbacin y observacin


La constante C mencionada en el diagrama de flujo de la figura 4.3, representa
una pequea variacin en la tensin de referencia.

4.3

CONDUCTANCIA INCREMENTAL

El algoritmo de conductancia incremental se basa en la diferenciacin de la


potencia proporcionada por el panel solar con respecto al voltaje. Dicha derivada debe
ser cero para situarse en el MPP [17]. Este hecho se muestra en la ecuacin 4.4.

dP d (V I )
dI
I V dV 0
dV dV

(4-4)

Arreglando los trminos de la ecuacin 4.4, se obtiene la ecuacin 4.5.

I dI

V
dV

(4-5)

Cabe sealar que el lado izquierdo de la ecuacin 4.5 representa la conductancia


instantnea del panel solar, mientras que el lado derecho representa la conductancia
incremental. As, para situarse en el punto de mxima potencia, estas dos cantidades
deben ser iguales en magnitud, pero opuestos en signo. Si el punto al que se encuentra
operando el panel solar, se encuentra lejos del punto de mxima potencia, se puede
obtener un conjunto de ecuaciones provenientes de la ecuacin 4.5 que indican si el
voltaje de operacin del panel esta cerca o lejos del MPP (Ver Figura 4.4). Estas
ecuaciones son resumidas en las ecuaciones 4.6 al 4.8.

dI


dV
V
dI

dV

dI
dV

dP

(4-6)

dP

0
dV

(4-7)

dP

0
dV

(4-8)

0
dV

V
120

dP/dV = 0

100

Potencia (W)

dP/dV > 0

dP/dV < 0

80

60

40

20

0
0

10

15

20

25

Tensin (V)

Figura 4-4 Curva P V bajo seguimiento del MPP con algoritmo Conductancia
Incremental.
La ecuacin 4.6 se ha repetido de la ecuacin 4.5 por comodidad. Las
ecuaciones 4.6 al 4.8 son utilizadas para determinar la direccin en la cual debe ocurrir
una perturbacin para mover el punto de operacin a las cercanas del punto

de

mxima potencia, y la perturbacin se ha de repetir hasta lograr que sea satisfecha la


ecuacin 4.6. Una vez localizado el punto de mxima potencia (MPP), el

MPPT

contina operando en este punto hasta existir algn cambio en la corriente medida.
Este cambio en la medicin de corriente indica que ha variado el nivel de radiacin solar
incidente a carga constante [17]. En la figura 2.5.b se muestra, cuando el nivel de

radiacin solar incidente aumenta, el punto donde se sita la mxima potencia se


desplaza hacia la derecha con respecto al voltaje del panel solar. Para compensar el
movimiento del MPP, el MPPT debe incrementar el voltaje de operacin del panel solar.
Lo contrario es verdadero cuando existe una disminucin del nivel de radiacin solar
incidente (por medio de la disminucin de la corriente medida).

La figura 4.5 muestra el diagrama de flujo del algoritmo

conductancia

incremental. El valor presente y el valor previo de la corriente y voltaje del panel solar
son medidos continuamente por el conversor A/D del microcontrolador PIC18F452. Una
vez en el microcontrolador, los valores de corriente y voltaje son utilizados para calcular
dI y dV . Si dV 0 y dI 0 las condiciones atmosfricas no han cambiado y el MPPT
seguir operado en el MPP. Si dV 0 y dI 0 , entonces la cantidad de radiacin ha
aumentado, aumentando el voltaje donde se halla el MPP. Esto requiere que el MPPT
debe incrementar el voltaje de

referencia

Vref

para de esta forma seguir el MPP.

Recprocamente, si dI 0 , la cantidad de radiacin ha disminuido, con lo cual se


reduce el voltaje donde se encuentra el MPP, por ende el MPPT para poder seguir el
nuevo MPP, debe disminuir el voltaje Vref . Si los cambios en el voltaje y la corriente no
son cero, las relaciones dadas en las ecuaciones 4.7 y 4.8 pueden ser utilizadas para
determinar la direccin en la cual el voltaje se debe variar, para alcanzar el nuevo MPP.
Si
dI

dV I V , entonces dP dV 0 , lo que indica que el panel solar se encuentra

operando a la izquierda del MPP en la curva P V (Figura 4.4). As, el voltaje Vref
debe ser incrementado para alcanzar al MPP. De manera similar, si dI dV I V ,
entonces dP dV 0 , lo cual indica que el panel solar se encuentra operando a la
derecha del MPP en la curva P V, y por ende el voltaje Vref debe ser reducido para
alcanzar el MPP.

Al igual que en el mtodo perturbacin y observacin, el voltaje de referencia


obtenido en cada iteracin es ingresado al lazo de control ilustrado en la figura 4.2, a
efecto de asegurar que el panel fotovoltaico seguir la tensin de referencia,
proporcionado por el algoritmo de MPPT.

Sensar V(k), I(k)

dV = V(k) - V(k-1)
dI = I(k) - I(k-1)

NO

dV = 0

SI

dI / dV = - I / V

dI = 0

NO

NO

dI / dV > - I / V

dI > 0

SI

SI

NO

SI

Vref = Vref - C

Vref = Vref + C

SINO

Vref = Vref + C

Vref = Vref - C

Retornar

Figura 4-5 Diagrama de flujo del algoritmo conductancia incremental


La constante C mencionada en el diagrama de flujo de la figura 4.5, representa
una pequea variacin en la tensin de referencia.

4.4

CONTROLADOR BASADO EN LGICA DIFUSA

Esquemticamente la configuracin del controlador difuso para un conversor


DC/DC esta dado por la figura 4.6. En dicha figura se observa que tanto la corriente
como la tensin son sensados, y luego llevados a los canales A/D del microcontrolador
PIC18F452, esto para luego obtener el

error E(k
)

el cual es una de las entradas

del

controlador difuso, dicho error se obtiene segn la ecuacin 4.9.

E(k )

dP
dV

(4-9)

P(k ) P(k
1)
V (k ) V (k
1)

Donde P(k )
y

V (k
)

son la potencia y la tensin del panel fotovoltaico,

respectivamente. Por lo tanto, para obtener la mxima potencia foto generada

E(k )

debe ser cero [18].


Corriente y
tensin Panel Solar

Circuito de disparo

A/D

PWM

Base de
Conocimiento

Calcular
E . CE

Controlador
Difuso

RAM

CE
PIC18F452
Microchip

Puerto Serial

Computador Principal

Figura 4-6 Esquema control difuso para el conversor DC/DC


La entrada restante al controlador difuso, corresponde al denominado cambio de
error, el cual se determina haciendo la diferencia entre el valor actual del error y su valor
anterior (Ver ecuacin 4.10).

CE (k ) E(k ) E(k 1)

(4-10)

El algoritmo de control difuso, se divide en tres etapas [18] al [20]. La primera


etapa consiste en la fuzzificacin, en ella los datos son transformados para ser
trabajados en un ambiente difuso. Posteriormente, en la etapa de inferencia y toma de
decisin, se definen las reglas del sistema y se evalan para obtener una salida del tipo
difusa. Finalmente, la salida difusa ingresa a la etapa de desfuzzificacin, en donde la
salida obtenida es nuevamente transformada en un variable concreta entendible por el
resto del sistema.

4.4.1 FUZZIFICACIN

Las variables de entrada

E(k
)

y CE(k ) , son expresados en trminos lingsticos

o etiquetas como: PB (Positivo Grande), PM (Positivo Medio), PS (Positivo Pequeo),


ZO (Cero), NS (Negativo Pequeo), NM (Negativo Medio) y NB (Negativo Grande)
utilizando para ello subconjuntos difusos. La figura 4.7 muestra los grados de
pertenencia de los siete subconjuntos difusos para las variables de entrada y de salida.

u(E)

NB

NM

NS

ZO

PS

PM

PB

Grado
De Pertenencia

(a)

0
-6

u(CE)

-4

NB

-2

NM

NS

ZO

PS

PM

6
PB

(b)

Grado
De Pertenencia

0
-6

u(dD)

-4

NB

-2

NM

NS

ZO

PS

PM

PB

Grado
De Pertenencia

(c)

0
-6

-4

-2

Figura 4-7 Funciones de membresa para (a) entrada E, (b) entrada CE y (c) salida dD
(variacin del ciclo de trabajo).

4.4.2 METODO DE INFERENCIA


La tabla 4-1 muestra las reglas del controlador difuso, la cual se obtiene de todas
las combinaciones posibles entre las entradas E y CE, y a su vez esta combinacin
proporciona cuarenta y nueve reglas correspondientes a las posibles salidas del
controlador. La base de conocimiento se conoce como: base de conocimiento de
diagonal cero, y es utilizado en el control de conversores DC/DC [19].
CE

NB

NM

NS

ZO

PS

PM

PB

NB

NB

NB

NB

NB

NM

NS

ZO

NM

NB

NB

NB

NM

NS

ZO

PS

NS

NB

NB

NM

NS

ZO

PS

PM

ZO

NB

NM

NS

ZO

PS

PM

PB

PS

NM

NS

ZO

PS

PM

PB

PB

PM

NS

ZO

PS

PM

PB

PB

PB

PB

ZO

PS

PM

PB

PB

PB

PB

Tabla 4-1 Base de conocimiento del controlador fuzzy

El proceso de toma de decisin se realiza por medio de la evaluacin de


conjuntos de reglas como las siguientes (Tabla 4-2):

Si (E es NB) y (CE es NS) entonces (dD es NB) Si (E es ZO) y (CE es ZO) entonces (dD es ZO) Si (E es ZO) y (CE es PB

Tabla 4-2 Formas de regla


Luego de evaluar los antecedentes de cada regla, se obtienen los consecuentes
y con ellos se construye el conjunto difuso correspondiente a la salida (dD).

Sin embargo, la tabla 4-2 proporciona una salida de tipo lingstica y esta debe
ser convertida a un valor concreto con el cual se puede operar y realizar la accin de
control correspondiente, la cual corresponde a una variacin del ciclo de trabajo. A este
proceso de conversin se le conoce como desfuzzificacin.

El mtodo de inferencia utilizado en la obtencin del consecuente a partir de los


antecedentes, corresponde al de Mamdami [20].
4.4.3 DESFUZZIFICACIN

La salida del controlador difuso es un subconjunto difuso de control. Un sistema


para operar requiere usualmente un valor de control no difuso (concreto), es por ello
que se hace necesaria una desfuzzificacin. La desfuzzificacin se puede realizar
normalmente mediante dos algoritmos: mtodo del mximo y mtodo del centro de

CAPTULO CUARTO: ALGORITMOS DE CONTROL

60

gravedad (COA) [20]. El mtodo del centro de gravedad es el ms utilizado para casos
discretos y esta dado por la ecuacin 4-11.

dD

u dD dD
j

(4-11)

udD
j

j 1

Donde
dicha regla
dD

dD j es la j - sima regla activa y u dDj

0 dD

1 . Por otro lado,

es el grado de cumplimiento de

es la salida del controlador difuso y

corresponde a una variacin del ciclo de trabajo.

Finalmente, en la figura 4-8 se muestra la configuracin del controlador difuso, el


cual esta compuesto de un escalamiento en la entrada y la salida, fuzzificacin, toma de
decisiones (inferencia), desfuzzificacin. Los factores de escala SE, SCE y SdD cambia
las entradas y salida proporcionalmente. La salida dD se obtiene a partir del estado de
las variables E y CE donde cada uno se deriva de la seal actual dividiendo por el factor
de escala respectivo. La variable de salida es desfuzzificada y multiplicada por el factor
de escala SdD para construir la seal de control PWM. Su papel es afinar el controlador
difuso para obtener el seguimiento del punto de mxima potencia de un sistema
fotovoltaico.

SE

SCE
ce

CE

SdD
FUZZIFICACIN

TOMA DE
DECISIN

DESFUZZIFICACIN

Figura 4-8 Configuracin del controlador difuso

dddD

CAPTULO CUARTO: ALGORITMOS DE CONTROL

61

Por otro lado, la figura 4-9 muestra la superficie que representa la respuesta del
controlador difuso, en la cual se aprecia la no linealidad de este, con respecto a sus
entradas E y CE. La figura 4-9 se ha obtenido utilizando la herramienta Fuzzy Logic
Toolbox, el cual viene incorporado en el software MATLAB 7.0.

Figura 4-9 Superficie caracterstica del controlador difuso

CAPTULO QUINTO
RESULTADOS EXPERIMENTALES

CAPTULO QUINTO: RESULTADOS EXPERIMENTALES

63

5. RESULTADOS EXPERIMENTALES
5.1

INTRODUCCIN

En este captulo se presentan los resultados experimentales con la finalidad de


estudiar y observar el comportamiento de los algoritmos de control propuestos, e
implementados tanto en el conversor DC/DC Boost como para el Buck Boost. El
sistema fotovoltaico utilizado corresponde al descrito en la seccin 3.1.

Los resultados que se presentan corresponden al comportamiento del sistema


para las siguientes condiciones:

Generacin de curvas I V y P V, para diversas condiciones climticas


MPPT con Radiacin Solar Incidente (RSI) constante
MPPT con variacin en la RSI

Las principales variables a monitorear son: tensin, corriente, temperatura de


operacin del panel solar y ciclo de trabajo del conversor DC / DC. Sin embargo, para
algunas pruebas especficas es posible que se presenten adicionalmente otras
variables que sean consideradas importantes de mostrar.

5.2

RESULTADOS EXPERIMENTALES

Los resultados experimentales se obtuvieron utilizando el sistema detallado en la


seccin 3.1 y utilizando como fuente energtica el sol. Los conversores DC/DC Boost y
Buck Boost son controlados mediante un microcontrolador PIC18F452. Dicho control

se centra en la generacin de una seal PWM de 19.6kHz, al cual se le vara el ciclo de


trabajo de tal forma de alcanzar el punto ptimo de operacin del panel solar.

Las principales caractersticas del panel solar utilizado (Ver apndice D) se


proporcionan a continuacin:

o Voltaje de circuito abierto

: 21.6 V

o Corriente de corto circuito

: 6.54 A

o Voltaje de mxima potencia

: 17.4 V

o Corriente de mxima potencia : 6.10 A


o Potencia mxima

: 106 W

Cabe sealar que para efecto de ensayos, el panel solar se ha orientado en


direccin norte y con un ngulo de 60 con respecto a la horizontal. Por otro lado, la
carga del sistema lo compone un banco de batera, el cual es de 12V o 24V, segn se
este operando con el conversor en la modalidad reductora (Buck) o elevadora de
tensin (Boost), respectivamente.

5.2.1 RESULTADOS PARA LA GENERACIN DE CURVAS I V y P V.

La primera prueba considerada de importancia corresponde a la generacin de


curvas de corriente contra tensin

V y potencia contra tensin

P V . La

generacin de dichas curvas entrega informacin importante concerniente al estado de


operacin del panel o panel fotovoltaico (FV). En particular, se puede conocer de
manera grfica la mxima potencia extrable, esto segn lo expuesto en la seccin 2.4
(Seguimiento del MPP). Para la obtencin de dichas curvas se utiliz los conversores

DC/DC como resistencias variables, siendo para ello necesario realizar sucesivos
incrementos en los tiempos de encendido del transistor de cada conversor.

La figura 5.1, entrega una comparacin de curvas I V y P V, obtenidas ambas


a una temperatura de 32 C, y con diferentes niveles de radiacin solar incidente
2

( 810 W / m y 948 W / m ). Los niveles de RSI, fueron obtenidos mediante la medicin de


la corriente de cortocircuito del panel solar Isc, y utilizando la ecuacin 5.1.

R.S.I

mA

Isc

; K 6.54

2
m

(5-1)

W
Donde la constante K se obtiene de los datos proporcionados por el fabricante
del panel solar.
7
6
5

(a)

Corriente Panel Solar (A)

4
3

948 W / m2

810 W / m2

1
00123456789

10
11
12 13
14
Tensin Panel Solar (V)

15

16
17

18

19

20

21

22

23

24

25

80
70
Potencia Panel Solar (W)

60

76 W @ 948 W / m2
50

(b)
40
30

66 W @ 810 W / m2

20
10
0123456789
0

10
11
12 13
14
Tensin Panel Solar (V)

15

16
17

18

19

Figura 5-1 a) Curvas I V, b) Curvas P V

20

21

22

23

24

25

De la figura 5.1b, se confirma que la curva P V con mayor potencia foto


generada,

es aquella en la cual se ha incidido mayor nivel de radiacin solar


2

( 948 W / m ), alcanzando un valor de 76 W. Por otro lado, la figura 5.1a ilustra el hecho
de que el aumento en el nivel de radiacin solar incidente, influye esencialmente en el
acrecentamiento de la corriente de cortocircuito (de 5.3 A 6.2 A). Adems de la figura
2

5.1 se aprecia que la curva de menor radiacin solar incidente ( 810 W / m ), logra llegar
a un voltaje de 1V cuando hay 5.5A en el panel solar, a diferencia de la curva de
mayor nivel radiacin, en que la mnima tensin es de 2V a los 6.3A. Lo anterior no
tiene como causa el nivel de radiacin solar incidente, sino que la curva de 948 W

/m

fue generada con el conversor DC/DC Boost, mientras que la otra curva (la

de

810 W / m ) fue obtenida mediante el conversor Buck Boost.

La figura 5.2 ilustra la comparacin de curvas I V y P V, para un mismo nivel


2

de radiacin
solar incidente ( 948 W / m ), y cambia la temperatura de 31C 41C.
7
6
5
Corriente Panel Solar (A)

(a)
4
3

31C

2
1
0

41C
0123456789

10

11

12

13

14
15
16
17
18
Tensin Panel Solar (V)

19

20

21

22

23

24

25

80

Potencia Panel Solar (W)

70
60
50

76 W @ 31C

40

(b)

72 W @ 41C

30
20
10
0123456789
0

10

11

12

13

14
15
16
17
18
Tensin Panel Solar (V)

19

20

21

22

Figura 5-2 a) Curva I V. b) Curva P V.

23

24

25

De la figura 5.2 se ratifica el hecho de que el aumento en la temperatura del


panel solar, va en directo desmedro de la potencia generada, disminuyendo de 76W a
72W. Adems, la figura 5.2.a muestra la disminucin de la tensin de circuito abierto
(de 20.5 V 19.4 V), la cual tiene directa relacin con el incremento de la temperatura
en el panel solar.

En definitiva, las figuras 5.1 y 5.2 confirman de manera prctica, lo ya


mencionado en la seccin 2.3 denominada: Caractersticas Analticas de los Paneles
Solares, la cual aluda la influencia de la potencia generada por un panel solar, por
efecto de la temperatura y el nivel de radiacin solar incidente.

5.2.2 RESULTADOS DE MPPT CON RSI CONSTANTE

En esta seccin se detallan algunos ensayos realizados concernientes al


seguimiento del punto ptimo del panel FV, para un mismo nivel de radiacin solar
incidente (RSI) constante. Los resultados obtenidos en esta seccin corresponde a los
logrados mediante los algoritmos: perturbacin y observacin (P&O), conductancia
incremental (Cond. Inc.) y controlador basado en lgica difusa. Dichos algoritmos se
han implementados en el conversor DC/DC Boost. Para el caso del conversor Buck
Boost, se utilizaron solo los algoritmos P&O y Cond. Inc.

La figura 5.3 entrega la respuesta del seguimiento del punto de mxima potencia
(MPPT) para un sistema basado en un panel solar y utilizando como algoritmo de
control el mtodo conductancia incremental, con una radiacin solar incidente
658
W

de

m y una temperatura de 29C. Mientras que la figura 5.4 entrega la respuesta

del MPPT utilizando el algoritmo Perturbacin y Observacin, para un nivel de radiacin

solar incidente de 617 W m y una temperatura de 26C. Ambos resultados obtenidos

Potencia Panel Solar (W)

mediante el conversor Boost.


60
50
40
30
20
10
0

(a)

MPPT
0510152025
Tensin Panel Solar (V)

(b)
Vpanel

14.5
14.25

Ciclo de Trabajo (%)

14 0

5
Tiempo (Seg)

10

54100
53.590
53
52.5
52
51.5
51
0

34

80
70(c)
60
50
40
10

Ciclo de Trabajo

Eficiencia del Conversor

5
Tiempo (Seg)

Eficiencia Conversor (%)

Tensin (V)

15
14.75Vref

Figura 5-3 a) Curva P-V con MPPT Cond. Inc.


b) Tensin del panel y tensin de referencia proveniente del
algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra
operando el conversor DC/DC Boost con MPPT

De la figura 5.3a se puede apreciar que el algoritmo Cond. Inc. cumple el


objetivo. O sea, se sita la potencia foto generada en el punto ms ptimo de la curva
PV (55 W), la cual a su vez, se alcanza con una tensin de 14.4 V. Este hecho se
reafirma en la figura 5.3b, donde la respuesta del controlador oscila en torno a la
tensin de referencia. Por otro lado, la salida del controlador es apreciable en la figura
5.3c, donde el ciclo de trabajo flucta entre los 51.86 % y 52.15 %. Lo que respecta a la
eficiencia, est se encuentra en torno a los 87%, llegando a un peak de 92 %.

De la figura 5.4 se puede evaluar la efectividad del algoritmo P&O en el


seguimiento del MPP, la cual alcanza un valor de 50W a los 14.5V. Situacin que se
confirma en la 5.4.b, donde la tensin del panel solar oscila en torno a la tensin de
referencia, proporcionada por el algoritmo de control. En lo que respecta a la variacin
del ciclo de trabajo, esta se encuentra entre 49.2% y 50.1%, lo cual deja claro que el
algoritmo P&O es de naturaleza ms oscilatorio que el algoritmo Cond. Inc. (ver seccin
4). Con lo que respecta a eficiencia, esta se mantiene al igual que en el caso anterior en
87%, alcanzando un peak de 91%.
60
50
40
30

Potencia Panel Solar (W)

(a)
20
10
0

MPPT
0510152025
Tensin Panel Solar (V)

Tensin (V)

15

14.8VpanelVref
14.6

(b)

14.4
5 14.2
Tiempo (Seg)

Ciclo de Trabajo (%)

52
51.5
51
50.5Eficiencia del
50
49.5
49

95
90
85
80
75(c)
70
65
10

14

Conversor
Ciclo de Trabajo

5
Tiempo (Seg)

10
Eficiencia Conversor (%)

01234

Figura 5-4 a) Curva P-V con MPPT P&O.


b) Tensin del panel y tensin de referencia
proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra
operando el conversor DC/DC Boost con MPPT

Por ltimo, para el caso del conversor DC/DC Boost, se ha implementado un


controlador basado en lgica difusa. La respuesta de dicho controlador se ilustra en la
figura 5.5, la cual se ha obtenido con una temperatura de 38C y una RSI de 910
W

m .

CAPTULO QUINTO: RESULTADOS EXPERIMENTALES

70

80
60

(a)

20
0

10

12

MPPT

14

16

18

20

Tensin Panel Solar (V)

2000

4000

Cambio de Error

Error

1500Cambio de Error2000
10000

Error(b)
500-2000
0-4000
-500

01234

5
Tiempo (Seg)

-6000
10

Ciclo de Trabajo (%)

800.865

0.86

70

Ciclo de Trabajo

Eficiencia del Conversor

0.855

60

50

5
Tiempo (Seg)

0.85
10

Eficiencia Conversor (%)

Potencia Panel Solar

40

(c)

Figura 5-5 a) Curva P-V con MPPT Difuso.


b) Entradas del controlador difuso
c) Ciclo de trabajo y eficiencia al cual se encuentra
operando el conversor DC/DC Boost con MPPT

De la figura 5.5 se puede ver que la mxima potencia foto generada es de 70W,
la cual se consigue a una tensin de 14 V (figura 5.5.a). Las entradas del controlador
(figura 5.5.b) difuso oscilan en torno a cero, tal como se mencion en la seccin 4.4. Por
otra parte, la salida del controlador (ciclo de trabajo) flucta entre los 50% y 60 %.
Finalmente, al igual que con los mtodos P&O y Cond. Inc., el conversor DC/DC Boost
se encuentra operando con una eficiencia de 86%.

Ahora, para el caso del conversor Buck Boost, los algoritmos Cond. Inc. y P&O,
fueron puesto a prueba tanto la propiedad elevadora y reductora de tensin que posee
el conversor Buck Boost.

CAPTULO QUINTO: RESULTADOS EXPERIMENTALES

71

Segn lo anterior, la figura 5.6 y 5.7 muestran el caso del conversor Buck Boost
actuando como conversor DC/DC reductor (Buck), y bajo seguimiento del MPP,
utilizando para ello los algoritmos Cond. Inc. y P&O, respectivamente.

La figura 5.6 entrega la respuesta del seguimiento del punto de mxima potencia
(MPPT) para un sistema basado en un panel solar utilizando el algoritmo Cond. Inc.,
con una radiacin solar incidente de 899
W

m y una temperatura de 33 C. Mientras

que la figura 5.7 entrega la respuesta del MPPT utilizando el algoritmo P&O, para un
nivel de radiacin solar incidente de 899
W

m y una temperatura de 32 C.

80

(a)
40
20

10

15

20

25

Tensin Panel Solar (V)

MPPT

15
14.75
14.5
14.25
14
13.75
13.5

(b)

Vref

01234

Ciclo de Trabajo (%)

5
Tiempo (Seg)

Vpanel

10

56

95

55.5

90

55

85

54.5

Eficiencia
de

54
53.5
53
0

Ciclo de Trabajo

l Conversor

5
Tiempo (Seg)

80

75
70
65
10

Eficiencia Conversor (%)

Tensin (V)

Potencia Panel Solar (W)

60

(c)

Figura 5-6 a) Curva P-V con MPPT Cond. Inc.


b) Tensin del panel y tensin de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC
Buck
Boost con MPPT

80

Potencia Panel Solar (W)

60

(a)

40
20
0

8
10
12
MPPT
Tensin Panel Solar (V)

14

16

18

20

15

14.75

14.5
14.25
14 0
54.5
54.25
54
53.75
53.5
53.25
53

01234

5
Tiempo (Seg)

10
95
90
85

Eficiencia del Conversor

80(c)
75
70
65
10

Ciclo de Trabajo

5
Tiempo (Seg)

Eficiencia Conversor (%)

Tensin (V)
Ciclo de Trabajo (%)

(b)

Vref

Vpanel

Figura 5-7 a) Curva P-V con MPPT P&O.


b) Tensin del panel y tensin de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Buck
Boost con MPPT
Las figuras 5.6 y 5.7 son muy similares. En ambas, la mxima potencia se
encuentra alrededor de los 65 W. La similitud mencionada, tiene como causa principal
el hecho que el nivel de RSI y la temperatura fueron similares. La leve diferencia entre
la figura 5.6 y la 5.7, lo indica el aumento de la tensin de referencia de 14.25 V

14.3 V. respectivamente. Lo anterior, tiene relacin directa con la disminucin de la


temperatura de 33 C 32 C. La eficiencia del conversor DC/DC Buck Boost,
actuando como reductor se puede apreciar tanto en la figura 5.6.c y 5.7.c, en ambas
esta se encuentra en 86 %. Mientras que el ciclo de trabajo es de 54 %.

Por otro lado, se realizan las mismas pruebas con los algoritmos Cond. Inc. y
P&O para el conversor Buck Boost, pero ahora en la modalidad de conversor elevador

(Boost). Los resultados del MPPT utilizando el algoritmo Cond. Inc. y P&O, se ilustran
en la figura 5.8 y 5.9, respectivamente.

La figura 5.8 entrega la respuesta del seguimiento del punto de mxima potencia
(MPPT) utilizando el algoritmo Cond. Inc., con una RSI de 764
W

m y una temperatura

de 31 C. Por otra parte, la figura 5.9 ilustra la respuesta del MPPT utilizando el
algoritmo P&O, para un nivel de RSI de 795 W m

y una temperatura de 31 C.

80
60

(a)

Tensin (V)

Potencia Panel Solar (W)

40
20
0

16
15.5
15
14.5
14
13.5
13

10
15
Tensin Panel Solar
(V)
MPPT

20

25

(b)

Vpanel

Vref

01234

5
Tiempo (Seg)

10

Eficiencia del Conversor

68.5

90

68.25

85

68

80

Ciclo de Trabajo

67.75

75

67.5
67.250

70
1

5
Tiempo (Seg)

10

Eficiencia Conversor (%)

Ciclo de Trabajo (%)

68.7595

(c)

65

Figura 5-8 a) Curva P-V con MPPT Cond. Inc .


b) Tensin del panel y tensin de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC
Buck
Boost con MPPT
De la figura 5.8.a se observa que el algoritmo Cond. Inc., logra el objetivo de
forzar al panel solar a situarse en la zona donde se encuentra la mxima potencia foto
generada. Dicha potencia es cercana a los 62 W, la cual se obtiene a una tensin de
14.25 V. La tensin donde de encuentra la mxima potencia generada por el panel FV,

se confirma en la figura 5.8.b, donde se ilustra que la tensin del panel solar oscila en
torno a la tensin de referencia (14.25V). Por otro lado, el ciclo de trabajo (ver figura
5.8.c) al cual se encuentra operando el conversor Buck Boost, aumento de los 54% a
68%, al cambiar la modalidad de trabajo de reductor a elevador de tensin,
respectivamente. Lo que concierne a la eficiencia del conversor, esta flucta en torno al
85% llegando a un peak de 91 %.
80

Potencia Panel Solar (W)

60

(a)

40
20
0
0

10
15
MPPT
Tensin Panel
Solar (V)

20

25

15

14.75

(b)

14
0
13.75

Ciclo de Trabajo (%)

Vpanel

Vref

14.25

69.25
69
68.75
68.5
68.25
68
67.75

5
Tiempo (Seg)

95
90
85

Eficiencia del Conversor

Ciclo de Trabajo

01234

5
Tiempo (Seg)

10

Eficiencia Conversor (%)

Tensin (V)

14.5

80(c)
75
70
65
10

Figura 5-9 a) Curva P-V con MPPT P&O.


b) Tensin del panel y tensin de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra operando el conversor DC/DC Buck
Boost con MPPT

Por otra parte, de la figura 5.9 se observa que al igual que con el mtodo Cond.
Inc., el algoritmo P&O logra situarse en la zona donde se encuentra la mxima
proporcionada por el panel solar (65 W). El MPP se obtiene a una tensin de 14.25
V, lo cual se confirma en la figura 5.9.b, donde la tensin del panel solar oscila

entorno

a la tensin de referencia obtenida mediante el algoritmo P&O, dicha tensin de


referencia asciende a los 14.25 V. Por otra parte, la eficiencia del conversor Buck
Boost operando en la modalidad elevadora, se encuentra cercana a los 85 %, teniendo
un peak de 91 %. Mientras que el ciclo de trabajo, se mantiene constante en 68%.

5.2.3 RESULTADOS DE MPPT CON VARIACIN EN LA RSI

En esta seccin se detallan algunas pruebas concernientes a aplicar sombras


parciales (variacin en el nivel RSI) al panel solar, para lo cual se hace necesario cubrir
una zona del panel solar, durante un pequeo lapso de tiempo (1.5 seg. Para la
mayora de los casos). Los resultados obtenidos corresponde a los logrados mediante
los algoritmos: P&O, Cond. Inc. y Lgica Difusa, los cuales han sido implementados en
el conversor DC / DC Boost. Para el caso del conversor DC / DC Buck Boost, los
algoritmos empleados para la bsqueda del punto de mxima potencia, ante
variaciones del nivel de RSI corresponden a: P&O y Cond. Inc.

La figura 5.10 entrega la respuesta del sistema en MPPT, utilizando el algoritmo


conductancia incremental a una temperatura de 49 C. Mientras que la figura 5.11,
muestra la respuesta del algoritmo P&O a una temperatura de 25 C. Ambos resultados
obtenidos con el conversor DC/DC Boost.

El nivel de radiacin solar incidente antes de producirse la perturbacin para la


respuesta de la figura 5.10 y 5.11, es de 1040 W m

y 842
W

m , respectivamente.

De la figura 5.10 se observa como el algoritmo conductancia incremental, acta


frente a la variacin en el nivel de RSI. Antes de producirse la perturbacin (en 1.5
seg.), el panel solar se encontraba operando en la zona de mayor potencia foto
generada en 70W. Al producirse la perturbacin, la tensin del panel decae de manera
abrupta y con ello la potencia foto generada (70W 10W), por lo cual el sistema de
control acta disminuyendo el ciclo de trabajo de 55% a 30%. Dicha disminucin causa
un aumento en la tensin del panel de los 10V a 18 V (figura 5.10.b). Por lo cual,
en esta circunstancia el controlador procede ahora aumentando el ciclo de trabajo y con
ello retornando la tensin del panel solar a la de referencia (14.5V).
80

Potencia Panel Solar (W)

60

(a)

40
20
0

MPPT

10
12
Tensin Panel Solar (V)

14

16

18

20

18
16

Tensin (V)

14

(b)

Vpanel

12Vref
10012

3
Tiempo (Seg)

3
Tiempo (Seg)

Ciclo de Trabajo (%)

60
50
40(c)
30
012
20

Figura 5-10 a) Curva P-V con MPPT Cond. Inc. y variacin en la RSI.
b) Tensin del panel y tensin de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Boost con
MPPT
De la figura 5.11, se observa el comportamiento transiente para el algoritmo
Cond. Inc. La tensin donde se encuentra la mxima potencia foto generada (la cual

asciende a 65W) es de 15.5V. Por otro lado, el ciclo de trabajo se encuentra entre 25%
y 50% durante la perturbacin, y en este lapso la potencia cae de 65W 8W.

80

Tensin (V)

Potencia Panel Solar (W)

60

(a)

40
20
0

MPPT

10
15
Tensin Panel Solar (V)

20

25

20
18
16
14

(b)

Vpanel

12

Vref
10
8
012

3
Tiempo (Seg)

3
Tiempo (Seg)

Ciclo de Trabajo (%)

60
50
40(c)
30
012
20

Figura 5-11 Curva P-V con MPPT P&O y variacin en la RSI.


b) Tensin del panel y tensin de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Boost con MPPT

Para finalizar las pruebas con el conversor DC/DC Boost, se observ el


comportamiento del controlador basado en lgica difusa, ante una sombra parcial
aplicada al panel solar a una temperatura de 26 C. La respuesta de la prueba recin
mencionada, se muestra en la figura 5.12.

80

Potencia Panel Solar

60

(a)

40
20
0

MPPT
0

10
15
Tensin Panel Solar (V)

20

25

200

100

-500(b)

Error

Cambio de Error

0
-100
0

3
Tiempo (Seg)

3
Tiempo (Seg)

-1000

Cambio de Error

500

Error

300

-1500
6

Ciclo de Trabajo (%)

60
50
40(c)
30
012
20

Figura 5-12 a) Curva P-V con MPPT Difuso y variacin en la RSI.


b) Entradas del controlador difuso
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Boost con MPPT

De la figura 5.12 se observa una respuesta muy similar a las obtenidas en las
figuras 5.10 y 5.11, y es que el ciclo de trabajo disminuye ante la perturbacin, para
luego nuevamente aumentar y oscilar en torno al ciclo de trabajo ptimo para
suministrar la mxima potencia disponible en ese momento del panel solar. De la figura
5.12 se aprecia tambin, como la seal de error y la del cambio de error fluctan en
torno a cero. Durante la perturbacin el error crece cuantitativamente, forzando al
controlador a aumentar el ciclo de trabajo.

La

mxima

a 26 C y 927W

potencia

proporcionada

por

el

panel

FV

es

de

76W

, la cual cae a 10W por efecto de la sombra aplicada al panel solar.

Ahora, para el caso del conversor Buck Boost, se probaron los algoritmos: P&O
y Cond. Inc., tanto en la modalidad reductora como elevadora de dicho conversor.

La figura 5.13 entrega la respuesta del sistema en MPPT, utilizando el algoritmo


conductancia incremental a una temperatura de 45 C. Mientras que la figura 5.14,
muestra la respuesta del algoritmo P&O a una temperatura de 30 C. Ambos resultados
obtenidos con el conversor DC/DC Buck Boost, operando en la modalidad reductora.

El nivel de radiacin solar incidente antes de producirse la perturbacin para la


respuesta de la figura 5.13 y 5.14, es de 890
W
80

m
W

y 683

m , respectivamente.

Potencia Panel Solar (W)

60

(a)

40
20
0

10 MPPT 12
Tensin Panel Solar (V)

14

16

18

20

18

Tensin (V)

16

(b)

14

Vpanel

12
10

3
Tiempo (Seg)

Vref

Ciclo de Trabajo (%)

55
50
45(c)
40
012
35

3
Tiempo (Seg)

Figura 5-13 a) Curva P-V con MPPT Cond. Inc. y variacin en la RSI.
b) Tensin del panel y tensin de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Buck Boost
con MPPT

De la figura 5.13 se aprecia como la potencia cae de los cerca de 65W 8W, al
momento de producirse la perturbacin. La mxima potencia se encuentra a una

CAPTULO QUINTO: RESULTADOS EXPERIMENTALES

80

tensin de 14.5V. Por otra parte, el ciclo de trabajo desciende durante la perturbacin
de 54% a 40%. El tiempo que dura la perturbacin, es de aproximadamente 1.5 seg.
80

Potencia Panel Solar (W)

60

(a)

40
20
0

MPPT
10
15
Tensin Panel Solar (V)

20

25

20

17.5

Tensin (V)

15

(b)

Vpanel

12.5
10
0

3
Tiempo (Seg)

Vref

Ciclo de Trabajo (%)

55
50

(c)

45
40
35
0
30

3
Tiempo (Seg)

Figura 5-14 a) Curva P-V con MPPT P&O. y variacin en la RSI.


b) Tensin del panel y tensin de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Buck Boost
con MPPT

De la figura 5.14 se observa que la RSI sufre una perturbacin de duracin


1seg. En dicha perturbacin acta el algoritmo de control, de igual forma que en el
caso del conversor DC/DC elevador (Boost). Por otra parte, la perturbacin causa un
descenso en el ciclo de trabajo de 54 a 33%.

Para finalizar, se verific el seguimiento del punto de mxima potencia del


sistema fotovoltaico, utilizando ahora el conversor DC/DC Buck Boost, en

su

CAPTULO QUINTO: RESULTADOS EXPERIMENTALES

81

modalidad elevadora de tensin. Los resultados de esta modalidad se ilustran en la


figura 5.15 y 5.16, para el caso del algoritmo Cond. Inc. y P&O, respectivamente.

El nivel de radiacin solar incidente antes de producirse la perturbacin para la


respuesta de la figura 5.15 y 5.16, es de 846
W

m (a 36C)
y

954 W m

(a 36C),

respectivamente.
80

Tensin (V)

Potencia Panel Solar (W)

60

(a)

40
20
0

10
15
MPPT
Tensin Panel Solar (V)

20

25

20
17.5
15
12.5
10
7.5
5

(b)
Vpanel
Vref
3
Tiempo (Seg)

012

Ciclo de Trabajo (%)

70
65

(c)

60
55
50
0
45

3
Tiempo (Seg)

Figura 5-15 a) Curva P-V con MPPT Cond. Inc. y variacin en la RSI.
b) Tensin del panel y tensin de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Buck Boost
con MPPT.
De la figura 5.15 se observa la cada de la potencia de 60W a 10W durante la
perturbacin. En dicha perturbacin, el ciclo de trabajo cae de 68% a 47%.

80

Potencia Panel Solar (W)

60

(a)

40
20
0

10 MPPT
15
Tensin Panel Solar (V)

20

25

20

17.5

Tensin (V)

15

(b)

Vpanel

12.5
10
0

3
Tiempo (Seg)

Vref

Ciclo de Trabajo (%)

70

65

(c)

60

550

3
Tiempo (Seg)

Figura 5-16 a) Curva P-V con MPPT P&O. y variacin en la RSI.


b) Tensin del panel y tensin de referencia proveniente del algoritmo MPPT
c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC Buck Boost
con MPPT.

Para finalizar, de la figura 5.16 se observa la cada de la potencia de 78W a 20W,


al momento de producirse la baja en el nivel de RSI, la cual tiene una duracin de 1
seg. En dicha perturbacin, el ciclo de trabajo desciende de 68% a

58%.

CAPTULO QUINTO
CONCLUSIONES

CAPTULO SEXTO: CONCLUSIONES

84

6. CONCLUSIONES
La potencia proporcionada por un panel solar puede ser maximizada utilizando
para ello un sistema de control con seguimiento del punto de mxima potencia, el cual
consiste de un conversor DC/DC como interfase entre el panel solar y la carga, y una
unidad de control, que controla al conversor DC/DC de forma tal de obtener la mxima
energa proporcionada por el panel FV. En el presente trabajo de tesis se han
implementado dos conversores DC/DC: Boost y Buck Boost. Cada conversor cuenta
con una unidad de control, basada en un microcontrolador PIC18F452. A su vez, en el
microcontrolador se han implementado tres algoritmos de MPPT, estos son:
perturbacin y observacin, conductancia incremental y controlador basado en lgica
difusa.

Los resultados experimentales presentados se obtuvieron para diferentes


condiciones, tales como: nivel de radiacin solar incidente constante, aplicacin de
sombra parcial al panel solar (equivalente a una baja en el nivel de radiacin solar) y
efectos de la temperatura en un panel solar. En todas ellas, los resultados obtenidos
muestran un buen desempeo en el funcionamiento. En particular, para la generacin
de curvas I V y P V, se muestra la buena eficacia de los conversores DC/DC, al
momento de utilizarse como adaptadores de impedancia, siendo el parmetro de
adaptacin el ciclo de trabajo. Por otra parte, la respuesta del controlador de tensin
utilizado en los algoritmos P&O y Conductancia Incremental es aceptable (menos de un
5% de la tensin de referencia para la mayora de los casos). Para el caso del
controlador difuso, aun cuando es ms oscilatorio que los algoritmos recin
mencionados, logra mantener el error en torno a cero. La robustez del sistema tambin
se hizo cierta al momento de aplicrsele una sombra parcial al panel solar.

Los resultados experimentales obtenidos en esta tesis muestran las ventajas que
presentan las tcnicas de control clsica y difuso en los sistemas fotovoltaicos. Adems,
se aprecia los beneficios de utilizar un microcontrolador de bajo costo, para
aplicaciones en la cual el tiempo de muestreo no es critico (procesos lentos),
permitiendo tambin realizar de manera simple modificaciones al sistema. Si bien es
cierto, este trabajo se centr en sistemas de carga aislada, ests tcnicas son
aplicables a sistemas hbridos (solar diesel o elico solar diesel), como tambin a
sistemas conectados a la red elctrica, siendo para esto ltimo necesario el uso de un
inversor.

REFERENCIAS BIBLIOGRFICAS

86

REFERENCIAS BIBLIOGRFICAS

[1]

Biografa Henry Becquerel


http://es.wikipedia.org/wiki/Henri_Becquerel

[2]

Jacob Millmans and Christos C Halkias, "ELECTRONICA INTEGRADA".

[3]

Preguntas y respuestas sobre la energa solar.


http://www.construir.com/ECONSULT/Construr/Nro59/document/solar.htm

[4] Chihchiang Hua, Jongrong Lin and Chihming Shen., IMPLEMENTATION OF A DSPCONTROLLED PHOTOVOLTAIC SYSTEM WITH PEAK POWER TRACKING.
IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL.

45, NO.1,

FEBRUARY 1998.
[5] E. Koutroulis, K. Kalatzakis and Nicholas C. Voulgaris. DEVELOPMENT OF A
MICROCONTROLLER BASED, PHOTOVOLTAIC MAXIMUM POWER POINT
TRACKING

CONTROL

SYSTEM.

IEEE

TRANSACTIONS

ON

POWER

ELECTRONICS, VOL. 16, NO.1, JANUARY 2001.


[6] Chihchiang Hua and Chihming Shen., STUDY FOR MAXIMUM POWER POINT
TRACKING

TECHNIQUES AND

CONTROL OF

DC/DC

CONVERTERS

PHOTOVOLTAIC POWER SYSTEM .ANNUAL IEEE PESC, IEEE COMPUTER


SOC. PRESS, pp. 86 93. NEW YORK 1998.
[7] Andujar M. Jos, Enrique G. Juan, Durn A. Eladio, Martnez B.

Miguel

.,

SISTEMA PARA LA GENERACIN AUTOMTICA DE CURVAS I V, P V Y


MONITORIZACIN DE MDULOS FOTOVOLTAICOS .
[8] Moham. M. POWER ELECTRONIC:
DESIGN, 1989.

CONVERTER,

APLICATIONS

AND

[9] Jancarle L. Santos y Fernando L. M. Antunes., MAXIMUM POWER POINT


TRACKER FOR PV SYSTEM. RIO 3 WORLD CLIMATE & ENERGY EVENT,
1 5 DECEMBER 2003, RIO DE JANEIRO, BRAZIL.
[10] APPLICATION NOTES. UNDERSTANDING BOOST POWER STAGES IN
SWITCHMODE POWER SUPPLIES. TEXAS INSTRUMENTS, 1999.
[11] APPLICATION NOTES. UNDERSTANDING BUCK BOOST POWER STAGES IN
SWITCHMODE POWER SUPPLIES. TEXAS INSTRUMENTS, 2002.
[12]

TEXAS

INSTRUMENTS,

CHAPTER

16.

ACTIVE

FILTER

DESIGN

TECHNIQUES.
[13]

Tehuana C. Jorge, INTERFASE GRFICA PARA MEDIDOR DE NIVEL.

[14]

DATASHEET

PIC18FXX2 HIGH PERFORMANCE MICROCONTROLLERS

WITH 10 BITS A/D. Disponible en www.microchip.com.


[15] Johan H. R. Enslin, Mario S. Wolf, Daniel B. Snyman , and Wernher Swiegers.,
INTEGRATED

PHOTOVOLTAIC

MAXIMUM

POWER

POINT TRACKING

CONVERTER . IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL.


44, NO.6, DECEMBER 1997.
[16] Toshihiko Noguchi, Shigenori Togashi, and Ryo NakIamoto., SHORT CURRENT
PULSE BASED MAXIMUM POWER POINT TRACKING METHOD FOR
MULTIPLE

PHOTOVOLTAIC

TRANSACTIONS

ON

AND

INDUSTRIAL

CONVERTER

ELECTRONICS,

MODULE.
VOL.

49,

IEEE
NO.1,

FEBRUARY 2001.
[17] D. P. Hohm and M. E. Ropp., COMPARIVE STUDY OF MAXIMUM POWER
POINT TRACKING ALGORITHMS, June 2002.
[18] Chung Yuen Won, Duk Weon Kim, Sei Chan Kim, Won Sam Kim, and
Hack Sung Kim., A NEW MAXIMUM POWER POINT TRACKER OF
PHOTOVOLTAIC ARRAYS USING FUZZY CONTROLLER. IEEE 1994.

[19]

Tarun

Gupta,

R.

IMPLEMENTATION

R.

Boudreaux,

OF

R.

FUZZY

M.

Nelms

and

CONTROLLER

John

FOR

Y. Hung.,
DC

DC

CONVERTERS USING AN INEXPENSIVE 8 b MICROCONTROLLER. IEEE


TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 44, NO.5, OCTOBER
1997.
[20] Reyero R y Nicols C., SISTEMAS DE CONTROL BASADO EN LGICA
BORROSA: FUZZY CONTROL, CAPTULO 1, 2, 3 y 4 AO 1995.

APNDICES

APNDICE A
MENSAJES GENERADOS EN EL LCD

APNDICE A: MENSAJES GENERADOS EN EL LCD

91

La figura A1.a y b, ilustra la pantalla principal y secundaria, respectivamente. La


pantalla principal proporciona los niveles de tensiones y corrientes a los cuales se
encuentra operando el conversor DC/DC. Dichos niveles tienen un tiempo de refresco
de 1.5 seg. Por otro lado, para acceder a la pantalla secundaria, se debe presionar
uno de los botones existentes en la tarjeta LCD. Realizando dicha operacin, se informa
al usuario del ciclo de trabajo y la potencias a las cuales se encuentra operando el
conversor DC/DC (salida y entrada), adems de conocer la energa entregada por el
panel solar a la carga. La pantalla secundaria se encontrar activa hasta que se deje de
presionar el pulsador.

(a)

(b)

Figura A.1 a) Pantalla principal. b) Pantalla secundaria

La figura A.2 muestra el algoritmo de MPPT que esta utilizando el


microcontrolador. Salvo el mensaje de la figura A.2.c, el cual surge al momento de
energizar el sistema, los mensajes restantes aparecern cada vez que por medio de la
comunicacin serial existente entre el PC y la unidad de control de cada conversor
DC/DC, se elija el algoritmo P&O Cond. Inc.

(a)

(b)

(c)

Figura A.2 a) Mensaje algoritmo Perturbacin y Observacin


b) Mensaje algoritmo Conductancia Incremental
c) Mensaje algoritmo basado en un controlador difuso
De la figura A.3 se observa los mensajes generados en el LCD, al momento de
realizar u solicitar una operacin relacionada con la memoria EEPROM externa.

(a)

(b)

(c)

Figura A.3 a) Indicacin de escritura de la memoria externa


b) Indicacin de lectura de la memoria externa
c) Indicacin de trmino de la lectura de la memoria externa

Por ltimo, la figura A.4a y b muestra el caso de una solicitud de generacin de


tabla (I V) y de la ejecucin de un borrado de la energa contabilizada por el
microcontrolador, respectivamente.

(a)

(b)

Figura A.1 a) Mensaje de generacin de tabla I V


b) Mensaje de borrado de energa

APNDICE B
CDIGOS DE PROGRAMAS Y LIBRERAS

APNDICE B: CDIGOS DE PROGRAMAS Y LIBRERAS

95

Programa: Cond_inc.c
Este programa es el encargado de realizar el seguimiento del MPP de un panel
solar utilizando el conversor Boost. Para ello realiza los
siguientes
procesos: adquirir datos, crear las interrupciones del timer (cada 10ms) y de
la comunicacin serial, generar la seal de PWM proveniente de un PI para el
conversor DC/DC.
Segn lo solicitado por el usuario, mediante el software de interfaz y la
comunicacin serial, el seguimiento del MPP se puede efectuar con el algoritmo
P&O o Cond Inc. Siendo este ltimo el programado por defecto.
#include <18F452.H>
#device adc=10;
#include <math.h>
#fuses HS,NOWDT,NOPUT,NOPROTECT,NOLVP
#use delay (clock=20000000)
#use rs232 (baud=9600, xmit=PIN_C6 , rcv=PIN_C7)
#include "lcd420b452.c"
#include "2416.c"
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
int16
int16
int16
int16
int16
int16
int16
int16
int16
int32
int32
int16
int32
int32
int16
int16
int16

di;
dv;
vp;
vp_old;
ip;
ip_old;
m1;
m;
x1;
x;
n;
n1;
y1;
y;
p_new;
p_old;
vref;
ibat;
vbat;
o0;
o1;
e;
en;
energy;
fduty;
suma_pot;
dato;
dato1;
dato2;
dato3;
dato4;
dato5;
duty;
i;
ii;
j;
jj;
jjj;
cnta;
cnt_read;
cnta1;
medicion;
duty_per;

int16
int16
int16
int16
int8
char
char
char
char
char

p_i;
p_i_i;
p_o;
p_o_o;
cnt_e;
c;
//
p;
//
r;
//
w;
//
l;
//

caracter que selecciona el mtodo cond inc


caracter que selecciona el mtodo perturbacin y obs.
reset energy
escribir datos en la e2prom externa
leer datos de la e2prom externa

boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean

ENABLE;
clear_energy;
clear_cpu;
w_eeprom;
eeprom;
leer_eeprom;
pp;
cc;

byte
byte
byte
byte
byte

vp_i;
vp_o;
ip_i;
vref_i;
ddd;

float
float
float
float

const
const
const
const

ki
kpr
aa1
aa2

=
=
=
=

0.922799538;
2.884600482;
0.5335;
0.4665;

//
//
//
//

Constante
Constante
Constante
Constante

del
del
del
del

PI
PI
Filtro (10Hz y 10ms)
Filtro (10HZ Y 10ms)

#INT_RDA
void recepcion()
{
char value;
value = getc();
if(value=='p') // Habilita algoritmo P&O
{
ENABLE = FALSE;
pp
= TRUE;
}
if(value=='c')
// Habilita algoritmo cond. inc.
{
ENABLE = TRUE;
cc
= TRUE;
}
if(value=='s')
// Limpia el contador de Energa
{
clear_energy = TRUE;
}
if(value=='u') // Resetea el PIC y genera nuevamente una tabla
{
reset_cpu();
}
if(value=='w')
{
w_eeprom = TRUE; // Escribir la EEPROM EXT.
eeprom = TRUE;
}
if(value=='l')
{
leer_eeprom = TRUE;

}
}
#INT_RTCC
void interrupcion()
{
set_timer0(53036); // Interrupcin c/10mseg.
output_high(pin_C0);
ip_old = ip;
vp_old = vp;
p_old = p_new;
set_pwm1_duty(duty);
// SENSAR CORRIENTE DEL PANEL
set_adc_channel(0);
delay_us(10);
medicion = read_adc();
m = medicion * (22.73/(3*1023));
ip = aa1*m1 + aa2*m; // Filtro Digital
m1=m;
// FIN DE LA MEDICION DE CORRIENTE DEL PANEL
//
set_adc_channel(2);
delay_us(10);
medicion = read_adc();
x = medicion *(30.7/859.32); //
vp = aa1*x1 + aa2*x; // Filtro Digital
x1=x;
// FIN DE LA MEDICION DEL VOLTAJE
di=ip-ip_old;
dv=vp-vp_old;
p_new = vp * ip;
if(enable==TRUE)
{
if(dv!=0)
{
if((di/dv)!=(ip/vp))
{
if((di/dv)>(-ip/vp))
{
vref = vref + 0.002;
}
else
{
vref = vref - 0.006; //0.005
}
}
}
else
{
if(di!=0)
{
if(di>0)
{
vref = vref + 0.002;
}
else
{
vref = vref - 0.006;
}
}

}
}
else // Si no se elige Cond Inc, entonces se utiliza P&O
{
if(p_new>p_old)
{
if(vp>vp_old)
{
vref = vref + 0.002;
}
else
{
vref = vref - 0.006; //0.1
}
}
else
{
if(vp>vp_old)
{
vref = vref - 0.006;
}
else
{
vref = vref + 0.002;
}
}
}
if (vref>20.0) vref=20.0;
else if (vref<10.0) vref=10.0;
// Controlador PI
e=vp-vref;
o1=o0+ki*e;
fduty=(o1+kpr*e); // salida del controlador
// Se aplica Antiwinding Up
if(fduty>1023)
{
fduty = 1023;
}
else if(fduty<0)
{
fduty = 0;
}
else
{
o0 = o1;
}
duty=(int16)(fduty);
// Almacenar datos en la EEPROM EXT.
if(w_eeprom && j<=250)
{
ddd
= (byte)(0.33*duty);
vp_i
= (byte)(vp*8);
vref_i = (byte)(vref*8);
p_i_i
= (byte)(p_i*2);
vp_o
= (byte)(vbat*8);
p_o_o
= (byte)(p_o*2);
if(jjj==0) // Cada 100ms escribir en la eeprom
{
j+=1;
// Se incrementa la variable j

jjj+=1; // Se incrementa la variable jjj


write_ext_eeprom(j,ddd); // Almacenamos duty 0 - 250
write_ext_eeprom(j+251,vp_i); // Almacenamos Vpanel 251 - 501
write_ext_eeprom(j+502,vref_i); // Almacenamos VRef panel 502 - 752
write_ext_eeprom(j+753,p_i_i);
// Potencia de In 753 - 1003
write_ext_eeprom(j+1004,vp_o); // tensin batera 1004 - 1254
write_ext_eeprom(j+1255,p_o_o); // potencia batera 1255 - 1505
}
else
{
if(jjj==3){jjj=0;}
else {jjj+=1;}
}
}
// FIN de Almacenar datos en la EEPROM
// SENSAR CORRIENTE DE LA BATERIA
set_adc_channel(1);
delay_us(10);
medicion = read_adc();
n = medicion * (22.73/(3*1023)); // Filtro Digital
ibat = aa1*n1 + aa2*n;
n1=n;
// FIN DE LA MEDICION DE CORRIENTE DE LA BATERIA
// SENSAR VOLTAJE DE LA BATERIA
set_adc_channel( 3 );
delay_us(10);
medicion = read_adc();
y = medicion * (30.7/859.32); //
vbat = aa1*y1 + aa2*y; // Filtro Digital
y1 = y;
// FIN DE LA MEDICION DEL VOLTAJE
// VISUALIZACION ESTADO DE LA BATERIA
if(cnta1==1)
{
if(vbat>29.4)
{
output_high(pin_D0);
}
if(25.4<=vbat && vbat<=29.2)
{
output_high(pin_D1);
}
if(vbat<25.2)
{
output_high(pin_D2);
}
cnta1=cnta1+1;
}
else
{
if(cnta1==50)
{
output_low(pin_D2);
output_low(pin_D1);
output_low(pin_D0);
}
if(cnta1==100)
{ cnta1=0; }
cnta1=cnta1+1;
}

APNDICE B: CDIGOS DE PROGRAMAS Y LIBRERAS

// Fin de Visualizacin del estado de la Batera


duty_per=ceil(100*(fduty)/1024); // Traspaso del ciclo de trabajo, de
binario a %
p_i=ceil(p_new);
p_o=ceil(ibat*vbat);
if(cnt_e<20)
{
cnt_e+=1;
suma_pot+=p_new;
}
else
{
cnt_e=0;
en=(suma_pot/20)*0.2; //energia dada en Watts*seg
energy+=(en*0.00028); // energa dada en Watts*hora
suma_pot=0;
}
output_low(pin_c0);
}
main()
{
p_i_i
dato
dato1
dato2
dato3
dato4
dato5
cnta
cnta1
duty_per
medicion
vbat
ibat
vp
vp_old
ip
ip_old
dv
di
m
m1
x
x1
p_new
p_old
o0
o1
vref
e
fduty
duty
i
j
p_i
p_o
duty_per
ii
jj
jjj
en

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
14;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;

100

APNDICE B: CDIGOS DE PROGRAMAS Y LIBRERAS

energy
= 0;
suma_pot
= 0;
cnt_e
= 0;
cnt_read
= 0;
vp_i
= 0;
vp_o
= 0;
vref_i
= 0;
ddd
= 0;
ip_i
= 0;
p_o_o
= 0;
enable
= TRUE;
clear_energy= FALSE;
pp
= FALSE;
cc
= FALSE;
w_eeprom
=
FALSE;
leer_eeprom = FALSE;
eeprom
= FALSE;
output_low(PIN_C5); // Apagado del mosfet de SHORT CIRCUIT
lcd_init();
init_ext_eeprom();
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_ccp1(CCP_PWM); // Configura CCP1 como PWM
setup_timer_2(T2_DIV_BY_1,255, 1); // fs = 19.53kHz
lcd_gotoxy(1,1);
lcd_putc("******* MPPT *******");
lcd_gotoxy(1,2);
lcd_putc("* Incremental Cond *");
delay_ms(1500);
lcd_gotoxy(1,1);
lcd_putc(" Table Generating ");
lcd_gotoxy(1,2);
lcd_putc("
Wait
");
do
{
set_pwm1_duty(duty);
delay_ms(5);
// SENSAR CORRIENTE DEL PANEL
set_adc_channel(0);
delay_us(10);
medicion = read_adc();
m = medicion * (22.73/(3*1023)); // Filtro Digital
ip = aa1*m1 + aa2*m;
m1 = m;
// FIN DE LA MEDICION DE CORRIENTE DEL PANEL
// SENSAR VOLTAJE DEL PANEL
set_adc_channel( 2 );
delay_us(10);
medicion = read_adc();
x= medicion * (30.7/859.32); //
vp = aa1*x1 + aa2*x; // Filtro Digital
x1 = x;
// FIN DE LA MEDICION DEL VOLTAJE
// SENSAR CORRIENTE DE LA BATERIA
set_adc_channel(1);
delay_us(10);
medicion = read_adc();
n = medicion * (22.73/(3*1023)); // Filtro Digital
ibat = aa1*n1 + aa2*n;

101

n1=n;
// FIN DE LA MEDICION DE CORRIENTE DE LA BATERIA
// SENSAR VOLTAJE DE LA BATERIA
set_adc_channel( 3 );
delay_us(10);
medicion = read_adc();
y = medicion * (30.7/859.32); //
vbat = aa1*y1 + aa2*y; // Filtro Digital
y1 = y;
// FIN DE LA MEDICION DEL VOLTAJE
printf("%lu
%02.3f
%02.3f
%02.3f
%02.3f\r\n",duty,vp,ip,vbat,ibat);
duty+=4;
delay_ms(5);
}while(duty<=1024);
duty
medicion
vp
ip
vbat
ibat
x1
x
m1
m
n1
n
y1
y

=
=
=
=
=
=
=
=
=
=
=
=
=
=

200;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;

enable_interrupts(INT_TIMER0);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
for(;;)
{
if(cnta==1)
{
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("IN");
lcd_gotoxy(9,1);
lcd_putc("V");
lcd_gotoxy(20,1);
lcd_putc("V");
lcd_gotoxy(9,2);
lcd_putc("A");
lcd_gotoxy(20,2);
lcd_putc("A");
lcd_gotoxy(11,1 );
lcd_putc("OUT");
lcd_gotoxy(4,1);
printf(lcd_putc,"%02.1f",vp);
lcd_gotoxy(15,1);
printf(lcd_putc,"%02.1f",vbat);
lcd_gotoxy(4,2);
printf(lcd_putc,"%02.1f",ip);
lcd_gotoxy(15,2);

printf(lcd_putc,"%02.1f",ibat);
}
if(!input(pin_D3))
{
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("IN");
lcd_gotoxy(11,1);
lcd_putc("OUT");
lcd_gotoxy(9,1);
lcd_putc("W");
lcd_gotoxy(20,1);
lcd_putc("W");
lcd_gotoxy(1,2);
lcd_putc("Duty");
lcd_gotoxy(9,2);
lcd_putc("%");
lcd_gotoxy(11,2);
lcd_putc("E");
lcd_gotoxy(19,2);
lcd_putc("Wh");
lcd_gotoxy(5,1);
printf(lcd_putc,"%Lu",p_i); // Potencia de Entrada
lcd_gotoxy(15,1);
printf(lcd_putc,"%Lu",p_o); // Potencia de Salida
lcd_gotoxy(6,2);
printf(lcd_putc,"%Lu",duty_per);
// Ciclo de trabajo en %
lcd_gotoxy(13,2);
printf(lcd_putc,"%02.2f",energy); // Energa en Watts-Hora
do{}while(!input(pin_D3)); // Detectar que se solto tecla
}
if(!input(pin_D4) || clear_energy )
{
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("
Reset Energy
");
lcd_gotoxy(1,2);
lcd_putc("--------------------");
do{}while(!input(pin_D4)); // Detectar que se solto tecla
clear_energy = FALSE;
delay_ms(500);
energy = 0;
}
if(pp)
{
pp = FALSE;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("******* MPPT *******");
lcd_gotoxy(1,2);
lcd_putc("* P&O Algorithm *");
delay_ms(1500);
}
if(cc)
{
cc = FALSE;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("******* MPPT *******");
lcd_gotoxy(1,2);
lcd_putc("* Incremental Cond *");

delay_ms(1500);
}
if(eeprom)
{
eeprom = FALSE;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc(" Write Ext EEPROM ");
lcd_gotoxy(1,2);
lcd_putc("
24C16B
");
delay_ms(1500);
}
if(leer_eeprom) // Para mostrar datos
{
leer_eeprom = FALSE;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc(" Read Ext EEPROM ");
lcd_gotoxy(1,2);
lcd_putc("
24C16B
");
delay_ms(1500);
for(jj=0;jj<=250;jj++)
{
dato = (read_ext_eeprom(jj));
// Se recupera duty
dato1 = (read_ext_eeprom(jj+251)); // Se recupera Vpanel
dato2 = (read_ext_eeprom(jj+502)); // Se recupera Vref
dato3 = (read_ext_eeprom(jj+753)); // Se recupera Pot panel
dato4 = (read_ext_eeprom(jj+1004)); // Se recupera la Vout
dato5 = (read_ext_eeprom(jj+1255)); // Se recupera la pot
printf("%lu %lu %lu %lu %lu %lu\r\n",dato,dato1,dato2,dato3,dato4,dato5);
}
if(jj==251)
{
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("
Read Ready
");
lcd_gotoxy(1,2);
lcd_putc("
24C16B
");
delay_ms(5000);
}
}
if(cnta == 150000)
{ cnta = 0; }
cnta+=1;
}
}

Programa: Cond_inc_bb.c
Este programa es el encargado de realizar el seguimiento del MPP de un panel
solar utilizando el conversor Buck - Boost. Para ello realiza los siguientes
procesos: adquirir datos, crear las interrupciones del timer (cada 10ms) y de
la comunicacin serial, generar la seal de PWM proveniente de un PI para el
conversor DC/DC.
Segn lo solicitado por el usuario, mediante el software de interfaz y la
comunicacin serial, el seguimiento del MPP se puede efectuar con el algoritmo
P&O o Cond Inc. Siendo este ltimo el programado por defecto.
#include <18F452.H>
#device adc=10;
#include <math.h>
#fuses HS,NOWDT,NOPUT,NOPROTECT,NOLVP
#use delay (clock=20000000)
#use rs232 (baud=9600, xmit=PIN_C6 , rcv=PIN_C7)
#include "lcd420b452.c"
#include "2416.c"
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
int16
int16
int16
int16
int16
int16
int16
int16
int16
int16
int32
int32
int16
int32
int32
int16
int16
int16
int16
int16
int16
int16
int8
char

di;
dv;
vp;
vp_old;
ip;
ip_old;
p_new;
p_old;
vref;
ibat;
vbat;
o0;
o1;
e;
en;
energy;
fduty;
suma_pot;
dato;
dato1;
dato2;
dato3;
dato4;
dato5;
duty;
duty_aux=0;
i;
ii;
j;
jj;
jjj;
cnta;
cnt_read;
cnta1;
medicion;
duty_per;
p_i;
p_i_i;
p_o;
p_o_o;
cnt_e;
c;
// carcter que selecciona el mtodo cond inc

char
char
char
char

p;
r;
w;
l;

//
//
//
//

carcter que selecciona el mtodo perturbacin y obs.


reset energy
escribir datos en la e2prom externa
leer datos de la e2prom externa

boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean

ENABLE;
clear_energy;
clear_cpu;
w_eeprom;
eeprom;
leer_eeprom;
pp;
cc;

byte
byte
byte
byte
byte

vp_i;
vp_o;
ip_i;
vref_i;
ddd;

float
float
float
float
float
float
float
float
float
float
float
float

const
const
const
const
const
const
const
const
const
const
const
const

ki = 0.922799538;
kpr = 2.884600482;
aa1 = 0.7304;
aa2 = 0.2696;
aa3 = 0.9391;
aa4 = 0.0609;
aa5 = 0.9691;
aa6 = 1-aa5;
aa7 = 0.9937 ;
aa8 = 1-aa7;
aa9 = 0.9994;
aa10= 1- aa9;

//
//
//
//
//
//
//
//
//
//
//

Constante
Constante
Constante
Constante
Constante
Constante
Constante
Constante
Constante
Constante
Constante

del
del
del
del
del
del
del
del
del
del
del

PI
PI
Filtro
Filtro
Filtro
Filtro
Filtro
Filtro
Filtro
Filtro
Filtro

(5Hz
y 10ms)
(5HZ
y 10ms)
(1Hz
y 10ms)
(1Hz
y 10ms)
(0.5Hz y 10ms)
(0.5Hz y 10ms)
(0.1Hz y 10ms)
(0.1Hz y 10ms)
(0.01Hz y 10ms)

Float m=0,m1=0,n=0,n1=0,y=0,y1=0,x=0,x1=0;
#INT_RDA
void recepcion()
{
char value;
value = getc();
if(value=='p') // Habilita algoritmo P&O
{
ENABLE = FALSE;
pp
= TRUE;
}
if(value=='c')
// Habilita algoritmo cond. inc.
{
ENABLE = TRUE;
cc
= TRUE;
}
if(value=='s')
// Limpia el contador de Energa
{
clear_energy = TRUE;
}
if(value=='u') // Resetea el PIC y genera nuevamente una tabla
{
reset_cpu();
}
if(value=='w')
{
w_eeprom = TRUE; // Escribir la EEPROM EXT.
eeprom = TRUE;
}
if(value=='l')

{
}

leer_eeprom = TRUE;

}
#INT_RTCC
void interrupcion()
{
set_timer0(53036); // Interrupcin c/10mseg.
output_high(pin_C0);
ip_old = ip;
vp_old = vp;
p_old = p_new;
set_pwm1_duty(duty);
// SENSAR CORRIENTE DEL PANEL
set_adc_channel(0);
delay_us(10);
medicion = read_adc();
m = medicion * 6.45e-3; // Filtro Digital
ip = aa1*m1 + aa2*m;
m1 = m;
// FIN DE LA MEDICION DE CORRIENTE DEL PANEL
// SENSAR VOLTAJE DEL PANEL
set_adc_channel(2);
delay_us(10);
medicion = read_adc();
x = medicion* 0.02975;
vp = aa1*x1 + aa2*x; // Filtro Digital
x1=x; //
// FIN DE LA MEDICION DEL VOLTAJE
di=ip-ip_old;
dv=vp-vp_old;
p_new = vp * ip;
if(enable==TRUE)
{
if(dv!=0)
{
if((di/dv)!=(ip/vp))
{
if((di/dv)>(-ip/vp))
{
vref = vref + 0.01;
}
else
{
vref = vref - 0.03; //0.005
}
}
}
else
{
if(di!=0)
{
if(di>0)
{
vref = vref + 0.01;
}
else
{
vref = vref - 0.03;

}
}

}
}
else // Si no se elige Cond Inc, entonces se utiliza P&O
{
if(p_new>p_old)
{
if(vp>vp_old)
{
vref = vref + 0.01;
}
else
{
vref = vref - 0.03; //0.1
}
}
else
{
if(vp>vp_old)
{
vref = vref - 0.03;
}
else
{
vref = vref + 0.01;
}
}
}
if (vref>20.0) vref=20.0;
else if (vref<11.5) vref=11.5;
// Controlador PI
e=vp-vref;
o1=o0+ki*e;
fduty=(o1+kpr*e); // salida del controlador
// Se aplica Antiwinding Up
if(fduty>1023)
{
fduty = 1023;
}
else if(fduty<0)
{
fduty = 0;
}
else
{
o0 = o1;
}
duty=(int16)(fduty);
// Almacenar datos en la EEPROM EXT.
if(w_eeprom && j<=250)
{
ddd
= (byte)(0.33*duty);
vp_i
= (byte)(vp*8);
vref_i = (byte)(vref*8);
p_i_i
= (byte)(p_i*2);
vp_o
= (byte)(vbat*8);
p_o_o
= (byte)(p_o*2);
if(jjj==0)

// Cada 100ms escribir en la eeprom

{
j+=1;
// Se incrementa la variable j
jjj+=1; // Se incrementa la variable jjj
write_ext_eeprom(j,ddd); // Almacenamos duty 0 - 250
write_ext_eeprom(j+251,vp_i); // Almacenamos Vpanel 251 - 501
write_ext_eeprom(j+502,vref_i); // Voltaje Ref panel 502 - 752
write_ext_eeprom(j+753,p_i_i);
// Potencia de In 753 - 1003
write_ext_eeprom(j+1004,vp_o); // tensin batera 1004 - 1254
write_ext_eeprom(j+1255,p_o_o); // potencia batera 1255 - 1505
}
else
{
if(jjj==3){jjj=0;}
else {jjj+=1;}
}
}
// FIN de Almacenar datos en la EEPROM
// SENSAR CORRIENTE DE LA BATERIA
set_adc_channel(1);
delay_us(10);
medicion = read_adc();
n = medicion*6.45e-3;
ibat = aa1*n1 + aa2*n;
n1=n;
// FIN DE LA MEDICION DE CORRIENTE DE LA BATERIA
// SENSAR VOLTAJE DE LA BATERIA
set_adc_channel( 3 );
delay_us(10);
medicion = read_adc();
y = medicion* 0.02975;
vbat = aa1*y1 + aa2*y;
y1=y;
// FIN DE LA MEDICION DEL VOLTAJE
// VISUALIZACION ESTADO DE LA BATERIA
if(cnta1==1)
{
if(vbat>29.4)
{
output_high(pin_D0);
}
if(25.4<=vbat && vbat<=29.2)
{
output_high(pin_D1);
}
if(vbat<25.2)
{
output_high(pin_D2);
}
cnta1=cnta1+1;
}
else
{
if(cnta1==50)
{
output_low(pin_D2);
output_low(pin_D1);
output_low(pin_D0);
}
if(cnta1==100)
{ cnta1=0; }

APNDICE B: CDIGOS DE PROGRAMAS Y LIBRERAS

cnta1=cnta1+1;
}
// Fin de Visualizacin del estado de la Batera
duty_per=ceil(100*(fduty)/1024); // Traspaso del ciclo de trabajo, de
binario a %
p_i=ceil(p_new);
p_o=ceil(ibat*vbat);
if(cnt_e<20)
{
cnt_e+=1;
suma_pot+=p_new;
}
else
{
cnt_e=0;
en=(suma_pot/20)*0.2; //energia dada en Watts*seg
energy+=(en*0.00028); // energa dada en Watts*hora
suma_pot=0;
}
}

output_low(pin_c0);

main()
{
p_i_i
dato
dato1
dato2
dato3
dato4
dato5
cnta
cnta1
duty_per
medicion
vbat
ibat
vp
vp_old
ip
ip_old
dv
di
p_new
p_old
o0
o1
vref
e
fduty
duty
i
j
p_i
p_o
duty_per
ii
jj
jjj
en
energy
suma_pot

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
14.5;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;

110

APNDICE B: CDIGOS DE PROGRAMAS Y LIBRERAS

cnt_e
= 0;
cnt_read
= 0;
vp_i
= 0;
vp_o
= 0;
vref_i
= 0;
ddd
= 0;
ip_i
= 0;
p_o_o
= 0;
enable
= TRUE;
clear_energy= FALSE;
pp
= FALSE;
cc
= FALSE;
w_eeprom
=
FALSE;
leer_eeprom = FALSE;
eeprom
= FALSE;
output_low(PIN_C5);

// Apagado del mosfet de SHORT CIRCUIT

lcd_init();
init_ext_eeprom();
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_ccp1(CCP_PWM); // Configura CCP1 como PWM
setup_timer_2(T2_DIV_BY_1,255, 1); // fs = 19.53kHz
lcd_gotoxy(1,1);
lcd_putc("******* MPPT *******");
lcd_gotoxy(1,2);
lcd_putc("* Incremental Cond *");
delay_ms(1500);
lcd_gotoxy(1,1);
lcd_putc(" Table Generating ");
lcd_gotoxy(1,2);
lcd_putc("
Wait
");
do
{
set_pwm1_duty(duty);
delay_ms(5);
// SENSAR CORRIENTE DEL PANEL
set_adc_channel(0);
delay_us(10);
medicion = read_adc();
m = medicion * 6.45e-3;
ip = aa1*m1 + aa2*m;
m1 = m;
// FIN DE LA MEDICION DE CORRIENTE DEL PANEL
// SENSAR VOLTAJE DEL PANEL
set_adc_channel(2);
delay_us(10);
medicion = read_adc();
x = medicion* 0.02975;
vp = aa1*x1 + aa2*x; // Filtro Digital
x1=x;
// FIN DE LA MEDICION DEL VOLTAJE
// SENSAR CORRIENTE DE LA BATERIA
set_adc_channel(1);
delay_us(10);
medicion = read_adc();
n = medicion*6.45e-3;

111

ibat = aa1*n1 + aa2*n;


n1=n;
// FIN DE LA MEDICION DE CORRIENTE DE LA BATERIA
// SENSAR VOLTAJE DE LA BATERIA
set_adc_channel( 3 );
delay_us(10);
medicion = read_adc();
y = medicion* 0.02975;
vbat = aa1*y1 + aa2*y;
y1=y;
// FIN DE LA MEDICION DEL VOLTAJE
printf("%lu
%02.3f
%02.3f
%02.3f
duty+=4;
delay_ms(5);
}while(duty<=1024);
duty
medicion
vp
ip
vbat
ibat

=
=
=
=
=
=

200;
0;
0;
0;
0;
0;

enable_interrupts(INT_TIMER0);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
for(;;)
{
if(cnta==1)
{
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("IN");
lcd_gotoxy(9,1);
lcd_putc("V");
lcd_gotoxy(20,1);
lcd_putc("V");
lcd_gotoxy(9,2);
lcd_putc("A");
lcd_gotoxy(20,2);
lcd_putc("A");
lcd_gotoxy(11,1 );
lcd_putc("OUT");
lcd_gotoxy(4,1);
printf(lcd_putc,"%02.1f",vp);
lcd_gotoxy(15,1);
printf(lcd_putc,"%02.1f",vbat);
lcd_gotoxy(4,2);
printf(lcd_putc,"%02.1f",ip);
lcd_gotoxy(15,2);
printf(lcd_putc,"%02.1f",ibat);
}

if(!input(pin_D3))
{

%02.3f\r\n",duty,vp,ip,vbat,ibat);

lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("IN");
lcd_gotoxy(11,1);
lcd_putc("OUT");
lcd_gotoxy(9,1);
lcd_putc("W");
lcd_gotoxy(20,1);
lcd_putc("W");
lcd_gotoxy(1,2);
lcd_putc("Duty");
lcd_gotoxy(9,2);
lcd_putc("%");
lcd_gotoxy(11,2);
lcd_putc("E");
lcd_gotoxy(19,2);
lcd_putc("Wh");
lcd_gotoxy(5,1);
printf(lcd_putc,"%Lu",p_i); // Potencia de Entrada
lcd_gotoxy(15,1);
printf(lcd_putc,"%Lu",p_o); // Potencia de Salida
lcd_gotoxy(6,2);
printf(lcd_putc,"%Lu",duty_per);
// Ciclo de trabajo en %
lcd_gotoxy(13,2);
printf(lcd_putc,"%02.2f",energy); // Energa en Watts-Hora
do{}while(!input(pin_D3)); // Detectar que se solto tecla
}
if(!input(pin_D4) || clear_energy )
{
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("
Reset Energy
");
lcd_gotoxy(1,2);
lcd_putc("--------------------");
do{}while(!input(pin_D4)); // Detectar que se solto tecla
clear_energy = FALSE;
delay_ms(500);
energy = 0;
}
if(pp)
{
pp = FALSE;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("******* MPPT *******");
lcd_gotoxy(1,2);
lcd_putc("* P&O Algorithm *");
delay_ms(1500);
}
if(cc)
{
cc = FALSE;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("******* MPPT *******");
lcd_gotoxy(1,2);
lcd_putc("* Incremental Cond *");
delay_ms(1500);
}
if(eeprom)

eeprom = FALSE;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc(" Write Ext EEPROM ");
lcd_gotoxy(1,2);
lcd_putc("
24C16B
");
delay_ms(1500);

}
if(leer_eeprom) // Para mostrar datos
{
leer_eeprom = FALSE;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc(" Read Ext EEPROM ");
lcd_gotoxy(1,2);
lcd_putc("
24C16B
");
delay_ms(1500);
for(jj=0;jj<=250;jj++)
{
dato = (read_ext_eeprom(jj));
// Se recupera duty
dato1 = (read_ext_eeprom(jj+251)); // Se recupera Vpanel
dato2 = (read_ext_eeprom(jj+502)); // Se recupera Vref
dato3 = (read_ext_eeprom(jj+753)); // Se recupera Potencia panel
dato4 = (read_ext_eeprom(jj+1004)); // Se recupera la tensin out
dato5 = (read_ext_eeprom(jj+1255)); // Se recupera la potencia salida

printf("%lu %lu %lu %lu %lu %lu\r\n",dato,dato1,dato2,dato3,dato4,dato5);


}
if(jj==251)
{
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("
Read Ready
");
lcd_gotoxy(1,2);
lcd_putc("
24C16B
");
delay_ms(5000);
}
}
if(cnta == 150000)
{ cnta = 0; }
cnta+=1;
}
}

Programa: fuzzy.c
Este programa es el encargado de realizar el seguimiento del MPP de un panel
solar utilizando el conversor Boost. Para ello realiza los
siguientes
procesos: adquirir datos, crear las interrupciones del timer (cada 20ms) y de
la comunicacin serial, generar la seal de PWM proveniente de un controlador
basado en lgica difusa.
// ***************************************************************|
//
MPPT EN SISTEMAS FOTOVOLTAICOS
|
//
UTILIZANDO FUZZY LOGIC CONTROL
|
//
|
//
Todas las funciones de pertenencia: tanto entradas e y de
|
// como salida (dd) son del tipo TRIANGULAR con un solapamiento |
//
de un 50%.
|
//
|
//
nb nm ns zo ps pm pb
|
//
|
//
\ /\ /\ /\ /\ /\ /
|
//
\ \ \ \ \ \
|
//
/ \/ \/ \/ \/ \/ \
|
//
-6 -4 -2 0 2 4 6
|
//
|
//
|
// PROGRAMA FUNCIONANDO EN PERFECTO ESTADO
|
// ***************************************************************|
#include <18F452.H>
#device adc=10;
#include <math.h>
#fuses HS,NOWDT,NOPUT,NOPROTECT,NOLVP
#use delay (clock=20000000)
#use rs232 (baud=9600, xmit=PIN_C6 , rcv=PIN_C7)
#include "lcd420b452.c"
#include "2416.c"
float vp=0.0,ip=0.0,vb=0.0,ib=0.0,ip_old=0.0,pk=0.0,pk_old=0.0,ek=0.0;
float vb_old=0.0,ib_old=0.0,vp_old=0.0,vpf=0.0,ipf=0.0,vbf=0.0,ibf=0.0;
float ek_old=0.0,cek=0.0,xx=0.0,xxx=0.0,yyy=0.0,pout_aux=0.0;
float perror[2],pderror[2],c[7],regla[7][7],fdu[3],pdu[3],min=0.0,max=0.0;
float fin[90],pout=0;
float num=0.0, den=1.0,dd=0.0,fduty=0.0,ffduty=0.0;
int ferror[2],fderror[2],kkk=0,uuu=0,ja=0;
int16 indice,z=0,zzz=0,dato=0,dato1=0,dato2=0,dato3=0,dato4=0,dato5=0,kkkk=0;
int32 medicion=0,duty=0,cnta=0;
float
float
float
float

const
const
const
const

aa1 = 0.9875; // Constante del Filtro (0.1Hz y 20ms)


aa2 = 1-aa1; // Constante del Filtro (0.1HZ Y 20ms)
dutymax = 1023;
dutymin = 0;

float m=0,m1=0,n1=0,n=0,x1=0,x=0,y1=0,y=0;
boolean eeprom
= FALSE;
boolean leer_eeprom = FALSE;
boolean w_eeprom = FALSE;
boolean chip
= FALSE;
byte vp_i =0, ip_i=0, ek_m=0, cek_m=0,dduty=0,p_o=0;
//=====================================================|
//
Funciones de Pertenencia
|
//=====================================================|
int
const NB=0; /* NEGATIVE BIG
*/

int
const NM=1; /* NEGATIVE MEDIUM
*/
int
const NS=2; /* NEGATIVE SMALL
*/
int
const ZO=3; /* ZERO
*/
int
const PS=4; /* POSITIVE SMALL
*/
int
const PM=5; /* POSITIVE MEDIUM
*/
int
const PB=6; /* POSITIVE BIG
*/
//=====================================================|
//
Fin Funciones de Pertenencia
|
//=====================================================|
float minimo(xxx,yyy)
{
if(yyy<=xxx) min=yyy;
else
min=xxx;
return min;
}
float maximo(xxx,yyy)
{
if(yyy>=xxx) max=yyy;
else
max=xxx;
return max;
}
#INT_RDA
void recepcion()
{
char value;
value = getc();
if(value=='w')
{
eeprom = TRUE;
// orden de escribir eeprom
w_eeprom = TRUE;
}
if(value=='l')
{
leer_eeprom = TRUE; // orden de leer eeprom
}
if(value=='u') // Resetea el PIC
{
reset_cpu();
}
if(value=='q')
{
chip = TRUE;
}
}
#INT_RTCC
void interrupcion()
{
set_timer0(53036); // Interrupcin Timer c/20ms
output_high(pin_C0); // medicin time ejec. programa
/* SENSAR CORRIENTE DEL PANEL */
set_adc_channel(0);
delay_us(10);
medicion = read_adc();
ip = medicion*(22.73/(3069)); // 3*1023=3069
//ip = aa1*m1 + aa2*m;
//m1=m;
/* FIN DE SENSAR CORRIENTE DEL PANEL */
/* SENSAR TENSION DEL PANEL*/
set_adc_channel(2);
delay_us(10);

medicion = read_adc();
vp = medicion*(30.7/859.32); //
//vp = aa1*x1 + aa2*x; // Filtro Digital
//x1=x;
/* FIN DE SENSAR TENSION DEL PANEL */
pk=vp*ip;
ek=(pk-pk_old)/(vp_old-vp);
ek = 3.4*ek;//0.04 / 3.25
cek=ek-ek_old;
cek= 3.4*cek;
ek_old=ek;
pk_old= pk;
ip_old = ip;
vp_old = vp;
vb_old = vb;
ib_old = ib;
//==================================================================
//
Fuzzificacin E(K)
//==================================================================
if((ek>-6.0)&&(ek<6.0))
{
indice=(int16)((ek+6.0)*7.5);
perror[0]=fin[indice];
perror[1]=1-perror[0];
ferror[0]=(int16)(indice/15.0);
ferror[1]=ferror[0]+1;
}
if(ek<=-6.0)
{
perror[0]=1.0;
perror[1]=0.0;
ferror[0]=NB;
ferror[1]=NM;
}
if(ek>=6.0)
{
perror[0]=1.0;
perror[1]=0.0;
ferror[0]=PB;
ferror[1]=PM;
}
//==================================================================
//
Fuzzificacin CE(K)
//==================================================================
if((cek>-6.0)&&(cek<6.0))
{
indice=(int16)((cek+6.0)*7.5);
pderror[0]=fin[indice];
pderror[1]=1-pderror[0];
fderror[0]=(int16)(indice/15.0);
fderror[1]=fderror[0]+1;
}
if(cek<=-6.0)
{
pderror[0]=1.0;
pderror[1]=0.0;
fderror[0]=NB;
fderror[1]=NM;
}
if(cek>=6.0)
{
pderror[0]=1.0;

pderror[1]=0.0;
fderror[0]=PB;
fderror[1]=PM;

}
//===========================================================
//
Toma de Decisin
//===========================================================
fdu[0]=regla[ferror[0]][fderror[0]];
fdu[1]=regla[ferror[0]][fderror[1]];
fdu[2]=regla[ferror[1]][fderror[1]];
pdu[0]=minimo(perror[0],pderror[0]);
pdu[1]=maximo(minimo(perror[0],pderror[1]),minimo(perror[1],pderror[0]));
pdu[2]=minimo(perror[1],pderror[1]);
//===========================================================
//
FIN Toma de Decisin
//===========================================================
//===========================================================
//
Desfuzzificacin
//===========================================================
den=(pdu[0]+pdu[1]+pdu[2]); num=((c[fdu[0]]*pdu[0])+
(c[fdu[1]]*pdu[1])+(c[fdu[2]]*pdu[2])); dd=1.4*(num/den); //
dd: delta duty cycle / 2.25
//===========================================================
//
FIN Desfuzzificacin
//===========================================================
//===========================================================
//
Se aplica Antiwinding Up
//===========================================================
fduty=ffduty+dd;
if(fduty>dutymax) {fduty=dutymax;}
else if(fduty<dutymin) {fduty=dutymin;}
else {ffduty=fduty;} // Se integra
duty=(int16)(fduty); // Se hace el traspaso de flot a int
set_pwm1_duty(duty);
//===========================================================
//
FIN Antiwinding Up
//===========================================================
//===========================================================
//
Sensar Tensin y Corriente de Salida
//===========================================================
set_adc_channel(1);
delay_us(10);
medicion = read_adc();
ib = medicion * (22.73/3069);
set_adc_channel( 3 );
delay_us(10);
medicion = read_adc();
vb = medicion*(30.7/859.32);
//===========================================================
//
Fin de Sensado de Tensin y Corriente de Salida
//===========================================================
//===========================================================
//
Filtrado de las Variables
//===========================================================
pout_aux=vb*ib;
vpf=aa1*vp_old+aa2*vp;
ipf=aa1*ip_old+aa2*ip;
vbf=aa1*vb_old+aa2*vb;

ibf=aa1*ib_old+aa2*ib;
pout=vpf*ipf;
//===========================================================
//
Fin Filtrado de las Variables
//===========================================================
//===========================================================
//
ALMACENAR DATOS EN LA EEPROM EXTERNA
//===========================================================
if(eeprom && z<251)
{
vp_i
= (byte)(vpf*8); // guardar tensin del panel
ip_i
= (byte)(ipf*30); // guardar corriente del panel
ek_m
= (byte)(ek); // guardar el error
cek_m
= (byte)(cek); // guardar cambio de el error
dduty
= (byte)(duty*0.33); // guardar ciclo de trabajo
p_o
= (byte)(pout_aux*2); // guardar potencia salida
if(zzz==0) // Cada 100ms escribir en la eeprom
{
z+=1;
// Se incrementa la variable z
zzz+=1; // Se incrementa la variable zzz
write_ext_eeprom(z,vp_i); // Almacenamos Voltaje Panel 0 write_ext_eeprom(z+251,ip_i); // Almacenamos corriente pv
write_ext_eeprom(z+502,ek_m); // Almacenamos error 502-752
write_ext_eeprom(z+753,cek_m); // Almacenamos cerror 753 write_ext_eeprom(z+1004,dduty); // Almacenamos duty 1004 write_ext_eeprom(z+1255,p_o);
}

250
251 - 501
1003
1254

else
{
if(zzz>1){zzz=0;}
else {zzz+=1;}
}
}
//============================================================
//
FIN DE ALMACENAMIENTO EN LA E2PROM
//============================================================
if(kkk==0 && chip)
{
kkk+=1;
kkkk+=1;
if(kkkk>249) { chip = FALSE; }
else printf("\n\r %02.2f %02.2f %02.2f %02.2f %lu %02.2f
\n\r",vp,ip,ek,cek,duty,pout_aux);
}
else
{ if(kkk>1) kkk=0; else kkk=kkk+1; }
output_low(pin_C0); // fin medicion del time de ejecucin programa
}
main()
{
int iii=0,jjj=0; for(iii=0;iii<90;iii+
+)
{
fin[iii]=0.0; // Inicializacin del vector fin[iii]
}
for(iii=0;iii<2;iii++)
{
perror[iii]=0.0;
pderror[iii]=0.0;

APNDICE B: CDIGOS DE PROGRAMAS Y LIBRERAS

ferror[iii]=0;
fderror[iii]=0;
}
for(iii=0;iii<3;iii++)
{
pdu[iii]=0.0;
fdu[iii]=0;
}
output_low(PIN_C5); // Apagado del mosfet de SHORT CIRCUIT
lcd_init();
init_ext_eeprom();
//|===========================================================|
//|
Centro de las Funciones de Pertenencia
|
//|===========================================================|
c[NB]=-6.0;
c[NM]=-4.0;
c[NS]=-2.0;
c[ZO]= 0.0;
c[PS]=-c[NS];
c[PM]=-c[NM];
c[PB]=-c[NB];
//|===========================================================|
//|
Creacin de las Funciones de Pertenencia de entrada
|
//|===========================================================|
for(iii=0;iii<16;iii++)
{
xx=(1.0-(iii/15.0));
fin[iii]
=xx;
fin[15+iii]=xx;
fin[30+iii]=xx;
fin[45+iii]=xx;
fin[60+iii]=xx;
fin[75+iii]=xx;
fin[15]=1.0;
fin[30]=1.0;
fin[45]=1.0;
fin[60]=1.0;
fin[75]=1.0;
}
//============================================================|
//
REGLAS DEL CONTROLADOR DE FUZZY LOGIC
|
//============================================================|
for(iii=0;iii<4;iii++)
{
for(jjj=0;jjj<(4-iii);jjj++)
{
regla[iii][jjj]=NB;
regla[6-iii][6-jjj]=PB;
}
}
for(iii=0;iii<5;iii++)
{
regla[iii][4-iii]=NM;
regla[iii+2][6-iii]=PM;
}
for(iii=0;iii<6;iii++)
{
regla[iii][5-iii]=NS;
regla[iii+1][6-iii]=PS;
}
for(iii=0;iii<7;iii++)
{
regla[iii][6-iii]=ZO;
}

120

APNDICE B: CDIGOS DE PROGRAMAS Y LIBRERAS

121

//===============================================================|
//
LAS REGLAS CREAN LA MATRIZ SIGUIENTE
|
//
|
//
CE(K)
|
//
|
//
NB
NM
NS
ZO
PS
PM
PB
|
//
\---------------------------------|
//
NB | NB | NB | NB | NB | NM | NS | ZO
|
//
----------------------------------|
//
NM | NB | NB | NB | NM | NS | ZO | PS
|
//
----------------------------------|
//
NS | NB | NB | NM | NS | ZO | PS | PM
|
//
----------------------------------|
//
E(K)
ZO | NB | NM | NS | ZO | PS | PM | PB
|
//
----------------------------------|
//
PS | NM | NS | ZO | PS | PM | PB | PB
|
//
----------------------------------|
//
PM | NS | ZO | PS | PM | PB | PB | PB
|
//
----------------------------------|
//
PB | ZO | PS | PM | PB | PB | PB | PB
|
//
----------------------------------|
//
|
//================================================================
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_ccp1(CCP_PWM); // Configura CCP1 como PWM
setup_timer_2(T2_DIV_BY_1,255, 1); // fs = 19.53kHz
enable_interrupts(INT_TIMER0);
enable_interrupts(INT_RDA); // Interrupcin al existir un evento en com1
enable_interrupts(GLOBAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_8);
lcd_putc("******* MPPT *******");
lcd_gotoxy(1,2);
lcd_putc("Fuzzy Logic Control");
delay_ms(1500);
for(;;)
{
cnta+=1;
if(cnta==1)
{
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("IN");
lcd_gotoxy(9,1);
lcd_putc("V");
lcd_gotoxy(20,1);
lcd_putc("V");
lcd_gotoxy(9,2);
lcd_putc("A");
lcd_gotoxy(20,2);
lcd_putc("A");
lcd_gotoxy(11,1 );
lcd_putc("OUT");
lcd_gotoxy(4,1);
printf(lcd_putc,"%02.1f",vpf);
lcd_gotoxy(15,1);
printf(lcd_putc,"%02.1f",vbf);
lcd_gotoxy(4,2);
printf(lcd_putc,"%02.1f",ipf);
lcd_gotoxy(15,2);

printf(lcd_putc,"%02.1f",ibf);
}
if(w_eeprom)
{
w_eeprom = FALSE;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc(" Write Ext EEPROM ");
lcd_gotoxy(1,2);
lcd_putc("
24C16B
");
delay_ms(1500);
}
if(leer_eeprom) // Para mostrar datos
{
leer_eeprom = FALSE;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc(" Read Ext EEPROM ");
lcd_gotoxy(1,2);
lcd_putc("
24C16B
");
delay_ms(1500); for(z=0;z<251;z+
+)
{
dato = (read_ext_eeprom(z));
// Se recupera Vp
dato1 = (read_ext_eeprom(z+251)); // Se recupera Ip
dato2 = (read_ext_eeprom(z+502)); // Se recupera error
dato3 = (read_ext_eeprom(z+753)); // Se recupera cambio de error
dato4 = (read_ext_eeprom(z+1004)); // se recupera el ciclo de trabajo
dato5 = (read_ext_eeprom(z+1255)); // Se recupera la potencia de out
printf("%lu %lu %lu %lu %lu %lu\r\n",dato,dato1,dato2,dato3,dato4,dato5);
}
if(z==251)
{
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("
Read Ready
");
lcd_gotoxy(1,2);
lcd_putc("
24C16B
");
delay_ms(1500);
}
}
delay_ms(1500);
{ cnta = 0; }
}
}

Programa: lcd420b.c
Esta librera es la encargada del manejo del mdulo LCD.
// As defined in the following structure the pin connection is as follows:
//
B0 enable
//
B1 rs
//
B2 rw
//
B4 D4
//
B5 D5
//
B6 D6
//
B7 D7
//
//
LCD pins D0-D3 are not used and PIC B3 is not used.
struct lcd_pin_map
BOOLEAN
BOOLEAN
BOOLEAN
BOOLEAN
int
} lcd;

{
enable;
rs;
rw;
unused;
data : 4;

//
//
//
//
//
//

#byte lcd = 0x6


#define lcd_type 2

This structure is overlayed


on to an I/O port to gain
access to the LCD pins.
The bits are allocated from
low order up. ENABLE will
be pin B0.

// This puts the entire structure


// on to port D (at address 8)
// 0=5x7, 1=5x10, 2=2 lines

BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0xc, 1, 6};


// These bytes need to be sent to the LCD
// to start it up.
// The following are used for setting
// the I/O port direction register.
struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; // For write mode all pins
are out
struct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins
are in
BYTE lcdline;
BYTE lcd_read_byte() {
BYTE low,high;
set_tris_b(LCD_READ);
lcd.rw = 1;
delay_cycles(1);
lcd.enable = 1;
delay_cycles(1);
high = lcd.data;
lcd.enable = 0;
delay_cycles(1);
lcd.enable = 1;
delay_us(1);
low = lcd.data;
lcd.enable = 0;
set_tris_b(LCD_WRITE);
return( (high<<4) | low);
}

void lcd_send_nibble( BYTE n ) {


lcd.data = n;
delay_cycles(1);
lcd.enable = 1;
delay_us(2);
lcd.enable = 0;
}
void lcd_send_byte( BYTE address, BYTE n ) {
lcd.rs = 0;
while ( bit_test(lcd_read_byte(),7) ) ;
lcd.rs = address;
delay_cycles(1);
lcd.rw = 0;
delay_cycles(1);
lcd.enable = 0;
lcd_send_nibble(n >> 4);
lcd_send_nibble(n & 0xf);

void lcd_init() {
BYTE i;
set_tris_b(LCD_WRITE);
lcd.rs = 0;
lcd.rw = 0;
lcd.enable = 0;
delay_ms(15);
for(i=1;i<=3;++i) {
lcd_send_nibble(3);
delay_ms(5);
}
lcd_send_nibble(2);
for(i=0;i<=3;++i)
lcd_send_byte(0, LCD_INIT_STRING[i]);

void lcd_gotoxy( BYTE x, BYTE y) {


BYTE address;

switch(y) {
case 1 : address=0x80;break;
case 2 : address=0xc0;break;
case 3 : address=0x94;break;
case 4 : address=0xd4;break;
}
address+=x-1;
lcd_send_byte(0,address);

void lcd_putc( char c) {


switch (c) {
case '\f' : lcd_send_byte(0,1);
lcdline=1;
delay_ms(2);
case

: lcd_gotoxy(1,++lcdline);
break;
case '\b'
:
lcd_send_byte(0,0x10);
break;
default
: lcd_send_byte(1,c);
break;
}

'\n'

break;

char lcd_getc( BYTE x, BYTE y) {


char value;

lcd_gotoxy(x,y);
lcd.rs=1;
value = lcd_read_byte();
lcd.rs=0;
return(value);

Programa: test.vbp
Este programa es el encargado de ser interfaz para el usuario. En su pantalla
presenta: el algoritmo que esta siendo utilizado para el MPPT, la tabla I V
generada, acceso a MATLAB, etc. Adems, posee varios botones entre los que
destaca: Lectura EEPROM externa, escritura EEPROM externa, reset al
microcontrolador, guardar datos adquiridos, borrado de la contabilizacin de
energa, etc.
Private Sub chkestablecer_Click()
If chkestablecer.Value = 0 Then
ChkOnline.Value = 1
MSComm1.PortOpen = False
CmdPer.Enabled = False
CmdCond.Enabled = False
CmdClearEnergy.Enabled = False
cmdreset.Enabled = False
cmdLeerEeprom.Enabled = False
mnuGuardarEeprom.Enabled = False
mnuLeerEeprom.Enabled = False
Timer2.Enabled = True
ChkOnline.Enabled = True
End If
If chkestablecer.Value = 1 Then
ChkOnline.Value = 0
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
CmdPer.Enabled = True
CmdClearEnergy.Enabled = True
cmdreset.Enabled = True
cmdLeerEeprom.Enabled = True
mnuGuardarEeprom.Enabled = True
mnuLeerEeprom.Enabled = True
Timer2.Enabled = False
End If
End Sub
Private Sub ChkOnline_Click()
If ChkOnline.Value = 0 Then
chkestablecer.Value = 1
Else
chkestablecer.Value = 0
End If
End Sub

Private Sub CmdClearEnergy_Click()


MSComm1.Output = "s" 'En el PIC hacer energy = 0
End Sub
Private Sub CmdCond_Click()
If CmdPer.Enabled = False Then
CmdPer.Enabled = True
End If
MSComm1.Output = "c" 'Cond Inc.
Timer1.Enabled = True
CmdCond.Enabled = False
LblEstado.Caption = "Conductancia Incremental"
End Sub
Private Sub cmdLeerEeprom_Click()
MSComm1.Output = "l" ' Envia seal de lectura de la e2prom al
'PIC
End Sub
Private Sub CmdLimpiar_Click()
txtrx.Text = ""
End Sub
Private Sub cmdreset_Click()
CmdPer.Enabled = False
CmdCond.Enabled = True
MSComm1.Output = "u" ' Establece un reset en el PIC
End Sub
Private Sub CmdSalir_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
Unload Me
End Sub
Private Sub CmdPer_Click()
If CmdCond.Enabled = False Then
CmdCond.Enabled = True
End If
MSComm1.Output = "p" ' P&O
Timer1.Enabled = True
CmdPer.Enabled = False
LblEstado.Caption = "Perturbacin y Observacin"
End Sub
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1" ' velocidad, paridad
MSComm1.CommPort = 1
'MSComm1.PortOpen = True
CmdPer.Enabled = False
CmdCond.Enabled = False
CmdClearEnergy.Enabled = False
cmdreset.Enabled = False
chkestablecer.Value = 1
Timer1.Enabled = True
Timer2.Enabled = False
ChkOnline.Enabled = False
LblEstado.Caption = "Conductancia Incremental"
End Sub

Private Sub Image2_Click()


Call Shell("C:\MATLABR11\BIN\MATLAB.EXE")
End Sub

Private Sub mnuColorTextBox_Click()


CommonDialog1.Flags = &H1& ' Cambio de color de la caja de texto
CommonDialog1.ShowColor
txtrx.BackColor = CommonDialog1.Color
End Sub

Private Sub mnuGuardar_Click()


'nota: todo el archivo se almacenar como una nica cadena
CommonDialog1.Filter = "Archivos de texto (*.DAT)|*.DAT"
CommonDialog1.ShowSave
'muestra el cuadro de dilogo Guardar
If CommonDialog1.FileName <> "" Then
Open CommonDialog1.FileName For Output As #1
Print #1, txtrx.Text 'guarda el texto en un archivo
Close #1
'cerrar archivo
End If
End Sub
Private Sub mnuGuardarEeprom_Click()
MSComm1.Output = "w" ' write ext eeprom (PIC 18F452)
End Sub

Private Sub mnuLeerEeprom_Click()


MSComm1.Output = "l" ' Envia seal de lectura de la e2prom al
'PIC
End Sub

Private Sub mnuMatlab_Click()


Call Shell("C:\MATLABR11\BIN\MATLAB.EXE")
End Sub

Private Sub mnuPropiedad_Click()


CommonDialog1.Flags = &H1&
CommonDialog1.ShowColor
txtrx.ForeColor = CommonDialog1.Color
End Sub

Private Sub mnuSalir_Click()


If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
Unload Me
End Sub

Private Sub Timer1_Timer()


If chkestablecer.Value = 1 Then
txtrx.Text = txtrx.Text & MSComm1.Input
End If
End Sub
Private Sub Timer2_Timer()
If ChkOnline.Value = 1 Then
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
End If
Text1.Text = "Hola"
End Sub

APNDICE C
DIAGRAMAS ESQUEMTICOS DE LAS TARJETAS IMPLEMENTADA

APNDICE C: DIAGRAMAS DE ESQUEMTICOS DE LAS TARJETAS IMPLEMENTADAS

Figura C.1 Diagrama Esquemtico de la Tarjeta Conversor DC/DC Boost

130

Figura C.2 Diagrama Esquemtico de la Tarjeta Conversor DC/DC Buck - Boost

Figura C.3 Diagrama Esquemtico de la Tarjeta de Programacin de Microcontroladores PIC.

Figura C.4 Diagrama Esquemtico de la Tarjeta LCD.

APNDICE D
HOJAS DE DATOS INTEGRADOS

APNDICE D: HOJAS DE DATOS INTEGRADOS

135

APNDICE D: HOJAS DE DATOS INTEGRADOS

140

APNDICE D: HOJAS DE DATOS INTEGRADOS

141

APNDICE D: HOJAS DE DATOS INTEGRADOS

150

APNDICE D: HOJAS DE DATOS INTEGRADOS

151

Universidad de
Magallanes Facultad de
Ingeniera
Ingeniera de Ejec. en Electricidad

EVALUACIN DE CONVERSORES
DC / DC Y SIST. DE CONTROL
PARA APLICACIONES
FOTOVOLTAICAS
Hugo Miguel Villegas Barra
2006

Contenidos
QIntroduccin
Q Celdas

Solares
Q Sistema Experimental
Q Algoritmos de Control
Q Resultados Experimentales
Q Conclusiones

Introduccin

Ante la necesidad de contar con nuevas fuentes de energa se


ha efectuado una fuerte actividad de investigacin en el rea
de energa solar.
Ventajas:
Energa no contaminante.
Costos a largo plazo bajos.
Libre o escaso de mantenimiento.
Desventajas:
Dependencia de los factores climticos.
Alta inversin inicial.
Aparecen los denominados sistemas hbridos, tal como solar
diesel o elico solar diesel.

Introduccin

En el presente trabajo se presentan estrategias de


control, para ser aplicados a sistemas fotovoltaicos
que suministran energa a una carga aislada.

El sistema experimental esta compuesto de un panel


solar que se conectar a la carga (banco de batera)
por medio de un conversor DC/DC Boost y luego un
Buck Boost. Siendo ambos sistemas discutidos en
este trabajo.

Celdas Solares

Celdas Solares
Una celda solar es un dispositivo capaz de convertir
la energa proveniente de la radiacin solar en
energa elctrica.
El efecto fotovoltaico mencionado en el prrafo
anterior, solo es posible en una parte del espectro
luminoso. Dicho segmento lo componen
bsicamente las longitudes de onda ms pequeas,
las cuales estn comprendidas entre la luz
ultravioleta y en el espectro visible al color violeta.

MPP: Punto de Mxima Potencia

MPP

Figura 1. Caracterstica I V de un panel solar

Celdas Solares

Figura 2. Efectos de la temperatura y la radiacin en un panel solar

Celdas Solares

(a)

(b)

Figura 3. Interaccin de un panel fotovoltaico con carga (a) resistiva y


(b) galvnica de 12 V.

Sistema Experimental

Sistema Experimental

Figura 4. Sistema fotovoltaico propuesto

Figura 5. Sistema fotovoltaico implementado con conversor DC/DC


Boost.

Sistema Experimental

El conversor DC/DC es empleado como adaptador de


impedancia.

Esta propiedad intrnseca del conversor DC/DC se utiliza


para ajustar la tensin del panel solar, al valor en el cual
se entrega la mxima potencia a la carga.

Este proceso se denomina:

Seguimiento del Punto de Mxima Potencia MPPT

Algoritmos de Control

Algoritmos de Control

Los algoritmos utilizados en estaTesis para realizar


MPPT, son los siguientes:

Perturbacin y Observacin (P&O)


Conductancia Incremental (Cond. Inc.)
Controlador basado en lgica difusa (Fuzzy Logic)

Algoritmos de Control
(P&O)
110
100

(V(k),P(k))
B
(V(k+1),P(k+1))

90

Potencia (W)

80

(V(k-1),P(k-1))
A

70
60
50
40
30
20
10
0

10
12
Tensin (V)

14

16

18

20

22

Figura 6. Curva P V bajo seguimiento del MPP con algoritmo P&O

Algoritmos de Control
Vp* Vref
+

P+I

Circuito de disparo

Conversor DC/DC

Panel Solar

Vp

Figura 7. Lazo de control para la tensin del panel solar

En la figura 7 se muestra el controlador PI, el cual es el


encargado de controlar la tensin del panel solar, mediante el
aumento o disminucin (segn sea el caso) del ciclo de trabajo
de la seal PWM aplicada al conversor DC/DC.

Algoritmos de Control (P&O)


Sensar V(k), I(k)

Calcular potencia P(k)= V(k) x I(k)

NO

P(k) > P(k-1)

SI

V(k) > V(k-1)


SI

Vref = Vref - C

V(k) > V(k-1)


NO

NO

Vref = Vref + C

Vref = Vref - C

SI

Vref = Vref + C

Retornar

Figura 8. Diagrama de flujo del mtodo de MPPT P&O

Algoritmos de Control
(Cond. Inc.)

120

dP/dV = 0
100
dP/dV > 0

dP/dV < 0

Potencia (W)

80

60

40

dP d (V I ) I V dI
0
dV
dV
dV
dI dV
I
V

20

10

15

20

25

Tensin (V)

Figura 9. Curva P V bajo seguimiento del MPP con algoritmo Cond. Inc.

Algoritmos de Control (Cond. Inc.)


Sensar V(k), I(k)

dV = V(k) - V(k-1)
dI = I(k) - I(k-1)

NO

dV = 0

SI

dI / dV = - I / V

dI = 0

NO

NO
SI

SI
dI > 0

dI / dV > - I / V
SINO

Vref = Vref + C

NO

Vref = Vref - C

Vref = Vref - C

SI

Vref = Vref + C

Retornar

Figura 10. Diagrama de flujo del mtodo de MPPT Cond. Inc.

Algoritmos de Control
(Fuzzy Logic)
e

SE

E
FUZZIFICACIN

SCE
ce

TOMA DE
DECISIN

DESFUZZIFICACIN

CE

E(k ) dP P(k ) P(k 1)


dVV (k ) V (k 1)

CE (k ) E (k ) E (k 1)

SdD
dddD

Figura 11. Configuracin del controlador difuso

Algoritmos de Control (Fuzzy Logic)


u(E)

NB

NM

NS

ZO

PS

PM

PB

(a)

Grado
De
Pertenencia
0

-6

-4

-2

NB

NM

NS

ZO

PS

PM

PB

u(CE)

(b)

Grado
De
Pertenencia
0

-6

-4

-2

NB

NM

NS

ZO

PS

PM

u(dD)

PB

(c)

Grado
De
Pertenencia
0
-6

-4

-2

Figura 12. Funciones de membresa para (a) entrada E, (b) entrada CE


y (c) salida dD (variacin del ciclo de trabajo).

Algoritmos de Control (Fuzzy Logic)


CE
E

NB

NM

NS

ZO

PS

PM

PB
Si (E es N B ) y (C E es N S ) ent onces (d D es NB)

NB

NB

NB

NB

NB

NM

NS

ZO

NM

NB

NB

NB

NM

NS

ZO

PS

NS

NB

NB

NM

NS

ZO

PS

PM

ZO

NB

NM

NS

ZO

PS

PM

PB

PS

NM

NS

ZO

PS

PM

PB

PB

PM

NS

ZO

PS

PM

PB

PB

PB

PB

ZO

PS

PM

PB

PB

PB

PB

Si (E es ZO ) y (C E es ZO ) entonces (d D es ZO )
Si (E es ZO ) y (C E es PB ) entonces (d D es P B )

Figura 13. Base de conocimiento y formas de regla del controlador


difuso

La salida del controlador difuso es un subconjunto difuso


de control. Un sistema para operar requiere usualmente
un valor de control no difuso (concreto), es por ello que
se hace necesaria una desfuzzificacin.
El mtodo del centro de gravedad es el ms utilizado para
casos discretos y esta dado por la siguiente ecuacin.
n

u d D dD
j

j 1
n

dD

u d D
j

j 1

Resultados
Experimentales

Resultados Experimentales

En este captulo se presentan los resultados experimentales con


la finalidad de estudiar y observar el comportamiento de los
algoritmos de control propuestos, e implementados tanto en el
conversor DC/DC Boost como para el Buck Boost. Los
resultados que se presentan corresponden al comportamiento del
sistema para las siguientes condiciones:
Generacin de curvas I V y P V para diversas
condiciones climticas.
MPPT con Radiacin Solar Incidente (RSI) constante
MPPT con variacin en la RSI

Las principales variables a monitorear son: tensin,


corriente, temperatura de operacin del panel solar y ciclo
de trabajo del conversor DC/DC.

Las caractersticas principales del panel solar utilizado son:


TENSIN

DE CIRCUITO ABIERTO

CORRIENTE DE CORTO CIRCUITO


TENSIN DE MXIMA POTENCIA
CORRIENTE DE MXIMA POTENCIA
POTENCIA MXIMA

(Voc)

21.6 V

( Isc)

6.54 A

(Vp)

17.4 V

( Ip)

6.1 A
106 W

Resultados Experimentales

El panel se ha orientado en direccin norte y con un ngulo de


inclinacin de 60 con respecto a la horizontal.

La carga del sistema lo compone un banco de batera, el cual


es de 12V o 24V, segn se este operando en la modalidad
reductora (Buck) o elevadora de tensin (Boost),
respectivamente.
RESULTADOS GENERACIN DE CURVAS I V Y P V .

La figura 14 entrega una comparacin de curvas I V y P V,


obtenidas ambas a una temperatura de 32C y con diferentes
niveles de radiacin solar incidente (810 W/m2 y 948 W/m2).

948 W /
m2

Corriente Panel Solar (A)

6
5

(a)

4
3

810 W /
m2

2
1
0

10 Tensin Panel Solar (V) 15

20

25

80
Potencia Panel Solar (W)

70

76 W @ 948 W /
m2

60
50

66 W @ 810 W /
m2

40
30

(b)

20
10
0

10

15

20

Tensin Panel Solar (V)

Figura 14. a) Curvas I V, b) Curvas P V.

25

Resultados Experimentales

De la figura 14, se confirma que la curva P V con


mayor potencia foto generada, es aquella en la cual
se ha incidido mayor nivel de radiacin solar (948
W/m2), alcanzando un valor de 76 W.

La figura 15 ilustra la comparacin de curvas I V y


P V, para un mismo nivel de radiacin solar
incidente (948 W/m2), y cambia la temperatura de
31 C 41 C.

Corriente Panel Solar (A)

Resultados Experimentales
7
6
5

31C

(a)

41C
2
1
0

10

15

20

25

Potencia Panel Solar (W)

Tensin Panel Solar (V)

80
70

76 W @

60
50

72 W @

(b)

40
30
20
10
0

10

15

20

Tensin Panel Solar (V)

Figura 15. a) Curvas I V, b) Curvas P V.

25

Resultados Experimentales

La figura 15 ratifica el hecho de que el aumento en la


temperatura del panel solar, va en directo desmedro de la
potencia generada, disminuyendo de 76W a 72W.
RESULTADOS DE MPPT CON RSI CONSTANTE

La figura 16 entrega la respuesta del seguimiento del punto de


mxima potencia (MPPT) para un sistema basado en un panel
solar y utilizando como algoritmo de control el mtodo
conductancia incremental. Las condiciones para la prueba son
las siguientes: utilizacin conversor DC/DC Boost,
temperatura del panel solar de 29C y una RSI de 658 W/m2.

Resultados Experimentales
Potencia Panel Solar (W)

(a
)

MPP
T

60
50
40
30
20
10
00

10

15

20

25

Tensin Panel Solar (V)

14.75

Vref

Vpane
l

14.5

(b)

14.25
14

5
Tiempo (Seg)

Ciclo de Trabajo (%)

54

100

53.5

90

53

52

80

Ciclo de
Trabajo

Eficiencia del
Conversor

52.5

70
60

51.5
51

10

50
0

5
Tiempo (Seg)

40
10

Eficiencia Conversor (%)

Tensin (V)

15

(c)

Figura 16. a) Curva P-V con MPPT Cond. Inc.


b) Tensin del panel y tensin de referencia proveniente del
algoritmo MPPT

c) Ciclo de trabajo y eficiencia al cual se encuentra


operando el conversor DC/DC Boost con MPPT

Resultados Experimentales

De la figura 16 se puede apreciar que se logra situar la potencia


generada por el panel solar en el punto ms ptimo de la curva
PV (55 W), la cual a su vez se alcanza con una tensin de
14.4 V. Por otro lado, el ciclo de trabajo flucta entre los
51.86 % y 52.15 %. En lo que respecta a eficiencia esta oscila
en torno a los 87%, teniendo un peak de 92%.

La figura 17 ilustra el comportamiento del controlador basado


en lgica difusa. Las condiciones utilizadas para la prueba son:
utilizacin del conversor DC/DC Boost, temperatura del panel
solar de 38C y una RSI de 910 W/m2.

Potencia Panel Solar

Resultados Experimentales
80

(a)

MPPT

60
40
20
4

10
12
Tensin Panel Solar (V)

14

16

18

2000

4000

Cambio de Error

1500
Error

20

2000
0

1000

Error

500

-2000

-4000

Ciclo de Trabajo (%)

-500

5
Tiempo

0.865

80

0.86

70

Ciclo de
Trabajo

Eficiencia del
Conversor

60

50

-6000
10

5
Tiempo
(Seg)

Cambio de Error

(b)

Eficiencia Conversor (%)

(c)

0.855

0.85
10

Figura 17. a) Curva P-V con MPPT Difuso.


b) Entradas del controlador difuso
c) Ciclo de trabajo y eficiencia al cual se encuentra
operando el conversor DC/DC Boost con MPPT

Resultados Experimentales

De la figura 17 se aprecia que se hace trabajar al panel solar en


el punto ms ptimo (70 W a 14 V). Por otro lado, las
entradas del controlador (E y CE) se encuentran en torno a
cero. Mientras que el ciclo de trabajo flucta entre los 50 % y
60%. Por otro lado, el conversor DC/DC Boost se encuentra
operando con una eficiencia de 86%.
RESULTADOS DE MPPT CON VARIACIN EN LA RSI
La figura 18 ilustra el comportamiento algoritmo de control
P&O. Las condiciones utilizadas para la prueba son:
utilizacin del conversor DC/DC Buck Boost operando
como reductor de tensin, cubrimiento del panel solar durante
un pequeo lapso de tiempo, temperatura del panel solar de
30C y una RSI antes de producirse la perturbacin de 683
W/m2.

Potencia Panel Solar (W)

Resultados Experimentales
80
60

(a)

40

MPPT
20
0

10

15

20

25

Tensin Panel Solar (V)

Tensin (V)

20

Vpanel

17.5

(b)

15
12.5

10

Vref
0

3
Tiempo (Seg)

Ciclo de Trabajo (%)

55
50
45

(c)

40
35
30 0

2
1

3
Tiempo (Seg)

5
4

Figura 18. a) Curva P-V con MPPT P&O y variacin en la RSI.

Resultados Experimentales

b) Tensin del panel solar y tensin de referencia proveniente del


algoritmo MPPT
c) Ciclo de trabajo y eficiencia al cual se encuentra
operando el conversor DC/DC Buck - Boost con
MPPT

Resultados Experimentales

De la figura 18 se aprecia que la potencia cae de 60 W


10 W durante la perturbacin, por lo cual el sistema de
control acta disminuyendo el ciclo de trabajo de 54%
33%. Dicha disminucin causa un aumento en la tensin
del panel solar de
11 V 20 V. Por lo cual, el controlador procede ahora
aumentado el ciclo de trabajo para retornar la tensin del
panel
solar a la tensin de referencia.

La figura 19 ilustra el comportamiento del controlador basado


en lgica difusa. Las condiciones utilizadas para la prueba son:
utilizacin del conversor DC/DC Boost, cubrimiento del panel
solar durante un pequeo lapso de tiempo, temperatura del
panel solar de 26 C y una RSI antes de producirse la
perturbacin de 927 W/m2.

Resultados Experimentales
(a)

60
40
20
0

Error

MPPT

10

Tensin Panel Solar (V)

15

20

25

300

500

200

Error

Cambio de

100

-500

0
-100

-1000

3
Tiempo (Seg)

Cambio de Error

Potencia Panel Solar

80

(b)

-1500
6

Ciclo de Trabajo (%)

60
50

(c)

40
30
20

3
Tiempo (Seg)

Figura 19. a) Curva P V con MPPT Difuso y variacin en la RSI.


b) Entradas del controlador difuso.

Resultados Experimentales

c) Ciclo de trabajo al cual se encuentra operando el conversor DC/DC


Boost con MPPT

Conclusiones

Conclusiones
Los resultados experimentales presentados se obtuvieron para
diferentes condiciones, tales como: nivel de radiacin solar
incidente constante, aplicacin de sombra parcial al panel
solar y efectos de la temperatura en un panel solar. En todas
ellas, los resultados obtenidos muestran un buen desempeo
en el funcionamiento. En particular, para la generacin de
curvas I V y P V, se muestra la buena eficacia de los
conversores DC/DC, al momento de utilizarse como
adaptadores de impedancia.
Por otra parte, la respuesta del controlador de tensin
utilizado en los algoritmos P&O y Conductancia Incremental
es aceptable (menos de un 5% de la tensin de referencia para
la mayora de los casos).

Para el caso del controlador difuso, aun cuando es ms


oscilatorio que los algoritmos recin mencionados, logra
mantener el error en torno a cero. La robustez del sistema
tambin se hizo cierta al momento de aplicrsele una sombra
parcial al panel solar
Se observ los beneficios de utilizar un microcontrolador de
bajo costo para aplicaciones en la cual el tiempo de muestreo no
es crtico (procesos lentos).
Algunas aplicaciones:
Sistemas aislados
Sistemas hbridos (Solar Diesel o Elico Solar - Diesel)
Sistemas conectados a la red elctrica

Preguntas ?

Universidad de
Magallanes Facultad de
Ingeniera
Ingeniera de Ejec. en Electricidad

EVALUACIN DE CONVERSORES
DC / DC Y SIST. DE CONTROL
PARA APLICACIONES
FOTOVOLTAICAS
Hugo Miguel Villegas Barra
2006