Documente Academic
Documente Profesional
Documente Cultură
FACULDADE DE ENGENHARIA
DEPARTAMENTO DE ENERGIA
Juiz de Fora
2015
ii
Juiz de Fora
2015
iii
BANCA EXAMINADORA:
AGRADECIMENTO
RESUMO
LISTA DE ILUSTRAES
FIGURA
4.4 - Curva de gerao (experimental e simulao) dos painis solares fotovoltaicos do dia 28 de
junho de 2014 ..............................................................................................................................23
vii
4.5 - Curva de Radiao Solar e Temperatura referente aos dias 01 e 02 de Julho de 2014 .......24
4.6 - Curva de gerao (experimental e simulao) dos painis solares fotovoltaicos do dia 01 e
02 de julho de 2014 .....................................................................................................................25
4.7 - Curva de Radiao Solar e Temperatura referente aos dias 03 e 05 de Julho de 2014 .......26
4.8 - Curva de gerao (experimental e simulao) dos painis solares fotovoltaicos do dia 03 e
05 de julho de 2014 .....................................................................................................................26
4.9 - Curva de gerao com algoritmo melhorado.......................................................................28
4.10 - Curva de Radiao Solar e Temperatura referente ao dia 27 de. Fevereiro ......................29
viii
LISTA DE TABELAS
TABELA
2.1 - Dados do conversor elevador de tenso
..................................................................................8
2.2 Dimensionamento do conversor elevador de tenso .............................................................8
3.1 - Especificaes da simulao para anlise comparativa das tcnicas MPPT .......................17
3.2 - Energia gerada no arranjo solar fotovoltaico quando exposto a curvas reais de radiao e
temperatura para as tcnicas de MPPT em estudo
........................................................................19
4.1 - Comparao da energia gerada pelo algoritmo CMPPT por Indutncia Incremental .........22
4.2 - Comparao da energia gerada pelo algoritmo VMPPT por Condutncia Incremental .....23
4.3 - Comparao da energia gerada pelo algoritmo CMPPT por P&O .....................................25
4.4 - Resultados do experimento utilizando a metodologia de controle por tenso e rastreando o
MPPT pelo algoritmo de P&O ....................................................................................................26
ix
ABREVIATURAS E SMBOLOS
Wp, Watt-Pico;
W, Watt;
V, Volt;
A, Ampere;
Wh; Watt-hora;
ms, milissegundo;
TUST, Tarifa do Uso do Sistema de Transmisso;
TUSD, Tarifa do Uso do Sistema de Distribuio;
MPPT, Rastreamento do Ponto de Mxima Potncia, do ingls Maximum Power Point
Tracking;
P&O, Perturba e Observa;
CI, Condutncia Incremental;
CC, Corrente Contnua;
P, Potncia;
V, Tenso;
I, Corrente;
MPP, Ponto de Mxima Potncia, do ingls Maximum Power Point
VMPPT, Rastreamento do Ponto de Mxima Potncia por Tenso
IMPPT, Rastreamento do Ponto de Mxima Potncia por Corrente
Vin, Tenso na sada do painel fotovoltaico (entrada do conversor);
Il, Corrente no indutor;
x
SUMRIO
1. INTRODUO .........................................................................................................1
1.1. Motivao .......................................................................................................... 1
1.2. Objetivos ............................................................................................................ 2
1.3. Organizao do Trabalho ................................................................................... 2
2. Gerao solar fotovoltaica e projeto do conversor elevador ......................................4
2.1. Rastreamento do ponto de mxima potncia ..................................................... 4
2.1.1. Perturba e Observa...................................................................................... 6
2.1.2. Condutncia Incremental ............................................................................ 7
2.2. Conversor elevador de tenso ............................................................................ 8
2.3. Projeto do controlador ....................................................................................... 9
2.4 Concluses Parciais .............................................................................................. 11
3. Anlise comparativa de tcnicas MPPT ...................................................................13
3.1. VMPPT ............................................................................................................ 13
3.1.1. Algoritmo Perturba e Observa .................................................................. 13
3.1.2. Algoritmo de Condutncia Incremental ................................................... 15
3.2. CMPPT ............................................................................................................ 16
3.2.1. Algoritmo Perturba e Observa .................................................................. 16
3.2.2. Algoritmo de Impedncia Incremental ..................................................... 17
3.3. Anlise Comparativa ........................................................................................ 18
3.4. Concluses Parciais ......................................................................................... 20
4. Resultados Experimentais ........................................................................................21
4.1. Materiais e Mtodos ......................................................................................... 21
4.2. Eficincia do conversor ................................................................................... 22
4.3. Comparao das tcnicas MPPT...................................................................... 22
4.3.1. CMPPT por Impedncia Incremental ....................................................... 22
4.3.2. VMPPT por Condutncia Incremental ..................................................... 23
4.3.3. CMPPT por Perturba e Observa ............................................................... 25
4.3.4. VMPPT por Perturba e Observa ............................................................... 26
xi
1.1. Motivao
A energia solar uma das opes para suprir a demanda energtica da sociedade
atual. Alm de ser considerada uma fonte de energia limpa, seu custo apresenta uma
elevada taxa de decaimento. Uma das maneiras de transformar energia solar em
eletricidade utilizar a tecnologia solar fotovoltaica. O aproveitamento da energia solar
fotovoltaica pode ocorrer desde pequenas fontes de gerao (alguns watts de potncia)
at grandes plantas de gerao (parque solar de Olmedilla, Espanha, 60 MWp). Embora
ainda apresentem alto custo implantao, quando comparado s outras tecnologias de
gerao renovvel, so financeiramente atrativas em comunidades isoladas. E ainda,
como podem produzir energia quando instalada no telhado das residncias, no incide
1
sobre a eletricidade gerada tarifas como da TUST (Tarifa do Uso do Sistema de
Transmisso) e da TUSD (Tarifa do Uso do Sistema de Distribuio)[2].
1.2. Objetivos
2
as suas possveis formas de controle. E ainda, apresenta o desenvolvimento de um
conversor boost e de seus controladores.
3
Capitulo 2
2. Gerao solar fotovoltaica e projeto do conversor elevador
Este captulo busca apresentar uma introduo a gerao solar fotovoltaica, em que
ser apresentada uma breve reviso sobre o processo e caractersticas da gerao solar
fotovoltaica e tcnicas de rastreamento de mxima potncia. Ainda neste captulo, ser
apresentada uma sntese do projeto do conversor elevador de tenso, bem como o
controle deste para efetivar o rastreamento do ponto de mxima potncia.
80 80
Potncia (W)
70C 70C
80 50C 80
60
30C 60
10C
40 40
20 20
0 0
0 10 20 30 40 0 1 2 3 4
Tenso (V) Corrente (A)
(c) (d)
Figura 2. 1 - Curvas caractersticas do painel solar fotovoltaico BPSX120 (simulao): (a) Curva
P x V com temperatura fixa; (b) Curva P x I com temperatura fixa; (c) Curva P x V com radiao
Fixa; (d) Curva P x V com radiao fixa.
4
Nas curvas esboadas possvel observar que o ponto de mxima produo de
potncia varia em termos da radiao solar e da temperatura do painel. Pelas curvas
P x V, com temperatura fixa, possvel constatar que a tenso em ocorre a mxima
produo de potncia sempre praticamente a mesma, independente da variao da
radiao solar. No entanto, possvel constatar que quando a temperatura varia, grfico
P x V com radiao solar fixa, a tenso varia expressivamente. Nesta situao, a
corrente varia com menor intensidade, conforme grfico P x I com radiao solar fixa.
Um conversor esttico de potncia acoplado ao painel solar para que o mesmo
opere sempre no Ponto de Mxima Transferncia de Potncia (MPP, do ingls
Maximum Power Point). Usualmente, emprega-se o controle da tenso terminal do
painel para esse fim, mas tambm possvel realizar o controle da corrente. Na Figura
2.2 apresentado um esboo esquemtico de um sistema solar fotovoltaico incluindo o
conversor esttico CC-CC e o controlador para rastrear a mxima potncia.
+
CC
ARRANJO SOLAR
FOTOVOLTAICO
CC
MPPT Controlador
5
2.1.1. Perturba e Observa
V (m), I (m)
No
No Sim
Sim
P (m) > P (m-1)
No
No Sim
Sim Sim
Sim No
No
V (m) > V (m-1) V (m) > V (m-1)
V (m-1) = V (m)
I (m-1) = I (m)
6
2.1.2. Condutncia Incremental
7
V (m), I (m)
dV = V (m) V (m-1)
dI = I (m) I (m-1)
No
No Sim
Sim
dV=0
Sim
Sim
Sim
Sim
dI/dV = - I (m)/V (m) dI=0
No
No No
No
Sim
Sim No Sim
Sim No
No
No
dI/dV < - I (m)/V (m) dI=0
Para o caso de controle pela corrente, o raciocnio anlogo ao que foi utilizado
para o algoritmo utilizando tenso como referncia.
L Diodo
RFonte
8
de dois painis conectados em srie. O conversor dever operar no modo de conduo
contnua, de acordo com os seguintes parmetros descritos na Tabela 2.1.
9
sobressinal. A funo de transferncia desse controlador apresentada em (2) Dessa
maneira, este foi escolhido para o uso com o algoritmo do tipo VMPPT.
66
Tenso de Referncia
65 Tenso de Entrada - MF 45
Tenso de Entrada - MF 60
64 Tenso de Entrada - MF 75
Tenso (V)
63
62
61
60
59
20 25 30 35 40 45 50
Tempo(ms)
10
7
6 Corrente de Referncia
Corrente no Indutor - MF 45
Corrente no Indutor - MF 60
5 Corrente no Indutor - MF 75
Corrnte (A)
1
6.0 6.5 7,0 7.5 8,0 8.5 9,0 9.5 10
Tempo(ms)
Neste captulo foi realizada uma breve reviso sobre as duas principais
metodologias para rastreamento do MPP, tanto em termos de tenso quanto de corrente.
11
esperado que ambos os mtodos apresentem resultados similares, de acordo com a
dissertao do autor Pedro Sobreira [3].
Foi descrito o projeto dos controladores para um conversor elevador de tenso,
tanto para o controle em tenso, quanto em corrente, ambos com margem de fase de
45. Os controladores foram digitalizados com base na transformao bilinear para
implementao dos mtodos MPPT P&O e IC, empregando VMPPT e CMPPT para
fins de comparao experimental da eficincia dessas tcnicas.
12
Capitulo 3
3. Anlise comparativa de tcnicas MPPT
Neste captulo ser realizada uma anlise comparativa dos resultados de simulao
das tcnicas P&O e Condutncia Incremental, utilizando como variveis de controle a
tenso terminal do painel solar fotovoltaico ou a corrente de sada do mesmo.
O circuito esquemtico mostrado na Figura 3.1 foi utilizado para simular o
rastreamento da mxima potncia por meio do controle de um conversor boost acoplado
a um arranjo de painis solares fotovoltaicos, descrito no captulo anterior. O bloco
PV_Array modela o comportamento do arranjo solar fotovoltaico [6] e o bloco
MPPT sintetiza o algoritmo para rastrear o ponto de mxima transferncia de
potncia.
PV_Array
Ipa V L
A
C R
ZOH
MPPT
ZOH
Entrada Saida V
Controlador
3.1. VMPPT
13
A primeira simulao foi realizada com aplicao de um degrau de radiao e
um degrau de temperatura para verificar a resposta do algoritmo MPPT e do controle da
tenso de entrada do conversor boost. A simulao comea com a temperatura em 32 C
e a radiao em 600 W/m2. No instante de tempo de 80 ms a radiao alterada para
800 W/m2 e no instante de 150 ms a temperatura elevada para 50 C. Na Figura 3.2 -
observa-se a resposta da referncia de tenso fornecida pelo algoritmo P&O e a tenso
terminal do arranjo solar fotovoltaico. possvel constatar que as variaes de radiao
e de temperatura dos painis solares resultam em uma mudana na tenso do arranjo, a
fim de garantir que a potncia do painel seja a mxima. O aumento da radiao resulta
em um aumento da tenso terminal, enquanto que o aumento de temperatura resulta em
uma reduo tenso. Nota-se que, quando os degraus so aplicados, o algoritmo
rapidamente encontra o novo ponto de mxima transferncia de potncia. No sub-
grfico esboado possvel observar em detalhes o rastreamento em torno do ponto de
mxima potncia, o que resulta em pequenas perturbaes na referncia realizadas pelo
algoritmo de P&O. Cabe destacar que o projeto do controlador foi especificado para
seguir as variaes de radiao e de temperatura do painel, e no para as variaes em
torno do ponto de operao. Com efeito, possvel notar um grande sobressinal em
relao referncia de tenso do algoritmo MPPT.
70
60
Tenso de Referncia
50 Tenso Terminal
Tenso (V)
40
66.4
Tenso (V)
30
66
20
0
40 60 80 100 120 140 160 180 200
Tempo( ms)
Figura 3.2 - Comportamento do algoritmo P&O rastreando o MPP por meio do controle da tenso
terminal do arranjo solar fotovoltaico.
14
3.1.2. Algoritmo de Condutncia Incremental
60
Tenso de Referncia
50 Tenso Terminal
Tenso (V)
40
66.4
Tenso (V)
30 66.2
66
20
15
3.2. CMPPT
5
Corrente (A)
3 Corrente no Indutor
Corrente de Referncia
2
0
40 60 80 100 120 140 160 180 200
Tempo(ms)
Figura 3.4 - Comportamento do algoritmo P&O rastreando o MPP atravs do controle corrente do
arranjo solar fotovoltaico.
16
3.2.2. Algoritmo de Impedncia Incremental
6
Corrente (A)
3 Corrente no Indutor
Corrente de Referncia
2
0
40 60 80 100 120 140 160 180 200
Tempo (ms)
Figura 3.5 - Comportamento do algoritmo IC rastreando o MPP atravs do controle da corrente do
arranjo solar fotovoltaico.
17
3.3. Anlise Comparativa
Tabela 3.1 Especificaes da simulao para anlise comparativa das tcnicas MPPT.
500
480 C
460
B D
440
Potncia (W)
420
400
380
VMPPT - P&O
360 VMPPT - IC
A CMPPT - P&O
340 CMPPT - IC E
320
300
0.08 0.09 0.10 0.11 0.12 0.13 0.14 0.15 0.16
Tempo (s)
Figura 3.6 - Comportamento da resposta da potncia fornecida pelo arranjo solar fotovoltaico
quando exposto a degraus de radiao solar e temperatura do painel.
18
levam mais tempo para se estabilizar (como j verificado) e com sobressinal mais
acentuado. Vale observar que as variaes de radiao solar e de temperatura foram
muito bruscas, o que no ocorre, em geral, na natureza. Assim quando operando em
sistemas reais, estes sobressinais gerados pelos algoritmos de MPPT provavelmente so
menos relevantes.
Com o intuito de simular condies reais de operao, foram realizadas
simulaes com curvas reais de radiao e temperatura. Por meio destas simulaes,
possvel comparar melhor as tcnicas de MPPT. As curvas de radiao e temperatura
esto apresentadas na Figura 3.7. As respostas de cada um dos sistemas esto
apresentadas na Figura 3.8.
700 50
45
600
40
500 35
Temperatura (C)
Radiao (W/m)
30
400
25
300
20
200 15
10
100
5
0 0
6 8 10 12 14 16 18 6 8 10 12 14 16 18
Tempo(h) Tempo(h)
300
CMPPT IC
250 CMPPT P&O
VMPPT IC
Potncia W
150
100
50
0
6 8 10 12 14 16 18
Horas
Figura 3.8 - Comportamento da resposta da potncia fornecida pelo arranjo solar fotovoltaico
quando expostos a curvas reais de radiao e temperatura para as tcnicas de MPPT em estudo.
19
Nesta simulao, observa-se que a gerao de potncia pelos arranjos de painis
solares fotovoltaicos apresenta a mesma tendncia para todos os mtodos de MPPT em
estudo. A energia gerada pelo arranjo solar rastreada por cada um dos mtodos
apresentada na Tabela 3.2.
Tabela 3.2 Energia gerada no arranjo solar fotovoltaico quando exposto a curvas reais de radiao e
temperatura para as tcnicas de MPPT em estudo.
Mtodo Energia gerada
VMPPT P&O 1579,43 Wh
VMPPT IC 1584,31 Wh
CMPPT P&O 1566,56 Wh
CMPPT IC 1566,54 Wh
Com estes dados possvel visualizar uma pequena desvantagem aos mtodos
rastreados por corrente, porm esta diferena no atribui ganho significativo na escolha
do mtodo na qual se deseja rastrear o MPP. E ainda, o projeto do controlador de
corrente pode ser aprimorado e produzir melhores resultados.
20
Captulo 4
4. Resultados Experimentais
21
4.2. Eficincia do conversor
Para uma situao de baixa radiao, foi medida uma potncia de entrada do
conversor de 72,0 W e uma potncia na carga de 70,5 W. Desta maneira, a eficincia do
conversor de 97,92%. Para uma situao de radiao solar mdia, foi medida uma
potncia de entrada do conversor de 201,1 W e potncia na carga de 193,1 W. A Com
efeito, a eficincia do conversor de 96,02%. Desta maneira, as perdas nos elementos
passivos e nos interruptores no so elevados.
500 40
400
30
300
200 20
100
06 8 10 12 14 16 18 10 18
6 8 10 12 14 16
Horas (h) Horas (h)
Radiao - Dia 27 de Junho de 2014 Temperatura - Dia 27 de Junho de 2014
50
600
Temperatura C
Radiao w/m
40
400
30
200 20
06 18 10
8 10 12 14 16 6 8 10 12 14 16 18
Horas (h) Horas (h)
Figura 4. 1 - Curva de Radiao Solar e Temperatura referente aos dias 26 e 27 de Junho de 2014.
IC por Corrente - Dia 26 de Junho de 2014 IC por Corrente - Dia 27 de Junho de 2014
300 300
Simulao Simulao
250
Potncia W/m
250 Experimental Experimental
Potncia W/m
200 200
150 150
100 100
50 50
06 0
8 10 12 14 16 18 6 8 10 12 14 16 18
Horas (h) Horas (h)
Figura 4. 2 - Curva de potncia no perodo de 26 e 27 de junho de 2014.
Tabela 4. 1 Comparao da energia gerada pelo algoritmo CMPPT por Indutncia Incremental.
23
Radiao - Dia 29 de Junho de 2014 Temperatura - Dia 29 de Junho de 2014
700 50
Temperatura C
600
Radiao w/m
500 40
400
30
300
200 20
100
0 10
6 8 10 12 14 16 18 6 8 10 12 14 16 18
Horas (h) Horas (h)
Radiao Dia 04 de Outubro 2014 Temperatura - Dia 04 de Outubro de 2014
1200 40
Temperatura C
1000 35
Radiao w/m
800
30
600
25
400
200 20
0 15
6 8 10 12 14 16 18 6 8 10 12 14 16 18
Horas (h) Horas (h)
Figura 4. 3 - Curva de Radiao Solar e Temperatura referente aos dias 29 de Junho e 04 de Outubro de
2014.
400
300
200
100
0
6 8 10 12 14 16 18
Horas (h)
Figura 4. 4 - Curva de gerao (experimental e simulao) dos painis solares fotovoltaicos do dia 28 de
junho de 2014.
Tabela 4. 2 - Comparao da energia gerada pelo algoritmo VMPPT por Condutncia Incremental.
24
4.3.3. CMPPT por Perturba e Observa
No perodo de 01 a 02 de Julho 2014, foram coletados os dados referentes ao
controle pela corrente com o algoritmo P&O. Nos grficos da Figura 4.5 se pode
observar as curvas de radiao solar e de temperatura em que os painis solares
fotovoltaicos estavam expostos.
Temperatura C
Radiao w/m
600
40
500
400 30
300
200 20
100
0 10
6 8 10 12 14 16 18 6 8 10 12 14 16 18
Horas (h) Horas (h)
600 40
500
400 30
300
200 20
100
0 10
6 8 10 12 14 16 18 6 8 10 12 14 16 18
Horas (h) Horas (h)
Figura 4. 5 - Curva de Radiao Solar e Temperatura referente aos dias 01 e 02 de Julho de 2014
25
P&O por Corrente - Dia 01 de Julho de 2014 P&O por Corrente - Dia 02 de Julho de 2014
Simulao 300 Simulao
300
250
Experimental 250 Experimental
Potncia W
Potncia W
200 200
150 150
100 100
50 50
0 0
6 8 10 12 14 16 18 6 8 10 12 14 16 18
Horas (h) Horas (h)
Figura 4. 6 - Curva de gerao (experimental e simulao) dos painis solares fotovoltaicos do dia 01 e
02 de julho de 2014.
Tabela 4. 3 - Comparao da energia gerada pelo algoritmo CMPPT por P&O.
26
Radiao - Dia 03 de Junho de 2014 Temperatura - Dia 03 de Julho de 2014
50
800
Temperatura C
Radiao w/m
600 40
400 30
200 20
0 10
6 8 10 12 14 16 18 6 8 10 12 14 16 18
Horas (h) Horas (h)
Temperatura C
Radiao w/m
600 40
400 30
200 20
0 10
6 8 10 12 14 16 18 6 8 10 12 14 16 18
Horas (h) Horas (h)
Figura 4. 7 - Curva de Radiao Solar e Temperatura referente aos dias 03 e 05 de Julho de 2014 .
P&O por Tenso - Dia 03 de Julho de 2014 P&O por Tenso - Dia 05 de Julho de 2014
400 350
Simulao Simulao
300 Experimental
300 Experimental
Potncia W
Potncia W
250
200
200
150
100 100
50
0 0
6 8 10 12 14 16 18 6 8 10 12 14 16 18
Horas (h) Horas (h)
Figura 4. 8 - Curva de gerao (experimental e simulao) dos painis solares fotovoltaicos do dia 03 e 05
de julho de 2014.
27
4.4. Estratgia para melhora dos algoritmos de MPPT
300
200
100
0
6 8 10 12 14 16 18
Horas (h)
28
Radiao - Dia 25 de fevereiro de 2015 Temperatura - Dia 25 de fevereiro de 2015
1200 29
1000 28
Temperatura C
Radiao w/m
800 27
600 26
400 25
200 24
0 23
6 8 10 12 14 16 18 6 8 10 12 14 16 18
Horas (h) Horas (h)
29
se manter baixa e com breves picos altos de radiao, que levou a simulao a
apresentar gerao superior ao limite especificado pelos painis.
No prximo captulo, ser apresentado toda sntese deste trabalho e possveis
investigaes futuras sobre o tema.
30
Capitulo 5
5. Concluses
Durante todo este trabalho foram discutidas as principais tcnicas de MPPT com
intuito final de verificar se a escolha do uso entre uma ou outra tcnica, traria na prtica
algum ganho significativo. Para alcanar tal resultado, este trabalho avaliou atravs de
simulaes e de montagem experimental, com o foco neste ltimo, o rendimento das
tcnicas de P&O e Condutncia (ou Indutncia) Incremental utilizando como
metodologia de controle a tenso ou a corrente terminal de um arranjo solar
fotovoltaico.
Os primeiros resultados obtidos foram alcanados atravs de simulaes. Estas
simulaes indicaram uma ligeira vantagem de gerao para ambas as tcnicas de
VMPPT como o mtodo de Condutncia Incremental com o maior ndice de gerao.
Porm esta vantagem foi mnima, no apresentando ganhos significativos entre a
escolha de qualquer uma das tcnicas. Para averiguar se na prtica existe alguma
vantagem entre estas tcnicas foi analisado o comportamento destas tcnicas em
sistemas de gerao solar fotovoltaicos reais.
Para a verificao eficincia das tcnicas de MPPT em sistemas reais, foi
montado todo um aparato experimental apresentado no capitulo 4, que conta com um
conversor boost onde processado os algoritmos de MPPT. Inicialmente verificou-se a
eficincia do conversor que apresentou bons resultados e apto a ser aplicado na
transferncia de mxima potncia entre a gerao solar fotovoltaica e a carga. Partindo
para avaliao experimental das tcnicas de MPPT, os resultados mostraram que todas
as tcnicas desempenharam o papel de rastrear o MPP de maneira satisfatria. Porm
no foi possvel chegar a nenhuma concluso que indique uma melhor tcnica para ser
utilizada em sistemas reais.
31
REFERNCIAS BIBLIOGRFICAS
32
ANEXOS
I. Programa principal do VMPPT por P&O
II. Programa principal do VMPPT por Condutncia Incremental
III. Programa principal do IMPPT por P&O
IV. Programa principal do IMPPT por Impedncia Incremental
33
ANEXO I
/*************************************************************/
#include <sysreg.h> //Interrupts
#include <signal.h> //Intrinsics
#include <stdio.h>
#include <adsp-2199x.h> //MMR
#include <fract_typedef.h>
#include <fract2float_conv.h>
#include <ETSI_fract_arith.h>
/*************************************************************/
#include "main.h"
#include "adsp21992-pll.h"
#include "adsp21992-pwm.h"
#include "adsp21992-adc.h"
#include "adsp21992-dac.h"
#include "adsp21992-gpio.h"
#include "Digital_Filter.h"
/*************************************************************/
void PWM_SYNC_ISR(int isr); //Interrupt routines
void PWM_TRIP_ISR(int isr);
/*************************************************************/
///////////////////VARIAVEIS GLOBAIS//////////////////////////
fract16 Vu=0, coeff[6], delay[6], u[8], PWM_MaxDuty, ylim, dt, y, Vmedio=0, Imedio=0;
fract32 P, Pu;
float Vref=70, ksv=0.011765, inc1=0.1, inc2=0.9, Vmax=80, divi=0.02;
int k, z=0, w=0;
int main(void){
//Iniciando variaveis
inc1 = ksv*inc1;
inc2= ksv*inc2;
Vref = ksv*Vref;
Vmax=ksv*Vmax;
// Variaveis em fr16
inc1=float_to_fr16(inc1);
inc2=float_to_fr16(inc2);
Vmax=float_to_fr16(Vmax);
divi=float_to_fr16(divi);
Vref=float_to_fr16(Vref);
disable_interrupts();
// Coeficientes da malha de controle
float b_coeff[3] = { 0.026082662511706, 0.000161652997826, -
0.025921009513880};
float a_coeff[2] = {-0.881050159669619, -0.118949840330381};
// Razo Cclica mxima
float Dmax = 0.85;
//converte a razo cclica mxima para o formato 1.15
ylim = round(float_to_fr32(Dmax));
// Limpa a memria dos elementos da equao a diferenas
for(k=0; k<6; k++){
34
delay[k] = 0;
}
// Configura os parmetros dos controladores para o farmato 1.15
df_coeff_float2fr16(a_coeff, b_coeff, coeff, 3);
//set PLL for CCLK=160MHz and HCLK=80MHz because CLKIN=32MHz
PLL_Configure(0x0A50);
// Set PWM frequency (kHz), dead time (ns) and and SYNC pulse time (ns)
PWM_MaxDuty = PWM_Init(20, 0, 880);
//ADC_Init();
DAC_Init();
// Enable GPIO routines
GPIO_Init();
/////////////////////////////////////////////////////////////////////////////////
enable_interrupts();
while(1);
}
/*************************************************************/
void PWM_SYNC_ISR(int isr){
ADC_Update(u);
//IMPLEMENTAO DO MPPT P&O
if (w>4999){
Imedio=add(Imedio,(mult(u[2],divi)));
Vmedio=add(Vmedio,(mult(u[0],divi)));
if (z==5049)
{
w=0;
z=0;
P=L_mult(Imedio,Vmedio);
if(P>Pu)
{
if(Vmedio<Vu) Vref = sub(Vref,inc2);
if(Vmedio>Vu) Vref = add(Vref,inc1);
}
if (P<Pu)
{
if(Vmedio>Vu) Vref = sub(Vref,inc2);
if(Vmedio<Vu) Vref = add(Vref,inc1);
}
Vu = Vmedio;
Pu = P;
if (Vref<0) Vref=0;
if (Vref>Vmax) Vref=Vmax;
Imedio=0;
Vmedio=0;
}
}
y = df_fr16_iir(sub(Vref, u[0]), coeff, delay, 3); //Controlador
// Verifica se a razo cclica no viola o limite
y=sub(0,y);
if(ylim < y) y = ylim;
dt = PWM_Duty(y, PWM_MaxDuty);
sysreg_write(sysreg_IOPG,PWM0_Page); //IOPG = PWM0_Page;
io_space_write(PWM0_SEG,0x003E);
ar = 0x0037;
IO(PWM0_SEG)= ar; // disable all, except AL
io_space_write(PWM0_CHC,dt);
io_space_write(PWM0_STAT, 0x0200); // W1C the interrupt
w=w+1;
z=z+1;
35
DAC_Put( 1 , u[0]);
DAC_Put( 4 , u[2] );
DAC_Put(10,P);
DAC_Update();
}
ANEXO II
/*************************************************************/
#include <sysreg.h> //Interrupts
#include <signal.h> //Intrinsics
#include <stdio.h>
#include <adsp-2199x.h> //MMR
#include <fract_typedef.h>
#include <fract2float_conv.h>
#include <ETSI_fract_arith.h>
/*************************************************************/
#include "main.h"
#include "adsp21992-pll.h"
#include "adsp21992-pwm.h"
#include "adsp21992-adc.h"
#include "adsp21992-dac.h"
#include "adsp21992-gpio.h"
#include "Digital_Filter.h"
/*************************************************************/
void PWM_SYNC_ISR(int isr); //Interrupt routines
void PWM_TRIP_ISR(int isr);
/*************************************************************/
///////////////////VARIAVEIS GLOBAIS//////////////////////////
fract16 coeff[6], delay[6], u[8], PWM_MaxDuty, ylim, dt, y, Vmedio=0, Imedio=0, P, Pu=0;
float passo, Vu, Iu, Vmedio2, Imedio2, dV, dI, Vref=60, ksv=0.011765, inc1=0.3, inc2=0.5,
Vmax=70, divi=0.02;
int k, z=0, w=0;
int main(void){
//Iniciando variaveis
inc1 = ksv*inc1;
inc2= ksv*inc2;
Vref = ksv*Vref;
Vmax=ksv*Vmax;
// Variaveis em fr16
inc1=float_to_fr16(inc1);
inc2=float_to_fr16(inc2);
Vmax=float_to_fr16(Vmax);
divi=float_to_fr16(divi);
Vref=float_to_fr16(Vref);
disable_interrupts();
// Coeficientes da malha de controle
float b_coeff[3] = { 0.026082662511706, 0.000161652997826, -
0.025921009513880};
float a_coeff[2] = {-0.881050159669619, -0.118949840330381};
// Razo Cclica mxima
float Dmax = 0.85;
//converte a razo cclica mxima para o formato 1.15
ylim = round(float_to_fr32(Dmax));
// Limpa a memria dos elementos da equao a diferenas
for(k=0; k<6; k++){
delay[k] = 0;
36
}
// Configura os parmetros dos controladores para o farmato 1.15
df_coeff_float2fr16(a_coeff, b_coeff, coeff, 3);
//set PLL for CCLK=160MHz and HCLK=80MHz because CLKIN=32MHz
PLL_Configure(0x0A50);
// Set PWM frequency (kHz), dead time (ns) and and SYNC pulse time (ns)
PWM_MaxDuty = PWM_Init(20, 0, 880);
//ADC_Init();
DAC_Init();
// Enable GPIO routines
GPIO_Init();
/////////////////////////////////////////////////////////////////////////////////
enable_interrupts();
while(1);
}
/*************************************************************/
void PWM_SYNC_ISR(int isr){
ADC_Update(u);
//IMPLEMENTAO DO MPPT IC
if (w>=4999){
Imedio=add(Imedio,(mult(u[2],divi)));
Vmedio=add(Vmedio,(mult(u[0],divi)));
}
if (z==5049)
{
z=0;
w=0;
dV = sub (Vmedio,Vu);
dI = sub (Imedio,Iu);
if (dV!=0)
{
if ((dI/dV)!=(-Imedio/Vmedio))
{
if (dI/dV > Imedio/Vmedio) Vref=add(Vref,inc1);
else Vref=sub(Vref,inc2);
}
}
else
{
if(dI!=0)
{
if (dI>0) Vref=add(Vref,inc1);
else Vref=sub(Vref,inc2);
}
}
Iu=Imedio;
Vu=Vmedio;
Imedio=0;
Vmedio=0;
if (Vref<0) Vref=0;
if (Vref>Vmax) Vref=Vmax;
}
y = df_fr16_iir(sub(Vref, u[0]), coeff, delay, 3); //Controlador
// Verifica se a razo cclica no viola o limite
y=sub(0,y);
if(ylim < y) y = ylim;
dt = PWM_Duty(y, PWM_MaxDuty);
37
sysreg_write(sysreg_IOPG,PWM0_Page);
IOPG = PWM0_Page; //page of PWM0 block
io_space_write(PWM0_SEG,0x003E);
ar = 0x0037;
IO(PWM0_SEG) = ar; // disable all, except AL
io_space_write(PWM0_CHC,dt);
io_space_write(PWM0_STAT, 0x0200); // W1C the interrupt
z=z+1;
w=w+1;
}
ANEXO III
/*************************************************************/
#include <sysreg.h> //Interrupts
#include <signal.h> //Intrinsics
#include <stdio.h>
#include <adsp-2199x.h> //MMR
#include <fract_typedef.h>
#include <fract2float_conv.h>
#include <ETSI_fract_arith.h>
/*************************************************************/
#include "main.h"
#include "adsp21992-pll.h"
#include "adsp21992-pwm.h"
#include "adsp21992-adc.h"
#include "adsp21992-dac.h"
#include "adsp21992-gpio.h"
#include "Digital_Filter.h"
/*************************************************************/
void PWM_SYNC_ISR(int isr); //Interrupt routines
void PWM_TRIP_ISR(int isr);
/*************************************************************/
///////////////////VARIAVEIS GLOBAIS//////////////////////////
fract16 coeff[6], delay[6], u[8], PWM_MaxDuty, ylim, dt, y, P, Pu=0,Iu=0, Imedio=0,
Vmedio=0;
float Iref=0, ksi=0.125, Imax=7.74, inc=0.01, divi=0.02;
float dI1=0.005, dI2=0.04; // incremento (dI1) e decremento (dI2) do PeO
unsigned int k, z=0, w=0;
int main(void){
///Iniciando variaveis
dI1= ksi*dI1;
dI2= ksi*dI2;
Iref=ksi*Iref;
Imax=ksi*Imax;
// Variaveis em fr16
dI1=float_to_fr16(dI1);
dI2=float_to_fr16(dI2);
Imax=float_to_fr16(Imax);
divi=float_to_fr16(divi);
Iref=float_to_fr16(Iref);
disable_interrupts();
// Coeficientes da malha de controle
float b_coeff[3] = { 0.086501608750960, 0.003561529069080, -0.08294007968187};
float a_coeff[2] = {-0.920014181337998, -0.079985818662002};
// Razo Cclica mxima
float Dmax = 0.95;
//converte a razo cclica mxima para o formato 1.15
ylim = round(float_to_fr32(Dmax));
// Limpa a memria dos elementos da equao a diferenas
for(k=0; k<6; k++){
38
delay[k] = 0;
}
// Configura os parmetros dos controladores para o farmato 1.15
df_coeff_float2fr16(a_coeff, b_coeff, coeff, 3);
//set PLL for CCLK=160MHz and HCLK=80MHz because CLKIN=32MHz
PLL_Configure(0x0A50);
// Set PWM frequency (kHz), dead time (ns) and and SYNC pulse time (ns)
PWM_MaxDuty = PWM_Init(20, 0, 880);
//ADC_Init();
DAC_Init();
// Enable GPIO routines
GPIO_Init();
/////////////////////////////////////////////////////////////////////////////////
enable_interrupts();
while(1);
}
/*************************************************************/
void PWM_SYNC_ISR(int isr){
ADC_Update(u);
//IMPLEMENTAO DO MPPT P&O
if (w>4999)
{
Imedio=add(Imedio,(mult(u[2],divi)));
Vmedio=add(Vmedio,(mult(u[0],divi)));
if (z==5049)
{
z=0;
w=0;
P=mult(Imedio,Vmedio);
if (P<Pu)
{
if(Imedio>=Iu) Iref = sub(Iref,dI2);
if(Imedio<Iu) Iref = add(Iref,dI1);
}
if(P>Pu)
{
if(Imedio>Iu) Iref = add(Iref,dI1);
if(Imedio<=Iu) Iref = sub(Iref,dI2);
}
Iu = Imedio;
Pu = P;
if (Iref<0) Iref=0;
if (Iref>Imax) Iref=Imax;
Imedio=0;
Vmedio=0;
}
}
y = df_fr16_iir(sub(Iref, u[2]), coeff, delay, 3); //Controlador
// Verifica se a razo cclica no viola o limite
if(ylim < y) y = ylim;
dt = PWM_Duty(y, PWM_MaxDuty);
sysreg_write(sysreg_IOPG,PWM0_Page);
io_space_write(PWM0_SEG,0x003E);
ar = 0x0037;
IO(PWM0_SEG) = ar; // disable all, except AL
io_space_write(PWM0_CHC,dt);
io_space_write(PWM0_STAT, 0x0200); // W1C the interrupt
z=z+1;
w=w+1;
DAC_Put( 1 , u[0]);
39
DAC_Put( 2 , u[2] );
DAC_Update();
}
ANEXO IV
/*************************************************************/
#include <sysreg.h> //Interrupts
#include <signal.h> //Intrinsics
#include <stdio.h>
#include <adsp-2199x.h> //MMR
#include <fract_typedef.h>
#include <fract2float_conv.h>
#include <ETSI_fract_arith.h>
/*************************************************************/
#include "main.h"
#include "adsp21992-pll.h"
#include "adsp21992-pwm.h"
#include "adsp21992-adc.h"
#include "adsp21992-dac.h"
#include "adsp21992-gpio.h"
#include "Digital_Filter.h"
/*************************************************************/
void PWM_SYNC_ISR(int isr); //Interrupt routines
void PWM_TRIP_ISR(int isr);
/*************************************************************/
///////////////////VARIAVEIS GLOBAIS//////////////////////////
fract16 Iref=0, coeff[6], delay[6], u[8], PWM_MaxDuty, ylim, dt, y, P, Pu=0, Imedio=0,
Vmedio=0;
float passo, ksi=0.125, dI, dV, Imax=0.99, divi=0.02, Vmedio2, Imedio2, Iu=0, Vu=0;
float inc1=0.005, inc2=0.02; //incremento (inc1) e decremento (inc2) do IC
unsigned int k, z=0, w=0;
int main(void){
///Iniciando variaveis
inc1 = ksi*inc1;
inc2 = ksi*inc2;
// Variaveis em fr16
inc1 =float_to_fr16(inc1);
inc2 =float_to_fr16(inc2);
Imax=float_to_fr16(Imax);
divi=float_to_fr16(divi);
disable_interrupts();
// Coeficientes da malha de controle
float b_coeff[3] = { 0.086501608750960, 0.003561529069080, -0.08294007968187};
float a_coeff[2] = {-0.920014181337998, -0.079985818662002};
// Razo Cclica mxima
float Dmax = 0.95;
40
//converte a razo cclica mxima para o formato 1.15
ylim = round(float_to_fr32(Dmax));
// Limpa a memria dos elementos da equao a diferenas
for(k=0; k<6; k++){
delay[k] = 0;
}
// Configura os parmetros dos controladores para o farmato 1.15
df_coeff_float2fr16(a_coeff, b_coeff, coeff, 3);
//set PLL for CCLK=160MHz and HCLK=80MHz because CLKIN=32MHz
PLL_Configure(0x0A50);
// Set PWM frequency (kHz), dead time (ns) and and SYNC pulse time (ns)
PWM_MaxDuty = PWM_Init(20, 0, 880);
ADC_Init();
DAC_Init();
// Enable GPIO routines
GPIO_Init();
/////////////////////////////////////////////////////////////////////////////////
enable_interrupts();
while(1);
}
/*************************************************************/
void PWM_SYNC_ISR(int isr){
ADC_Update(u);
//IMPLEMENTAO DO MPPT IC
if (w>=4999){
Imedio=add(Imedio,(mult(u[2],divi)));
Vmedio=add(Vmedio,(mult(u[0],divi)));
if (z==5049)
{
z=0;
w=0;
Imedio2=fr16_to_float(Imedio);
Vmedio2=fr16_to_float(Vmedio);
dV=Vmedio2-Vu;
dI=Imedio2-Iu;
if (dI!=0)
{
if ((dV/dI)!=(-Vmedio2/Imedio2))
{
if ((dV/dI)>(-Vmedio2/Imedio2)) Iref=add(Iref,inc1);
else Iref=sub(Iref,inc2);
}
}
else
{
if(dV!=0)
{
if (dV>0) Iref=add(Iref,inc1);
else Iref=sub(Iref,inc2);
}
}
Iu=Imedio2;
Vu=Vmedio2;
41
Imedio=0;
Vmedio=0;
if (Iref<0) Iref=0;
if (Iref>Imax) Iref=Imax;
}
}
z=z+1;
w=w+1;
y = df_fr16_iir(sub(Iref, u[2]), coeff, delay, 3); //Controlador
// Verifica se a razo cclica no viola o limit
if(ylim < y) y = ylim;
dt = PWM_Duty(y, PWM_MaxDuty);
sysreg_write(sysreg_IOPG,PWM0_Page); // IOPG = PWM0_Page;
//page of PWM0 block
io_space_write(PWM0_SEG,0x003E);
ar = 0x0037;
IO(PWM0_SEG) = ar; // disable all, except AL
io_space_write(PWM0_CHC,dt);
io_space_write(PWM0_STAT, 0x0200); // W1C the interrupt
DAC_Put( 1 , u[0]);
DAC_Put( 2 , u[2] );
DAC_Update();
}
42