estudio de algoritmos de seguimiento del punto de …
Post on 20-Jul-2022
28 Views
Preview:
TRANSCRIPT
TRABAJO DE FINAL DE GRADO
Grado en ingeniería electrónica industrial y automática
ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE
MÁXIMA POTENCIA EN SISTEMAS FOTOVOLTAICOS
Anexos
Autor: Lucía Leticia González Sobrino Director: Herminio Martinez García Co-Director: Jordi Cosp Vilella Convocatoria: Octubre 2018
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
Índice
ANEXO I. SELECCIÓN DE COMPONENTES ....................................................... 1
1. COMPONENTES DEL BOOST .......................................................................... 1
MOSFET ..................................................................................................................... 1
Diodo ........................................................................................................................... 1
Condensador de salida ................................................................................................. 1
Inductancia .................................................................................................................. 1
2. COMPONENTES DEL BUCK ............................................................................ 2
MOSFET ..................................................................................................................... 2
Diodo ........................................................................................................................... 2
Condensador de salida ................................................................................................. 2
Inductancia .................................................................................................................. 2
ANEXO II. SIMULACIONES ORCAD ..................................................................... 3
1. CONVERTIDOR ELEVADOR ........................................................................... 3
Ciclo de trabajo máximo ............................................................................................. 3
Tensiones .......................................................................................................................................... 3
Intensidades ...................................................................................................................................... 5
Potencia ............................................................................................................................................ 6
Ciclo de trabajo mínimo .............................................................................................. 7
Tensiones .......................................................................................................................................... 7
Intensidades ...................................................................................................................................... 9
2. CONVERTIDOR REDUCTOR ......................................................................... 10
Tensiones ........................................................................................................................................ 10
ANEXO III. RESULTADOS EXPERIMENTALES ............................................... 14
Anexos
1. TESTEO DEL CONVERTIDOR ELEVADOR ............................................... 14
2. TESTEO DEL CONVERTIDOR REDUCTOR ............................................... 15
ANEXO IV. MODELO MATEMÁTICO DEL PANEL SOLAR .......................... 16
1. AFECTACIÓN DE LA IRRADIANCIA Y LA TEMPERATURA ................ 16
Afectación sobre la corriente de cortocircuito........................................................... 16
Afectación sobre el voltaje en circuito abierto .......................................................... 17
Afectación sobre la corriente fotogenerada ............................................................... 18
Afectación sobre la corriente de saturación inversa del diodo .................................. 18
Afectación sobre las resistencias en serie y paralelo ................................................. 20
2. CÁLCULO TEÓRICO DE LOS FACTORES EMPÍRICOS ......................... 20
ANEXO V. ALGORITMOS MPPT EN SIMULINK .............................................. 23
1. IMPLEMENTACIÓN POR CÓDIGO .............................................................. 23
Código Hill climbing ................................................................................................. 23
Código P&O .............................................................................................................. 24
Código conductancia incremental con paso fijo ........................................................ 25
Código conductancia incremental con paso variable ................................................ 26
2. IMPLEMENTACIÓN POR DIAGRAMA DE BLOQUES ............................. 28
Diagrama de bloques Hill climbing ........................................................................... 28
Diagrama de bloques P&O ........................................................................................ 29
Diagrama de bloques conductancia incremental con paso fijo.................................. 30
Diagrama de bloques conductancia incremental con paso variable .......................... 31
ANEXO VI. SENSOR ACS714 .................................................................................. 32
1. INFORMACIÓN GENERAL ............................................................................. 32
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
2. ADAPTACIÓN A ARDUINO DUE ................................................................... 32
3. CALIBRACIÓN ................................................................................................... 33
ANEXO VII. PROGRAMACIÓN EN ARDUINO ................................................... 35
ANEXO VIII CIRCUITO ELÉCTRICO COMPLETO ......................................... 44
Anexos
1
ANEXO I. Selección de componentes
1. Componentes del Boost
MOSFET
Tabla 1 Tabla comparativa de transistores MOSFET para el convertidor boost.
Modelo I(A) V(V) RDS(Ω) tr(ns) tf(ns) Trr(ns) Irr(A) Qg(nC) Coss(pF) Pdis(W) Coste(€)
IRF510 5.6 100 0.54 16 9.4 200 1.5 8.3 81 0.879 0.78
FQPF13N06L 10 60 0.11 90 40 45 3.5 8 130 0.213 1.11
VNP10N06E 10 60 0.3 550 100 130 3.5 13 500 0.630 1.38
IRF520 9.2 100 0.27 30 20 260 3.2 16 150 0.530 0.833
IRFZ145 10 60 0.2 50 19 140 4 11 160 0.390 0.833
IRL520 9.2 100 0.27 64 27 190 3.2 12 150 0.508 1.04
IRLZ14 10 60 0.2 110 26 130 3.5 8.4 170 0.388 0.808
IRLZ24 17 60 0.14 110 41 260 5.4 18 360 0.413 1.64
Diodo
Tabla 2 Tabla comparativa de diodos para el convertidor boost.
Modelo Imax(A) Vmax(V) VD(V) Pdis(W) Coste(€)
SB360 3 40 0.62 0.158 0.521
SB560 5 60 0.47 0.120 0.461
1N5822 3 40 0.53 0.135 0.694
Condensador de salida
Tabla 3 Tabla comparativa de condensadores de salida para el convertidor boost.
Modelo C(µF) Vmax(V) ESR(Ω) tan δ Iripple(A) Mult.Iripple Pdis(W) Coste(€)
63SXE36M 68 63 0.025 0.12 3.28 0.7 0.169 2.56
870055775006 56 50 0.035 0.12 2 0.7 0.114 3.51
A759MS566M1KAAE045 56 80 0.045 0.12 2.163 0.7 0.149 1.86
860040674004 100 50 0.16 0.1 0.68 0.94 0.087 0.3
Inductancia
Tabla 4 Tabla comparativa de inductancias para el convertidor boost.
Modelo L(mH) Imax(A) RDC(Ω) Pdis(W) Coste(€)
B82733V2232B001 10 2.3 0.188 0.368 2.89
B82724J8322N040 10 3.2 0.08 0.157 5.53
1140-562K-RC 5.6 2 1.6 3.136 6.34
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
2
2. Componentes del Buck
MOSFET
Tabla 5 Tabla comparativa de transistores MOSFET para el convertidor buck.
Modelo I(A) V(V) RDS(Ω) tr(ns) tf(ns) Trr(ns) Irr(A) Qg(nC) Coss(pF) Pdis(W) Coste(€)
IRF510 5.6 100 0.54 16 9.4 200 1.5 8.3 81 3.154 0.78
FQPF13N06L 10 60 0.11 90 40 45 3.5 8 130 0.701 1.11
VNP10N06E 10 60 0.3 550 100 130 3.5 13 500 2.012 1.38
IRF520 9.2 100 0.27 30 20 260 3.2 16 150 1.681 0.833
IRFZ145 10 60 0.2 50 19 140 4 11 160 1.250 0.833
IRL520 9.2 100 0.27 64 27 190 3.2 12 150 1.666 1.04
IRLZ14 10 60 0.2 110 26 130 3.5 8.4 170 1.259 0.808
IRLZ24 17 60 0.14 110 41 260 5.4 18 360 1.046 1.64
Diodo
Tabla 6 Tabla comparativa de diodos para el convertidor buck.
Modelo Imax(A) Vmax(V) VD(V) Pdis(W) Coste(€)
80SQ045N 8 45 0.4 0.225 0.663
RB085T-40 10 45 0.48 0.270 0.68
SB550 5 50 0.6 0.337 0.493
SBR10U45SD1 10 45 0.4 0.224 0.757
Condensador de salida
Tabla 7 Tabla comparativa de condensadores de salida para el convertidor buck.
Modelo C(µF) Vmax(V) ESR(Ω) tan δ Iripple(A) Mult.Iripple Pdis(W) Coste(€)
63SXE39MX 39 63 0.025 0.12 2.95 0.7 0.166 2.22
870055775006 56 50 0.035 0.12 2 0.7 0.110 3.51
ELE-350ELL470MF11D 56 35 0.045 0.22 2.1 0.95 0.270 1.76
63SXE68M 68 63 0.025 0.12 3.28 0.7 0.170 2.56
Inductancia
Tabla 8 Tabla comparativa de inductancias para el convertidor buck.
Modelo L(mH) Imax(A) RDC(Ω) Pdis(W) Coste(€)
B82724J8322N040 10 3.2 0.08 0.581 5.53
B82724J8302N040 15 3 0.09 0.654 5.53
Anexos
3
ANEXO II. Simulaciones OrCAD
1. Convertidor elevador
A continuación, se presentan las simulaciones del circuito realizadas a través del programa
OrCad Pspice para el convertidor elevador, utilizando los modelos reales de los semiconductores, y
añadiendo las resistencias parásitas en serie de los componentes pasivos. Cabe destacar que las
simulaciones se han realizado para una carga RL que emule las condiciones en las que la placa
entregaría la máxima potencia (máxima intensidad) al circuito para cada uno de los casos, ya que el
modelado de la batería y la placa solar no han sido implementados en OrCad.
Ciclo de trabajo máximo
Para un ciclo de trabajo máximo, es decir, con una tensión de entrada minima (5 V), el valor de
la carga para que la corriente de entrada sea la máxima proporcionada por la placa solar (1,4 A) debe
de ser RL=82.29 Ω. A continuación, se presentan las gráficas de las señales más importantes del
circuito.
Tensiones
Fig 1: Tensión de salida del convertidor elevador a lazo abierto, VOUT
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
4
Fig 2: Rizado de la tensión de salida en la carga en régimen estacionario
Fig 3: Tensión en bornes de la inductancia, VL
Fig 4: Tensión entre el drenador y el surtidor del MOSFET, VDS
Anexos
5
Fig 5: Tensión en bornes del diodo, VD
Intensidades
Fig 6: Intensidad por la inductancia, IL
Fig 7: Intensidad por la inductancia en régimen estacionario, IL
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
6
Fig 8: Intensidad por el condensador en régimen estacionario,IC
Fig 9: Intensidad por el diodo en régimen estacionario,ID
Potencia
Fig 10: Potencia disipada en los diferentes componentes del circuito: Diodo (azul). MOSFET (amarillo). Inductancia (lila),
condensador (verde), potencia total (rojo).
Anexos
7
Ciclo de trabajo mínimo
Para un ciclo de trabajo mínimo, es decir, con una tensión de entrada máxima (21 V), el valor
de la carga para que la corriente de entrada sea la máxima proporcionada por la placa solar (1,4 A)
debe de ser RL=19,59 Ω. A continuación, se presentan las gráficas de las señales más importantes del
circuito.
Tensiones
Fig 11: Tensión de salida del convertidor elevador a lazo abierto, VOUT
Fig 12: Rizado de la tensión de salida en la carga en régimen estacionario
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
8
Fig 13: Tensión en bornes de la inductancia, VL
Fig 14: Tensión entre el drenador y el surtidor del MOSFET, VDS
Fig 15: Tensión en bornes del diodo, VD
Anexos
9
Intensidades
Fig 16: Intensidad por la inductancia, IL
Fig 17: Intensidad por la inductancia en régimen estacionario, IL
Fig 18: Intensidad por el condensador en régimen estacionario,IC
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
10
Fig.19 Intensidad por el diodo en régimen estacionario,ID
2. Convertidor reductor
A continuación, se presentan las simulaciones del circuito realizadas a través del programa
OrCad Pspice para el convertidor elevador, utilizando los modelos reales de los semiconductores, y
añadiendo las resistencias parásitas en serie de los componentes pasivos.
Tensiones
Fig 20 Tensión de salida del convertidor elevador a lazo abierto, VOUT
Anexos
11
Fig 23 Rizado de la tensión de salida en la carga en régimen estacionario
Fig 23 Tensión en bornes de la inductancia, VL
Fig 23 Tensión entre el drenador y el surtidor del MOSFET, VDS
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
12
Fig 26 Tensión en bornes del diodo, VD
Fig 26 Intensidad en la inductancia, IL
Fig 26 Intensidad por el MOSFET, IQ.
Anexos
13
Fig 28 Intensidad por el diodo ID
Fig 28 Intensidad por la inductancia en régimen estancionario,IL.
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
14
ANEXO III. Resultados experimentales
1. Testeo del convertidor elevador
Fig 30 Resultados experimentales del convertidor elevador a un ciclo de trabajo del 80%
Verde: tensión de entrada, rojo tensión de salida
Fig 29 Resultados experimentales del convertidor elevador a un ciclo de trabajo del 80%
Verde: tensión de entrada, rojo tensión de salida
Anexos
15
2. Testeo del convertidor reductor
Fig 32 Resultados experimentales del convertidor elevador a un ciclo de trabajo del 80%
Verde: tensión de entrada, rojo tensión de salida
Fig 31 Resultados experimentales del convertidor elevador a un ciclo de trabajo del 80%
Verde: tensión de salida, rojo tensión de entrada
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
16
ANEXO IV. Modelo matemático del panel solar
1. Afectación de la irradiancia y la temperatura
En este apartado se explicarán las ecuaciones que describen las afectaciones de la irradiancia y
temperatura para cada uno de los parámetros que deben de considerarse en el modelado de un panel
solar. La nomenclatura utilizada es la siguiente:
- I: Intensidad generada en la célula debida a la radiación sola (A).
- IPH: Fotocorriente, corriente de electrones generada por la incidencia de los fotones (A).
- IO: Corriente inversa de saturación, por su similitud con el comportamiento de un diodo (A).
- V: Tensión generada por la célula (V).
- RS: Resistencia en serie de la célula (Ω).
- RSH: Resistencia de shunt (Ω).
- K: constante de Bolzmann (J/K).
- q: carga del electrón (C).
- T: temperatura de trabajo del panel solar (°C).
- TSTD: temperatura estándar indicada en el datasheet, normalmente 25 °C.
- G: Irradiancia incidente (W/m2).
- GSTD: Irradiancia estándar indicada en el datasheet, normalmnete 1000 W/m2.
- VOC: tensión en circuito abierto, considerando afectaciones de irradiancia y tempertura (V).
- VOC,STD: tensión en circuito abierto para condiciones estándar, indicada en datasheet (V).
- m: factor de idealidad del diodo.
- ISC: corriente máxima que se puede obtener de un panel fotovoltaico, considerando
afectaciones de irradiancia y tempertura (A).
- ISC,STD: corriente máxima que se puede obtener de un panel fotovoltaico para condiciones
estándar, indicada en datasheet (A).
- µIsc: Coeficiente de afectación de ISC según la temperatura [%/ºC].
- µVoc: Coeficiente de afectación de VOC según la temperatura [%/ºC].
- NS: Número de paneles asoaciados en serie.
- NP: Número de paneles asociados en paralelo.
- EG,0: Energía de Gap del material en condicione estándar (eV).
- EG: Energía de Gap del material considerando variaciónes de temperatura (eV).
Afectación sobre la corriente de cortocircuito
Existen dos métodos para expresar las variaciones de la corriente de cortocircuito respecto a la
irradiancia y a la temperatura. El primer método expresa dicha relación a través de la siguiente
ecuación lineal empírica:
Anexos
17
𝐼𝑆𝐶 (𝐺, 𝑇) =𝐺
𝐺𝑆𝑇𝐷(𝐼𝑆𝐶,𝑆𝑇𝐷 + µ𝐼𝑆𝐶
(𝑇 − 𝑇𝑆𝑇𝐷)) ( 1.1)
En este caso, como el datasheet expresa los valores en %/ºC, se debe de modificar ligeramente
la fórmula, quedando de la siguiente manera:
𝐼𝑆𝐶 (𝐺, 𝑇) = 𝐼𝑆𝐶,𝑆𝑇𝐷
𝐺
𝐺𝑆𝑇𝐷(1 +
µ𝐼𝑆𝐶(𝑇 − 𝑇𝑆𝑇𝐷)
100)
( 1.2)
El segundo método incorpora un parámetro alfa, que corrige algunas derivaciones observadas
experimentalmente debido a efectos no lineales de la irradiancia incidente.
𝐼𝑆𝐶 (𝐺, 𝑇) = (𝐺
𝐺𝑆𝑇𝐷)
(𝐼𝑆𝐶,𝑆𝑇𝐷 + µ𝐼𝑆𝐶(𝑇 − 𝑇𝑆𝑇𝐷)) → =
𝐼𝑆𝐶𝑆𝑇𝐷
𝐼𝑆𝐶
ln (𝐺𝑆𝑇𝐷
𝐺)
( 1.3)
El modelo de la placa solar se realizará a través del primer método.
Afectación sobre el voltaje en circuito abierto
Existen cuatro métodos para expresar las variaciones del voltaje en circuito abierto respecto a la
irradiancia y a la temperatura. Debido a que el voltaje en circuito abierto tiene una gran dependencia
de la temperatura y, por otra parte, la variación de la irradiancia no representa un cambio significante
(sigue una relación lineal) este primer método desprecia los efectos de esta última:
𝑉𝑂𝐶(𝑇) = 𝑉𝑂𝐶,𝑆𝑇𝐷 + µ𝑉𝑂𝐶(𝑇 − 𝑇𝑆𝑇𝐷) ( 1.4)
En este caso, como el datasheet expresa los valores en %/ºC, se debe de modificar ligeramente
la fórmula, quedando de la siguiente manera:
𝑉𝑂𝐶(𝑇) = 𝑉𝑂𝐶,𝑆𝑇𝐷 (1 +µ𝑉𝑂𝐶
(𝑇 − 𝑇𝑆𝑇𝐷)
100)
( 1.5)
Los siguientes métodos incorporan diferententes relaciones logarítmicas con el fin de modelar
las pequeñas afectaciones producidas por el cambio de irradiancia:
𝑉𝑂𝐶(𝐺, 𝑇) = 𝑉𝑂𝐶,𝑆𝑇𝐷 + µ𝑉𝑂𝐶(𝑇 − 𝑇𝑆𝑇𝐷) +
𝑁𝑆 𝐾 𝑇𝑆𝑇𝐷
𝑞ln (𝐺)
( 1.6)
𝑉𝑂𝐶(𝐺, 𝑇) = 𝑉𝑂𝐶,𝑆𝑇𝐷 + µ𝑉𝑂𝐶,𝑇(𝑇 − 𝑇𝑆𝑇𝐷) + 𝐶1 ln (𝐺
𝐺𝑆𝑇𝐷) + 𝐶2 ln (
𝐺
𝐺𝑆𝑇𝐷)
2
+ 𝐶3 ln (𝐺
𝐺𝑆𝑇𝐷)
3
( 1.7)
Siendo C1 = 5.468511×10-2, C2 = 5.973869×10-3 y C3 = 7.616178 ×10-4 para un panel solar de
silicio, como sería el caso.
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
18
𝑉𝑂𝐶(𝐺, 𝑇) =𝑉𝑂𝐶,𝑆𝑇𝐷
1 + 𝛽 ln (𝐺𝑆𝑇𝐷
𝐺)
· (𝑇𝑆𝑇𝐷
𝑇)
→ =ln (
𝑉𝑂𝐶,𝑆𝑇𝐷
𝑉𝑂𝐶,𝑇)
ln (𝑇
𝑇𝑆𝑇𝐷)
→ 𝛽 =(
𝑉𝑂𝐶,𝑆𝑇𝐷
𝑉𝑂𝐶,𝐺) − 1
ln (𝐺𝑆𝑇𝐷
𝐺 )
( 1.8)
El modelo de la placa solar se realizará a través del primer método.
Afectación sobre la corriente fotogenerada
La corriente fotogenerada puede describirse utilizando diferentes parámetros modelados e
información obtenida a través de la hoja de especificaciones técnicas del panel solar. Existen diversos
métodos, el primero de ellos, y que se utilizará para este modelado, es considerar desperciables los
efectos de la temperatura e irradiancia, suponiendo entonces que IPH=ISC. No obstante, a continuación,
se describen otros métodos.
Teniendo en cuenta los efectos provocados por la resistencia en serie y paralelo, se obtiene la
siguiente ecuación:
𝐼𝑃𝐻 =(1 +
𝑅𝑆𝑅𝑆𝐻
)
𝐼𝑆𝐶
( 1.9)
Considerando los efectos provocados por la variación de temperatura e irradiancia respecto a los
valores estándar, se obtiene la siguiente ecuación:
𝐼𝑃𝐻(𝐺, 𝑇) = (𝐺
𝐺𝑆𝑇𝐷) 𝐼𝑃𝐻(𝑇)
( 1.10)
𝐼𝑃𝐻(𝑇) = 𝐼𝑂(𝑇) 𝑒
𝑉𝑂𝐶,𝑆𝑇𝐷+µ𝑉𝑂𝐶(𝑇−𝑇𝑆𝑇𝐷)
𝑚𝑁𝑆𝑉𝑇(𝑇) +𝑉𝑂𝐶,𝑆𝑇𝐷 + µ𝑉𝑂𝐶
(𝑇 − 𝑇𝑆𝑇𝐷)
𝑅𝑆𝐻
( 1.11)
Finalmente, combinando ambas ecuaciones y sin despreciar ninguno de los términos, se obtiene
el método más complejo:
𝐼𝑃𝐻,𝑆𝑇𝐷 =
(1 +𝑅𝑆
𝑅𝑆𝐻) 𝐼𝑆𝐶,𝑆𝑇𝐷 (𝑒
𝑉𝑂𝐶,𝑆𝑇𝐷 𝑚𝑁𝑆𝑉𝑇 − 1) +
𝑉𝑂𝐶,𝑆𝑇𝐷
𝑅𝑆𝐻(1 − 𝑒
𝐼𝑆𝐶.𝑆𝑇𝐷𝑅𝑆𝑚𝑁𝑆𝑉𝑇 )
𝑒𝑉𝑂𝐶,𝑆𝑇𝐷 𝑚𝑁𝑆𝑉𝑇 − 𝑒
𝐼𝑆𝐶.𝑆𝑇𝐷𝑅𝑆𝑚𝑁𝑆𝑉𝑇
( 1.12)
Afectación sobre la corriente de saturación inversa del diodo
Algunas investigaciones apuntan a que la corriente de saturación inversa tiene una gran
dependencia de la temperatura, mientras que otras afirman que también aumenta en función de la
irradiancia incidente. No obstante, todos coinciden en que los efectos significativos se pueden
Anexos
19
observar en valores próximos al punto de máxima potencia. Existen varios métodos que describen
dicha afectación:
El primer método describe de manera muy aproximada, a través de diferentes parámetros
incluidos en la hoja de especificaciones técnicas, la dependencia respecto a la temperatura:
𝐼𝑂 = 𝐼𝑆𝐶,𝑆𝑇𝐷 + µ𝐼𝑆𝐶(𝑇 − 𝑇𝑆𝑇𝐷)
−(𝑉𝑂𝐶,𝑆𝑇𝐷 + µ𝑉𝑂𝐶
(𝑇 − 𝑇𝑆𝑇𝐷) − (𝐼𝑆𝐶,𝑆𝑇𝐷 + µ𝐼𝑆𝐶(𝑇 − 𝑇𝑆𝑇𝐷)) 𝑅𝑆)
𝑅𝑆𝐻 𝑒
𝑉𝑂𝐶,𝑆𝑇𝐷+µ𝑉𝑂𝐶(𝑇−𝑇𝑆𝑇𝐷)
𝑚𝑁𝑆𝑉𝑇(𝑇)
( 1.13)
Una simplificación del método anterior es asumir que la resistencia en paralelo tiende a infinito
(ideal) y, por otro lado, que la corriente en fotogenerada es de idéntico valor a la corriente en
cortocircuito (como se ha explicado en el apartado anterior):
𝐼𝑂 =𝐼𝑆𝐶,𝑆𝑇𝐷 + µ𝐼𝑆𝐶
(𝑇 − 𝑇𝑆𝑇𝐷)
𝑒
𝑉𝑂𝐶,𝑆𝑇𝐷+µ𝑉𝑂𝐶(𝑇−𝑇𝑆𝑇𝐷)
𝑚𝑁𝑆𝑉𝑇(𝑇) − 1
( 1.14)
El siguiente método se basa en la relación de la corriente de saturación del diodo con la energia
de gap del semiconductor y la temperatura de este:
𝐼𝑂(𝑇) = 𝐼𝑂,𝑆𝑇𝐷 (𝑇
𝑇𝑆𝑇𝐷)
3
𝑒𝑞𝐸𝐺𝑚𝐾
(1
𝑇𝑆𝑇𝐷−
1𝑇
)
( 1.15)
La energía de gap dependerá del material de la placa y la temperatura a la que esta se encuentre.
Podrá calcularse de la siguiente manera:
𝐸𝐺 = 𝐸𝐺,0 −𝛼𝐺𝐴𝑃 · 𝑇𝐾
2
𝑇𝐾 + 𝛽𝐺𝐴𝑃
( 1.16)
Dónde αGAP, EG,0 y βGAP son característicos según el material con el que esté fabricado la placa
solar. Los valores, según el tipo de celda, son los siguientes:
Tabla 9 Energía de Gap según el material de fabricación de la placa solar
Germanio Silicio GaAs
EG,0 [eV] 0.7437 1.166 1.519
αGAP 4.47·10-4 4.73·10-4 5.41·10-4
βGAP 235 636 204
Finalmente, considerando también los valores de las resistencias en serie y paralelo, además de
los efectos de la temperatura y la irradiancia, se obtiene el método más complejo:
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
20
𝐼𝑜 =
(1 +𝑅𝑠
𝑅𝑆𝐻) (𝐼𝑆𝐶,𝑆𝑇𝐷 + µ
𝐼𝑆𝐶(𝑇 − 𝑇𝑆𝑇𝐷)) −
𝑉𝑂𝐶,𝑆𝑇𝐷 + µ𝑉𝑂𝐶
(𝑇 − 𝑇𝑆𝑇𝐷) + 𝑚𝑁𝑆𝑉𝑇 ln(𝐺)
𝑅𝑆𝐻
𝑒
𝑉𝑂𝐶,𝑆𝑇𝐷+µ𝑉𝑂𝐶(𝑇−𝑇𝑆𝑇𝐷)+𝑚𝑁𝑆𝑉𝑇 ln(𝐺)
𝑚𝑁𝑆𝑉𝑇 − 𝑒
(𝐼𝑆𝐶,𝑆𝑇𝐷+µ𝐼𝑆𝐶(𝑇−𝑇𝑆𝑇𝐷)) 𝑅𝑆
𝑚𝑁𝑆𝑉𝑇
( 1.17)
Este método puede simplificarse, como se ha hecho con el primer método explicado, asumiendo
que la resistencia en paralelo tiende a infinito (ideal) y, por otro lado, que la corriente en fotogenerada
es de idéntico valor a la corriente en cortocircuito.
𝐼𝑂(𝐺, 𝑇) =(
𝐺𝐺𝑆𝑇𝐷
) (𝐼𝑆𝐶,𝑆𝑇𝐷 + µ𝐼𝑆𝐶
(𝑇 − 𝑇𝑆𝑇𝐷)) 𝑒
𝑞µ𝐼𝑆𝐶(𝑇−𝑇𝑆𝑇𝐷)
𝑚𝑁𝑆𝑘𝑇
(𝐼𝑆𝐶,𝑆𝑇𝐷𝐺
𝐼𝑂,𝑆𝑇𝐷 + 1)
𝑇𝑆𝑇𝐷𝑇
− 𝑒
𝑞µ𝐼𝑆𝐶(𝑇−𝑇𝑆𝑇𝐷)
𝑚𝑁𝑆𝑘𝑇
( 1.18)
El método que se ha utilizado en este proyecto es el que relaciona las variaciones de corriente
de saturación del diodo con la energía de gap del semiconductor.
Afectación sobre las resistencias en serie y paralelo
Como en los apartados anteriores, existen varios métodos que desriben la variación de los efectos
modelados a través de las resistencias en serie y paralelo. El método más sencillo, y utilizado en este
trabajo, es ignorar los efectos, ya que no describen cambios importantes. No obstante, también puede
incorporarse la variación respecto a la irradiancia de cada una de ellas, asumiendo la otra constante:
𝑅𝑆(𝐺) = 𝑅𝑆,𝑆𝑇𝐷 → 𝑅𝑆𝐻(𝐺) =𝐺𝑆𝑇𝐷
𝐺𝑅𝑆𝐻,𝑆𝑇𝐷
( 1.19)
𝑅𝑆𝐻(𝐺) = 𝑅𝑆𝐻,𝑆𝑇𝐷 → 𝑅𝑆(𝐺) =𝐺𝑆𝑇𝐷
𝐺𝑅𝑆,𝑆𝑇𝐷
( 1.20)
Finalmente, el método más complejo incorpora también la afectación de la temperatura, para el
caso de la resistencia en serie:
𝑅𝑆(𝐺, 𝑇) =𝑇
𝑇𝑆𝑇𝐷(1 − 𝜆 ln (
𝐺
𝐺𝑆𝑇𝐷)) 𝑅𝑆,𝑆𝑇𝐷 𝑠𝑖𝑒𝑛𝑑𝑜 𝜆 = 0.217
( 1.21)
2. Cálculo teórico de los factores empíricos
Los fabricantes normalmente incluyen en sus hojas técnicas datos de los puntos de la ecuación
caracterísitica más importantes, como es el caso del punto de máxima potencia (IMPP, VMPP), la
corriente en cortocircuito (ISC), el voltaje en circuito abierto (VOC), el número de celdas conectadas
en serie (NS) y las variaciones provocadas por la temperatura e irradiancia. No obstante, existen
parámetros importantes que no son especificados (RS, RP, ISAT, m).
Por este motivo, se deben obtener las ecuaciones en aquellos puntos en los que la hoja de
características técnicas da información relevante:
Anexos
21
𝑂𝐶 → (𝑉𝑂𝐶 , 0): 0 = 𝐼𝑃𝐻 − 𝐼𝑂 (𝑒𝑉𝑂𝐶
𝑚𝑁𝑆𝑉𝑇 − 1) −𝑉𝑂𝐶
𝑅𝑆𝐻
( 2.1)
𝑆𝐶 → (0, 𝐼𝑆𝐶): 𝐼𝑆𝐶 = 𝐼𝑃𝐻 − 𝐼𝑂 (𝑒𝐼𝑆𝐶𝑅𝑆
𝑚𝑁𝑆𝑉𝑇 − 1) −𝐼𝑆𝐶𝑅𝑆
𝑅𝑆𝐻
( 2.2)
𝑀𝑃𝑃 → 𝐼𝑀 = 𝐼𝑃𝐻 − 𝐼𝑂 (𝑒𝑉𝑀+𝐼𝑀𝑅𝑆
𝑚𝑁𝑆𝑉𝑇 − 1) −𝑉𝑀 + 𝐼𝑀𝑅𝑆
𝑅𝑆𝐻
( 2.3)
Estas tres ecuaciones no son suficientes, por lo tanto, se debe de recurrir a otro punto singular
de la curva característica del panel: la derivada (pendiente de la recta) en el punto de máxima potencia
en la curva P-V es 0, por lo tanto, se puede desarrollar la siguiente ecuación:
𝑑𝑃
𝑑𝑉|
𝑀𝑃𝑃= −
𝐼𝑀
𝑉𝑀=
−1
𝑅𝑆𝐻−
𝐼𝑂𝑚𝑁𝑆𝑉𝑇
𝑒𝑉𝑀+𝐼𝑀𝑅𝑆
𝑚𝑁𝑆𝑉𝑇
1 +𝑅𝑆
𝑅𝑆𝐻+
𝐼𝑂𝑅𝑆𝑚𝑁𝑆𝑉𝑇
𝑒𝑉𝑀+𝐼𝑀𝑅𝑆
𝑚𝑁𝑆𝑉𝑇
( 2.4)
Finalmente, observando la pendiente de la recta en la curva característica I-V, en el punto de
cortocircuito del panel, se desarrolla la última ecuación necesaria:
𝑑𝐼
𝑑𝑉|
𝑀𝑃𝑃= −
1
𝑅𝑆𝐻,0=
−1
𝑅𝑆𝐻−
𝐼𝑂𝑚𝑁𝑆𝑉𝑇
𝑒𝐼𝑂𝑅𝑆
𝑚𝑁𝑆𝑉𝑇
1 +𝑅𝑆
𝑅𝑆𝐻+
𝐼𝑂𝑅𝑆𝑚𝑁𝑆𝑉𝑇
𝑒𝐼𝑂𝑅𝑆
𝑚𝑁𝑆𝑉𝑇
( 2.5)
A continuación, se muestra una superposición de las curvas características del panel solar, para
observar con mayor claridad el desarrollo de las dos últimas ecuaciones propuestas:
Voltaje VM VOC
Inte
nsi
dad
ISC
IM
(IMP, VMP)
Po
ten
cia
MPP
Fig 33 Curvas caracaterísticas I-V y P-V de un panel solar superpuestas
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
22
Como se ha comentado anteriormente, la resolución de dicho sistema de ecuaciones debe de
llevarse a cabo a través del método de Newton-Raphson o un método iterativo, como podría ser el
método gaussiano.
Anexos
23
ANEXO V. Algoritmos MPPT en Simulink
Los diferentes algoritmos utilizados para hallar el punto de máxima potencia han sido
implementados en simulink de dos maneras diferentes:
1. Implementación por código
Para implementar el algoritmo a través de código, se ha recurrido al bloque MATLAB function,
donde se introduce un código que se ejecutará automáticamente en cada iteración. El diagrama de
bloques necesario es el siguiente:
Como puede observarse, en el bloque entran como datos el voltaje y la corriente subministrada
por la placa en ese instante de tiempo. A través de una función (código), se implementa el algoritmo
según el diagrama de bloques de la Fig 34, dando como valor resultante un número del 0 al 1
correspondiente al nuevo ciclo de trabajo. Este valor será delimitado entre los valores máximos y
mínimos establecidos (0,1 – 0,9) a través del bloque de saturación.
Código Hill climbing
El código de la función y su explicación se presenta a continuación:
function D = PandO(Vpv,Ipv,delta) % Entradas: % Vpv: Voltaje del módulo fotovoltaico % Ipv: Corriente del módulo fotovoltaico
% delta: variación fija del ciclo de trabajo
%Define las variables que persisten en cada iteración (no se pierde % su valor) persistent Dprev Pprev DeltaPrev
% Inicializar las variables para la primera iteración if isempty(Dprev) Dprev = 0.5; DeltaPrev = 0; Pprev = 0; end
% Cálculo de la potencia
Fig 34 Bloque Simulink que realiza el algoritmo
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
24
Ppv = Vpv*Ipv; % Mirar el valor anterior de la delta y, si era 0, asignarle la inicial if DeltaPrev == 0 DeltaPrev = delta; end
% Incrementar o decrementar ciclo de trabajo en función de la potencia if (Ppv-Pprev) > 0
delta_actual = DeltaPrev; % La delta va en dirección al MPP elseif (Ppv-Pprev)< 0
delta_actual = DeltaPrev * (-1); % La delta debe de cambiar de signo
porque el MPP está en el lado contrario al que se dirige en algoritmo
else delta_actual = 0; % El algoritmo se encuentra en el MPP
end
% Calcular duty cycle D = Dprev + delta_actual;
% Actualizar el valor de las variables DeltaPrev = delta_actual; Dprev = D; Pprev = Ppv;
Código P&O
El código de la función y su explicación se presenta a continuación:
function D = PandO(Vpv,Ipv,delta) % Entradas: % Vpv: Voltaje del módulo fotovoltaico % Ipv: Corriente del módulo fotovoltaico
%Define las variables que persisten en cada iteración (no se pierde % su valor) persistent Dprev Pprev Vprev
% Inicializar las variables para la primera iteración if isempty(Dprev) Dprev = 0.5; Vprev = 0; Pprev = 0; end
% Definición del incremento del ciclo de trabajo en cada pasada deltaD = delta;
% Cálculo de la potencia Ppv = Vpv*Ipv;
% Incrementar o decrementar ciclo de trabajo en función de las
condiciones if (Ppv-Pprev) ~= 0 % En caso de que no nos encontremos en el MPP if (Ppv-Pprev) > 0 %Si el incremento de potencia es positivo
Anexos
25
if (Vpv-Vprev) > 0 %Si el incremento de voltaje es positivo D = Dprev - deltaD; else % Si el incremento de voltaje es negativo D = Dprev + deltaD; end else %Si el incremento de potencia es negativo if (Vpv-Vprev) > 0 %Si el incremento de voltaje es positivo D = Dprev + deltaD; else % Si el incremento de voltaje es negativo D = Dprev - deltaD; end end else D = Dprev; end
% Actualizar el valor de las variables Dprev = D; Vprev = Vpv; Pprev = Ppv;
Código conductancia incremental con paso fijo
El código de la función y su explicación se presenta a continuación:
function D = Incre2(V, I, delta) % Entradas: % Vpv: Voltaje del módulo fotovoltaico % Ipv: Corriente del módulo fotovoltaico
%Define las variables que persisten en cada iteración (no se pierde % su valor) persistent Dprev Iprev Vprev
% Inicializar las variables para la primera iteración if isempty(Dprev) Dprev = 0.5; Vprev = 0; Iprev = 0; end
% Definición del incremento del ciclo de trabajo en cada pasada deltaD = delta;
% Cálculo de los incrementos dV= V - Vprev; dI= I - Iprev;
% Incrementar o decrementar ciclo de trabajo en función de las
condiciones % Si dV es nula if dV == 0 if dI ~= 0 % El algoritmo no se encuentra en el MPP if dI > 0
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
26
D = Dprev - deltaD; % Decrementar duty else D = Dprev + deltaD; % Incrementar duty end else D = Dprev; % El algoritmo se encuentra en el MPP end % Si dV no es nula else if (dI/dV) ~= ((I/V)*(-1)) % El algoritmo no se encuentra en el MPP if (dI/dV) >((I/V)*(-1)) D = Dprev - deltaD; % Decrementar duty else D = Dprev + deltaD; % Incrementar duty end else D = Dprev; % El algoritmo se encuentra en el MPP end end
% Actualizar el valor de las variables Dprev = D; Vprev = V; Iprev = I;
Código conductancia incremental con paso variable
El código de la función y su explicación se presenta a continuación:
function D = Incre2(V, I, delta_max,N) % Entradas: % Vpv: Voltaje del módulo fotovoltaico % Ipv: Corriente del módulo fotovoltaico % delta_max: Valor máximo del incremento de ciclo de trabajo % N: factor de escalado
%Define las variables que persisten en cada iteración (no se pierde % su valor) persistent Dprev Iprev Vprev Pprev
% Inicializar las variables para la primera iteración if isempty(Dprev) Dprev = 0.5; Vprev = 10; Iprev = 1; Pprev = 10; end
% Calculo de los incrementos de voltaje, corriente y potencia dV= V - Vprev; dI= I - Iprev; P = V*I; dP = P - Pprev;
Anexos
27
% Definición del incremento del ciclo de trabajo en cada pasada deltaD = (N/I)*abs(dP/dV);
% Limitación de la delta según la máxima fijada if deltaD > delta_max deltaD = delta_max; end
% Incrementar o decrementar ciclo de trabajo en función de las
condiciones % Si dV es nula if dV == 0 if dI ~= 0 % El algoritmo no se encuentra en el MPP if dI > 0 D = Dprev - deltaD; % Decrementar duty else D = Dprev + deltaD; % Incrementar duty end else D = Dprev; % El algoritmo se encuentra en el MPP end % Si dV no es nula else if (dI/dV) ~= ((I/V)*(-1)) % El algoritmo no se encuentra en el MPP if (dI/dV) >((I/V)*(-1)) D = Dprev - deltaD; % Decrementar duty else D = Dprev + deltaD; % Incrementar duty end else D = Dprev; % El algoritmo se encuentra en el MPP end end
% Actualizar el valor de las variables Dprev = D; Vprev = V; Iprev = I; Pprev = P;
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
28
2. Implementación por diagrama de bloques
Otra manera de implementar los algoritmos es a través de bloques proporcionados por Simulink.
Se procede a resumir los elementos más importantes utilizados, con el objetivo de entender mejor el
funcionamiento de cada uno de los diagramas de bloques implementados.
Tabla 10 Explicación de los bloques de MATLAB-Simulink utilizados para la implementación de los algoritmos
MPPT
Nombre Simbolo Explicación
Zero order hold
Permite mantener el valor de entrada durante el periodo
especificado. Es decir, se trata de un bloque que permite recuperar
una señal contínua a partir de una señal discereta.
Memory
Retiene el valor y retrasa la entrada un paso de tiempo. Es decir,
guarda el valor de la variable de la iteración anterior.
Signum
Devuelve el signo de la variable de entrada. Si la entrada es 0, el
resutlado será 0. Si es positiva será 1 y si es negativa -1.
Saturation
Limita el valor de la variable de entrada entre los límites fijados. En
este caso se utilizan valores de 0,1 y 0,9 para limitar el ciclo de
trabajo de los convertidores.
Relational
Se encarga de comparar dos entradas y realizar diferentes
comparaciones (igualdad, mayor que, menor que…). Devuelve un
1 si la comparación es cierta, y un 0 si es falsa.
Compare to zero
Realiza la comparación (igualdad, mayor que, menor que…) entre
la entrada y el valor 0. Devuelve un 1 si la comparación es cierta, y
un 0 si es falsa.
Switch
Determina el paso del valor de la primera o la tercera posición, en
función de la comparación establecida en la segunda entrada.
Diagrama de bloques Hill climbing
El diagrama de bloques diseñado para implementar el algoritmo Hill climbing es el que se
presenta en la siguiente figura:
Anexos
29
En primer lugar, se calcula el incremento de potencia utilizando el bloque de memoria. Una vez
realizado, el signo de la potencia determina el incremento o decremento del ciclo de trabajo. En caso
de que la delta anterior sea nula, se debe de realizar un reinicio a su valor fijo, para que el algoritmo
no se quede estancado, que se consigue comparando el valor a cero y sumando el valor de delta en
caso de que esta comparación resulte cierta.
Diagrama de bloques P&O
Para implementar el algoritmo a través de bloques, resulta de gran utilidad realizar una tabla que
resuma las decisiones que deberán tomarse sobre el ciclo de trabajo, en función de los incrementos
de potencia y voltaje, tal como se muestra a continuación:
Tabla 11 Decisiones del algoritmo P&O en función de ΔP y ΔV
Incremento anterior
de voltaje
Incremento de
potencia
Incremento del
ciclo de trabajo
Positivo Positivo Decremento
Positivo Negativo Incremento
Negativo Positivo Incremento
Negativo Negativo Decremento
Fig 35 Diagrama de bloques en Simulink del algoritmo Hill Climbing
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
30
Como puede observarse en la tabla anterior, cuando los incrementos de potencia y voltaje son
del mismo signo, se debe de realizar un decremento del ciclo de trabajo. Esto resulta de gran utilizada
a la hora de diseñar el diagrama de bloques, que se enseña en la siguiente figura:
En primer lugar, se calculan los incrementos de potencia y voltaje, utilizando el bloque de
memoria que proporciona Simulink para almacener la variable de la iteración anterior. Una vez
realizado, se multiplican ambos incrementos, con el fin de saber si los signos son iguales (valor
resultante positivo), diferentes (valor resultante negativo) o si el incremento de potencia era nulo
(valor resultante nulo). En función de dicho signo, se realiza un incremento o decremento del ciclo
de trabajo anterior (guardado también gracias al bloque de memoria).
Diagrama de bloques conductancia incremental con paso fijo
El diagrama de bloques diseñado para implementar el algoritmo conductancia incremental con
paso fijo es el que se presenta en la siguiente figura:
Fig 36 Diagrama de bloques en Simulink del algoritmo P&O
Anexos
31
En primer lugar, se calculan los incrementos de potencia y voltaje, utilizando el bloque de
memoria que proporciona Simulink para almacener la variable de la iteración anterior Una vez
realizado, se compara la inductancia incremental y la inductancia instantánea, con el objetivo de
determinar el signo de la variación de ciclo de trabajo. En función del incremento de voltaje,
finalmente se determinará si ésta variación debe de ser negativa, positiva o nula.
Diagrama de bloques conductancia incremental con paso variable
El diagrama de bloques diseñado para implementar el algoritmo conductancia incremental con
paso variables es exactamente igual que el anterior, pero previamente se realiza el cálculo de la delta
y, a través de un bloque de saturación, se limita el valor máximo de la misma.
Fig 37 Diagrama de bloques en Simulink del algoritmo IC
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
32
ANEXO VI. Sensor ACS714
1. Información general
El sensor de corriente ACS714, como ya se ha explicado en la memoria, es un sensor de efecto
Hall que detecta el campo magnético provocado por la corriente que circula por el mismo. Existen
tres modelos, y se debe de seleccionar el adecuado en función de la corriente máxima que se desee
sensar. En la siguiente tabla se muestra cada uno de los modelos y la sensibilidad correspondiente:
Modelo Rango corriente Salida tensión Sensibilidad
ACS712-05 -5 – 5A 0-5V 185 mV/A
ACS712-20 -20 – 20A 0-5V 100 mV/A
ACS712-30 -30 – 30A 0-5V 66 mV/A
El sensor entregará 2.5 V cuando la corriente sea nula (V0A), valores inferiores a dicho valor
para intensidades negativas y superiores para positivas. Para calcular la intensidad en función de este
voltaje, se debe de realizar entonces una conversión mediante programación, a través de la siguiente
fórmula:
𝐼 =𝑉𝑚𝑒𝑑 − 𝑉0𝐴
𝑠𝑒𝑛𝑠𝑖𝑏𝑖𝑙𝑖𝑑𝑎𝑑 ( 1.1)
2. Adaptación a Arduino Due
El primer problema para la utilización de este sensor es que está pensado para placas que trabajen
con entradas analógicas de 0 a 5V y, en este caso, la placa Arduino Due trabaja de 0 a 3V. Para
solucionar este problema, se ha decidido adaptar la tensión de entrada de la placa a través de un
divisor de tensión, como puede observarse en la siguiente figura:
Fig 38 Divisor de tensión para adaptar el sensor de corriente a la placa Arduino Due [34]
De esta forma, los valores de tensión quedarían adaptados al rango de tensiones utilizado por la
placa y, al tratarse de resistencias de elevado valor, no afectaría al circuito. Los límites quedarían
entonces fijados de la siguiente manera:
Anexos
33
𝑉5𝐴.𝑑𝑢𝑒 = 𝑉5𝐴,𝐴𝐶𝑆714
𝑅2
𝑅1 + 𝑅2= 5
3,3
3.3 + 2.2= 3 𝑉 ( 2.1)
𝑉0𝐴,𝑑𝑢𝑒 = 𝑉0𝐴,𝐴𝐶𝑆714
𝑅2
𝑅1 + 𝑅2= 2.5
3,3
3.3 + 2.2= 1.5 𝑉 ( 2.2)
𝑉−5𝐴,𝑑𝑢𝑒 = 𝑉−5𝐴,𝐴𝐶𝑆714
𝑅2
𝑅1 + 𝑅2= 0
3,3
3.3 + 2.2= 0 𝑉 ( 2.3)
3. Calibración
El segundo problema del sensor es que los valores de conversión proporcionados por el
fabricante no son exactos, ya que cada sensor puede variar ligeramente su comportamiento. La
relación entre el voltaje y la corriente es lineal y, por lo tanto, es posible recalibrar cada uno de ellos
realizando diferentes medidas y obteniendo así sus valores característicos.
La primera medida necesaria es V0A, ya que determinará el offset de voltaje que se debe de restar
a la medida proporcionada por el sensor. Este paso resulta aún más importante en la utilización de
Arduino Due, ya que no sólo arreglará el error del sensor, sino también el provocado por el valor real
de las resistencias que forman el divisor de tensión. Para ello, se procede a dejar el sensor
desconectado del circuito.
La sensibilidad (mV/A) es la pendiente de la recta que relaciona el voltaje provocado por la
corriente que pasa por el sensor. Para poder obtenerlo, es necesario obtener dos puntos de la recta, y
calcular así su pendiente a través de la siguiente ecuación:
𝑆𝑒𝑛𝑠𝑖𝑏𝑖𝑙𝑖𝑑𝑎𝑑 =𝑉2 − 𝑉1
𝐼2 − 𝐼1 ( 3.1)
Los valores de tensión son los medidos a través del microcontrolador, y los valores de corriente
se ha realizado a través de un amperímetro de buena precisión, que será el que ayudará a la
calibración. En la siguiente tabla se presenta los valores obtenidos para cada uno de los sensores:
Tabla 12 Medidas obtenidas para calibrar el sensor ACS714-05
Modelo VIN (V) R (Ω) Intensidad
teórica (mA)
Voltaje
(V)
Intensidad
real (mA)
Intensidad
sensada (mA)
SENSOR 1
- - 0 1.503 0 0
8.34 99.0 84.24 1.519 86.5 88.86
-8.34 99.0 -84.24 1.493 -86.5 -88.86
8.46 22.6 374.33 1.543 346.7 339.77
-8.46 22.6 -374.33 1.462 - 346.7 -360.68
8.77 48.3 181.57 1.524 167.6 177.72
-8.77 48.3 -181.57 1.484 -167.6 -167.27
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
34
SENSOR 2
- - 0 1.509 0 0
8.34 99.0 84.24 1.519 86.8 84.97
-8.34 99.0 -84.24 1.502 -86.8 -58.42
8.46 22.6 374.33 1.549 336.2 355.88
-8.46 22.6 -374.33 1.472 -336.2 -329.23
8.77 48.3 181.57 1.538 166.4 254.96
-8.77 48.3 -181.57 1.493 -166.4 -0.143
SENSOR 3
8.34 99.0 84.24 1,496 0 -95,08
-8.34 99.0 -84.24 1,513 86,5 -106,23
8.46 22.6 374.33 1,474 -86,5 -217,77
-8.46 22.6 -374.33 1,562 346,7 249,64
8.77 48.3 181.57 1,423 -346,7 -488,67
-8.77 48.3 -181.57 1,548 167,6 175,28
8.34 99.0 84.24 1,461 -167,6 -286,83
Los valores en rojo son medidas que se han descartado, ya que se alejan de la recta. Realizando
una regresión lineal, se obtiene el valor de la sensibilidad, formado así la ecuación que determina la
conversión de voltaje a corriente de cada uno de los sensores es la siguiente:
𝐼𝑠𝑒𝑛𝑠𝑜𝑟1 =𝑉𝑚𝑒𝑑 − 1.503
0.191304 ( 3.2)
𝐼𝑠𝑒𝑛𝑠𝑜𝑟2 =𝑉𝑚𝑒𝑑 − 1.509
0.188265 ( 3.3)
𝐼𝑠𝑒𝑛𝑠𝑜𝑟3 =𝑉𝑚𝑒𝑑 − 1.496
0.199832 ( 3.4)
Anexos
35
ANEXO VII. Programación en Arduino
La implementación física del control se ha llevado a cabo a través de Arduino, ya que MATLAB
permite una conexión a tiempo real con el microcontrolador únicamente para frecuencias inferiores a
1 kHz (modo normal), frecuencia que no cumple los requisitos de diseño. El código desarrollado en
Arduino para mantener el punto de máxima potencia es el que se presenta a continuación:
#include <TimerOne.h>
// DEFINICIÓN DE PINES UTILIZADOS
const int PWM_Pin = 11;
int intensidad_entrada_Pin = A0;
int intensidad_medio_Pin = A1;
int voltaje_entrada_Pin = A3;
int voltaje_medio_Pin = A4;
// PARÁMETROS DE CONFIGURACIÓN
int frecuencia = 20000;// Frecuencia de trabajo del convertidor (Hz)
float sensibilidad_entrada = 0.185 ; // Sensibilidad del sensor de
corriente 1 (intensidad de entrada)
float sensibilidad_medio = 0.185; // Sensibilidad del sensor de corriente
2 (intensidad del medio)
float voltaje_abierto_entrada= 2.486; // Voltaje en circuito abierto del
sensor de corriente 1 (intensidad de entrada)
float voltaje_abierto_medio= 2.46; // Voltaje en circuito abierto del
sensor de corriente 1 (intensidad media)
float divisor_voltaje_entrada = 5.0209; // Relación de división de voltaje
para adaptarlo a Arduino en la entrada (Teórico 5)
float divisor_voltaje_medio = 5.9431; // Relación de división de voltaje
para adaptarlo a Arduino en el medio (Teórico 6)
int filtro = 300; // Iteraciones para obtener corrientes e intensidades con
menor error (media)
float duty_cycle_max = 80; // Ciclo de trabajo máximo permitido para el
convertidor
float duty_cycle_min = 10; // Ciclo de trabajo mínimo permitido par el
convertidor
float delta_fija = 0.5; // Variación de la delta en cada iteración
float delta_ant = 0; // Variación de la delta en cada iteración
float delta;
int algoritmo = 5; // Hill climbing (1), PandO (2), IC (3), INC (4), FOC
(5), SCC (6)
float V_oc_ref = 16.34;
float K_v = 0.75;
float I_sc_ref = 0.35;
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
36
float K_i = 0.9;
// DEFINICIÓN DE VARIABLES
float intensidad_entrada; // Intensidad real en la entrada
float intensidad_medio; // Intensidad real en el medio
float volt_sens_entrada; // Voltaje medido por el sensor de corriente 1
(entrada)
float volt_sens_medio; // Voltaje medido por el sensor de corriente 2
(medio)
float voltaje_entrada; // Voltaje real en la entrada
float voltaje_medio; // Voltaje real en el medio
float potencia_entrada; // Voltaje real en la entrada
float potencia_medio; // Voltaje real en el medio
unsigned long period; // Periodo de la PWM
float voltaje_entrada_anterior = 0;
float intensidad_entrada_anterior = 0;
float duty_cycle = 20;
// CONFIGURACIÓN DEL SISTEMA
void setup(void)
// Configuración de la frecuencia del timer para generar PWM
period = 1000000/frecuencia;
Timer1.initialize(period);
Serial.begin(9600);
// EJECUCIÓN PERMANTENTE
void loop(void)
// PASO 1: LECTURA DE VOLTAJE,CORRIENTE Y POTENCIA
////// Lectura de voltajes del sensor de corriente
volt_sens_entrada = get_voltage(500,intensidad_entrada_Pin);
volt_sens_medio = get_voltage(500,intensidad_medio_Pin);
////// Lectura de corrientes
intensidad_entrada = get_corriente(filtro, sensibilidad_entrada, voltaje_
abierto_entrada,intensidad_entrada_Pin);
intensidad_medio = get_corriente(filtro, sensibilidad_medio, voltaje_abie
rto_medio,intensidad_medio_Pin);
////// Lectura de voltajes
voltaje_entrada = (get_voltage(filtro,voltaje_entrada_Pin))*divisor_volt
aje_entrada;
voltaje_medio = (get_voltage(filtro,voltaje_medio_Pin))*divisor_voltaje_
medio;
Anexos
37
////// Cálculo de las potencias
potencia_entrada = intensidad_entrada*voltaje_entrada;
potencia_medio = intensidad_medio*voltaje_medio;
// PASO 2: EJECUCIÓN DEL ALGORITMO
delta = mppt_algoritmo(algoritmo,voltaje_entrada,intensidad_entrada,volta
je_entrada_anterior,intensidad_entrada_anterior,delta_ant);
duty_cycle = duty_cycle + delta;
// PASO 3: GUARDAR VARIABLES ANTERIORES
voltaje_entrada_anterior = voltaje_entrada;
intensidad_entrada_anterior = intensidad_entrada;
delta_ant = delta;
// PASO 4: LIMITACIÓN DEL CICLO DE TRABAJO
if (duty_cycle>=duty_cycle_max)
duty_cycle = duty_cycle_max;
if (duty_cycle <= duty_cycle_min)
duty_cycle = duty_cycle_min;
// PASO 5: SALIDA DE PWM CON NUEVO CICLO DE TRABAJO
// Definición del ciclo de trabajo de la PWM
Timer1.pwm(PWM_Pin, (duty_cycle+1)*10);
// PASO 6: MOSTRAR VALORES EN LA CONSOLA
// LINEA 1
Serial.print(frecuencia);
Serial.print("\t");
Serial.print(duty_cycle,2);// Tres decimales
Serial.print("\t");
Serial.print(delta,3);// Tres decimales
Serial.print("\t");
Serial.print(voltaje_entrada,3); // Tres decimales
Serial.print("\t");
Serial.print(intensidad_entrada,3);// Tres decimales
Serial.print("\t");
Serial.print(potencia_entrada,3); // Tres decimales
Serial.print("\t");
Serial.print(voltaje_medio,3); // Tres decimales
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
38
Serial.print("\t");
Serial.print(intensidad_medio,3); // Tres decimales
Serial.print("\t");
Serial.println(potencia_medio,3); // Tres decimales
// Medir la corriente del sensor aplicando filtro de lecturas para evitar
errores
float get_corriente(int n_muestras, float sensibilidad, float
voltajeSensor, int Pin)
float corriente=0;
for(int i=0;i<n_muestras;i++)
voltajeSensor = analogRead(Pin) * (5.0 / 1023.0);////lectura del
sensor
corriente=corriente+(voltajeSensor-2.5)/sensibilidad; //Ecuación para
obtener la corriente
corriente=corriente/n_muestras;
return(corriente);
// Medir el voltaje aplicando filtro de lecturas para evitar errores
float get_voltage(int n_muestras, int Pin)
float voltage=0;
for(int i=0;i<n_muestras;i++)
voltage =voltage+analogRead(Pin) * (5.0 / 1023.0);
voltage=voltage/n_muestras;
return(voltage);
// Implementación de algoritmos MPPT
float mppt_algoritmo(int algoritmo, float V_in, float I_in, float
V_in_ant, float I_in_ant, float delta_ant) // Hill climbing (1), PandO (2),
IC (3), INC (4), FOC (5), SCC (6)
float delta;
float P_in;
float P_in_ant;
Anexos
39
float I_V_neg;
float dI_dV;
float N = 0.01;
float delta_var;
float Vmpp;
float Impp;
switch (algoritmo)
/////////////// Hill Climbing//////////////
case 1:
// Calcular potencia actual y anterior
P_in = V_in*I_in;
P_in_ant = V_in_ant*I_in_ant;
// Mirar si el valor de delta es 0, para volver a ponerle el valor
inicial
if (delta_ant == 0)
delta_ant = delta_fija;
// Mirar incremento de potencia
if (P_in > P_in_ant)
delta = delta_ant; // En caso de ser positivo, va hacia la dirección
correcta al punto de máxima potencia
else if (P_in < P_in_ant)
delta = delta_ant * (-1); // En caso de ser negativo, va hacia la
dirección contraria, por lo que se debe de invertir la delta
else
delta = 0; // en caso de que las potencias sean idénticas el
algoritmo ha llegado al MPP y, por lo tanto, no debe de cambiar el duty
cycle
break;
/////////////// Perturb and Observe ///////////////
case 2:
// Calcular potencia actual y anterior
P_in = V_in*I_in;
P_in_ant = V_in_ant*I_in_ant;
// Si el incremento de potencia es positivo
if (P_in > P_in_ant)
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
40
// Si el incremento de voltaje es positivo
if (V_in > V_in_ant)
delta = -delta_fija; // El ciclo de trabajo debe disminuir
// Si el incremento de voltaje es negativo
else
delta = delta_fija; // El ciclo de trabajo debe aumentar
// Si el incremento de potencia es negativo
else if (P_in < P_in_ant)
// Si el incremento de voltaje es positivo
if (V_in > V_in_ant)
delta = delta_fija; //El ciclo de trabajo debe aumentar
// Si el incremento de voltaje es negativo
else
delta = -delta_fija; // El ciclo de trabajo debe disminuir
// Si las potencias son idénticas el algoritmo está en MPP y no se
debe de cambiar el ciclo de trabajo
else
delta = 0;
break;
/////////////// Incremental conductance ///////////////
case 3:
// Calcular division de incrementos y valores actuales de corriente
y voltaje
dI_dV = (I_in-I_in_ant)/(V_in-V_in_ant);
I_V_neg = (I_in/V_in)*(-1);
// Si el incremento de voltaje entre iteraciones es nulo
if (V_in == V_in_ant)
// Si el incremento de corriente entre iteraciones es positivo
Anexos
41
if (I_in > I_in_ant)
delta = -delta_fija; // El ciclo de trabajo debe disminuir
else if (I_in < I_in_ant)
delta = delta_fija; // El ciclo de trabajo debe aumentar
// Si el incremento de corriente entre iteraciones es nulo
else
delta = 0; // El algoritmo ya ha llegado a MPP
// Si el incremento de voltaje varia entre iteraciones
else
if (dI_dV > I_V_neg)
delta = -delta_fija; // El ciclo de trabajo debe
disminuir
else if (dI_dV < I_V_neg)
delta = delta_fija; // El ciclo de trabajo debe aumentar
else
delta = 0; // El algoritmo ya ha llegado a MPP
break;
/////////////// Incremental Conductance con paso variable ///////////////
case 4: // INC
// Calcular division de incrementos y valores actuales de corriente,
voltaje y potencia
dI_dV = (I_in-I_in_ant)/(V_in-V_in_ant);
I_V_neg = (I_in/V_in)*(-1);
P_in = V_in*I_in;
P_in_ant = V_in_ant*I_in_ant;
// Calculo de la delta variable
delta_var = (N/I_in)*abs((P_in-P_in_ant)/(V_in-V_in_ant));
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
42
// Limitar la delta al valor fijo
if (delta_var > delta_fija)
delta_var = delta_fija;
// Si el incremento de voltaje entre iteraciones es nulo
if (V_in == V_in_ant)
// Si el incremento de corriente entre iteraciones es positivo
if (I_in > I_in_ant)
delta = -delta_var; // El ciclo de trabajo debe disminuir
else if (I_in < I_in_ant)
delta = delta_var; // El ciclo de trabajo debe aumentar
// Si el incremento de corriente entre iteraciones es nulo
else
delta = 0; // El algoritmo ya ha llegado a MPP
// Si el incremento de voltaje varia entre iteraciones
else
if (dI_dV > I_V_neg)
delta = -delta_var; // El ciclo de trabajo debe disminuir
else if (dI_dV < I_V_neg)
delta = delta_var; // El ciclo de trabajo debe aumentar
else
delta = 0; // El algoritmo ya ha llegado a MPP
break;
/////////////// Fractional open circuit ///////////////
Anexos
43
case 5:
// Calcular Vmpp en función de K y Voc
Vmpp = V_oc_ref*K_v;
if (V_in > Vmpp)
delta = -delta_fija; // El ciclo de trabajo debe aumentar
else if (V_in < Vmpp)
delta = delta_fija; // El ciclo de trabajo debe aumentar
else
delta = 0; // Ya se encuentra trabajando al MPP teórico
break;
/////////////// Short circuit current ///////////////
default: //(se hace por defecto, si el valor que se introduce no
coincide)
// Calcular Impp en función de K y Voc
Impp = I_sc_ref*K_i;
if (I_in > Impp)
delta = -delta_fija; // El ciclo de trabajo debe aumentar
else if (I_in < Impp)
delta = delta_fija; // El ciclo de trabajo debe aumentar
else
delta = 0; // Ya se encuentra trabajando al MPP teórico
break;
return(delta);
Estudio de algoritmos de seguimientos del punto de máxima potencia en sistemas fotovoltaicos
44
ANEXO VIII Circuito eléctrico completo
Fig
39
Circu
ito eléctrico
del d
iseño
, pa
ra u
na
PW
M fija
en a
mb
os co
nvertid
ores
top related