desenvolvimento de uma ferramenta de arrays fotovoltaicos · kern e los angeles e vão ter no total...

93
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

Upload: vuongngoc

Post on 04-Dec-2018

214 views

Category:

Documents


0 download

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

ii

© Jaime Lima, 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.

iv

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.

vi

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.

viii

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

xv

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

55

Anexo 1- SMA SUNNY BOY 4000TL21

56

Anexo 2 - Características das células do módulo

57

Anexo 3 - Saída do programa após ordenação do vetor e alocação das string

58

Anexo4- Saída do programa após este ser corrido

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