estudio de algoritmos de seguimiento del punto de …

49
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

Upload: others

Post on 20-Jul-2022

25 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 2: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …
Page 3: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 4: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 5: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 6: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 7: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 8: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 9: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 10: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 11: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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).

Page 12: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 13: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 14: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 15: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 16: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 17: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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.

Page 18: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

Anexos

13

Fig 28 Intensidad por el diodo ID

Fig 28 Intensidad por la inductancia en régimen estancionario,IL.

Page 19: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 20: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 21: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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:

Page 22: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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.

Page 23: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 24: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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:

Page 25: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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:

Page 26: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 27: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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.

Page 28: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 29: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 30: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 31: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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;

Page 32: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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;

Page 33: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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:

Page 34: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 35: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 36: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 37: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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:

Page 38: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 39: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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)

Page 40: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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;

Page 41: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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;

Page 42: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 43: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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;

Page 44: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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)

Page 45: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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

Page 46: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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));

Page 47: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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 ///////////////

Page 48: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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);

Page 49: ESTUDIO DE ALGORITMOS DE SEGUIMIENTO DEL PUNTO DE …

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