desenvolvimento de uma ferramenta de arrays fotovoltaicos · kern e los angeles e vão ter no total...
TRANSCRIPT
Faculdade de Engenharia da Universidade do Porto
Desenvolvimento de uma ferramenta de arrays fotovoltaicos
Jaime André Alves Leonor Lima
VERSÃO FINAL
Dissertação realizada no âmbito do Mestrado Integrado em Engenharia Eletrotécnica e de Computadores
Major Energia
Orientador: Prof. Doutor Adriano da Silva Carvalho Co-orientador: Eng. José Carlos Amador
Março de 2013
iii
Resumo
Nos dias de hoje, as energias renováveis têm um papel cada vez mais importante na nossa
sociedade, sendo necessário estudos cada vez mais aprofundados, com o propósito de se obter
melhores rendimentos/desempenhos e a custos cada vez mais baixos.
Os painéis fotovoltaicos são uma das opções possíveis de aproveitamento das energias
renováveis e neste trabalho propõe-se fazer um algoritmo de otimização, a partir da disposição
destes num array.
Para isso foi feita uma pesquisa bibliográfica de forma a compreender melhor o funcionamento
dos painéis, bem como os seus modelos elétricos, e também as várias formas de ligação à rede.
O algoritmo criado tem, assim, como objetivo otimizar a potência que um array pode
fornecer. Isto por sua vez implica a alteração da disposição dos painéis. Este algoritmo foi
implementado em linguagem C.
De forma a testar os resultados, foi usado um programa em que é possível fazer a simulação
de painéis fotovoltaicos.
A partir deste algoritmo é possível aumentar a potência de um array, conseguindo assim
melhorar o seu rendimento.
Palavras-chave: Painel fotovoltaico, algoritmo, string, array, MPP, potência, corrente e tensão.
v
Abstract
Nowadays, renewable energies have an increasingly important role in our society,
requiring ever more detailed studies, in order to obtain better yields / performance and costs
ever lower.
The photovoltaic panels are one of the possible options for harnessing renewable energy,
and this paper proposes to make an optimization algorithm, based on the provision of an array.
For this was made a literature search in order to better understand the functioning of
the panels, as well as their electric models, as well as various forms of network connection.
The algorithm created thus has focused on optimizing the power that an array can
provide. This in turn implies changing the layout of panels. This algorithm was implemented in C
language. To test the results, we used a program where you can make the simulation of
photovoltaic panels.
From this algorithm can increase the power of an array, thus improving their
performance.
Keywords: photovoltaic panels, algorithm, string, array, MPP, active power, current e voltage.
vii
Agradecimentos
Este é o momento para homenagear e agradecer a todas as pessoas que direta ou
indiretamente contribuíram para a elaboração e sucesso desta dissertação.
Em primeiro lugar gostaria de dirigir um agradecimento especial ao meu orientador e
responsável pelo tema da dissertação, o Professor Doutor Adriano Carvalho, por todo o apoio,
orientação e conselhos transmitidos que colaboraram positivamente para a realização deste
trabalho. Assim como ao Eng. Nuno Martins e o Eng. José Carlos Amador por que me acolheram de
braços abertos na Martifer, pela paciência, incentivo e a pela disponibilidade sempre demostrada.
Gostaria de agradecer de uma forma muito especial aos meus pais, por todo o apoio,
compreensão, paciência e incentivo que me deram ao longo da minha vida, sem eles nada teria
sido possível.
Por último, queria agradecer à minha Fofinha por tudo, pois nos momentos mais difíceis ela
sempre me incentivou e me transmitiu confiança e vontade para continuar em frente.
A todos um MUITO OBRIGADO.
ix
Índice
Resumo ............................................................................................ iii
Abstract............................................................................................. v
Agradecimentos .................................................................................. vii
Índice ............................................................................................... ix
Lista de figuras .................................................................................... xi
Lista de tabelas ................................................................................. xiii
Abreviaturas e Símbolos ....................................................................... xiv
Capítulo 1 .......................................................................................... 1
Introdução ........................................................................................................ 1
1.1 - Motivação ............................................................................................. 2
1.2 - Objetivos .............................................................................................. 3
1.3 - Estrutura .............................................................................................. 3
Capítulo 2 .......................................................................................... 4
Estado da Arte ................................................................................................... 4
Resumo ........................................................................................................ 4
2.1 – Painéis Fotovoltaicos ................................................................................. 4
2.2 – Tipos de células Fotovoltaicas ...................................................................... 8
2.3 - Células Fotovoltaicas de Concentração (CPV) ................................................... 12
2.4 – Algoritmos Maximum Power Point Tracking, MPPT ............................................. 14
2.5 – Configurações possíveis para interligar os painéis fotovoltaicos à rede .................... 17
Capítulo 3 ......................................................................................... 20
Análise do sistema ............................................................................................. 20
Resumo ....................................................................................................... 20
3.1 – Introdução ............................................................................................. 20
3.2 – Caraterísticas do sistema ........................................................................... 21
3.3 – Caraterização do módulo ........................................................................... 23
3.4 – Equações Associadas a um Painel Fotovoltaico ................................................. 25
Capítulo 4 ......................................................................................... 28
Otimização do arranjo do painel ............................................................................ 28
Resumo ....................................................................................................... 28
x
4.1 – Introdução ............................................................................................ 28
4.2 – Formulação do Algoritmo........................................................................... 29
4.3 – Implementação do Algoritmo ...................................................................... 31
Capítulo 5 ......................................................................................... 39
Resultados para o sistema fotovoltaico .................................................................... 39
Resumo ....................................................................................................... 39
5.1 – Introdução ............................................................................................ 39
5.2 – Resultados após execução do algoritmo ......................................................... 40
5.3 – Resultados após simulação no PSim .............................................................. 43
Capítulo 6 ......................................................................................... 50
Conclusões e trabalhos futuros .............................................................................. 50
6.1 Principais contribuições .............................................................................. 50
6.2 Principais conclusões ................................................................................. 51
6.3 Desenvolvimentos futuros ............................................................................ 52
Referências ..................................................................................................... 53
Anexos ........................................................................................................... 55
xi
Lista de figuras
Figura 2.1 – Composição de um painel fotovoltaico [1] ...................................................... 5
Figura 2.2 – Circuito equivalente de uma célula fotovoltaica [1] .......................................... 5
Figura 2.3 – Grandezas características de uma célula fotovoltaica. Curva de corrente/tensão e a tracejado curva de potência/tensão [1] ............................................................... 6
Figura 2.4 – Efeito de Rs e de Rp com a variação de corrente e tensão [1] .............................. 7
Figura 2.5 – Variação do gráfico V/I com a radiação solar [1] .............................................. 8
Figura 2.6 – Variação Célula de tripla junção ............................................................... 11
Figura 2.7 – Células de múltipla juncão ...................................................................... 12
Figura 2.8 – Primeiro sistema CPV ............................................................................. 12
Figura 2.9 – Sistema CPV parabólico .......................................................................... 13
Figura 2.10 – Curva de ângulo de aceitação medido a um nível de sistema ........................... 14
Figura 2.11- Funções pertença das entradas e saídas do controlador .................................. 16
Figura 2.12 - Esquema de ligação à rede de painéis fotovoltaicos ...................................... 18
Figura 3.1 - Disposição dos módulos CPV ..................................................................... 21
Figura 3.2 - Modelo do circuito equivalente do módulo fotovoltaico ................................... 23
As expressões que representam o circuito da Figura 3.2 são as seguintes: ............................ 25
Figura 4.1 - Fluxograma do algoritmo ........................................................................ 30
Figura 4.2 - Estruturas ........................................................................................... 32
Figura 4.3 - Ordenação do vetor por corrente Impp ....................................................... 33
Figura 4.4 - Insere módulos na string ......................................................................... 34
Figura 4.5 - Calcula a corrente, tensão e potência MPP de cada string ................................ 35
Figura 4.6 - Calcula a corrente e potência de cada string sabendo a tensão do array .............. 36
xii
Figura 4.7 - Troca módulos ...................................................................................... 37
Figura 4.8 - Saída dos dados .................................................................................... 38
Figura 5.1 - Esquema elétrico do array ....................................................................... 43
Figura 5.2 – Código para encontrar o pior caso .............................................................. 46
xiii
Lista de tabelas
Tabela 3.1 — Valores standards do módulo. .................................................................. 22
Tabela 3.2 — Valores de entrada no inversor. ............................................................... 22
Tabela 3.3 — Valores do módulo 3. ............................................................................ 23
Tabela 3.4 — Características dos módulos. ................................................................... 24
Tabela 5.1 — Dados de entrada ................................................................................. 40
Tabela 5.2 — Dados após ordenação por ordem decrescente da corrente Impp ....................... 41
Tabela 5.3 — Disposição final do array ........................................................................ 42
Tabela 5.4 — Valores do sistema inicial. ...................................................................... 44
Tabela 5.5 — Valores do sistema após ordenação por corrente. .......................................... 45
Tabela 5.6 — Valores do sistema após ordenação completa. .............................................. 45
Tabela 5.7 — Disposição do array no pior caso possível .................................................... 47
Tabela 5.8 — Valores do sistema no pior caso. .............................................................. 47
Tabela 5.9 — Ganho do melhor caso, comparativamente com os restantes casos .................... 48
xiv
Abreviaturas e Símbolos
Lista de abreviaturas
CPV Painel Fotovoltaico de Concentração
LID Light Induced Degradation
MPP Ponto de máxima potência (Maximum Power Point)
MPPT Maximum Power Point tracker
PID Degradação Induzida pelo Potencial
Lista de símbolos
Eg Banda de energia do semicondutor
IDO Constante dependente apenas das características do painel
IMPP Corrente de máxima potência
Iph Fonte de corrente dependente do circuito equivalente do painel fotovoltaico
Ipmax Corrente correspondente ao Pmax
ISC Corrente de curto-circuito
K C. Boltzman
Ns Número de células em série
Pmax Potência máxima
PMPP Potência de máxima potência
q Carga do eletrão (C)
S Radiação solar (W/m2)
Sref Radiação solar de referência (W/m2)
T Temperatura da célula (K)
Tref Temperatura de referência da célula (K)
VMPP Tensão de máxima potência
VOC Tensão de circuito aberto
Vpmax Tensão correspondente ao Pmax
Vt Tensão térmica
1
Capítulo 1
Introdução
As consecutivas crises petrolíferas fizeram aumentar de forma significativa os preços dos
combustíveis fósseis e, em conjunto com grandes alterações ambientais, deram origem a uma
procura por energias alternativas.
Nos últimos anos, a utilização de fontes de energia renovável tem-se tornado uma
alternativa interessante aos combustíveis fósseis, principalmente devido aos problemas
ambientais e de eficiência energética. A energia solar é um dos elementos mais importantes
do conjunto de fontes de energia renovável. Não gera nenhum tipo de substâncias que poluem
o ambiente, sendo uma energia abundante e inesgotável.
Há poucos dias a Sun Power Corp. pagou entre 2 e 2,5 mil milhões de dólares, pela
aquisição de dois mega projetos de energia solar a implementar na Califórnia. Estes projetos
do Antelope Valley Solar, que serão desenvolvidos pela Sun Power, ficarão localizados em
Kern e Los Angeles e vão ter no total uma capacidade de 579 Megawatts, fornecendo energia
a quase um milhão de pessoas e tornando-se o maior complexo fotovoltaico de energia solar
do mundo.
Os projetos devem começar a ser implementados no primeiro trimestre de 2013 e devem
estar concluídos no final de 2015. Segundo as estimativas da agência norte-americana para
proteção ambiental, o complexo levará a que sejam evitadas emissões de 775 mil toneladas
de dióxido de carbono, o equivalente a retirar quase três milhões de carros das autoestradas
da Califórnia. Assim, a partir deste tipo de iniciativas, podemos denotar que tem existido um
forte investimento na energia solar fotovoltaica.
À parte do investimento inicial, com compra e instalação do equipamento, a energia
elétrica gerada pelo sistema fotovoltaico não tem outros custos, dado que os painéis exigem
pouca manutenção. Com a evolução tecnológica, o prazo de retorno deste investimento
inicial é cada vez menor. Além disso, tal energia é autossuficiente e, portanto, mais segura
em termos de abastecimento, principalmente para os consumidores corporativos, para quem
a falta de energia pode significar perdas de produção. A energia fotovoltaica também é a
solução mais barata para a eletrificação de grandes propriedades rurais formadas por sistemas
elétricos dispersos. Os sistemas fotovoltaicos também têm sido uma fonte de energia ideal
para áreas remotas. Estes sistemas proporcionam energia confiável para uso comercial,
ligação à rede, navegação, saúde pública, telecomunicações e militar.
2
Portugal é um dos países Europeus privilegiados quanto à quantidade de irradiação solar
diária, tendo cerca de mil e setecentas horas de sol por ano [26]. Sendo que, por este motivo,
torna-se inevitável que a produção fotovoltaica seja uma peça chave na produção de energia
renovável.
Quando se fala na produção de energia o objetivo é produzir o máximo de energia possível
pelo menor preço. No caso da energia fotovoltaica pode-se melhorar em três vertentes: na
eficiência do painel, no inversor MPPT ou, por fim, no arranjo dos painéis.
Neste trabalho pretende-se melhorar a eficiência da exploração da produção fotovoltaica,
atuando no arranjo do array e, assim, retirar uma maior rentabilidade de novos produtos para
o mercado solar fotovoltaico.
1.1 - Motivação
Hoje em dia verifica-se uma crescente procura de formas de energia alternativa devido à
escalada dos preços dos combustíveis fósseis. Cada vez mais a utilização de energias
renováveis mostra-se como uma alternativa viável. Entre elas encontra-se a energia
fotovoltaica, que tem apresentado um crescimento bastante acentuado ao longo dos últimos
anos.
Mesmo com uma massificação na produção de painéis fotovoltaicos a nível mundial, a
verdade é que o rendimento destes módulos encontra-se ainda muito abaixo do pretendido,
na ordem dos 15-20% nas versões comerciais e 25% em testes efetuados em laboratório (silício
policristalino). Pretende-se por isso, hoje em dia, encontrar soluções que possam otimizar o
rendimento da conversão de energia solar para energia elétrica, de forma, a diminuir o tempo
de retorno do investimento.
Os painéis fotovoltaicos quando saem da fábrica deviam à partida sair com o mesmo valor
de potência, mas na realidade isso não acontece. Os valores de corrente e tensão de máxima
potência, bem como a potência máxima que se consegue retirar dos painéis varia de uns para
os outros, ou seja, as características internas de cada um dos painéis são diferentes.
Assim, quando se faz um arranjo de painéis deve-se ter em atenção à posição onde o
painel é colocado. Esta colocação do painel pode fazer variar o valor do rendimento do array.
A eficiência do painel fotovoltaico ainda é muito reduzida quando comparada com outras
tecnologias de produção de energia, sendo ela renovável ou não. Assim, sempre que é
possível aumentar a eficiência da produção energética fotovoltaica, está-se a contribuir para
uma maior aceitação desta tecnologia no mercado.
Devido a esse facto é necessário criar mecanismos que permitam obter alta eficiência
energética, de modo a tornar rentável o investimento efetuado. É, assim, importante
desenvolver um mecanismo que consiga extrair a potência máxima de um array. É nesse
sentido que este projeto se torna um tema interessante a desenvolver.
3
1.2 - Objetivos
O principal objetivo desta dissertação é criar e implementar um algoritmo para otimizar
uma instalação fotovoltaica. O objetivo deste estudo passa, então, por encontrar o melhor
arranjo de painéis, de forma, a construir um array que consiga produzir o máximo de energia
possível.
A criação deste algoritmo tem em conta a corrente elétrica que passa em cada string e a
tensão entre strings. Para a concretização deste trabalho, o algoritmo vai ser implementado
em C.
Inicialmente é necessário saber como se comporta um painel fotovoltaico, sendo
necessário criar um modelo do circuito equivalente de cada um dos módulos, de forma a se
poder retirar as equações características de um painel.
Por fim, pretende-se verificar se após a implementação e execução do algoritmo criado, o
valor de potência que o array pode produzir aumenta.
1.3 - Estrutura
O trabalho desenvolvido apresentado neste documento está dividido em seis capítulos.
No capítulo um pretende-se dar a conhecer a principal motivação na escolha deste tema,
os objetivos propostos e o modo como serão atingidos tais objetivos.
No capítulo dois, é feita uma abordagem à energia fotovoltaica e às diferentes tipologias
existentes em instalações fotovoltaicas, bem como os diferentes tipos de algoritmos MPPT
existentes.
No capítulo três é feita uma análise do sistema, bem como uma caracterização dos
painéis fotovoltaicos usados neste trabalho.
O capítulo quatro explana como foi feita a formulação do algoritmo e descrita a sua
implementação.
No capítulo cinco são expostos os resultados obtidos neste trabalho.
E, por fim, no capítulo seis apresentam-se as principais conclusões deste projeto, bem
como algumas sugestões de melhorias futuras.
4
Capítulo 2
Estado da Arte
Resumo
Este capítulo está organizado em cinco partes distintas.
A secção 2.1 retrata os painéis fotovoltaicos, nomeadamente a sua origem, o seu modelo
elétrico e os parâmetros que influenciam o seu desempenho. A secção 2.2 refere-se aos
diferentes tipos de células existentes no mercado, bem como a sua eficiência e composição.
De seguida, a secção 2.3 apresenta o funcionamento de um CPV e os diferentes tipos
existentes. Na secção 2.4 explora os diferentes tipos de Algoritmos MPPT.
Por fim, a secção 2.5 retrata as várias formas como os painéis fotovoltaicos podem ser
ligados à rede de distribuição.
2.1 – Painéis Fotovoltaicos
A primeira vez que foi observado o efeito fotovoltaico foi em 1839 por Edmond Becquerel.
Mas só mais tarde é que o fenómeno fotovoltaico foi explicado, por Albert Einstein em 1905,
através da teoria de bandas e a física dos semicondutores. O efeito fotovoltaico consiste na
produção de energia elétrica através da incidência de luz.
As células fotovoltaicas são feitas de um material semicondutor, sendo normalmente
usado o silício. Este é feito através de duas camadas, camada N e camada P. A dopagem de
silício com fósforo faz com que este material possua eletrões livres (silício tipo N). A dopagem
com Boro faz com que o silício tenha falta de eletrões (silício tipo P).
Cada célula solar compõe-se de camada fina de material tipo N e outra com maior
espessura de material tipo P. Na figura seguinte é possível ver a composição de uma célula.
5
Figura 2.1 – Composição de um painel fotovoltaico [1]
Devido à presença de um condutor externo, ligado entre as duas camadas, como mostra a
figura, é gerado um fluxo de eletrões, ou seja corrente elétrica. A intensidade de corrente
varia proporcionalmente com a intensidade luminosa.
A tensão da célula deve-se ao efeito de difusão dos portadores na junção p-n. O efeito de
difusão e o campo elétrico da junção neutralizam-se, mantendo um equilíbrio que depende
da corrente na carga. A recombinação de portadores na junção é tanto maior quanto maior a
tensão externa da célula. Esta recombinação de portadores dá origem à corrente de díodo ID.
Figura 2.2 – Circuito equivalente de uma célula fotovoltaica [1]
A resistência Rs representa as perdas de tensão e a resistência Rp representa as perdas de
corrente. Uma característica das células fotovoltaicas é que esta não acumula energia. Este
facto é facilmente verificado pelo seu circuito equivalente, que não tem nenhum acumulador
de energia.
Uma célula fotovoltaica apresenta a seguinte curva de funcionamento, relação
tensão/corrente e tensão/potência:
6
Figura 2.3 – Grandezas características de uma célula fotovoltaica. Curva de
corrente/tensão e a tracejado curva de potência/tensão [1]
Sempre que se utiliza qualquer “objeto” tenta-se retirar deste o maior rendimento
possível. Com os painéis fotovoltaicos não é exceção, visto que a aquisição de um
equipamento destes obriga a estabelecer o prazo em que o investimento é amortizado.
Para conseguir retirar o maior rendimento deste, é utilizado um sistema que controla a
corrente e tensão. A este controlador dá-se o nome de MPPT. Este termo deriva da linguagem
Anglo-saxónica e significa Maximum Power Point Trackers. Este algoritmo faz com que a
combinação entre a corrente e a tensão que é possível extrair do painel, consiga maximizar a
potência que é possível retirar do painel fotovoltaico. Existem vários algoritmos MPPT, sendo
que vários destes são usados como soluções de mercado, atingindo estes eficiências acima de
97% [6].
Na figura 2.3 é possível ver o ponto de máxima potência. Este corresponde ao ponto em
que a corrente Ipmax e a tensão Vpmax se intercetam.
A potência que é possível extrair de um painel fotovoltaico tem uma variação bastante
significativa com a variação da temperatura. Na figura 2.4 representa a variação das
resistências Rp e Rs, do circuito equivalente do painel, à variação de tensão e de corrente
[1].
7
Figura 2.4 – Efeito de Rs e de Rp com a variação de corrente e tensão [1]
Quando ocorre um aumento da temperatura, esta provoca uma maior agitação e
recombinação dos portadores, provocando uma diminuição da tensão. Uma diminuição da
tensão nos terminais provoca uma diminuição da corrente do díodo ID, sendo que esta por sua
vez provoca um aumento da corrente da célula. No entanto este aumento de corrente não é
suficiente evitar uma diminuição da potência. A diminuição da potência provoca, por sua vez,
um aumento da temperatura, amplificando este efeito [3].
Outro fator ambiental também muito num sistema fotovoltaico é a húmida de relativa.
Quando a humidade relativa é muito elevada, esta condensa no módulo, facilitando a
condução e tornando-se um importante agente condutor das correntes de fuga. Esta
humidade cria uma pelicula fina por cima na superfície do vidro, aumentando a sua
condutividade. Este efeito também ocorre na parte de traz do painel, sendo que a espessura
de água é que limita a sua as perdas de corrente [3]
Um módulo ou painel fotovoltaico consiste num número de células solares ligadas
eletricamente, normalmente em série, mas também em paralelo, encapsuladas e montadas
numa estrutura. Um painel fotovoltaico típico está formado por 30 a 36 células em série. Uma
célula típica de 100 cm2 pode produzir entre 1.7 W (uns 0.6V em circuito aberto e 3.5 A em
curto-circuito). [1]
A corrente de saída varia com a mudança da intensidade da radiação solar para qualquer
valor de tensão. [1]
8
Figura 2.5 – Variação do gráfico V/I com a radiação solar [1]
2.2 – Tipos de células Fotovoltaicas
Silício Cristalino A maioria dos painéis fotovoltaicos usa no fabrico das suas células silício. As células
podem ser construídas através de silício amorfo, policristalino e monocristalino. Esta
tecnologia é bastante madura, visto ser a tecnologia usada com mais anos de funcionamento,
o que implica já não ter grande margem de evolução.
Monocristalino
“A célula de silício monocristalino é a mais usada e comercializada como conversor direto
de energia solar em eletricidade. A tecnologia necessária à sua fabricação é um processo
muito bem constituído. A fabricação da célula de silício começa com a extração do cristal de
dióxido de silício. Este material é desoxidado em grandes fornos, purificado e solidificado. O
silício, na indústria eletrónica, além do elevado grau de pureza deve ter a estrutura
monocristalina e uma baixa densidade de defeitos. Considerando as células fotovoltaicas que
utilizam o silício como material base, as monocristalinas são, em geral, as que apresentam as
maiores eficiências, sendo no entanto, as mais caras. As fotocélulas comerciais obtidas com o
processo descrito atingem uma eficiência até 15% podendo chegar a 18% em células testadas
em laboratórios” [17].
9
Policristalino
“As células de silício policristalino são mais baratas que as de silício monocristalino por
ser um processo de preparação das células menos rigoroso. Estas células são produzidas a
partir de blocos de silício obtidos por fusão de bocados de silício puro em moldes especiais.
Uma vez nos moldes, o silício arrefece lentamente e solidifica-se. Neste processo, os átomos
não se organizam num único cristal. Forma-se uma estrutura policristalina com superfícies de
separação entre os cristais. Porém a eficiência é menor em comparação as células de silício
monocristalino. Basicamente, as técnicas de fabricação de células policristalinas são as
mesmas na fabricação das células monocristalinas, porém com menor rigor de controlo.
Atingem uma eficiência de 13% podendo chegar a 15% em células feitas em laboratórios” [17].
Tem como desvantagem a perda elevada de eficiência quando exposta a radiação difusa e
temperaturas elevadas.
Filme Fino
Silício Amorfo
A célula de silício amorfo é apresenta uma estrutura cristalina, completamente diferentes
das células referidas anteriormente. Esta apresenta enorme desordem na estrutura dos seus
átomos. Um célula de silício amorfo formada apenas por átomos de silício tem várias ligações
não compensadas que dão origem a centros de recombinação de eletrões sendo por isso o
material não próprio para aplicações em células solares (para formação de díodos). Colocando
átomos de hidrogénio permite que partes dessas ligações fiquem compensadas tornando o
material com propriedades electroópticas mais interessantes, passando a chamar se de silício
amorfo hidrogenado, Si-a:H. O uso de silício amorfo para fabricação de painéis fotovoltaicos
apresenta vantagens no processo de fabrico assim como nas suas propriedades elétricas. As
células podem ser fabricadas através da deposição de vários tipos de substratos, sendo que
esta célula tem uma maior capacidade de absorção da radiação solar na faixa visível. Esta
tecnologia apresenta um custo baixo mas tem como desvantagens uma baixa eficiência,
quando comparadas com o silício mono e policristalino. Além disto, as células sofrem uma
degradação nos primeiros meses de funcionamento, denominada de LID (Light Induced
Degradation). Estas células funcionam com tensões elevadas, quando comparadas com as
cristalinas, sendo que por este motivo estas são mais suscetíveis ao aparecimento do PID. A
eficiência desta tecnologia varia entre os 5% e os 7% [17].
10
Células de CdTe
Esta tecnologia utiliza como elemento principal o telureto de cádmio, podendo ter uma
redução de custos quando produzida em grandes quantidades. O grande problema da sua
utilização encontra-se no uso de produtos contaminantes e venenosos. A eficiência
apresentada é de 16% em laboratório, no entanto, em células comercializadas o seu valor não
vai além de 8%. Estas células apresentam uma estrutura é homogénea, tendo também, uma
gama de cores varia entre o verde-escuro e o preto. Apresenta como arma principal, a alta
absorção de luz, funcionando bem com radiação difusa [17].
Células de CIS (CuInSe2)
Esta tecnologia utiliza como elemento principal o Disseleneto de Cobre-Índio. Este tipo de
células de pelicula fina CIS, são as que atualmente apresentam uma maior eficiência, dentro
das células de pelicula fina. Não apresentam uma grande deterioração por indução de luz
como as células de silício amorfo. No entanto, este tipo de célula apresenta problemas
quando instaladas em ambientes húmidos e quentes. Contra este tipo de ambientes, é usada
uma boa selagem contra este tipo de ambientes. Seria bom haver uma produção em massa
deste tipo de célula de forma, a que o custo de produção possa vir a baixar em relação ao
custo das células de silício cristalino. Apresenta uma eficiência que se situa-se entre os 7,5 e
os 9% nas células comercializadas [17].
Células de CIGS
Estas células também são constituídas pelos mesmo elementos das CIS mas com a
particularidade de o índio formar uma liga com o gálio podendo assim obter melhores
desempenhos. A eficiência máxima testada em laboratório é de 19,5% [13].
Células de Elevada Performance
Existem as células denominadas Very high Performance Cells, de grande eficiência mas
ainda não são muito usadas devido aos materiais usados, assim como a complexidade de
construção e montagem, tornando o seu preço inviável face a outras tecnologias já aqui
expostas [22].
11
Uma e duas junções (GaAs)
Estas células apresentam uma eficiência de 24% na célula de dupla junção e 21% na célula
de junção única. Estas são compostas por materiais como o Gálio (Ga) e o Índio (In). Esta
tecnologia concentra os fotões de luz numa segunda zona com células de alta eficiência [22].
A principal desvantagem desta tecnologia é mesmo o seu preço.
Células de Múltipla Junção
As células de múltipla junção têm rendimentos acima dos 40%. O rendimento destas
depende do número de junções da mesma. Existem células de uma até seis junções. Cada
junção capta um determinado comprimento de onda solar.
Na figura 2.6 seguinte mostra o comprimento de onda captado por uma célula de tripla
junção bem como a sua constituição.
Figura 2.6 – Variação Célula de tripla junção
Como é possível verificar através do gráfico esta célula capta uma parte muito
significativa da largura de onda emitida pelo sol bem como quase todo o sem comprimento.
Por este motivo as células de alta eficiência tem um rendimento muito elevado, de 41% nas
células de III junção, 55% nas de V junção e 58% nas células de VI junção.
12
Figura 2.7 – Células de múltipla juncão
2.3 - Células Fotovoltaicas de Concentração (CPV)
As células fotovoltaicas de concentração são uma tecnologia que começou a ser
desenvolvida no final da década de 70 por Sandia National Laboratories. Este sistema usa um
conjunto de lentes que concentra a luz solar que incide nelas e foca quase na sua totalidade
num ponto. Esse ponto é o local onde a célula fotovoltaica se encontra. O sistema utiliza um
seguidor de dois eixos, de forma, a que os módulos fotovoltaicos sigam o sol. As células
fotovoltaicas utilizadas neste sistema são de silício.
Figura 2.8 – Primeiro sistema CPV
13
Com o estudo desta tecnologia o sistema foi evoluindo para sistemas distintos. Foram
usados novos sistemas de concentração, denominados de sistemas de concentração
parabólicos. Estes sistemas utilizam um sistema de espelhos que reflete toda a luz incidente e
a foca numa célula. Este tipo de focagem consegue ter um rácio de concentrações de 500x. O
módulo usa, como o sistema anterior, um seguidor de dois eixos que segue a direção solar.
Este sistema tem duas configurações diferentes que são ilustradas na figura 2.9.
Figura 2.9 – Sistema CPV parabólico
O CPV que utiliza lentes também foi melhorado e em vez de usar apenas uma lente
começou a usar um espelho de lentes, constituído por duas lentes. Este sistema consegue
atingir rácio de concentrações de 500x.
Os módulos apresentam uma potência máxima quando a irradiância solar é perpendicular
à superfície, que é o eixo principal do sistema de células de lente. Com desvio crescente
entre o eixo principal e o ponto de irradiação solar o foco deixa o centro da célula. Isto
resulta numa perda de potência definido pela medição do ângulo de aceitação. Para a
medição do ângulo de aceitação o seguidor está fixado em uma posição que o sol vai chegar
dentro de um determinado período de tempo. Em seguida, o desempenho elétrico é medido
continuamente enquanto o sol está a passar a posição ideal. Esta medida não só pode ser
realizada com sistemas de células e módulos individuais, mas com um seguidores completos
também. Figura 2.10 mostra uma curva de ângulo de aceitação medido a um nível de sistema.
Com uma incidência de sol de ± 0,36 ° o desempenho do rastreador é de 95% e com um
ângulo de ± 0,49 °, o desempenho é ainda menos de 90%.
14
Figura 2.10 – Curva de ângulo de aceitação medido a um nível de sistema
Como é possível verificar a precisão do seguidor é fundamental num CPV, pois um
pequeno desvio do ângulo de incidência solar, provoca uma perda de potência muito elevada.
Neste caso em concreto o desvio de um grau provoca uma perda de quase 50% da potência.
Quando se utiliza a tecnologia de concentração o grande objetivo é obter o máximo
rendimento, nunca esquecendo o fator custo/rendimento. Por este motivo é usado, de uma
forma geral, células de múltipla junção. Este tipo de células tem um custo mais elevado que
qualquer outro tipo de células, mas o seu rendimento é mais elevado e com a tecnologia de
concentração a área de células usada é substancialmente mais reduzida do que se não se
usasse esta tecnologia.
2.4 – Algoritmos Maximum Power Point Tracking, MPPT
Num módulo fotovoltaico, a potência máxima está dependente do nível de tensão e
corrente, conforme a temperatura e radiação existente. Qualquer ponto de funcionamento
que não seja o MPP faz diminuir a eficiência do sistema. O nível de potência da carga deve
ser ajustado de acordo com a curva de eficiência fotovoltaica para aumentar o rendimento do
sistema. Este pode ser implementado recorrendo a controladores que seguem o ponto de
potência máximo (MPPT). Estas implementações têm como princípio de funcionamento
controlar a potência da carga a partir da tensão de saída ou abertura/fecho de interruptores
de grupos de carga [15].
15
Existem algoritmos de controladores MPPT. As seguintes são as mais utilizadas [20]:
- Perturbação e Observação
- Condutância Incremental
- Tensão Constante
- Lógica Difusa
- Rede Neuronal
Perturbação e Observação
A principal vantagem deste método encontra-se no facto de este efetuar a procura do
ponto de máxima potência independentemente das condições ambientais, para isso este
necessita de medir a corrente e tensão de saída.
Assim, a potência de saída é calculada a partir do produto da tensão e corrente de saída,
adquiridas por sensores, sendo de seguida efetuada uma perturbação no duty-cycle. “A
potência de saída é novamente calculada e comparada com o valor anterior, se for menor
então a direção da perturbação é mantida, caso contrário a direção é invertida. Obviamente
que o passo da perturbação irá ditar a velocidade com que o ponto de potência máxima é
atingido e a quantidade de oscilação à sua volta“ [20].
Tensão Constante
Este método tem a vantagem de só usar um sensor. A tensão é adquirida de forma a
alterar o duty-cycle D do conversor sendo que este fixa uma tensão específica na saída do
painel. Para temperatura constante, a variação de radiação resulta num MPP cuja tensão é
sempre constante independentemente da radiação. Torna-se assim possível efetuar a
pesquisa do MPP quando a temperatura é constante, porém quando esta varia, a relação
deixa de ser linear sendo que este método não seja aplicado, pois para cada valor de radiação
apresenta um valor de tensão diferente. Este método tem a vantagem de ser facilmente
implementado e só usa um sensor, no entanto apresenta uma dependência do valor da
temperatura do PV [20].
16
Condutância Incremental
Para a implementação deste método é necessário medir a tensão e corrente. A potência é
calculada através da derivada em função da tensão, dP/dV. Esta é normalmente calculada do
seguinte modo:
(2.1)
O valor do duty-cycle varia conforme varia o valor da derivada. Sempre que o valor da
derivada toma valor positivo significa que o sistema esta a trabalhar no lado esquerdo da
curva P-V, o que significa que o valor do duty-cycle tem que ser aumentado. No caso de a
derivada tomar valor de valor negativos significa que o sistema está a trabalhar no lado
direito da curva, significa que o duty-cycle deve ser diminuído. Se o sistema estiver a operar
no MPPT, o valor da derivada toma como valor o zero, ou um valor muito próximo deste. Este
sistema é um sistema que usa dois sensores tal como o método perturbação observação, no
entanto é muito mais rápido que o método perturbação observação. Apesar de se tratar de
um método mais complexo, este apresenta uma oscilação menor em torno do MPP [15].
Lógica Difusa
Este modelo está dividido em três fase bem definidas, sendo estas fuzzificação, tabela de
regras e desfuzzificação. Na primeira fase as variáveis de entrada são convertidas gama
linguística diferente, tipo funções de pertença semelhantes Fig. 2.11 [15].
Figura 2.11- Funções pertença das entradas e saídas do controlador
No caso observado são usados cinco níveis fuzzy, no entanto quanto maior for o numero
de níveis usados maior é a precisão do sistema. Os níveis usados não têm de ser simétricos
como acontece neste caso, principalmente se se pretender dar mais importância a um
17
determinado nível. Normalmente as entradas dos controladores fuzzy são o erro E e a
variação deste ]E. No caso do controlador MPPT sabe-se que a derivada da potência no ponto
de potência máxima é nula, então o valor do erro poderá tomar essa grandeza, sendo assim a
seguinte aproximação poderá ser usada para o erro e respetiva variação [15].
(2.2)
Quando ocorre a primeira fase, a tabela é aplicada . O resultado da saida vai fazer
corresponder um valor na tabela que por sua vez faz corresponder um valor linguistico que é
convertido em um valor real que corresponde ao valor do duty-cycle D [15].
O método apresenta um bom comportamento às variações atmosféricas, mas a sua
eficiência depende muito da forma como o utilizador define a tabela de regras. Existe uma
alternativa a esta técnica de lógica difusa. Trata-se de usar um controlador difuso adaptável,
em que a tabela e as funções pertença são calibradas de forma a obter o melhor desempenho
[15].
2.5 – Configurações possíveis para interligar os painéis fotovoltaicos à rede
De forma a interligar os painéis fotovoltaicos com a rede elétrica, existem várias
configurações possíveis para isso. Ao longo dos anos estas configurações têm sofrido
alterações, para assim poder garantir uma melhor eficácia e eficiência, bem como uma
diminuição no número de componentes necessários, havendo uma diminuição do custo de
investimento neste tipo de sistemas de conversão de energia [23]. Na figura 2.12 é possível
visualizar as configurações mais usuais de ligação de painéis fotovoltaicos à rede elétrica.
18
Figura 2.12 - Esquema de ligação à rede de painéis fotovoltaicos
No esquema a) da figura 2.12 está representado o esquema denominado de centralizado,
sendo que este já um modelo pouco usado. Este modelo ainda tem aplicabilidade em
instalações de elevada potência e tem um custo bastante baixo, pois apenas utiliza um
conversor em toda a instalação. Esta configuração tem a desvantagem de ocupar uma área
substancial e para além disso não é possível otimizar cada um dos painéis, de forma individual
o que faz com que haja perdas.
Outro problema é no caso de haver uma avaria com o inversor, todos os painéis deixam de
produzir, sendo que para além do custo de reparação do inversor ainda acresce a não
produção de energia [23].
No esquema b) da figura 2.12 é possível visualizar o esquema conhecido por string, sendo
que este é usado em aplicações de menor dimensão, nomeadamente em telhados de
habitação. A cada string de painéis fotovoltaicos está ligado um conversor DC/AC, tornando
todos os conjuntos de painéis independentes entre si. Desta forma cada conjunto de painéis
tem o seu próprio MPPT, tornando-se um sistema com maior rendimento comparando com o
esquema a). Assim, quando ocorre uma avaria num conversor, apenas a string associados a
esse conversor é que não produz. Devido ao facto de este esquema apresentar mais
conversores isso também implica maior despesa [23].
O esquema c) da figura 2.12 é chamado de multi-string, e considerado o futuro das
ligações à rede de sistemas fotovoltaicos. Nesta configuração, cada string do sistema está
ligado a um conversor DC/DC, que executa o controlo MPPT. Sendo que por fim os conversores
se ligam a um único conversor DC/AC. Este sistema de ligação à rede apresenta a vantagem
de conseguir otimizar o rendimento por string bem como o facto de só usar um único DC/AC,
o que faz baixar os custos quando comparado com a situação b) [23].
No esquema d) da figura 2.12 está representado um sistema modular, em que tem um
conversor por painel fotovoltaico. Desta é possível otimizar cada painel individualmente,
sendo a configuração que apresenta um rendimento mais elevado, mas por sua vez também é
19
o que apresenta um maior custo. Porém, tem como vantagem a utilização dos painéis
fotovoltaicos sem necessidade de muitos conhecimentos sobre sistemas fotovoltaicos [23].
20
Capítulo 3
Análise do sistema
Resumo
Este capítulo está organizado em quatro partes distintas.
A secção 3.1 faz uma breve abordagem ao sistema que está a ser implementado no
Campus da Martifer Solar. A secção 3.2 fala-nos um pouco dos componentes do sistema e suas
características. De seguida a secção 3.3 faz a caracterização dos módulos usados, sendo estes
o principal objeto de estudo. Por fim a secção 3.4 são expostas todas as equações do painel
bem como as simplificações feitas para serem aplicadas no algoritmo.
3.1 – Introdução
No campus da Martifer Solar está a ser instalado um array de 40 módulos CPV. Estes estão
dispostos em oito séries de cinco módulos, como se mostra na figura 3.1. O módulos
instalados são protótipos que vão ser estudados de forma a entender o seu funcionamento,
bem como perceber melhor as vantagens e desvantagens desta tecnologia.
21
Figura 3.1 - Disposição dos módulos CPV
Qualquer módulo tem valores de corrente, tensão e potência diferentes entre eles.
Estes, devido ao facto de serem protótipos, os valores de corrente, tensão e potência têm
uma diferença ainda maior quando comparados com os módulos fabricados em série, com
o processo de fabrico maduro. Por este motivo, torna-se ainda mais importante e
estimulante realizar este trabalho, pois assim é possível minimizar as perdas de potência.
3.2 – Caraterísticas do sistema
Para uma melhor rentabilidade do sistema este vai ser “partido” em duas partes, isto
é, as strings de módulos vão ser divididas em dois arrays compostos por quatro strings,
sendo assim possível integrar dois sistemas MPPT. O ideal seria ter um sistema MPPT por
cada um dos módulos, pois era garantido que se retiraria a máxima potência de cada um
deles. Uma solução que também tem resultados quase tão bons como a solução
apresentada anteriormente é colocar um sistema MPPT por cada uma das strings [21]. No
entanto, estas últimas soluções não são viáveis, visto que o valor do sistema aumentava
de forma significativa devido aos custos dos inversores.
Apesar de o sistema ser dividido em dois, esta solução apenas usa um inversor. Isto é
possível, pois este possui duas entradas de forma a poder retirar a máxima potência de
dois sistemas separados, sendo que neste caso é um sistema apenas, mas que vai
funcionar como dois e de forma independente. O inversor usado é da marca SMA sendo
que o modelo é o SUNNY BOY 4000TL21. No anexo1, encontra-se a folha de características
deste inversor. Este inversor tem quatro entradas, mas apenas duas delas é que possuem
22
um sistema MPPT. Por este motivo, é que o sistema está apenas dividido em dois e não
em quatro.
Os módulos CPV são constituídos por vinte e quatro células, estando estas ligadas em
série entre si. As características standard do módulo estão descritas na tabela 3.1. Estes
valores são os valores médios dos 20 módulos dos quais existem dados.
Tabela 3.1 — Valores standards do módulo.
Grandezas Valores
IMPP 1,56271A
VMPP 66,211V
VOC 74,690V
ISC 1,61112A
PMPP 103,468W
A tensão do array é dada pelo número de módulos ligados em série. A corrente do array é
dada pela soma das correntes das strings. Uma string é composta por cinco módulos em série.
Assim, cada uma das entradas do inversor vai apresentar valores próximos dos valores
apresentados na tabela 3.2.
Tabela 3.2 — Valores de entrada no inversor.
Grandezas Valores
IMPP 6,028A
VMPP 331,055V
VOC 373,454V
ISC 6,444A
PMPP 2069,372W
O sistema CPV tem, então, uma potência instalada de aproximadamente 4,4KW com uma
tensão de 331,055V uma corrente de aproximadamente 12,502A.
Esta potência instalada é o somatório das potências MPP de cada um dos módulos, mas
estes módulos não estão a funcionar no MPP, estão num ponto perto deste. Consoante o
arranjo série e paralelo que se faz com estes a potência extraída do array é maior ou menor
23
[21]. Dessa forma, pretende-se então, fazer o melhor arranjo possível com os módulos, de
forma a estes funcionarem todos o mais próximo do seu MPP estando o array a produzir o
máximo de potência possível com estes módulos.
3.3 – Caraterização do módulo
O módulo CPV que está a ser usado é composto por vinte e quatro células sendo estes de
tripla junção. Cada célula apresenta uma eficiência de 38%. As lentes usadas têm um zoom
ótico de 500x, tendo uma eficiência de aproximadamente 81%. Desta forma, o módulo
apresenta uma eficiência global de aproximadamente 31%. As características do módulo
podem ser consultadas no anexo2.
Tabela 3.3 — Valores do módulo 3.
Grandezas Valores
IMPP 1,56640A
VMPP 66,381V
VOC 74,876V
ISC 1,61801A
PMPP 103,9799W
Os valores IMPP e ISC são calculados como a média das correntes de cada uma das células. O
valor da VOC, VMPP e PMPP da célula é calculado como a soma das respetivas grandezas de cada
uma das células.
O estudo é realizado por módulo e não por célula. O circuito equivalente de um módulo
fotovoltaico está representado na figura 3.2. Este circuito é composto por uma resistência
série (Rs), que representa as perdas de tensão do módulo e uma resistência paralelo (Rp), que
representa as perdas de corrente do mesmo.
Figura 3.2 - Modelo do circuito equivalente do módulo fotovoltaico
24
O valor de Rs e Rp são valores que variam de módulo para módulo. Na tabela seguinte
estão representadas as características das 20 células usadas.
Tabela 3.4 — Características dos módulos.
Módulo Isc(A) Voc(V) Impp(A) Vmpp(V) Rp(Ω) Rs(Ω)
1 1,61714 74,726 1,56954 66,249 1570,0010 0,0045
2 1,60433 74,801 1,56797 66,315 2057,4118 0,0043
3 1,61801 74,876 1,56640 66,381 1450,6960 0,0045
4 1,60009 74,950 1,56483 66,448 2125,7310 0,0042
5 1,62056 75,025 1,56326 66,514 1309,2886 0,0045
6 1,61236 75,025 1,55169 66,580 1237,9284 0,0044
7 1,60125 75,175 1,56012 66,646 1827,8523 0,0042
8 1,62033 75,249 1,55855 66,713 1218,1224 0,0045
9 1,62565 75,324 1,55698 66,779 1096,9566 0,0046
10 1,61057 75,399 1,55541 66,845 1367,1355 0,0044
11 1,59998 73,986 1,55400 65,593 1609,0974 0,0042
12 1,62101 74,060 1,55655 65,527 1149,0053 0,0045
13 1,60438 74,134 1,56711 65,724 1989,2588 0,0043
14 1,60753 74,208 1,56911 65,790 1931,4253 0,0043
15 1,60913 74,282 1,56525 65,855 1692,7129 0,0044
16 1,61073 74,356 1,56588 65,921 1657,7484 0,0044
17 1,61233 74,430 1,56555 65,987 1591,1075 0,0044
18 1,60325 74,504 1,56488 66,052 1941,8824 0,0043
19 1,60213 74,578 1,56488 66,118 2001,9916 0,0042
20 1,62171 74,652 1,56622 66,183 1345,1418 0,0045
25
3.4 – Equações Associadas a um Painel Fotovoltaico
Uma vez apresentado o esquema elétrico equivalente de um módulo fotovoltaico é agora
possível associar, a cada elemento, a respetiva equação.
As expressões que representam o circuito da Figura 3.3Erro! A origem da referência não
foi encontrada. são as seguintes:
rdph IIII −−= (3.1)
A fonte de corrente dependente, Iph, equação (3.2), varia em função da radiação solar e
da temperatura a que se encontra o painel. ISC é a corrente de curto-circuito do painel, J0 o
coeficiente de temperatura, T a temperatura do módulo fotovoltaico, Tref a temperatura de
referência. K a constante de Boltzmann, Eg a banda de energia do semicondutor, S é a
radiação solar em W/m2 e Sref a radiação solar de referência.
refrefoSCph S
S)]T(TJ[II ⋅−+= . (3.2)
A corrente do díodo, Id, (3.3) em paralelo com a fonte de corrente apresenta um
comportamento não linear dependente da temperatura do painel bem como do estado de
funcionamento em que este se encontra. Esta é equação principal associada ao díodo.
A variável Io (3.4) é a corrente de saturação inversa do díodo.
−
⋅⋅⋅+⋅⋅×= 1
TKnN
V)R(IqexpII
s
sod
. (3.3)
−⋅
⋅⋅
⋅
⋅=
T
1
T
1
Kn
Eqexp
T
TII
ref
g
3
refDOo (3.4)
Por fim, as equações associadas às variáveis IDO e Eg. IDO é uma constante dependente
apenas das características fixas do painel.
−
⋅⋅⋅⋅
=1
NTKn
Vqexp
II
s
OC
SCDO
(3.5)
26
Neste caso, pretende-se saber qual é a disposição ótima dos módulos. Como referido no
capítulo anterior, o comportamento das células fotovoltaicas variam com a temperatura.
Apesar de a temperatura de funcionamento ser dentro dos 65ºC, esta não tem grande
influência na disposição dos módulos. As células usadas neste estudo são do mesmo tipo, ou
seja, tripla junção. O comportamento destas com a temperatura é igual em todas as células.
Se uma célula apresenta melhor comportamento a 25ºC que outra, também vai a melhor
comportamento a 65ºC. Por este motivo, a temperatura de funcionamento do módulo é a
mesma que a temperatura de referência, assim como, o valor radiação solar é igual ao seu
valor de referência.
Como temperatura de referência foi usada os 25ºC e como valor radiação solar 1000W/m2,
pois estes foram os valores de referência dos testes feitos para saber as características de
cada um dos módulos.
Assim, na equação 3.2 o valor de Iph toma o valor de Isc pois T-Tref=0. Quanto à equação
3.4 o valor de I0 toma o valor de Id0, pois o valor dentro do expoente é igual a zero e o fator
multiplicativo (T/Tref) toma o valor de um. Após as simplificações as expressões 3.2 e 3.4
ficam respetivamente:
SCph II = . (3.6)
DOo II = (3.7)
O valor que circula pela resistência paralelo é aproximadamente zero, por isso a
expressão que dá o valor da corrente que é extraída do painel pode ser simplificada e escrita
da seguinte forma:
dph III −= (3.8)
Sendo ainda possível escrever esta da seguinte forma:
−
⋅⋅⋅+⋅⋅×−= 1
TKnN
V)R(IqexpIII
s
soph
(3.9)
27
Através da expressão 3.9 é possível saber o valor da tensão extraída do painel quando
este tem uma corrente I. Para isso, basta apenas escrever a expressão em ordem a V. Sendo
assim, esta passa a ter a forma da expressão 3.10:
( )Rsq
⋅⋅⋅⋅⋅
+
−
= I - TKnN
1I
IIln
V so
ph
(3.10)
Como é possível ver pela expressão 3.10 o valor da tensão só é possível calcular sabendo a
corrente. Outro facto a salientar é que a expressão pode ainda ser simplificada. O valor da
tensão Rs que está representado como IxRs tem um valor muito pequeno. Esta pequena
parcela pode trazer um peso computacional acrescido, pois pode originar um maior número
de iterações. Desta forma, a expressão passa a ter a representar-se da seguinte maneira:
TKnN
1I
IIln
V so
ph
⋅⋅⋅⋅
+
−
=q
(3.11)
Apesar de esta expressão ser melhor para o processamento de dados, esta não apresenta
o valor mais correto. Se o valor de IxRs fosse igual em todos os módulos esta fração poderia
ser eliminada, visto estar à procura de um conjunto de módulos que produz mais potência e
não de valor exato de potência produzida.
Tendo o modelo do painel caracterizado, torna-se então possível saber os diferentes
modos de funcionamento do painel e, consequentemente, o modo de funcionamento do
array. Queremos com isto dizer, que torna-se possível saber a tensão do painel quando
sabemos a sua corrente e vice-versa.
28
Capítulo 4
Otimização do arranjo do painel
Resumo
Neste capítulo é analisado todo o código implementado nesta tese bem como o algoritmo
que está por trás deste. Desta forma, o capítulo está organizado em 3 partes distintas:
A secção 4.1 faz uma breve introdução ao programa realizado. Na secção 4.2 apresenta
uma descrição de todo o algoritmo que foi implementado neste trabalho. Na secção 4.3 é
descrito e explicado o código construído na realização desta dissertação.
4.1 – Introdução
O algoritmo criado é do tipo de algoritmo MPPT, fazendo uma procura pelo ponto de
máxima potência do array. Para isso, é alterada sucessivamente a disposição dos módulos no
array, trocando-os de posição e calculando a potência que o array produz com esse arranjo. O
objetivo é encontrar o arranjo que produza a maior potência possível.
Como já se referiu anteriormente, a linguagem utilizada para a implementação do
algoritmo, que fez a otimização do array, foi a linguagem C.
29
4.2 – Formulação do Algoritmo
O algoritmo princípia com a iniciação dos módulos. Em seguida, os módulos são ordenados
por ordem decrescente de corrente MPPT. As strings são construídas por cinco módulos.
Então, após a ordenação dos módulos, estes são introduzidos nas strings. O motivo pelo qual
há uma ordenação de corrente é para garantir que a corrente MPP que passa em cada string
seja o mais próximo da corrente MPP de cada um dos módulos.
A corrente MPP de cada uma das strings tem de se encontrar entre a corrente MPP mais
baixa dos módulos com os quais ela é constituída e a corrente MPP mais alta. Ao ordenar os
módulos por ordem decrescente e colocá-los nas strings garante-se que a diferença entre
essas duas correntes seja o mais curta possível, ou seja, a corrente MPP da string encontra-se
muito perto das correntes MPP de cada um dos módulos. Se os módulos fossem ordenados por
ordem crescente o resultado seria exatamente o mesmo para o arranjo das strings e,
consequentemente, para o array.
Num array, as strings estão ligadas em paralelo. Isto tem uma implicação no circuito
elétrico, é que o valor da tensão tem que ser obrigatoriamente igual em todas as strings.
Então, calcula-se todas as tenções MPP de cada uma das strings e define-se como tensão do
array a tensão de menor valor. Desta forma, é facilmente possível calcular o valor da
corrente que atravessa cada uma das strings do array.
Agora, já se tem todas as variáveis que são precisas para calcular a potência do array,
pois este vai ser a soma das potências de cada uma das strings. O passo para o cálculo da
primeira iteração está completo.
Um array funciona na sua máxima potência quando as curvas de potência de cada uma
das strings são o mais próximo possível umas das outras e a tensão MPP destas são iguais,
idealmente, o mais próximo possível umas das outras [21].
Neste momento, basta trocar o módulo de uma string pelo módulo de outra string e
executar o mesmo procedimento que foi acima descrito. Se a potência do array aumentar,
este mantém a troca efetuada, caso contrário, volta a ter o mesmo arranjo que tinha antes
da troca. Este procedimento é executado enquanto todas as trocas possíveis ainda não
tiverem sido efetuadas. Para uma melhor compreensão do que foi descrito, na figura 4.1 está
representado o fluxograma do algoritmo.
30
Figura 4.1 - Fluxograma do algoritmo
Em cada string i e módulo k, o módulo é trocado por todos os outros módulos existentes
nas outras strings. O módulo não é trocado por nenhum outro da mesma string, pois isso não
iria alterar o funcionamento da string e, consequentemente, do array. A potência é calculada
sempre que há uma troca e esta é comparada com o valor da potência anterior à troca. Se
esta for maior que a potência anterior à troca, o array fica com esta nova disposição, se não
ele fica com a disposição anterior à troca. De seguida, volta-se novamente a trocar módulos e
a executar todo o procedimento descrito anteriormente.
No fundo o algoritmo descrito é uma espécie de algoritmo MPPT Perturbação e
Observação. Isto, porque o modo de funcionamento é semelhante, tendo as suas diferenças
pois têm características próprias. É feita uma perturbação, representada pela troca entre os
módulos. Em seguida, é calculada a potência e esta é comparada com a potência anterior. Se
houver uma melhoria esta conserva o estado onde está, se não volta ao estado anterior.
31
4.3 – Implementação do Algoritmo
Neste subcapítulo é apresentado todo o programa efetuado nesta tese. Vão ser descritas
as estruturas em C usadas, bem como o porquê da existência de cada uma delas. Todas as
funções usadas têm um objetivo, sendo este abordado. Por fim, será explicada a função
“main()”, na qualidade de corpo do programa.
Estruturas
O programa é composto por quatro estruturas. Cada uma delas armazena tipos de dados
diferentes e o seu número difere entre elas. As estruturas são modulo, strg, vetor e vets.
Modulo é uma estrutura que guarda as variáveis que caracterizam cada um dos módulos. Este
é constituído por dez variáveis do tipo float, sendo estas Impp, Umpp, P, U, I, Rs, Rp, Isc, Voc
e Pmpp. Ainda tem mais duas variáveis, uma do tipo int, sendo denominada de ref e outra do
tipo double, sendo esta denominada de Id.
A variável Impp guarda o valor da corrente MPP do módulo. A Umpp guarda o valor da
tensão MPP do módulo, sendo Pmpp o valor da potência MPP do módulo. P,U e I guardam os
valores de potência, tensão e corrente, respetivamente, para uma determinada condição de
funcionamento. Em Id, é armazenado o valor da corrente Io de cada módulo, referida no
Capítulo 3. Já a variável ref, é um valor que guarda a referência de cada um dos módulos.
A estrutura strg é composta por uma estrutura modulo, três variáveis float, sendo estas
I,U e P. É ainda formada por dois int, sendo estes ref e tamanho. Em I,U e P é guardado a
corrente, tensão e potência, respetivamente, que é produzida por cada uma das strings. Ref
é a referência de cada uma das string e tamanho é o comprimento da string, que neste caso
também representa o número de módulos que esta tem de armazenar. Estas duas estruturas
servem para facilitar o tratamento dos dados pois, com uma variável “estrutura” é possível
representar várias variáveis.
As estruturas vetor e vets são muito semelhantes. A primeira é composta por um int
tamanho e por uma estrutura modulo. A outra, vets é também composta por int tamanho e
por uma estrutura, sendo que neste caso a estrutura é a strg. A variável tamanho, em ambos
os casos, têm a mesma função de guardar o número de estruturas modulo ou strg dependendo
do caso, que cada uma tem armazenada.
Na prática a estrutura vetor é uma string em que estão guardados todos os módulos que
são inseridos no sistema. Esta existe para facilitar a ordenação dos módulos por ordem
decrescente. Quanto à estrutura strs, esta na prática é um array composto por strings. Na
figura 4.2 encontra-se as quatro estruturas que acabaram de ser descritas.
32
Figura 4.2 - Estruturas
Funções
O programa é constituído por várias funções, sendo que regra geral estas são executadas
mais do que uma vez. É uma boa prática de programação, dividir o programa em várias
funções, pois torna-se mais fácil de o entender, detetar erros de linguagem, bem como erros
de algoritmia.
Cada uma das estruturas tem uma função própria que as inicia sempre que é declarada
uma nova estrutura. Esta tem a utilidade de atribuir valores as variáveis de cada uma das
estruturas, de forma, a que estas não tenham valores nulos (NULL). Existem funções que
fazem a atribuição dos valores de cada um dos módulos e strings, ou seja, constroem os
módulos e as strings do array.
O corpo do programa é construído na função main(), sendo no corpo desta que são
chamadas todas as outras funções. É nesta função que está implementado o algoritmo
descrito anteriormente.
Esta inicia-se com a declaração de todas as variáveis e estruturas que vão ser usadas. As
características dos módulos, isto é, o valor de Isc, Voc, Impp, Vmpp, Rs e Rp são lidos de um
ficheiro txt denominado de “tese”. À medida que o ficheiro é lido, os módulos são construídos
e inseridos na estrutura vetor. Para isso, é chamada uma função que tem como valores de
33
entrada os valores lidos no ficheiro. Esta retorna um módulo, com estas características, sendo
de seguida inserido no vetor.
O próximo passo é a ordenação dos módulos por corrente MPP por ordem decrescente.
Para tal, é chamada mais uma função, a vetor_ordena(). Esta função recebe como entrada o
vetor constituído por módulos e em seguida ordena-os. O código usado está descrito na figura
4.3.
Figura 4.3 - Ordenação do vetor por corrente Impp
Em seguida, são constituídas as primeiras strings. Neste caso, é usado outra função
denominada de strg_insere_mod(), que recebe como entrada cinco módulos, figura 4.4. Estes
são dados pela estrutura vetor que já devolve os módulos ordenados por corrente. As strings
são guardadas no vets. Após a formação das strings é calculada a sua corrente, tensão e
potência MPP da string. Estes valores são calculados numa função que recebe como entrada
uma string e retorna o valor de tensão MPP da string. Esta função está representada na figura
4.5.
34
Figura 4.4 - Insere módulos na string
Esta função começa por procurar o valor da corrente MPP, do módulo de menor corrente
e assume que esta é a corrente da string. Com esta corrente, é calculado o valor da tensão
para todos os módulos e calculado o valor da potência da string. O valor de corrente MPP da
string é iniciado com a corrente mínima, porque o valor da corrente MPP da string tem de se
encontrar entre o valor de corrente MPP do módulo de maior corrente MPP e o de menor.
A potência é comparada em todas as iterações com a potência calculada na iteração
anterior. Se o valor da potência atual aumentou há um incremento positivo à corrente, se não
aumentou, há um incremento negativo à corrente. O incremento positivo tem valor da
corrente máxima menos o valor da corrente mínima a dividir por 1000. O incremento negativo
é igual ao positivo a dividir por 10. O ciclo é parado quando a diferença entre a potência
atual e a anterior é menor ou seja o erro, é menor que 0,00001. Na figura 4.5 encontra-se o
código desta função.
35
Figura 4.5 - Calcula a corrente, tensão e potência MPP de cada string
De seguida, é calculada a corrente e a potência de cada uma das strings, assumindo que a
tensão do array é a tensão da string de menor tensão, ou seja, a tensão de todas as strings
são iguais à tensão do array. Para calcular a corrente e potência de cada string é usada uma
função calcular_U(). Esta função tem a mesma estrutura que a anterior, mas difere apenas
em dois aspetos. O valor do erro calculado pela diferença entre a tensão calculada na
iteração e a tensão do array e o ciclo termina quando o valor do erro é menor que 0,01. Na
figura 4.6 encontra-se o código desta função.
36
Figura 4.6 - Calcula a corrente e potência de cada string sabendo a tensão do array
Neste momento procede-se à troca de posições dos módulos nas strings. Para tal foi
necessário criar quatro ciclos encadeados. Um array de módulos é como uma matriz de
módulos, sendo que neste caso tem as dimensões 4x5. Os dois primeiros ciclos vão buscar os
módulos da linha i e coluna j, sendo que os outros dois ciclos vão buscar os módulos da linha k
e coluna l.
Cada módulo que se encontra na posição ixj é trocado por todos os módulos do array que
se encontrem em linhas diferentes da i. Após a troca, é executado o procedimento descrito
anteriormente, ou seja, é calculado o valor mais baixo de tensão MPP e em seguida os valores
de tensão e corrente das strings. De seguida, é calculado o valor a potência do array e
comparado com o valor anterior. Se este diminuiu, volta a haver uma nova troca dos módulos
voltando às posições que tinham anteriormente, caso contrário este passa a ser o novo
arranjo do array. A parte do código que executa esta parte do algoritmo pode ser visualizada
na figura 4.7.
37
Figura 4.7 - Troca módulos
Por fim, este devolve o número do módulo e os valores de Isc, Voc, Impp, Vmpp, Rs, Rp e
a corrente de díodo Id, bem como a string em que se encontra. Na figura 4.8 é possível ver a
saída dos dados.
38
Figura 4.8 - Saída dos dados
No valor I0, em todos os casos, aparece o valor de 0.000000, isto porque a corrente é da
ordem 10 -35 e, por esse motivo, aparece o valor de zero. No entanto, o valor com que o
programa trabalha não é zero, pois caso isso acontecesse o programa deixaria de funcionar,
dado que no cálculo da tensão haveria um valor, que no decorrer da operação daria infinito,
mais propriamente na parcela o
ph
I
II −.
Uma vantagem neste algoritmo é o facto de este fazer um arranjo por corrente sendo que
este coloca todas as strings, individualmente, a produzir a máxima potência. Em seguida este
procura o máximo do array tendo em conta a melhor corrente. Para isso, é ajustada a tensão
de cada uma das strings. Este facto faz com que não seja necessário efecturar todas as
combinações possiveis, visto que já está encontrada a melhor corrente.
Para vinte módulos, este algoritmo demora cerca de 2 minutos para correr. Sendo assim,
este torna o algoritmo mais rápido fazendo com que este, no caso de aumentar o número de
módulos, não cresça de forma exponencial.
39
Capítulo 5
Resultados para o sistema fotovoltaico
Resumo
Neste capítulo vai ser exposto os resultados obtidos com a implementação do programa
realizado. Desta forma, o capítulo está organizado em 3 partes distintas:
A secção 5.1 faz uma breve introdução e é explicada a forma como os dados depois de
corrido o algoritmo criado, foram trabalhados. Na secção 5.2 são expostos os resultados
saídos do algoritmo que foi implementado no trabalho. Na secção 5.3 são expostos os
resultados finais, ganhos de potência que o sistema teve com a implementação do sistema.
5.1 – Introdução
Devido ao estado climatérico dos dois últimos meses, não foi possível recolher dados do
CPV, pois este só produz energia elétrica com luz direta. Por este motivo, foi necessário
recorrer a simulações realizadas com o PSim. Este é um software muito utilizado na
eletrotecnia, que simula circuitos elétricos.
Para simular cada um dos módulos, foi necessário introduzir determinadas características
destes, nomeadamente as resistências série e paralelo do circuito equivalente, o número de
células dos módulos (24), temperatura e irradiância de referência (25Cº, 1000W/m2),
corrente de curto-circuito de cada um dos módulos, corrente de saturação do díodo bem
como o fator de idealidade. O fator de idealidade de um painel encontra-se entre o valor de 1
e 2, sendo o valor usual de 1,5 [24].
40
Assim, depois de correr o programa, os resultados foram simulados em PSim, de forma, a
entender se o algoritmo funciona ou não e quais as melhorias que este traz para o sistema.
Foram feitas várias simulações com vários arranjos de painéis, pelo que expomos alguns
casos.
5.2 – Resultados após execução do algoritmo
O programa descrito no capítulo anterior teve como dados de entrada a Isc, Impp, Voc,
Vmpp, Rs e Rp. Sempre que os dados de um módulo eram lidos, era atribuído uma referência
a este, ou seja, número do módulo. A entrada pode ser vista na tabela 5.1.
Tabela 5.1 — Dados de entrada
String Módulo Isc (A) Voc (V) Impp (A) Vmpp (V) Rp (Ω) Rs (Ω)
1
1 1,61714 74,726 1,56954 66,249 1570,0010 0,0045
2 1,60433 74,801 1,56797 66,315 2057,4118 0,0043
3 1,61801 74,876 1,56640 66,381 1450,6960 0,0045
4 1,60009 74,950 1,56483 66,448 2125,7310 0,0042
5 1,62056 75,025 1,56326 66,514 1309,2886 0,0045
2
6 1,61236 75,100 1,55169 66,580 1237,9284 0,0044
7 1,60125 75,175 1,56012 66,646 1827,8523 0,0042
8 1,62033 75,249 1,55855 66,713 1218,1224 0,0045
9 1,62565 75,324 1,55698 66,779 1096,9566 0,0046
10 1,61057 75,399 1,55541 66,845 1367,1355 0,0044
3
11 1,59998 73,986 1,55400 65,593 1609,0974 0,0042
12 1,62101 74,060 1,55655 65,527 1149,0053 0,0045
13 1,60438 74,134 1,56711 65,724 1989,2588 0,0043
14 1,60753 74,208 1,56911 65,790 1931,4253 0,0043
15 1,60913 74,282 1,56525 65,855 1692,7129 0,0044
4
16 1,61073 74,356 1,56588 65,921 1657,7484 0,0044
17 1,61233 74,430 1,56555 65,987 1591,1075 0,0044
18 1,60325 74,504 1,56488 66,052 1941,8824 0,0043
19 1,60213 74,578 1,56488 66,118 2001,9916 0,0042
20 1,62171 74,652 1,56622 66,183 1345,1418 0,0045
O programa não aloca diretamente os módulos nas strings. Estes são inicialmente
alocados num vetor, de seguida ordenados por corrente Impp e só depois são alocados. Por
isso, no campo string, da tabela 5.1, não é a disposição inicial dos módulos nas strings, mas
sim a disposição que estas teriam se não fosse feita uma ordenação por corrente.
41
As strings quando são iniciadas, são compostas pelo arranjo que se encontra na tabela
5.2. Como é possível verificar, o valor da corrente MPP ficou ordenada por ordem
decrescente. Na string 1 ficaram alocados os módulos de maior corrente e na string 4 os de
menor corrente, como era espectável. No anexo 3 é possível ver a saída do programa com os
dados descritos na tabela 5.2.
Assim, a corrente MPP da string é muito próxima das correntes MPP dos módulos, ou seja,
neste momento já foi executada uma pré-otimização.
Tabela 5.2 — Dados após ordenação por ordem decrescente da corrente Impp
String Módulo Isc (A) Voc (V) Impp (A) Vmpp (V) Rp (Ω) Rs (Ω)
1
1 1,61714 74,726 1,56954 66,249 1570,0010 0,0045
14 1,60753 74,208 1,56911 65,790 1931,4253 0,0043
2 1,60433 74,801 1,56797 66,315 2057,4118 0,0043
13 1,60438 74,134 1,56711 65,724 1989,2588 0,0043
3 1,61801 74,876 1,56640 66,381 1450,6960 0,0045
2
20 1,62171 74,652 1,56622 66,183 1345,1418 0,0045
16 1,61073 74,356 1,56588 65,921 1657,7484 0,0044
17 1,61233 74,430 1,56555 65,987 1591,1075 0,0044
15 1,60913 74,282 1,56525 65,855 1692,7129 0,0044
19 1,60213 74,578 1,56488 66,118 2001,9916 0,0042
3
18 1,60325 74,504 1,56488 66,052 1941,8824 0,0043
4 1,60009 74,950 1,56483 66,448 2125,7310 0,0042
5 1,62056 75,025 1,56326 66,514 1309,2886 0,0045
7 1,60125 75,175 1,56012 66,646 1827,8523 0,0042
8 1,62033 75,249 1,55855 66,713 1218,1224 0,0045
4
9 1,62565 75,324 1,55698 66,779 1096,9566 0,0046
12 1,62101 74,060 1,55655 65,527 1149,0053 0,0045
10 1,61057 75,399 1,55541 66,845 1367,1355 0,0044
11 1,59998 73,986 1,55400 65,593 1609,0974 0,0042
6 1,61236 75,100 1,55169 66,580 1237,9284 0,0044
Após a ordenação dos módulos por corrente MPP, o programa está pronto para iniciar a
troca dos módulos. Sempre que a troca feita traz um aumento de potência, o programa
mantem a troca efetuada. Assim, quando o programa termina, o array tem a disposição que
está na tabela 5.3.
42
Tabela 5.3 — Disposição final do array
String Módulo Isc (A) Voc (V) Impp (A) Vmpp (V) Rp (Ω) Rs (Ω)
1
1 1,61714 74,726 1,56954 66,249 1570,0010 0,0045
3 1,61801 74,876 1,56640 66,381 1450,6960 0,0045
9 1,62565 75,324 1,55698 66,779 1096,9566 0,0046
10 1,61057 75,399 1,55541 66,845 1367,1355 0,0044
19 1,60213 74,578 1,56488 66,118 2001,9916 0,0042
2
8 1,62033 75,249 1,55855 66,713 1218,1224 0,0045
15 1,60913 74,282 1,56525 65,855 1692,7129 0,0044
16 1,61073 74,356 1,56588 65,921 1657,7484 0,0044
17 1,61233 74,430 1,56555 65,987 1591,1075 0,0044
20 1,62171 74,652 1,56622 66,183 1345,1418 0,0045
3
4 1,60009 74,950 1,56483 66,448 2125,7310 0,0042
5 1,62056 75,025 1,56326 66,514 1309,2886 0,0045
7 1,60125 75,175 1,56012 66,646 1827,8523 0,0042
14 1,60753 74,208 1,56911 65,790 1931,4253 0,0043
18 1,60325 74,504 1,56488 66,052 1941,8824 0,0043
4
2 1,60433 74,801 1,56797 66,315 2057,4118 0,0043
6 1,61236 75,100 1,55169 66,580 1237,9284 0,0044
11 1,59998 73,986 1,55400 65,593 1609,0974 0,0042
12 1,62101 74,060 1,55655 65,527 1149,0053 0,0045
13 1,60438 74,134 1,56711 65,724 1989,2588 0,0043
No anexo 4, é possível ver a saída do programa com os dados descritos na tabela 5.3.
Comparando as três, pode-se verificar sucessivas alterações na disposição dos módulos nas
strings e, consequentemente, no array. Não se verificou nenhuma string que mantivesse os
mesmos módulos. Em cada uma das etapas do algoritmo verificaram-se trocas de módulo, o
que implica mudanças nas strings.
De seguida, vão ser testados os resultados retirados do programa para, assim, poder
verificar se este resulta e qual os ganhos que este pode trazer a um sistema fotovoltaico.
43
5.3 – Resultados após simulação no PSim
Como já foi referido anteriormente, os dados saídos do programa vão ser trabalhados em
PSim. O esquema elétrico montado no software pode ser visto na figura 5.1.
Figura 5.1 - Esquema elétrico do array
Este é composto por 4 strings tendo cada uma delas 5 módulos. Os pontos de cada um dos
módulos com os sinais + e - são as saídas positivas e negativas do módulo. Quanto aos valores
de S e de T, estes são os valores de entradas do painel. O valor de S representa a irradiação
solar, sendo que este tomou o valor de 1000 W/m2, ou seja, o valor de referência. Já o valor
de T representa a temperatura a que o módulo está a trabalhar. Este tem um valor de 25 Cº,
sendo também o valor de referência. O valor da temperatura na grande maioria da literatura
está representada em graus Kelvin, no entanto, o software trabalha em graus Celcius.
A linha a vermelho em cima representa o barramento positivo e a linha a vermelho em
baixo representa o barramento negativo. Quanto à resistência que está ligada aos
barramentos representa uma carga. À medida que a carga é alterada, o ponto de
funcionamento dos módulos é também alterado. Esta alteração na carga faz com que o
44
sistema funcione nos vários pontos da sua curva de potência. Por esta razão foram testadas
várias cargas para perceber as melhorias ou não que o arranjo do array sofreu.
Na tabela 5.4 estão representados os valores de tensão, corrente e potência do sistema,
no caso de este ser implementado pela ordem em que foi introduzido no programa.
Foram usados os valores de carga de 40, 45, 50, 55, 56, 57, 60 e 65 por estes serem
valores perto do ponto de máxima potência. Como se sabe, os módulos CPV só funcionam com
radiação direta, o que faz com que este esteja a funcionar muito próximo do seu ponto de
máxima potência, caso contrário não funciona.
Tabela 5.4 — Valores do sistema inicial.
Carga (Ω) Corrente (A) Tensão (V) Potência (W)
40 6,39910 255,964 1637,939
45 6,39735 287,881 1841,677
50 6,39561 319,780 2045,188
55 6,36555 350,105 2228,611
56 6,31285 353,519 2231,712
57 6,24236 355,814 2221,119
60 5,99597 359,758 2157,098
65 5,58321 362,909 2026,197
Através da tabela é possível observar que o ponto de máxima potência encontra-se
quando o valor da carga é de 56Ω ou perto deste. Como o que seria de esperar, à medida que
a carga aumenta a tensão aumenta também, mas a corrente diminui. Com o aumento de
carga a potência vai aumentando até que atinge a máxima potência que pode ser extraída dos
painéis começando esta a diminuir progressivamente.
Na tabela 5.5 encontram-se os valores de tensão, corrente e potência do sistema para os
mesmos valores de carga, onde os módulos estão apenas ordenados por corrente MPP.
45
Tabela 5.5 — Valores do sistema após ordenação por corrente.
Carga (Ω) Corrente (A) Tensão (V) Potência (W)
40 6,39979 255,992 1638,295
45 6,39775 287,899 1841,906
50 6,39572 319,786 2045,262
55 6,36872 350,279 2230,827
56 6,31503 353,642 2233,260
57 6,24459 355,942 2222,713
60 5,99852 359,911 2158,933
65 5,58574 363,073 2028,031
Como seria espectável o valor da potência aumentou em relação ao sistema inicial, para
todos os valores de carga. Este continua a apresentar o funcionamento esperado para um
array fotovoltaico, isto é, a potência aumenta até ao seu ponto máximo, começando de
seguida a diminuir.
A tabela 5.6 apresenta os resultados após simulação no PSim, mas desta com o array que
o programa indicou como o arranjo de módulos onde se consegue extrair o maior valor de
potência possível.
Tabela 5.6 — Valores do sistema após ordenação completa.
Carga (Ω) Corrente (A) Tensão (V) Potência (W)
40 6,40062 256,025 1638,719
45 6,39833 287,925 1842,239
50 6,39602 319,801 2045,454
55 6,37029 350,366 2231,931
56 6,31749 353,779 2234,995
57 6,24710 356,084 2224,492
60 6,00095 360,057 2160,684
65 5,58802 363,221 2029,686
Como esperado o valor da potência extraída do array voltou a aumentar. Este aumento de
potência ocorre em relação aos dois casos anteriores e para todos os valores de carga. Para o
caso MPP o valor atinge os 2234,995W.
O funcionamento do array voltou a ser o esperado, isto é, teve o comportamento de um
array real, que aumenta a potência até ao máximo de potência que este consegue fornecer,
mas quando há um aumento de carga, que vá para além da potência máxima, esta começa a
diminuir.
46
Para conseguir compreender as melhorias trazidas pelo algoritmo criado, é interessante
poder comparar o “melhor caso com o pior”. Tendo em conta este objetivo, foi criado um
programa que procurasse o caso menos favorável. Para isso foi apenas alterado dois aspetos
no programa anterior. A primeira alteração encontra-se na ordenação do vetor de módulos.
Neste caso esta ordenação não foi necessária fazer, pois como foi possível verificar pelos
resultados anteriores esta ordenação já faz uma otimização do array, aumentando assim, a
sua produção. A segunda alteração é feita na própria estrutura do programa. A função main(),
onde é feita a troca dos módulos, a troca, neste caso, é guardada se a potência após a troca
for menor ou igual à potência antes da troca. O novo código pode ser visto na figura 5.2.
Este apenas encontra um mínimo relativo, visto ser necessário encontrar a pior arranjo de
corrente.
Figura 5.2 – Código para encontrar o pior caso
O código é executado para encontrar pior array possível. Após a correr o código o array
de fica com a disposição que está descrita na tabela 5.7.
47
Tabela 5.7 — Disposição do array no pior caso possível
String Módulo Isc (A) Voc (V) Impp (A) Vmpp (V) Rp (Ω) Rs (Ω)
1
5 1,62056 75,025 1,56326 66,514 1309,2886 0,0045
9 1,62565 75,324 1,55698 66,779 1096,9566 0,0046
8 1,62033 75,249 1,55855 66,713 1218,1224 0,0045
4 1,60009 74,950 1,56483 66,448 2125,7310 0,0042
10 1,61057 75,399 1,55541 66,845 1367,1355 0,0044
2
6 1,61236 75,100 1,55169 66,580 1237,9284 0,0044
7 1,60125 75,175 1,56012 66,646 1827,8523 0,0042
3 1,61801 74,876 1,56640 66,381 1450,6960 0,0045
1 1,61714 74,726 1,56954 66,249 1570,0010 0,0045
20 1,62171 74,652 1,56622 66,183 1345,1418 0,0045
3
11 1,59998 73,986 1,55400 65,593 1609,0974 0,0042
12 1,62101 74,060 1,55655 65,527 1149,0053 0,0045
13 1,60438 74,134 1,56711 65,724 1989,2588 0,0043
14 1,60753 74,208 1,56911 65,790 1931,4253 0,0043
15 1,60913 74,282 1,56525 65,855 1692,7129 0,0044
4
16 1,61073 74,356 1,56588 65,921 1657,7484 0,0044
17 1,61233 74,430 1,56555 65,987 1591,1075 0,0044
18 1,60325 74,504 1,56488 66,052 1941,8824 0,0043
19 1,60213 74,578 1,56488 66,118 2001,9916 0,0042
2 1,60433 74,801 1,56797 66,315 2057,4118 0,0043
Esta disposição dos módulos foi introduzida no PSim e testada. Foram novamente
testados vários valores de carga, de forma, a perceber o funcionamento do array neste
caso. Os valores de corrente, tensão e potência que o sistema consegue produzir, para os
vários valores de carga, podem ser observados na tabela 5.8.
Tabela 5.8 — Valores do sistema no pior caso.
Carga (Ω) Corrente (A) Tensão (V) Potência (W)
40 6,3997 255,988 1638,246404
45 6,39777 287,900 1841,917695
50 6,39583 319,799 2045,380038
55 6,36516 350,084 2228,340673
56 6,31230 353,489 2231,329322
57 6,24156 355,769 2220,55356
60 5,99504 359,702 2156,427878
65 5,58232 362,850 2025,544812
48
Como esperado o valores de potência foram os mais baixos de todos. Comparativamente
com o melhor caso, consegue-se um aumento da potência de 0.164% no sistema para a carga
de 56Ω.
A tabela 5.9 mostra os diferentes ganhos que o sistema obteve com as diferentes
disposições do array.
Tabela 5.9 — Ganho do melhor caso, comparativamente com os restantes casos
Caso inicial
Caso após Ordenação por
corrente Pior caso
Carga (Ω) Ganho (%) Ganho (W) Ganho (%) Ganho (W) Ganho (%) Ganho (W)
40 0,048% 0,78002 0,026% 0,42369 0,029% 0,47233
45 0,031% 0,56250 0,018% 0,33334 0,017% 0,32147
50 0,013% 0,26543 0,009% 0,19188 0,004% 0,07355
55 0,149% 3,32039 0,049% 1,10415 0,161% 3,59060
56 0,147% 3.28217 0,078% 1,73475 0,164% 3,66527
57 0,152% 3,37328 0,080% 1,77908 0,177% 3,93880
60 0,166% 3,58588 0,081% 1,75072 0,197% 4,25618
65 0,172% 3,48905 0,082% 1,65483 0,204% 4,14140
Como é possível verificar o algoritmo trouxe melhorias para todos os casos aqui
mostrados. Onde ocorre o menor ganho é no caso onde já existe uma ordenação por corrente
no array. O array quando está ordenado por corrente tem apenas um fator que impede que
todos os painéis estejam a funcionar no ponto MPP, sendo este fator a tensão por string.
Ainda é de reparar que no pior caso os valores para cargas mais pequenas são muito
próximos do melhor caso. Isto significa, que a curva de potência tem um declive muito
idêntico ao melhor caso, mas o seu ponto de MPP é mais baixo. Quando a curva de potência
no pior caso, esta a atingir o seu ponto máximo, esta estabiliza diminuindo o seu crescimento.
No entanto, no melhor caso a curva de potência continua a crescer sendo que esta estabiliza
mais tarde.
É possível ainda verificar que o ponto MPP do pior caso é o que tem a tensão mais baixa,
sendo que esta vai aumentando, de caso para caso, consoante vai incrementando a potência
no ponto MPP. Isto significa, que quando a curva de potência começa a estabilizar no pior
caso, nos outros continua a crescer. Quando estabiliza no melhor caso, nos outros a curva de
potência já se encontrava em queda. É devido a este facto, que para cargas mais elevadas, o
ganho de potência é ainda maior.
Num parque de grandes dimensões, como o parque do Algarve da Martifer, que tem uma
potência instalada de 22MW, a utilização deste algoritmo no pior cenário trás um acréscimo
49
de potência de 36KW. Se pensarmos que Portugal tem uma média de 1700 horas de sol por
ano este aumento traduz-se num aumento de energia de 61434,64678KWh. O valor do KWh é
de 0.16€, então torna-se possível ter um ganho de 9830€.
O valor de 0.164% não corresponde a um valor de ganho entre o pior arranjo de todos e o
melhor arranjo de todos. O pior arranjo de todos não foi possível encontrar. Aquele caso
representa um mínimo local, isto é, a pior tensão para o valor de corrente inicial. Para
encontrar o pior caso era necessário encontrar a pior conjugação de correntes.
50
Capítulo 6
Conclusões e trabalhos futuros
6.1 Principais contribuições
Nesta dissertação foi criado e implementado um algoritmo que procurava o arranjo de um
array, que tinha como objetivo produzir a maior quantidade de potência possível. Foram
estudados e comparados vários arranjos.
Verificou-se que o uso de programas como o PSim pode ser uma excelente ferramenta
para simulações de sistemas fotovoltaicos.
A implementação de um algoritmo permitiu verificar que, de facto, a sua aplicação é
essencial para se extrair a máxima potência de um array e ter um sistema com um bom
rendimento.
Tendo por base a simulação efetuada, os resultados obtidos vieram ao encontro do
esperado, sendo de realçar o contributo deste estudo, dado que conseguiu-se criar um
algoritmo que efetivamente aumenta a potência que é possível extrair de um array. Ou seja,
com os mesmos recursos, consegue-se retirar maior rendimento de um sistema deste tipo.
51
6.2 Principais conclusões
Ao longo do projeto foi possível tirar as seguintes conclusões:
• Na construção das strings, o valor de corrente MPP dos módulos que compõem a
string, são extremamente importantes para a eficiência do array. Quanto menor for a
diferença da corrente MPP entre os módulos de uma string, maior é o rendimento da
mesma;
• A construção das strings por ordenação da corrente MPP dos módulos, não é suficiente
para se conseguir retirar de um array o máximo de potência. Este facto acontece
pois, as strings que constituem um array, têm que estar a funcionar todas com a
mesma tensão, o que implica que nem todas as strings estejam a funcionar na sua
máxima potência;
• Conclui-se, comparativamente aos dados explanados no estado de arte, que
dependendo das diferentes formas como se liga um array de módulos, permite retirar
mais ou menos potência do array. É, assim, importante definir a forma como vai ser
ligado o array, bem como definir critérios, como o número de inversores e de MPPTs,
que interferem no rendimento do array;
• Conclui-se que com este algoritmo consegue-se ter um ganho de pelo menos 0.164%,
visto não ser possível encontrar o mínimo absoluto mas sim o mínimo relativo.
• A solução criada é uma solução para ser usada essencialmente em grandes parques
solares onde o número de strings ligados ao mesmo MPPT é elevado [23]. O algoritmo
criado, para este tipo de montagem do array, pode trazer um aumento de potência,
para um parque fotovoltaico como o do Algarve de 22MW, de 36KW. Este aumento é
bastante significativo tendo em conta que é usado o mesmo material que já estava
dimensionado para o projeto, ou seja, não houve um investimento adicional para este
acréscimo de potência;
• Assim, conclui-se que o algoritmo criado e implementado foi executado com êxito
visto este fazer o que se pretendia, ou seja, melhorar o funcionamento de um array
aumentando a potência que este consegue produzir.
52
6.3 Desenvolvimentos futuros
O objetivo principal deste projeto foi a conceção e implementação de um algoritmo para
encontrar o array que produza mais potência. Como visto ao longo desta dissertação, este
objetivo foi cumprido.
Mas no trabalho poderia ser ainda implementado os seguintes itens:
• Seria interessante conseguir implementar os resultados saídos do programa, num
sistema real, visto os dados terem sido trabalhados no PSim. Desta forma, ter-se-ia dados reais.
• O algoritmo criado funciona como pretendido, mas à medida que o número de módulos aumenta o tempo de execução do algoritmo aumenta também. Para este motivo seria interessante uma melhoria na eficiência do programa.
• O interface gráfico do programa com o utilizador pode ser melhorado, tornando-o mais atrativo para o utilizador, principalmente se o programa for para uso comercial.
53
Referências
[1] C. Monteiro, “Energias Solar Fotovoltaica” Mestrado Integrado em Engenharia
Eletrotécnica e de Computadores, Faculdade de Engenharia da universidade do Porto
[2] Stuart A. Boyer, “Scada: Supervisory Control and Data Acquisition”, 2ª Edition -ISA-1999.
[3] “Degradação Induzida pelo Potencial (PID) em Módulos Fotovoltaicos” Mestrado Integrado
em Engenharia Eletrotécnica e de Computadores, Faculdade de Engenharia da
universidade do Porto, Fevereiro de 2012.
[4] “Sistemas de Controlo e Supervisão de Sistemas Embebidos – Tipo SCADA” Mestrado
Integrado em Engenharia Eletrotécnica e de Computadores, Faculdade de Engenharia da
universidade do Porto, Março de 2008.
[5] Morais L, Josué, “Sistemas Fotovoltaicos: da Teoria à Prática”, Engebook-2009
[6] G.M.S. Azevedo, M.C. Cavalcanti, K.C. Oliveira, F.A.S. Neves, Z.D. Lins. “Comparative
evaluation of maximum power point tracking methods for photovoltaic systems”, Journal
of solar Energy Engineering, vol. 131, 2009.
[7] Fraunhofer ISE, Heidenhofstr “High-efficiency solar cells from III-V compound
semiconductors”,2006
[8] E. Kasper, H.-J. Müssig, H. G. Grimmeiss “ Advances in Electronic Materials”
[9] Report by the PV Technology Research Advisory Council (PV TRAC), “A Strategic
Research Agenda for Photovoltaic Solar Energy Technology”,2005
[10] A , Barnett, “50% EFFICIENT SOLAR CELL ARCHITECTURES AND DESIGNS”, 2005
[11] A. W. Bett, “Multi-junction Solar Cells in Europe”,2006
[12] B.M. Clive, “Very low cost PV concentrators”, 2001
[13] J. Perkins, "NREL Highlights - Manufacturing-Friendly Advance Seen in CIGS Solar Cell
Processing" http://www.nrel.gov/docs/fy11osti/51412.pdf
[14] S. Connor, “The Growth of Solar Concentrator Photovoltaic Markets in the Southwest US”,
2008
[15] C. Silva, ”Conversor CC/CC para aplicação em instalação fotovoltaica”, 2012
[16] D. Carvalho, “Análise e Caracterização Energética de Sistemas Fotovoltaicos de Baixa
Potência com Ligação à Rede Elétrica”, 2011
[17] F. Oliveira, " Curso Técnico Instalador de Energia Solar Fotovoltaica " , 1ª Edição Agosto
2011 - ISBN: 978-972-8953-78-2
[18] A. W. Bett, “HIGH-CONCENTRATION PV USING III-V SOLAR CELLS”, 2006
54
[19] R. F. Coelho, F. M. Concer, and D. C. Martins, “A MPPT approach based on temperature
measurements applied in PV systems,” in Industry Applications (INDUSCON), 2010 9th
IEEE/IAS International Conference on, 2010, pp. 1-6.
[20] T. Esram and P. L. Chapman, “Comparison of Photovoltaic Array Maximum Power Point
Tracking Techniques,” Energy Conversion, IEEE Transactions on, vol. 22, no. 2, pp. 439-
449, 2007
[21] N. Martins, “Incorporação de Micro Inversores em Módulos Fotovoltaicos, 2011
[22] T. Saga, "Advances in crystaline silicon solar cell technology for industrial mass
production", npg asia materials
[23] J. Aniceto, “Conversor DC-DC com busca de ponto de potência máxima (MPPT) para
painéis solares”, 2010
[24] A. Silva, “Sistema de Conversão de Energia Solar Fotovoltaica para Interligação à Rede
Doméstica de Energia Eléctrica”, Julho de 2008
[25] G. Sala, D. Pachón, “Test, Rating and specification of PV concentrator components and
systems”, 1999
[26] N. Silva, “Determinação de perfis para a microprodução”, Junho de 2010
59
Anexo5- Código do programa de otimização do array, em linguagem C
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int Ns=24;
float n=1.5;
double K=1.38E-23;
double q=1.60218E-19;
float T=298;
typedef struct
int ref;
float Impp, Umpp, P, U, I, Rs, Rp, Isc, Voc, Pmpp;
double Id;
modulo;
typedef struct
int tamanho;
modulo** mod;
vetor;
typedef struct
modulo **mod;
float P, U, I;
int ref, tamanho;
strg;
60
typedef struct
int tamanho;
strg** s;
vets;
vetor* vec_novo()
vetor* vec;
vec = (vetor*)malloc(sizeof(vetor));
if(vec == NULL)
return NULL;
vec->mod = (modulo **)malloc(sizeof(modulo*));
vec->tamanho = 0;
return vec;
vets* vets_novo()
vets* v;
v = (vets*)malloc(sizeof(vets));
if(v == NULL)
return NULL;
v->s = (strg **)malloc(sizeof(strg*));
61
v->tamanho = 0;
return v;
modulo* mod_novo(vetor* vc)
modulo* mod;
int i;
mod = (modulo*)malloc(sizeof(modulo));
mod->Impp = 0;
mod->Umpp = 0;
mod->P = 0;
mod->U = 0;
mod->I = 0;
mod->Rp=0;
mod->Rs=0;
mod->Id=0;
mod->Isc=0;
mod->Voc=0;
mod->Pmpp=0;
vc->mod = (modulo**)realloc(vc->mod, vc->tamanho*sizeof(modulo));
vc->tamanho++;
return mod;
strg* strg_novo(vets* v)
strg* sg;
sg = (strg*)malloc(sizeof(strg));
if(sg == NULL)
62
return NULL;
sg->I = 0;
sg->P = 0;
sg->ref = 0;
sg->tamanho = 5;
sg->mod = (modulo **)malloc(sizeof(modulo*));
sg->U = 0;
sg->mod=NULL;
v->s = (strg**)realloc(v->s, v->tamanho*sizeof(strg*));
v->tamanho++;
return sg;
modulo* atribuir_mod( float Imp, float Ump, float If, float voc, float rp,float rs, int r )
vetor *v;
v=vec_novo();
modulo *mod;
mod=mod_novo(v);
mod->Impp = Imp;
mod->Umpp = Ump;
mod->Rp=rp;
mod->Rs=rs;
mod->Isc=If;
mod->Voc=voc;
mod->Pmpp=Imp*Ump;
mod->Id=If/(exp((q*voc)/(Ns*n*K*T))-1);
mod->ref=r;
return mod;
int vetor_ordena(vetor* v_ptr)
63
int i, j, size;
modulo *m1;
vetor *v;
v=vec_novo();
m1=mod_novo(v);
if(v_ptr == NULL)
return -1;
size = v_ptr->tamanho;
for (i = 0; i < size; i++)
for (j = 0; j < size ; j++)
if(v_ptr->mod[i]->Impp > v_ptr->mod[j]->Impp)
m1= v_ptr->mod[i] ;
v_ptr->mod[i] = v_ptr->mod[j];
v_ptr->mod[j] = m1;
return 0;
strg* strg_insere_mod(modulo* mod1, modulo* mod2, modulo* mod3, modulo* mod4, modulo*
mod5)
64
strg *s1;
vets *vs;
vs=vets_novo();
s1=strg_novo(vs);
s1->mod = (modulo**)realloc(s1->mod, s1->tamanho*sizeof(modulo*));
s1->mod[0]=mod1;
s1->mod[1]=mod2;
s1->mod[2]=mod3;
s1->mod[3]=mod4;
s1->mod[4]=mod5;
return s1;
//Estas duas funções devolvem o modulo de menor e maior tensão, respetivamente
modulo* mod_Umin(strg* st)
int i, imin;
float Umin=1000;
for(i=0;i<st->tamanho;i++)
if(st->mod[i]->Umpp<Umin)
imin=i;
return st->mod[imin];
modulo* mod_Umax(strg* st)
int i, imax;
float Umax=0;
for(i=0;i<st->tamanho;i++)
if(st->mod[i]->Umpp>Umax)
imax=i;
65
return st->mod[imax];
void troca_modulos(strg* stmax, strg* stmin, modulo* max, modulo* min)
int i;
for(i=0; i<stmax->tamanho;i++)
if(stmax->mod[i]==max)
stmax->mod[i]=min;
if(stmin->mod[i]==min)
stmin->mod[i]=max;
// funções do algoritmo
//calcula o valor de todas as tensão das strings e define como tensão do painel a menor
float mppt_string(strg* st)
int i,j;
float Imax=0, Imin=10, var, Ic,erro1=100, Vc1, Vc2, Pc1,erro2=100, P, Pant=0, Vs;
for(i=0;i<st->tamanho;i++)
if(st->mod[i]->Impp>Imax)
Imax=st->mod[i]->Impp;
if(st->mod[i]->Impp<Imin)
Imin=st->mod[i]->Impp;
66
var=(Imax-Imin)/1000;
Ic=Imin;
while(erro1>1E-5 || erro1<-1E-5) //Calculo de corrente mppt da str
P=0;
Vs=0;
for(j=0;j<5;j++)
Vc1=st->mod[j]->Umpp;
Pc1= Vc1*Ic;
Vc2=(log(((st->mod[j]->Isc-Ic)/st->mod[j]->Id)+1)/q)*n*K*T*Ns-Ic*st-
>mod[j]->Rs;
Vc1=Vc2;
Pc1=Vc1*Ic;
P=P+Pc1;
Vs=Vs+Vc2;
erro1=P-Pant;
if(P>Pant)
Pant=P;
Ic=Ic+var;
else
Ic=Ic-var/10;
st->U=Vs;
st->I=Ic;
st->P=Ic*Vs;
return Vs;
67
void calcular_U (strg* st, float Vc)
int i,j, cont=0;
float Imax=0, Imin=10, var, Ic,erro1=100, Vc1, Vc2, Pc1,erro2=100, P, Pant=0, Vs, Iaux;
for(i=0;i<st->tamanho;i++)
if(st->mod[i]->Impp>Imax)
Imax=st->mod[i]->Impp;
if(st->mod[i]->Impp<Imin)
Imin=st->mod[i]->Impp;
var=(Imax-Imin)/1000;
Ic=Imin;;
while(erro1>1E-2 || erro1<-1E-2) //Calculo de corrente mppt da str
if(Vs>Vc)
Ic=Ic+var/2;
if(Vs< Vc)
Ic=Ic-var/3;
P=0;
Vs=0;
if(Iaux==Ic)
Ic=Ic+0.01;
for(j=0;j<5;j++)
68
Vc1=st->mod[j]->Umpp;
Pc1= Vc1*Ic;
Vc2=(log(((st->mod[j]->Isc-Ic)/st->mod[j]->Id)+1)/q)*n*K*T*Ns-Ic*st-
>mod[j]->Rs;
Vc1=Vc2;
Pc1=Vc1*Ic;
P=P+Pc1;
Vs=Vs+Vc2;
erro1=Vs-Vc;
printf("erro1 %f\n",erro1);
Iaux=Ic;
if(Vs>Vc)
Ic=Ic+var/2;
else
Ic=Ic-var/2;
printf("\n Vcarga %f, Vstrg %f\n",Vc,Vs);
printf("\n novo Ic %f\n\n",Ic);
st->U=Vs;
st->I=Ic;
st->P=Vs*Ic;
int main()
int i,j,a=0,imin,imax,k,l,i1, cont=0;
69
float Impp, Vmpp, Isc, Voc, Id, Vmins=1000,Vs, Vmaxs=0,Vmin=1000, P,
Pant=0,potencia[2000],rs,rp,potenciaant[2000];
char linha[200];
char *aux1, *aux2,*aux3, *aux4, *aux5, *aux6;
FILE * pfile;
strg *s1, *s2, *s3, *s4, *s5;
vetor *v;
vets *vs;
modulo *m1, *m2, *m3, *m4, *m5, *m6, *m7, *m8, *m9, *m10, *m11, *m12, *m13, *m14,
*m15,*m16,*m17,*m18,*m19,*m20;
vs=vets_novo();
v=vec_novo();
m1=mod_novo(v);
m2=mod_novo(v);
m3=mod_novo(v);
m4=mod_novo(v);
m5=mod_novo(v);
m6=mod_novo(v);
m7=mod_novo(v);
m8=mod_novo(v);
m9=mod_novo(v);
m10=mod_novo(v);
m11=mod_novo(v);
m12=mod_novo(v);
m13=mod_novo(v);
m14=mod_novo(v);
m15=mod_novo(v);
m16=mod_novo(v);
m17=mod_novo(v);
m18=mod_novo(v);
m19=mod_novo(v);
m20=mod_novo(v);
s1=strg_novo(vs);
s2=strg_novo(vs);
s3=strg_novo(vs);
s4=strg_novo(vs);
70
// Nesta parte do programa são chamadas as funções que alocam modulos e strings
pfile = fopen("tese.txt","r");
aux1=(char*) malloc(strlen(linha)+1);
aux2=(char*) malloc(strlen(linha)+1);
aux3=(char*) malloc(strlen(linha)+1);
aux4=(char*) malloc(strlen(linha)+1);
aux5=(char*) malloc(strlen(linha)+1);
aux6=(char*) malloc(strlen(linha)+1);
i=0;
while(fgets(linha,200,pfile))
aux1=strchr(linha,' ');
*aux1='\0';
aux1++;
aux2=strchr(aux1,' ');
*aux2='\0';
aux2++;
aux3=strchr(aux2,' ');
*aux3='\0';
aux3++;
aux4=strchr(aux3,' ');
*aux4='\0';
aux4++;
aux5=strchr(aux4,' ');
*aux5='\0';
aux5++;
71
Isc=atof(linha);
Voc=atof(aux1);
Impp=atof(aux2);
Vmpp=atof(aux3);
rp=atof(aux4);
rs=atof(aux5);
v->mod[i]= atribuir_mod(Impp,Vmpp,Isc,Voc,rp,rs,i+1);
i++;
for(i=0 ;i<20;i++)
Impp=v->mod[i]->Impp;
Vmpp=v->mod[i]->Umpp;
Isc=v->mod[i]->Isc;
Voc=v->mod[i]->Voc;
printf("modulo %i\n\n",i+1);
printf("referencia %d\n",v->mod[i]->ref);
printf("Isc%d=%f\n",i+1, Isc);
printf("Voc%d=%f\n",i+1, Voc);
printf("Impp%d=%f\n",i+1, Impp);
printf("Vmpp%d=%f\n",i+1, Vmpp);
printf("Id%d=%f\n",i+1, v->mod[i]->Id);
printf("Rs%d=%f\n",i+1, v->mod[i]->Rs);
printf("Rp%d=%f\n\n",i+1, v->mod[i]->Rp);
//apartir daqui chama as funções resolvem o problema
vetor_ordena(v);
72
//insere o os modulos numa string
a=0;
for(i=0;i<4;i++)
vs->s[i]=strg_insere_mod(v->mod[a],v->mod[a+1],v->mod[a+2],v->mod[a+3],v-
>mod[a+4]);
vs->s[i]->ref=i+1;
a=a+5;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
printf("str %d\n",vs->s[i]->ref);
printf("modulo %d\n\n",vs->s[i]->mod[j]->ref);
printf("Isc%d=%f\n",j+1, vs->s[i]->mod[j]->Isc);
printf("Voc%d=%f\n",j+1, vs->s[i]->mod[j]->Voc);
printf("Impp%d=%f\n",j+1,vs->s[i]->mod[j]->Impp);
printf("Vmpp%d=%f\n",j+1,vs->s[i]->mod[j]->Umpp);
printf("Id%d=%f\n",j+1, vs->s[i]->mod[j]->Id);
printf("Rs%d=%f\n",j+1, vs->s[i]->mod[j]->Rs);
printf("Rp%d=%f\n\n",j+1, vs->s[i]->mod[j]->Rp);
getchar();
//calcular o valor de tensão MPPT da string
for(i=0;i<4;i++)
Vs= mppt_string(vs->s[i]);
73
if(Vs<Vmins)
Vmins=Vs; imin=i;
if(Vs>Vmaxs)
Vmaxs=Vs; imax=i;
//calcular o valor de corrente e potencia da string sabendo o a tensão
for(i=0;i<4;i++)
if(i==imin && i<3)
i++;
if(i==imin && i==3)
break;
calcular_U (vs->s[i], Vmins);
//Calculo da potencia anterior
for(i=0;i<4;i++)
Pant=Pant+vs->s[i]->P;
a=0;
for(i1=0;i1<4;i1++)
for(j=0;j<5;j++)
for(k=3;k>=0;k--)
for(l=0;l<5;l++)
74
if(k==i1)
break;
a++;
troca_modulos(vs->s[k],vs->s[i1],vs->s[k]->mod[l],vs->s[i1]->mod[j]);
P=0;
//calcular o valor de tensão MPPT da string
for(i=0;i<4;i++)
Vs= mppt_string(vs->s[i]);
if(Vs<Vmins)
Vmins=Vs; imin=i;
//calcular o valor de corrente e potencia da string sabendo o a tensão
for(i=0;i<4;i++)
if(i==imin && i<3)
i++;
if(i==imin && i==3)
break;
calcular_U (vs->s[i], Vmins);
//Calculo da potencia
for(i=0;i<4;i++)
75
P=P+vs->s[i]->P;
potencia[a]=P;
potenciaant[a]=Pant;
if(Pant>P )
troca_modulos(vs->s[k],vs->s[i1],vs->s[k]->mod[l],vs->s[i1]->mod[j]);
else
Pant=P;
for(i=0;i<=a;i++)
printf("posicao %d\n potencia %f e potencia anterior %f
",i,potencia[i],potenciaant[i]);
getchar();
for(i=0;i<4;i++)
for(j=0;j<5;j++)
Impp=vs->s[i]->mod[j]->Impp;
Vmpp=vs->s[i]->mod[j]->Umpp;
Isc=vs->s[i]->mod[j]->Isc;
Voc=vs->s[i]->mod[j]->Voc;
printf("str %d\n",vs->s[i]->ref);
printf("modulo %d\n\n",vs->s[i]->mod[j]->ref);
printf("Isc%d=%f\n",j+1, vs->s[i]->mod[j]->Isc);
printf("Voc%d=%f\n",j+1, vs->s[i]->mod[j]->Voc);
76
printf("Impp%d=%f\n",j+1,vs->s[i]->mod[j]->Impp);
printf("Vmpp%d=%f\n",j+1,vs->s[i]->mod[j]->Umpp);
printf("Io%d=%f\n",j+1, vs->s[i]->mod[j]->Id);
printf("Rs%d=%f\n",j+1, vs->s[i]->mod[j]->Rs);
printf("Rp%d=%f\n\n",j+1, vs->s[i]->mod[j]->Rp);
system("pause");
return 0;
77
Anexo6 – ficheiro txt com os módulos
Os valores introduzidos correspondem, pela seguinte ordem, aos seguintes parâmetros dos
módulos Isc, Voc, Impp, Vmpp, Rp e Rs
1.61713625 74.72616239 1.56954 66.24893 1570.001048 0.0045
1.60432725 74.80088856 1.56797046 66.31517893 2057.411795 0.0043
1.6180145 74.87561472 1.56640092 66.38142786 1450.696005 0.0045
1.60009 74.95034088 1.56483138 66.44767679 2125.730981 0.0042
1.620564 75.02506704 1.56326184 66.51392572 1309.288638 0.0045
1.612358 75.09979321 1.5516923 66.58017465 1237.928405 0.0044
1.60125 75.17451937 1.56012276 66.64642358 1827.852279 0.0042
1.620328 75.24924553 1.55855322 66.71267251 1218.122437 0.0045
1.62565 75.32397169 1.55698368 66.77892144 1096.956582 0.0046
1.610565 75.39869786 1.55541414 66.84517037 1367.135487 0.0044
1.59998 73.9862994 1.554 65.593 1609.097421 0.0042
1.62101 74.0602857 1.556554 65.527407 1149.005301 0.0045
1.604375284 74.134272 1.567108 65.724186 1989.258783 0.0043
1.6075295 74.2082583 1.569108 65.789779 1931.42533 0.0043
1.609130625 74.2822446 1.56524708 65.855372 1692.712943 0.0044
1.61073175 74.3562309 1.565878 65.920965 1657.748369 0.0044
1.612332875 74.4302172 1.565554 65.986558 1591.107465 0.0044
1.603245 74.5042035 1.564878 66.052151 1941.882438 0.0043
1.60213 74.5781898 1.564878 66.117744 2001.991566 0.0042
1.621713625 74.65217609 1.566216 66.183337 1345.141816 0.0045