LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1....

49
Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare Departamentul de Automatică şi Ingineria Sistemelor LUCRARE DE LICENŢĂ Concentrator solar cu receptor fotovoltaic Absolvent Oniga Mihai Andrei Coordonator Conf.dr.ing. Cătălin Petrescu Bucureşti, 2014

Transcript of LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1....

Page 1: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

Universitatea Politehnica Bucureşti

Facultatea de Automatică şi Calculatoare

Departamentul de Automatică şi Ingineria Sistemelor

LUCRARE DE LICENŢĂ

Concentrator solar

cu receptor fotovoltaic

Absolvent

Oniga Mihai Andrei

Coordonator

Conf.dr.ing. Cătălin Petrescu

Bucureşti, 2014

Page 2: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

1

CUPRINS

1. Introducere

2

2. Radiatia solara

2.1. Distributia pe glob

2.2. Elevatia Soarelui si spectrul radiatiei solare

2.3. Masurarea radiantei solare

3 3 4 5

3. Celula solara si efectul fotovoltaic 3.1. Notiuni introductive

3.2. Parametrii masurabili si curba I-U

3.3. Eficienta celulelor fotovoltaice

3.4. Sensibilitatea spectrala si celulele multi-jonctiune

7 7 9 11 13

4. Concentratoarele fotovoltaice 4.1. Notiuni introductive

4.2. Tipuri de concentratoare

4.2.1. Tipuri de dispozitive optice

4.2.2. Coeficientul de concentrare

4.2.3. Tipuri de mecanisme active de urmarire a Soarelui

15 15 17 17 19 20

5. Realizarea practica a unui concentrator cu receptor fotovoltaic 5.1. Introducere

5.2. Subsisteme

5.2.1. Modulul de comanda

5.2.2. Mecanismul de pozitionare

5.2.3. Achizitia de date prin senzori

23 23 23 24 28 30

6. Concluzii

31

7. Anexa A. Program pentru modulul de comanda

32

8. Bibliografie 48

Page 3: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

2

1. INTRODUCERE

Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii de

energie electrica prin efect fotovoltaic, utilizand dispozitive de focalizare a

radiatiei solare directe in celule cu randament de conversie ridicat.

Drept urmare a epuizarii accelerate a surselor de combustibili fosili, a

degradarii mediului ce rezulta din consumul lor si a cresterii continue a cererii la

nivel mondial, cerere care creeaza adevarate dezastre in plan geopolitic, o totala

si cat mai rapida migrare catre surse de energie regenerabile este obligatorie.

Dincolo de importanta pe care efectul fotovoltaic il are, plecand de la

aceasta necesitate a abandonarii surselor de energie conventionale, utilitatea

instalatiilor de focalizare a radiatiei solare, in mod deosebit, deriva din

necesitatea optimizarii costurilor de productie a energiei. Intrucat in componenta

panourilor solare intra un numar ridicat de celule fotovoltaice, utilizarea in

productia de serie a celulelor cu eficienta mai mare de 20% este, in cele mai

multe cazuri, nefezabila. Prin comparatie, concentratoarele permit utilizarea unei

singure celule multi-jonctiune cu eficienta de conversie ridicata (30%+),

termorezistenta si de dimensiuni mici (ex. 2x2mm), ca receptor in punctul focal,

precum si a unor materiale ieftine pentru intreaga instalatie. Spre exemplu:

policarbonat, sticla, metal etc.

Prin contrast cu acest avantaj major pe care il ofera fata de panourile

conventionale, concentratoarele au insa si doua dezavantaje ce nu pot fi

neglijate: limitarea utilizarii radiatiei la cea directa (cea difuza nu poate fi

focalizata) si nevoia racirii pasive a receptorului pentru a evita consumul de

energie sau scaderea drastica a randamentului in caz contrar. Insa, in zone cu un

numar ridicat de zile cu soare pe parcursul unui an, ele pot fi o foarte buna

alternativa la instalatiile de panouri fotovoltaice conventionale, dat fiind faptul ca

se poate mari semnificativ factorul de conversie foto-electrica pentru aceasi

suprafata iradiata. Atfel spus, un panou solar cu suprafata de 1m2 ce utilizeaza

celule conventionale are un randament mai scazut decat un concentrator cu

suprafata de colectare identica (1m2), ce utilizeaza o singura celula de mare

eficienta.

Acest document trateaza intr-un intreg capitol, realizarea practica a unui

concentrator fotovoltaic de uz didactic. Constructia unei astfel de instalatii face

posibila studierea pe cale directa a fenomenelor electrice si termice aferente

suprairadierii unei celule fotovoltaice, precum si modificarea eficientei acesteia,

suprairadierea avand ca scop optimizarea producerii de energie electrica.

Page 4: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

3

2. Radiatia solara

2.1. Distributia pe glob

Forma eliptica a orbitei Pamantului in jurul Soarelui si deplasarea acestuia

spre un capat al elipsei fac ca distanta pe care radiatia solara o parcurge pana la

Pamant sa varieze de-a lungul unui an. Astfel, intensitatea radiatiei ajunse la noi

variaza, in primul rand, in functie de acest factor. Ea variaza intre un minim de

cca. 1.471 x 108 km la periheliu (punctul in care suntem cel mai aproape de

Soare), ce are loc in intervalul 2 - 5 ianuarie, si 1.521 x 108 km la afeliu (punctul

in care ne situam cel mai departe de Soare), in intervalul 3 - 5 iulie.

La extremitatea atmosferei, densitatea de putere a radiatiei fluctueaza

intre 1325 W/m2 si 1412 W/m2. Valoarea medie globala a acesteia se numeste

constanta solara si are valoarea:

E0 = 1367 W/m2

Odata ce patrunde in straturile atmosferei, radiatia directa scade in

intensitate si mai mult, ca urmare a fenomenelor de reflexie, absorbtie si

dispersie. La nivelul solului, la amiaza, intr-o zi cu cer senin, intensitatea radiatiei

directe poate atinge 1000W/m2.

Energia radiatiei solare difera foarte mult de la zona la zona. Conform

http://solargis.info, distributia acesteia pe glob in 2013 este prezentata in

urmatoarea imagine:

Figura 2.1. Distributia radiatiei solare directe pe glob

Sursa: http://sollargis.info

Page 5: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

4

2.2. Elevatia Soarelui si spectrul radiatiei solare

Insolatia la suprafata Pamantului depinde, in mod direct, si de elevatia

aparenta a Soarelui in raport cu un observator terestru. Intrucat atmosfera

planetei afecteaza radiatia solara prin absorbtie, reflexie si difuzie, un unghi

apropiat de zenit (unghiul format de planul orizontal in punctul de observatie si

verticala pe acest plan, care trece prin centrul Soarelui) inseamna ca aceasta va

avea de parcurs o traiectorie mai scurta prin atmosfera si implicit, o cantitate

mai mare de energie va ajunge la suprafata Terrei. De asemenea, un unghi

apropiat de orizontala presupune ca radiatia va penetra un strat mai gros din

atmosfera, ceea ce determina un flux radiativ atenuat.

Figura 2.2. Distributia radiatiei solare directe pe glob

Sursa: http://greenrhinoenergy.com

Indicele de masa a atmosferei (abbr. engl. AM - air mass) indica, in

esenta, raportul dintre grosimea totala a stratului atmosferic penetrat de lumina

Soarelui la o anumita elevatie a acestuia si grosimea stratului cand Soarele este

la zenit, punct in care coeficientul se considera a fi 1. De asemenea, la

extremitatea exterioara a atmosferei, acelasi indice are valoarea 0.

Expresia indicelui de masa este:

𝐴𝑀 = 1

𝑠𝑖𝑛𝛾 (2.1)

unde unghiul γ este elevatia Soarelui in punctul de observatie.

Page 6: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

5

Atmosfera terestra afecteaza nu doar intensitatea si implicit, energia

radiatiei solare in ansamblu, ci mai mult decat atat, afecteaza spectrul acesteia

prin elementele sale constituente. Spre exemplu, stratul de ozon filtreaza cea

mai mare parte a frecventelor de mare energie (e.g. UV, X, gamma etc. etc.).

Cu cat parcursul prin straturile atmosferice este mai lung, cum se intampla

la apus sau la rasarit, cu atat spectrul radiatiei pierde o parte mai mare din

benzile de mica lungime de unda, ramanand in componenta ei banda de

frecvente infrarosii, de energie scazuta.

Figura de mai jos ilustreaza diferentele dintre distributiile spectrale ale

radiatiei solare directe la nivelul marii si la limita exterioara a atmosferei

Pamantului:

Figura 2.3. Spectrul radiatiei solare directe la nivelul marii

si la limita exterioara a atmosferei terestre

Sursa: http:// ice-age-ahead-iaa.ca

2.3. Masurarea radiantei solare

Radianta solara se masoara fie direct, utilizand piranometre sau senzori

fotovoltaici, fie indirect, prin analiza imaginilor din sateliti. Piranometrele sunt

senzori de mare precizie care masoara radiatia solara pe o suprafata plana. In

esenta, ele sunt compuse din doua cupole semisferice de sticla, o placa metalica

neagra hiper-absorbanta, elementele termo-sensibile pozitionate sub aceasta si o

carcasa metalica alba.

Page 7: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

6

Figura 2.4. Piranometru Kipp & Zonen CM21/CM22

Sursa: http://badc.nerc.ac.uk

Razele solare trec prin cupolele de sticla si cad perpendicular pe suprafata

absorbanta, incalzind-o. Intrucat incalzirea depinde in mod direct de gradul de

iradiere, diferenta de temperatura intre placuta absorbanta si mediul exterior,

mai precis a carcasei albe, face posibila determinarea intensitatii radiatiei solare

(Planning and Installing Photovoltaic Systems, 2006).

O alternativa la piranometre, mult mai ieftina, insa si mult mai putin

precisa, o reprezinta senzorii fotovoltaici. Precizia lor scazuta prin comparatie cu

cea a piranometrelor, deriva din sensibilitatea lor specrala.

Figura 2.5. Senzor fotovoltaic pentru

masurarea intensitatii radiatiei solare

Sursa: http://domat-int.com

Page 8: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

7

Un astfel de senzor contine o celula fotovoltaica ce genereaza un curent

electric, a carui intensitate este direct proportionala cu intensitatea radiatiei

incidente. Insa, sensibilitatea limitata a celulei, care nu este afectata de lungimi

de unda din gama infrarosu, face ca acuratetea acestora sa poate atinge, cu o

buna calibrare, cca. 4-5% in decursul unui an.

3. Celula solara si efectul fotovoltaic

3.1. Notiuni introductive

Efectul fotovoltaic a fost pentru prima data observat in 1839 de catre

fizicianul francez Alexandre-Edmond Becquerel. Fenomenul consta in aparitia

unei tensiuni electrice sau a unui curent electric in anumite materiale, in

momentul in care acestea erau expuse la razele solare.

Becquerel si-a explicat descoperirea in revista stiintifica „Les Comptes

Rendus de l'Academie des Sciences” drept “aparitia unui curent electric cand

doua placi de platina sau aur, imersate intr-o solutie acida, neutra sau alcalina,

sunt expuse la radiatia solara in mod inegal.” (Wikipedia.org).

Progresul mecanicii cuantice a atras dupa sine o mai buna explicatie a

efectului fotovoltaic. Plecand de la notiunea de foton, fenomenul a fost descris

drept efectul de desprindere a electronilor din banda de valenta si intrarea lor in

banda de conductie, in urma absorbtiei energiei fotonilor de catre anumite

materiale.

Figura 3.1. Benzile energetice la metale, semiconductoare si dielectrice

Sursa: http://butane.chem.uiuc.edu

La materialele semiconductoare, spre deosebire de metale sau cele

izolatoare electrice, exista o diferenta energetica intre benzile de valenta de cea

Page 9: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

8

de conductie, suficient de mica incat absorbtia unui foton sa poata disloca un

electron si sa il plaseze in banda de conductie.

In constructia de celule fotovoltaice pentru aplicatii terestre (celulele

necesita o compatibilitate cu spectrul radiatiei, care difera intre suprafata

planetei si limita exterioara a atmosferei), materialul cel mai raspandit este

siliciul, in forma mono sau poli-cristalina. Siliciul pur are, insa, putini electroni

liberi, insuficienti pentru a genera un curent electric util. Astfel, in mod deliberat,

acesta se dopeaza cu materiale din grupele III sau V din tabelul periodic,

substante care au cu 1 electron de valenta mai mult sau mai putin decat siliciul,

precum borul sau fosforul, pentru a-i spori conductivitatea electrica.

In cazul fosforului, intrucat doar 4 din cei 5 electroni disponibili creeaza

legaturi stabilie cu atomii de siliciu adiacenti, legatura slaba a celui de-al cincilea

poate fi usor rupta, ducand acel electron in stratul de conductie. Acest tip de

dopaj se numeste dopaj-n (negativ), din cauza ca adauga un exces de electroni,

de sarcina negativa.

Analog, in cazul materialelor din grupa III, precum borul, care au cu un

electron de valenta mai putin, apare un gol in legaturile atomice. Acest lucru

permite migrarea electronului liber de la atomul de siliciu adiacent celui de bor si

umplerea acelui gol. Efectul este aparitia unui alt gol, fenomen care se propaga si

duce la aparitia unui „curent de goluri”. Acest tip de dopaj se numeste dopaj-p

(pozitiv), intrucat creeaza un exces de sarcina pozitiva.

Figura 3.2. Structura atomica a siliciului dopat cu impuritati

Sursa: http://badc.nerc.ac.uk

Page 10: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

9

O celula fotovoltaica este, in esenta, o jonctiune p-n formata prin

suprapunerea a doua straturi de material semiconductor, unul dopat-p iar celelalt dopat-n. Aceasta juxtapunere genereaza o zona de contact pe care sarcinile de

tip n o traverseaza pentru a umple golurile din stratul dopat-p, creand perechi electroni-gol. Absorbtia fotonilor de catre o astfel de pereche duce la ruperea ei,

ceea ce formeaza purtatori de sarcina liberi, in acest mod formandu-se un curent electric.

Figura 3.3. Celula fotovoltaica - principiu de functionare

Sursa: http://volker-quaschning.de

3.2. Parametri masurabili si curba I-U

Eficienta de conversie fotoelectrica a celulelor este limitata de multipli

factori, precum reflexia razelor pe suprafata celulei, eficienta termodinamica,

distributia spectrala, eficienta in separarea perechilor de purtatori de sarcina sau

conductia materialului din care este construita. De asemenea, orice defect de

structura a materialului se reflecta asupra eficientei.

Din cauza ca aceste marimi sunt dificil de masurat in mod direct, se

utilizeaza substitute pentru a caracteriza celulele, cum ar fi punctul de putere

maxima (abbr. engl. MPP - Maximum Power Point), caracteristica curent-tensiune

(curba I-U), tensiunea la borne in circuit deschis (abbr. Voc), curentul de scurt-

circuit sau factorul de umplere.

In esenta, curba I-U este caracterizata de urmatoarele 3 marimi:

1. Punctul de putere maxima - desemnata drept puterea nominala a unei

celule fotovoltaice, MPP reprezinta punctul pe curba curent-tensiune in care

aceasta functioneaza la putere maxima. Pentru MPP se specifica atat curentul

nominal (IMPP), cat si tensiunea nominala (UMPP).

2. Curentul de scurt-circuit (ISC) - in general, ISC se situeaza cu 5 - 15

procente sub valoarea curentului in punctul MPP. ISC variaza, in primul rand, in

functie de tehnologia folosita pentru constructia celulei, pentru celulele

Page 11: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

10

monocristaline situandu-se in jurul valorii de 3A. O caracteristica importanta a

curentului de scurt-circuit pentru sistemele CPV este faptul ca este liniar-

dependent de iradianta. Astfel, daca iradianta se tripleaza, curentul de asemenea

isi tripleaza valoarea.

3. Tensiunea in circuit deschis (UCD) - reprezinta tensiunea intre bornele

metalice ale celulei cand aceasta nu are o sarcina. Precum ISC, si UCD este

dependenta de materialul din care este fabricata celula, in cazul celor din siliciu

cristalin ajungand la cca. 0.5 - 0.6 V, iar in cazul celor din siliciu amorf variind

intre 0.6 - 0.9 V.

Figura 3.4. Curba I-U generica a unei celule fotovoltaice

Sursa: http://solarprofessional.com

Factorul de umplere (abbr. engl. FF - fill factor) este o marime calitativa

utilizata pentru caracterizarea celulelor solare. In ipoteza unei curbe I-U ideale,

de forma dreptunghiulara, in care punctul de maxima putere se obtine inmultind

valorile curentului de scurt-circuit si a tensiunii de circuit deschis, factorul de

umplere reprezinta abaterea caracteristicii reale de la cea ideala.

Din punct de vedere geometric, factorul de umplere reprezinta raportul

dintre suprafetele formate de cele doua caracteristici in sistemul de axe

ortogonale. Valorea pentru FF este intotdeauna un numar intre 0 si 1 si are

urmatoarea formula de calcul:

FF =PMPP

UCD × ISC=

UMPP × IMPP

UCD × ISC (3.1)

Page 12: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

11

Figura 3.5. Reprezentarea factorului de umplere la

Sursa: http://advanced-energy.com

3.3. Eficienta celulelor fotovoltaice

Eficienta de conversie a celulelor fotovoltaice reprezinta debitul de energie

electrica al acestora in raport cu energia absorbita din radiatia solara incidenta.

Altfel spus, eficienta unei celule reprezinta, in termeni simplisti, proportia de

energie solara din totalul absorbit de catre o celula, ce a fost convertita in

energie electrica. Aceasta se calculeaza impartind puterea electrica de varf a

celulei (exprimata in W) la densitatea de putere a radiatiei incidente in momentul

in care puterea maxima este atinsa (exprimata in W/m2) si la suprafata celulei

(exprimata in m2):

𝜂 = 𝑃𝑚

𝐸 × 𝐴𝑐 (3.2)

In productia de celule fotovoltaice, data fiind dependenta caracteristicilor

electrice ale acestora de temperatura si spectrul radiatiei, eficienta de conversie

este determinata conform unor conditii standardizate de testare (abbr. engl. STC

– Standard Test Conditions). Acestea presupun o temperatura de 25°C cu o

toleranta de ± 2°C, iradianta incidenta de 1000W/m2 si distributia spectrala a

radiatiei aferenta unui indice de masa a aerului AM 1.5.

STC corespund unei zile senine in care Soarele are un unghi de elevatie de

41.81° iar celula este orientata spre acesta, sub un unghi de 37°. In aceste

Page 13: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

12

conditii, o celula cu suprafata de 100cm2 si eficienta de conversie cotata la 20%

va avea o putere electrica de 2W.

Figura 3.6. Eficienta de conversie a celor mai bune celule fotovoltaice

produse la nivel mondial intre 1976 si 2014

Sursa: Greg Wilson and Keith Emery - National Renewable Energy Laboratory (NREL),

Golden, CO

In practica, conditiile enuntate in STC sunt rar intalnite, insa eficienta de

conversie din documentatia tehnica a celulelor este intotdeauna indicata in relatie

cu condiitile standard de test si reprezinta eficienta nominala:

𝜂𝑁𝑂𝑀 = 𝑃𝑀𝑃𝑃 (𝑆𝑇𝐶 )

𝐴 × 1000 𝑊/𝑚2 (3.3)

unde A reprezinta aria celulei.

In plus fata de dependenta de iradianta, eficienta celulelor cristaline este

inver proportionala cu cresterea temperaturii. Astfel, elementele fotovoltaice au

maxima eficienta la temperaturi scazute. Coeficientul de temperatura este

dependent de materialul utilizat, iar in cazul siliciului cristalin, acesta se situeaza

in jurul valorii de -0.0045 (-0.45%) per °C. Considerand densitatea de putere a

radiatiei incidente, precum si distributia spectrala a acesteia, constante, variatia

eficientei celulelor capata urmatoarea forma:

𝛥𝜂 ≅ −0.0045 × (𝑇𝑁𝑂𝑀(𝑆𝑇𝐶) − 𝑇) × 𝜂𝑁𝑂𝑀(𝑆𝑇𝐶) (3.4)

Page 14: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

13

Figura 3.7. Dependenta de temperatura a caracteristicii I-U a celulelor fotovoltaice

Sursa: http://wikimedia.org

Spre exemplu, daca puterea nominala in conditii standard de iradianta si

distributie spectrala a unei celule este de 200W iar temperatura ei este ridicata la

45°C, puterea efectiva atinge 182W. Invers, daca temperatura celulei ar fi

fortata sa scada pana la 5°C, puterea electrica efectiva ar atinge 218W.

3.4. Sensibilitatea spectrala si celulele multi-jonctiune

In functie de materialele constituente si tehnologia de productie folosita,

celulele solare au o eficienta de conversie diferita in functie de culorile din

spectrul vizibil al radiatiei solare absorbite. Sensibilitatea spectrala descrie gama

de lungimi de unda in care o celula are o functionare eficienta.

In timp ce celulele fotovoltaice din siliciu cristalin sunt in mod deosebit

sensibile la lungimi de unda mari, modulele cu film subtire amorf au o absorbtie

optima pentru lungimi de unda medii din spectrul vizibil. Celulele din siliciu

amorf, pe de alta parte, absorb radiatia de frecventa mare mai bine.

In celulele multi-jonctiune (sau multi-strat), mai multe elemente

fotosensibile cu sensibilitati spectrale diferite sunt stivuite pentru a produce un

modul ce acopera o plaja mai larga de lungimi de unda, obtinand o eficienta

sporita in absorbtia radiatiei. In general, aceste celule multi-strat sunt construite

folosind filme subtiri amorfe.

Page 15: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

14

Figura 3.8. Sensibilitatea spectrala a diferitelor materiale

folosite la constructia celulelor fotovoltaice

Sursa: http://greenrhinoenergy.com

Figura 3.9. Sensibilitatea spectrala a unei celule cu 3 straturi

Sursa: Ncouniot - Fraunhofer Institute for Solar Energy Systems

Page 16: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

15

Daca in cazul celulelor cu o singura jonctiune p-n, limita teoretica de

eficienta a conversiei foto-electrice este de 34%, utilizand un numar infinit de

jonctiuni, eficienta de conversie a unui modul fotovoltaic multi-strat poate atinge

87% in conditii de suprairadiere.

La ora actuala, cele mai bune celule experimentale mono-jonctiune din

siliciu cristalin ating eficiente de 25% in conditii STC. In paralel, limita eficientei

pentru celule multi-jonctiune experimentale s-a apropiat de 45%. Insa, un

asemenea randament de conversie atrage dupa sine nu doar o complexitate

extrem de mare si un proces de productie laborios, ci si un cost foarte ridicat

pentru o suprafata de ordinul mm2, ceea ce face astfel de celule imposibil de

produs la scara larga deocamdata.

Totusi, exista si modele de celule comerciale cu doua straturi ce ating

eficiente de cca. 30% in conditii standard de testare, si cca. 40% in conditii de

suprairadiere. Insa pretul ridicat si complexitatea le limiteaza aplicabilitatea la

industrii precum cea aerospatiala, unde raportul dintre eficienta si masa este

deosebit de important.

In cazul aplicatiilor terestre, aceste module sunt utilizate ca receptori in

diverse sisteme fotovoltaice bazate pe concentrarea radiatiei, ceea ce face, de

altfel, chiar subiectul acestei lucrari.

4. Concetratoarele fotovoltaice

4.1. Notiuni introductive

Asa-numitele semicoductoare compuse III-V, materiale bazate pe

elemente din grupele III si V ale tabelului periodic, precum arseniurile de galiu si

indiu, ori fosfurile de galiu si indiu, permit productia celulelor fotovoltaice multi-

jonctiune cu randament de conversie foarte ridicat, mentionate in capitolul

precedent. Dat fiind costul de productie foarte ridicat al acestui tip de module,

ele sunt folosite in sisteme care colecteaza radiatia solara de pe suprafete mari

folsind fie lentile, fie oglinzi, pe care o concentreaza in celule eficiente mici, care

uneori ating suprafete de ordinul milimetrilor patrati, insa in acelasi timp pot

atinge eficiente de peste 30%.

Scopul concentratoarelor solare fotovoltaice este de a reduce semnificativ

costurile de productie ale energiei electrice, inlocuind suprafete intinse de

panouri solare conventionale cu suprafete colectoare bazate pe materiale optice

mult mai ieftine si permitand chiar si un singur element convertor fotoelectric.

In ciuda faptului ca se bazeaza pe un concept simplu si ca a fost subiect de

cercetare inca de la inceputurile industriei fotovoltaice terestre, este surprinzator

de dificil de pus in practica. Cercetarea si dezvoltarea in acest sens s-au orientat,

in mare masura, spre elementele fotosensibile, care la ora actuala au o

Page 17: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

16

raspandire foarte larga si disponibilitate comerciala. Obstacolele tehnice ramase

acum deriva din necesitatea de a controla fluxul puternic de caldura si densitatea

de curent in astfel de sisteme. In plus, exista si obstacole de natura financiara

cauzate de nevoia de mecanisme de urmarire a Soarelui fiabile si rentabile, in

conditiile in care doar radiatia directa poate fi colectata si concentrata.

Figura 4.1. Concentratoare solare (sistem pilot pentru instalatie de 2MW), Mildura Solar

Sursa: http://clean-tech.com.au

Pana de curand, principalele blocaje in piata energiei din surse

regenerabile au fost ca urmare a incompatibilitatii intre costurile de productie si

bugetele consumatorilor. Sistemele de concetrare, care in marea lor majoritate

necesita un astfel de mecanism de urmarire a Soarelui, nu erau adaptate la

nevoile acestei piete, care se adresa, preponderent, consumatorilor din zone

izolate, cu nevoi de consum reduse. Concentratoarele au fost initial menite sa

furnizeze cantitati masive de energie intr-o maniera nepoluanta, regenerabila.

Insa costurile lor ridicate nu puteau concura cu utilizarea de combustibili fosili si

nici macar cu costurile de productie cu generatoare eoliene.

Din fericire, pe masura ce tehnologia a avansat, costurile combustibililor

fosili a crescut iar ingrijorarea referitoare la emisiile de gaze cu efect de sera si a

poluantilor de asemenea, piata fotovoltaicelor a inceput sa se adreseze productiei

de instalatii de mare putere, de uz comunitar sau chiar national, nu doar

utilizatorilor "casnici". Astfel, costul de productie a energiei electrice a scazut

semnificativ in ultimii ani. Daca in 2012 costul per watt in privinta sistemelor cu

mare putere de concentrare (ebbr. engl. HCPV - High Concentration

Photovoltaics) era $3.54, in 2013 acesta a pierdut 25.8%, ajungand la $2.62 pe

watt. In plus, costul productiei de energie folosind asfel de sisteme se

preconizeaza ca va ajunge la $1.59/watt pana la sfarsitul anului 2017.

Page 18: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

17

Figura 4.2. Proiecte CPV in folosinta, constructie si dezvoltare in anul 2011

Sursa: http://greentechmedia.com

4.2. Tipuri de concentratoare

Concentratoarele pot fi impartite in diferite categorii, in functie de

dispozitivul optic folosit pentru a colecta si focaliza radiatia, numarul de axe

pentru mecanismul de orientare dupa Soare, tipul acestuia s.a.m.d.

4.2.1. Tipuri de dispozitive optice

Majoritatea concentratoarelor utilizeaza fie lentile refractive, fie oglinzi

parabolice ori jgheaburi reflectorizante. Lentilele conventionale de peste 5 cm

diametru ar fie prea groase si costisitor de produs. Prin urmare, lentilele Fresnel

sunt de obicei utilizate.

Lentila Fresnel poate fi considerata a fi o lentila standard convexa a carei

curbura a fost "rupta" in diferite puncte, toate elementele rezultate fiind

convertite intr-o lentila cu un profil mult mai subtire. Astfel de lentile pot avea fie

o focalizare punctiforma, caz in care simetria lor este una circulara, fie focalizare

liniara, caz in care lentila are o sectiune transversala identica de-a lungul axei.

Page 19: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

18

Figura 4.3. Descompunerea unei lentile clasice intr-o lentila Fresnel

Sursa: http://wikimedia.org

Concentratoarele care utilizeaza lentile Fresnel cu focalizare punctiforma

au, de obicei, cate o celula fotovoltaica in spatele fiecarei lentile, pe cand cele cu

lentile liniare au pe axa focala o serie de celule.

Materialul utilizat de obicei pentru astfel de lentile este plasticul acrilic

(polimetilmetacrilat, abbr. PMMA), care s-a dovedit ca poate fi usor modelat si

este, de asemenea, rezistent la intemperii. Totusi, data fiind durabilitatea relativ

limitata a PMMA, se incearca si productia unor variante din sticla 100% sau

atasarea lentilei de PMMA la un strat de sticla, pentru o mai buna rezistenta in

timp.

Figura 4.4. Lentila Fresnel fabricata din polimetilmetacrilat (PMMA)

Sursa: http://ucr.edu (University of California Riverside)

Page 20: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

19

Dispozitivele concentratoare care utilizeaza lentilele Fresnel circulare sunt

de obicei constituite din multiple module independente de dimensiuni mici, care

contin o celula fotovoltaica si o lentila. Aceste module pot fi apoi compuse in

panouri de mari dimensiuni, precum in figura urmatoare:

Figura 4.5. Principiul de functionare pentru sistemele FLATCON® (FRAUNHOFER):

O lentilă Fresnel concentrează lumina soarelui pe o celulă solara mică de înaltă eficiență.

Sursa: http://fraunhofer.de

O alternativa la lentilele refractive sunt oglinzile parabolice. Dupa cum bine

se cunoaste, o suprafata reflectorizanta de forma unei parabole va focaliza toate

razele incidente paralele cu axa de simetrie a parabolei, intr-un punct focal.

Precum lentilele, oglinzile pot avea fie o focalizare punctiforma, caz in care

simetria lor este una circulara, fie focalizare liniara, caz in care lentila are o

sectiune transversala identica de-a lungul axei.

4.2.2. Coeficientul de concentrare

Coeficientul de concentrare este o notiune vaga, drept urmare ea are

multiple definitii la ora actuala, in functie de uz. Cea mai des intalnita este de

coeficient de concentrare geometrica. Acesta reprezinta raportul dintre suprafata

colectoare, fie oglinda reflectorizanta, fie lentila refractiva, si suprafata activa a

celulei fotovoltaice, adica suprafata care trebuie iluminata. O alta masura de

calcul al coeficientului utilizata este intensitatea radiatiei concentrata, sau

numarul de sori. Luand in calcul faptul ca densitatea medie de putere a radiatiei

solare, conform STC, este de 0.1W/cm2, numarul de sori reprezinta raportul

dintre valoarea densitatii radiatiei focalizate pe suprafata activa a celulei si

Page 21: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

20

0.1W/cm2. Spre exemplu, daca densitatea de putere a radiatiei focalizate de o

oglinda cu suprafata de 200cm2 pe suprafata activa a unei celule cu suprafata de

2cm2 este de 10W/m2, atunci coeficientul de concentrare geometrica este de

100, iar amplificarea in intensitate este de 50 de sori.

In functie de coeficientul de concentrare in intensitate, exista 3 categorii

principale de concentratoare.

Sistemele pv cu concentrare redusa (abbr. engl. LCPV - Low Concentration

Photovoltaics) sunt sisteme cu un coeficient de concentrare intre 2 si 100 de sori.

Din ratiuni economice, la acest tip de instalatii se folosesc in general module

fotovoltaice conventionale, din siliciu cristalin. De asemenea, la o astfel de

amplificare, fluxul de caldura este suficient de scazut incat sa nu fie nevoie de o

racire activa a receptorului. In plus, dat fiind faptul ca dispozitivele optice cu

coeficient mic de concentrare au un unghi de aceptanta mare pentru radiatia

incidenta, in multe cazuri astfel de sisteme nici nu necesita o urmarire activa a

Soarelui.

Sistemele cu amplificare medie (abbr. engl. MCPV - Medium Concentration

Photovoltaics) se situeaza la valori ale concentrarii de 100-300 sori. In acest caz,

spre deosebire de precedentul tip, este nevoie de o urmarire activa a Soarelui,

precum si de racirea receptorului pentru a preveni distrugerea, ceea ce le creste

semnificativ complexitatea.

Concentratoarele cu coeficient de concentrare mare (abbr. engl. HCPV -

High Concentration Photovoltaics) folosesc dispozitive optice ce forteaza

intensitatea radiatiei la nivelul receptorului pana la 1000 de sori si peste. In acest

caz, celulele au nevoie de disipatoare de caldura de mare complexitate, pentru a

preveni scaderea performantelor electrice, scaderea drastica a duratei de viata si

chiar distrugerea. Insa mecanismul de racire trebuie sa fie unul pasiv, pentru a

nu diminua si mai mult eficienta acestor sisteme si a le face nerentabil din punct

de vedere financiar. Celulele multi-strat sunt preferate in dauna celor cu o

singura jonctiune p-n, intrucat au o eficienta intrinseca mult mai ridicata si un

coeficient de temperatura mai mic, ceea ce face randamentul de conversie sa

scada mai greu odata cu cresterea temperaturii.

4.2.3. Tipuri de mecanisme active de urmarire a Soarelui

Concentratoarele ce utilizeaza unitati optice de colectare cu punct de

focalizare necesita, in general, ca urmarirea Soarelui sa aiba loc pe doua axe. Din

punct de vedere mecanic, urmarirea pe doua axe este mai complexa decat cea

pe o singura axa. Dar avantajul dat de faptul ca acest tip de sisteme sunt

capabile sa atinga coeficienti de amplificare foarte mari, implica un cost mai

redus pentru receptorul fotovoltaic.

Jgheaburile reflectorizante au nevoie de urmarire pe o singura axa, astfel

incat lumina sa fie focalizata de-a lungul liniei de focalizare. In particular

concentratoarele cu lentile liniare Fresnel sufera de defect al imaginii pronuntat

cand razele Soarelui nu cad perpendicular pe axa longitudinala a acestora. In

Page 22: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

21

esenta, distanta focala descreste mult pe masura ce unghiul de incidenta al

razelor se indeparteaza de normala pe planul lentilei, ceea ce limiteaza utilizarea

lentilelor Fresnel la sisteme cu urmarire pe doua axe.

Exista 3 tipuri de trackere cu 2 axe des intalnite.

Modelul cu piedestal este in general utilizat la concentratoarele plane, insa

nu numai. Piedestalul incorporeaza o transmisie mecanica ce permite urmarirea

Soarelui de-a lungul unei axe verticale (elevatia) si a uneia orizontale (azimutul).

Avantajul major al acestui tip de mecanism consta in simplitatea instalarii, care

presupune saparea unei singure gropi inguste, montarea piedestalului si

umplerea gropii cu ciment. Pe de alta parte, dezavantajul in aceste cazuri este

faptul ca vantul cauzeaza cupluri mecanice mari ce se transmit integral la

unitatea de transmisie, facand necesara utilizarea unei transmisii de mare

rezistenta. Exemple de astfel de sisteme in figura urmatoare si in figura 4.1.

Figura 4.6. Sisteme concentratoare FLATCON® (FRAUNHOFER)

cu mecanism de urmarire biaxiala pe piedestal

Sursa: http://fraunhofer.de

Un alt tip de model este cel cu inclinare si rasucire, in care forta exercitata

de vant asupra angrenajelor este considerabil diminuata fata de modelul cu

piedestal. Dezavantajul in cazul acestui tip, insa, conta in numarul ridicat de

elemente rotative si de legatura. Obtinerea rigiditatii necesare de-a lungul axei

de rotatie poate necesita un suport orizontal cu suprafata mare. De asemenea,

structura are nevoie de multiple fundatii ce trebuie aliniate, ceea ce complica

instalarea. Axa de rotatie se aliniaza in mod obisnuit cu axa nord-sud, pentru a

minimiza umbrirea cauzata de sistemele adiacente de-a lungul axelor de rotatie.

Trackerele mono-axa sunt concepute fie cu o axa de rotatie orizontala, fie

cu o axa polara de rotatie, precum sistemul din figura 4.8. Cele cu axa orizontala

asigura o suprafata crescuta per unitate, prin comparatie cu cele cu axa de

rotatie polara, dat fiind fenomenul de umbrire. De cele mai multe ori, aceste

mecanisme de urmarire se utilizeaza la concentratoare cu jgheaburi

reflectorizante. Dezavantajul in aceste cazuri este ca radiatia incidenta poate

cadea sub un unghi mic, indeosebi iarna pentru cele ce au o orientare N-S pentru

Page 23: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

22

axa de rotatie, ceea ce cauzeaza deplasarea imaginii de-a lungul liniei focale si

implicit, pierderi de energie. Sistemele cu axa polara acopera aceste neajunsuri,

insa cu costul unei complexitati mai mari si a reducerii suprafetei colectoare, in

conditiile in care acestea pot umbri unitatile adiacente. Din aceasta cauza,

sistemele cu axa orizontala sunt in general preferate.

Figura 4.7. Concentratoare solare cu mecanism de urmarire

mono-axa cu axa de rotatie orizontala

Sursa: http://greentechmedia.com

Figura 4.8. Concentratoare solare termice cu mecanism de urmarire

mono-axa cu axa polara

Sursa: http://volker-quaschning.de

Page 24: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

23

5. Realizarea practica a unui concetrator cu receptor

fotovoltaic

5.1. Introducere

Capitolul curent trateaza constructia unui concentrator fotovoltaic cu

coeficient de concentrare redus, de uz didactic. Acesta utilizeaza un mecanism

activ de urmarire a Soarelui pe doua axe si o lentila refractiva Fresnel cu punct

focal in calitate de colector. Utilizarea unei lentile Fresnel, spre deosebire de

oglinda parabobilca, implica o complexitate redusa a dispozitivului din punct de

vedere mecanic, ceea ce faciliteaza implementarea. Receptorul este o celula

monocristalina conventionala, cu o singura jonctiune p-n.

Scopul principal este de a realiza o instalatie ce permite monitorizarea si

analiza comparativa a fenomenelor termo-electrice ce au loc atat in conditii de

suprairadiere a unei celule fotovoltaice, cat si in conditii de iradiere normale. Cu

alte cuvinte, sistemul trebuie sa includa 2 celule independente, expuse la radiatie

solara focalizata si respectiv nefocalizata, a caror caracteristici electrice si

termice sa fie urmarite simultan, pentru a putea determina modificarile de

performanta in cazul celei suprairadiate.

Obiectivul secundar al acestei lucrari a fost acela de a identifica, proiecta si

implementa toate subsistemele mecanice si electronice necesare pentru un astfel

de dispozitiv, atat la nivel hardware cat si la nivel software.

5.2. Subsisteme

Luand in considerare multitudinea de functii pe care sistemul trebuie sa le

indeplineasca pentru a-si atinge scopul mentionat, o separare a acestora in

module independente este necesara. Astfel, fiecare modul functional poate fi usor

proiectat, implementat si programat, fiind bazat pe un singur microcontroller. In

acest sens, date fiind caracteristicile tehnice, simplitatea, rentabilitatea si

adaptabilitatea lor (a se vedea raspandirea lor in aplicatii de electronica digitala),

optiunea a fost pentru controllere Atmel ATmega16 si ATmega32, in capsula DIP.

Alegerea unui model sau al altuia se bazeaza pe necesarul de memorie de

program al fiecarui subsistem.

Utilizarea acestor tipuri de microcontrollere faciliteaza transferul de date

intre subsistemele concentratorului, avand in vedere ca amandoua integrate au

implementat un protocol de comunicare seriala simplu, prin 2 fire (abbr. engl.

TWI - Two Wire Serial Interface). Transferul se face de maniera master-slave,

comunicarea putand fi initiata de catre oricare dintre integratele conectate la

magistrale. Astfel, este posibil ca in caz de urgenta, comenzile sa poata fi initiate

de oricare modul ce sesizeaza o eroare sau potentiala avarie si sa transmita o

comanda direct catre modulul care poate solutiona problema. Spre exemplu, in

situatia in care citirea de la senzorul de temperatura ce monitorizeaza celula

Page 25: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

24

suprairadiata depaseste o valoare de alerta, controllerul specializat in achizitia de

date poate comanda in mod direct controllerul motoarelor, care la randul sau va

muta lentila dinspre Soare, pentru a evita distrugerea celulei.

Figura 5.1. Schema bloc a microcontrollerelor ATmega16 si ATmega32 in capsula DIP

Sursa: http://atmel.com

5.2.1. Modulul de comanda

Acest modul are multiple roluri, insa in masura egala importante pentru

buna functionare a instalatiei.

In primul rand, el are functia de interfata cu operatorul uman, la

microcontrollerul de pe placa de circuit fiind conectate o tastatura cu matrice 4x4

si un display. Acestea permit introducerea datelor initiale pe baza carora

concentratorul se initializeaza - pozitia geografica, fusul orar, data si ora (vezi

figura 5.4) - precum si rularea de comenzi in timpul functionarii, prin coduri pre-

definite, comenzi care fie pot altera functionarea dispozitivului, fie pot fi folosite

pentru a afisa in timp real date referitoare la aceasta, cum ar fi ora curenta sau

valori citite de la senzori. Exemple de comenzi pentru alterarea functionarii

sistemului pot fi:

- reorientare fortata spre pozitia de referinta (0° elevatie, 180° azimut)

- reinitializare

- oprire fortata

- activare transmisie date prin UART (inactiva implicit)

Page 26: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

25

Figura 5.2. Modulul de comanda al concentratorului

Figura 5.3. Modulul de comanda al concentratorului (spate)

In al doilea rand, modulul de comanda are rolul de a agrega si stoca date

despre intreg sistemul, la microcontroller fiind conectat un card de memorie MMC

(poate fi usor substituit cu unul SD, cu minime modificari la nivel de cod). Datele

sunt stocate pe card sub forma unor seturi in format unic, cu o frecventa cat mai

ridicata pentru a putea fi utilizate ulterior pentru generare de grafice. Spre

exemplu, pentru relevanta, un set nou poate fi stocat la fiecare 3-5 secunde.

Seturile de date contin atat citirile de la senzorii termici si fotosensibili ai

Page 27: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

26

concentratorului, cat si valorile parametrilor electrici (ex. U, ISC) ai celor doua

celule in functionare, pozitia aparenta a Soarelui la momentul curent (elevatie si

azimut), pozitia pe glob, data si momentul zilei.

Figura 5.4. Initializarea concentratorului

Mentinerea unitatii optice in permanenta aliniere cu Soarele pentru

concentratoarele fotovoltaice se poate face in doua moduri, unul dintre ele

bazandu-se pe utilizarea unei matrici de senzori fotosensibili. Insa, data fiind

precizia potential mica a pozitionarii facuta astfel si a instabilitatii sistemului in

caz de cer partial acoperit, o optiune preferata este utilizarea unui algoritm de

calcul direct al pozitiei Soarelui.

Pozitia aparenta a Soarelui reprezinta o pereche de unghiuri, ambele fiind

relative la pozitia pe Pamant a observatorului, ori in cazul de fata, a

concentratorului fotovoltaic (vezi figura 5.5), precum si a datei din an si a

momentului zilei. Elevatia, ale carei valori sunt in intervalul 0°-90° (valorile

negative semnifica faptul ca Soarele este sub orizont), reprezinta unghiul dintre

planul orizontal si verticala pe acest plan, denumita zenit. In conditiile in care

orizontul reprezinta, din punct de vedere geometric, un cerc in in planul orizontal

in care nordul geografic se situeaza la 0°/360°, estul la 90°, sudul la 180° iar

vestul la 270°, azimutul reprezinta unghiul format intre originea acestui cercu,

nordul geografic si segmentul de dreapta dintre origine si centrul Soarelui.

Page 28: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

27

Figura 5.5. Reprezentare grafica a pozitiei Soarelui pe cer

Sursa: http://beckhoff.com

Rularea programului bazat pe un astfel de algoritm revine, de asemenea,

modulului de comanda. Acesta utilizeaza datele initial introduse de operatorul

uman pentru a calcula, odata la 30 de secunde, o noua pereche de valori pe care

o transmite modulului de pozitionare.

Ecuatiile ce compun algoritmul de pozitionare implementat in modulul de

comanda sunt elaborate de Keith Burnett (http://stargazing.net/kepler/sun.html)

si se bazeaza pe Almanahul Astronomic publicat de United States Naval

Observatory (USNO) in 1996, coordonatele rezultate avand o precizie de cca.

0.01° in intervalul 1950-2050, ceea ce este suficient pentru majoritatea

aplicatiilor terestre fotovoltaice ce necesita un sistem de urmarire activa a

Soarelui.

Dincolo de cele 3 functii de baza, modulul de comanda beneficiaza de

alimentare din dubla sursa (USB - 5V stabilizata - si mufa adaptor, cu regulator

de tensiune), si are 4 seturi de conectori prin care pot fi alimentate direct

celelalte subsisteme ale concentratorului.

De asemenea, controllerul poate utiliza 2 interfete de

programare/comunicare, una prin port paralel si alta USB. Interfata de

comunicare paralela, din cauza vitezei extrem de reduse de transfer, este

utilizata in general o singura data, pentru a incarca un bootloader ce

implementeaza in protocol de transfer USB si permite ca programarile ulterioare

sa se efectueze prin aceasta interfata seriala.

Pentru comunicare intre concentratorul solar si calculator, placa de circuit

incorporeaza si o interfata de comunicare seriala baza pe protocolul RS232, ce

permite crearea de diverse aplicatii de monitorizare in timp real. Spre exemplu,

utilizand MATLAB, se pot genera grafice pe care se pot urmari in paralel valorile

citite de la senzorii termici si fotorezistori, precum si pozitia curenta a Soarelui.

Page 29: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

28

5.2.2. Mecanismul de pozitionare

Intrucat doar radiatia directa poate fi focalizata asupra receptorului

fotovoltaic, mentinerea in permanenta aliniere cu Soarele a acesteia este

necesara. Astfel, instalatia utilizeaza un sistem de pozitionare bi-axial. Pentru

precizia pozitionarii si pentru a evita un mecanism de reglare activa, solutia

tehnica adoptata sunt 2 motoare pas-cu-pas bipolare. Spre deosebire de

motoarele unipolare, acestea pot debita un cuplu de forte mai mare, ceea ce le

face utile si pentru eventualitatea in care lentila refractiva ar fi inlocuita de o

oglinda parabolica.

Din cauza masei foarte reduse (sunt produse din plastic) a lentitelor

Fresnel, implementarea mecanica a sistemului de orientare poate fi mult redus in

complexitate. Astfel, un disc de lemn fixat prin intermediul unui rulment pe un ax

metalic, angrenat de catre unul dintre motoare printr-o curea de cauciuc si un

colier dintat montat pe axu motorului, este suficient pentru orientarea la azimut

a concentratorului. Pentru urmarirea pe verticala poate fi utilizat un mecanism

hibrid intre cel utilizat pentru miscarea pe orizontala si o parghie.

Rapoartele de transmisie pot fi calculate geometric in cel mai simplu caz,

impartind diametrul axului motoarelor la diametrele celor doua discuri din

angrenaje, insa pentru o mai buna precizie, se pot face teste de rotatie si

masurate deplasarile unghiulare pentru aceleasi doua discuri, la un numar de

roatii complete ale celor doua motoare. Astfel, se determina numarul de pasi pe

care fiecare motor trebuie sa le efectueze pentru a deplasa lentila cu 1° pe

fiecare axa. Pentru usurinta, respectivele constante sunt apoi direct incarcate in

programul pentru acest modul si reprezinta valorile implicite, insa modulul de

control poate permite si introducerea lor de la tastatura, la initializare.

Figura 5.6. Motoarele pas-cu-pas utilizate pentru sistemul de pozitionare

dupa Soare (QSH-4218-35-10-027, Trinamic)

Sursa: http://octopart.com

Page 30: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

29

Complexitatea controlului din punct de vedere electric al motoarelor pas-

cu-pas bipolare face necesara utilizarea unor drivere integrate special concepute

pentru asa ceva, ce utilizeaza punti H de tranzistoare. O alegere buna in acest

sens poate fi modelul L6208N (capsula DIP) de la STMicroelectronics, ce

incorporeaza toate circuitele necesare conducerii. Driverele se conecteaza la

microcontrollerul de pe placa de circuit a modulului, care furnizeaza semnale

logice pentru controlul sensului de rotatie, vitezei si puterii. Schema de aplicatie

tipica pentru un astfel de controller, utilizata, de altfe, si in cazul acestui

concentrator, este in figura 5.7:

Figura 5.7. Aplicatie tipica de control pentru motor pas-cu-pas

bipolar utilizand driver L6208N (STMicroelectronics)

Sursa: http L6208N datasheet

Pentru determinarea pozitiei de referinta (i.e. elevatie 0°, azimut 0°),

modulului ii sunt atasate (fizic) doua intrerupatoare simple, care la instalarea

dispozitivului trebuie aliniate cu nordul geografic (azimut 0°) si respectiv

orizontul (elevatie 0°). In etapa initializarii, motoarele efectueaza rotatii continue

pana cand starea logica a celor doua intrerupatoare se schimba din 0 in 1, iar

pozitia respectiva se inregistreaza drept pozitie de referinta.

La un interval de 30-60 de secunda, modulului pentru pozitionare ii sunt

furnizate, de catre modulul de control, un set de valori reprezentand variatiile

elevatiei si azimutului Soarelui (ex: -0.184°, +0.398°). Pe baza acestora si a

raporturilor de transmisie se determina numarul de pasi pe care fiecare motor

trebuie sa ii efectueze pentru alinere, valori care apoi apoi afecteaza semnalele

logice ce trebuie generate de microcontroller si transmise driverelor motoarelor.

Page 31: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

30

Singura situatie in care transmisia de valori nu este luata in calcul

intervine cand senzorul de temperatura atasat receptorului fotovoltaic indica

depasirea pragului critic. In acest caz, sistemul se redirectioneaza spre pozitia de

referinta, in care ramane pana la coborarea temperaturii sub un prag inferior

celui critic, pentru a preveni distrugerea celulei. Pana cand acest eveniment are

loc, concentratorul nu isi schimba pozitia, chiar daca modulul de comanda

continua sa furnizeze noi seturi de valori la intervale regulate.

5.2.3. Achizitia de date prin senzori

Modulul pentru achizitii de date este specializat in colectarea de date

referitoate la functionarea concentratorului prin intermediul senzorilor termici si

fotosensibili.

Senzorii termici sunt 3 la numar, ei avand rol in urmarirea temperaturii

celor doua celule si a temperaturii aerului la umbra. Valorile furnizate de catre cel

care monitorizeaza celula ce functioneaza in regim normal (fara supraradiere) si

de catre cel care monitorizeaza aerul au rol pur didactic. Pe de alta parte,

senzorul care monitorizeaza celula suprairadiata o functie secundara vitala

pentru buna functionare a sistemului. Valorile citite de la acesta, in conditiile in

care anumite praguri de siguranta sunt depasite, determina modulul curent sa

comande pornirea sau oprirea ventilatorului atasat la disipatorul de caldura al

receptorului, iar in cazul extrem in care pragul critic este dapasit, sa comande

chiar o reorientare de urgenta spre pozitia de referinta. Astfel, prin oprirea

iradierii se previn usoare deteriorari si implicit, scaderea performantelor celulei,

sau chiar distrugerea completa, precum in imaginea urmatoare:

Figura 5.5. Celula fotovoltaica distrusa prin supraincalzire

Sursa: http://youtube.com

Senzorii fotosensibili sunt 2 la numar. Unul dintre ei, fiind indreptat catre

Soare, masoara intensitatea radiatiei directe. Al doilea, atasat de disipatorul de

caldura al receptorului fotovoltaic, masoara intensitatea radiatiei concentrate pe

suprafata activa a acestuia. De mentionat este ca acest tip de fotorezistori este

Page 32: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

31

susceptibil la doar o mica parte a spectrului la care celulele sunt sensibile. Totusi,

din cauza ca intensitatea radiatiei pentru toate lungimile de unda

creste/descreste proportional cu modificarea elevatiei aparente a Soarelui, ei

sunt suficienti pentru analiza dependintei parametrilor celulelor, de factori

precum intensitatea radiatiei concentrate sau neconcentrare, sau temperatura.

Cu 8 intrari pentru semnale analogice, un singur microcontroller

ATmega16 este suficient pentru monitoriza toti cei 5 senzori utilizati. Periodic,

acest modul primeste o cerere pentru un pachet de date reprezentand ultimele

valori citite, de la modulul de comanda.

Pentru usurinta, acest modul poate implementa, de asemenea, controlul

pentru ventilatorul atasat disipatorului de caldura de pe receptor. Intrucat

senzorul de temperatura poate indica cel putin 2 praguri de siguranta inferioare

celui critic, care atins determina repozitionarea sistemului, viteza ventilatorului

trebuie de asemenea sa aiba multiple valori care sa corespunda acestor praguri

de siguranta. Ea este modificata in functie de valoarea temperaturii citite.

6. CONCLUZII

Odata cu avansul tehnologiei in sfera modulelor fotovoltaice, a dezvoltarii

unor celule cu randamente de conversie ce vor atinge, si posibil chiar depasi

pragul de 50%, utilizarea concentratoarelor in instalatii de mare putere poate

deveni curand alternativa principala la combustibilii fosili pentru productia de

energie electrica de uz casnic si industrial deopotriva.

In conditiile in care la nivelul intregului glob erau in functiune sau in

decurs de proiectare si constructie instalatii concentratoare cu o putere totala de

359MW, costurile de productie sunt in continuare singurul factor ce determina

cresterea vitezei cu care acest tip de sistem se raspandesc.

Pentru constructia unui astfel de dizpozitiv de uz didactic in care

fenomenele de reflexie, refractie, absorbtie sau deviere ale radiatiei solare nu

sunt o poblema decisiva pentru alegerea intre lentile refractive sau oglinzi

parabolice, recomandata este intotdeauna lentila refractiva, intrucat masa redusa

si rezistenta o fac usor de integrat intr-un mecanism de urmarire a Soarelui.

De asemenea, in conditiile in care precizia in optimizarea puterii debitate

de o celula fotovoltaica folosita ca receptor nu constituie un scop in sine, iar

tensiunea electrica mica (cca. 0.55V) e asemenea, celulele mono-jonctiune din

siliciu cristalin sunt o solutie buna, intrucat au o eficienta de conversie ridicata.

Daca, insa, o tensiune mai ridicata este de preferat, celulele din siliciu amorf sunt

o solutie mai buna, intrucat in circuit deschis, tensiunea la bornele acestora

poate atinge 0.9V. Suprairadiate, tensiunea creste mai vizibil decat in cazul

celulelor din siliciu cristalin.

Page 33: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

32

7. ANEXA A. Program modul de comanda

Codul din prezenta anexa face posibila utilizarea tastaturii si a display-ului

din modulul de comanda, pentru a introduce datele initiale cu privire la pozitia pe

glob a concentratorului, a datei si a momentului zilei. Odata initializat, sistemul

calculeaza pozitia aparenta a Soarelui la interval de o secunda si debiteaza cele

doua unghiuri pe display, conform figurii 5.4.

// #define UART_BAUD_RATE 9600

// #define UART_BAUD_CALC ((F_OSC/16/UART_BAUD_RATE)-1)

#define F_CPU 16000000 // 16 MHz; must be defined for use with the _delay_ms()

function

#define nop() __asm__ __volatile__("nop")

#include <stdlib.h>

#include <stdbool.h>

#include <stdio.h>

#include <string.h>

#include <ctype.h>

#include <avr/io.h>

#include <avr/interrupt.h>

#include <math.h>

#include <util/delay.h>

/**

* LCD signal lines definitions (see "LCD Specifications with Instructions

Table.pdf" for details)

*/

#define LCD_DATA_PORT PORTA

#define LCD_CTRL_PORT PORTD

#define LCD_DATA_DDR DDRA

#define LCD_CTRL_DDR DDRD

#define LCD_RS PORTD4 // "Register Select" signal line

#define LCD_RW PORTD5 // "Read/Write" signal line

#define LCD_EN PORTD6 // "Enable" signal line

/**

* LCD commands definitions (see "LCD Specifications with Instructions

Table.pdf" for details)

*/

#define LCD_ON_1 0x0C // (0b00001100) Turn on power to display: No

cursor, No blink

#define LCD_ON_2 0x0E // (0b00001110) Turn on power to display: With

cursor, No blink

#define LCD_ON_3 0x0F // (0b00001111) Turn on power to display: With

cursor, With blink

#define LCD_SETUP 0x38 // (0b00111000) Set to 2 character lines, 8

bith data length mode, font type 5x8

#define LCD_CLEAR 0x01 // (0b00000001) Clear entire display

#define LCD_WRITE_TO_LINE1 0x80 // (0b10000000) Write to display line 1

#define LCD_WRITE_TO_LINE2 0xC0 // (0b11000000) Write to display line 2

#define LCD_CURSOR_LEFT 0x10 // (0b00010000) Move cursor to the left by 1

position

Page 34: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

33

#define LCD_CURSOR_RIGHT 0x14 // (0b00010100) Move cursor to the right by 1

position

#define LCD_CURSOR_RETURN 0x02 // (0b00000010) Return the cursor to its

original position

/**

* << KeyPad to uController connections >>

*

* KeyPad column pins are set up as outputs, while row pins

* are inputs and are used to read the state of the keys.

* Pull-Up resistors on the input pins MUST be enabled.

*

* COLUMN 1 - PORTB0

* COLUMN 2 - PORTB1

* COLUMN 3 - PORTB2

* COLUMN 4 - PORTB3

*

* ROW 1 - PORTC4

* ROW 2 - PORTC5

* ROW 3 - PORTC6

* ROW 4 - PORTC7

*/

// Keypad functional keys definitions

#define NO_KEY ' '

#define KEY_INSERT '*'

#define KEY_BKSP 'A'

#define KEY_PLUS '+' // B

#define KEY_MINUS '-' // C

#define KEY_ENTER 'D'

#define KEY_DOT '.' // '#'

// System states

#define SYS_IDLE 0x00

#define SYS_ACCEPT_LAT 0x01

#define SYS_ACCEPT_LNG 0x02

#define SYS_ACCEPT_TZ 0x03

#define SYS_ACCEPT_YEAR 0x04

#define SYS_ACCEPT_MONTH 0x05

#define SYS_ACCEPT_DAY 0x06

#define SYS_ACCEPT_HOUR 0x07

#define SYS_ACCEPT_MINUTE 0x08

#define SYS_ACCEPT_SECOND 0x09

#define SYS_RUNNING 0x0A

// Misc

#define INPUT_BUFFER_MAX_LEN 12 // the maximum length allowed for the

keypad input string

#define CALC_INTERVAL 3 // frequency with which to update the

Sun's position (expressed in seconds)

// Global variables declaration

char lastKey = NO_KEY; // the last key that was pressed on the

keypad

char sysState = 0x00; // current system state; default: IDLE

(code 0x00);

Page 35: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

34

char inputBuffer[12]; // keypad input buffer, accepts max

length of 12 characters (for lat/lng)

int8_t inputBufferPointer = -1;

uint16_t year;

uint8_t month;

uint8_t day;

uint8_t hour;

uint8_t minute;

uint8_t second;

uint8_t tz; // time zone (+-1 hour for each 15 degrees

longitude, relative to GMT); Romania is GMT+2

double lat;

double lng;

double elevation;

double azimuth;

volatile uint16_t timerCounter = 0;

uint16_t timerCounterLimit = 61 * CALC_INTERVAL; // ~61 cycles per second;

61*30 means once every 30 seconds

// Functions declaration

void initTimer();

void ledInit();

void ledOn();

void ledOff();

void ledBlink(int);

void lcdInit(char);

void lcdClear();

void lcdPutCommand(char);

void lcdPutChar(char);

void lcdWriteString(char, char, char *);

void lcdWriteSystemStateHeader(char);

void lcdWriteFloat(char, char, double);

void lcdGoToXY(char, char);

void keypadInit ();

char getPressedKey();

bool isStableKeyInput(char, char);

bool isKeyPressed();

bool isNumberComponent(char);

//void concat(char *a, char *b, char *res);

void delay_ms(uint16_t);

void readKeypadInput();

void storeInputBufferValue(char);

bool endOfMonth();

void updateTime();

void setSunPosition();

void outputSunPosition();

/**

* Timer counter overflow - interrupt sequence routine

*/

ISR(TIMER0_OVF_vect) {

timerCounter++;

if (timerCounter == timerCounterLimit) {

PORTD ^= (1<<PORTD7);

Page 36: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

35

timerCounter = 0;

updateTime();

setSunPosition();

outputSunPosition();

}

}

// Main function body

int main(void) {

ledInit();

lcdInit(LCD_ON_3);

keypadInit();

// Clear the display and show a default message

lcdWriteSystemStateHeader(SYS_IDLE);

sei();

while(1) {

if (isKeyPressed()) {

lastKey = getPressedKey();

// System is IDLE and is awaiting the "INSERT" command

if (sysState == SYS_IDLE) {

if (lastKey == KEY_INSERT) {

sysState = 0x01;

lcdWriteSystemStateHeader(sysState);

}

}

// System state indicates accepting input params

else if (sysState == SYS_ACCEPT_LAT || sysState == SYS_ACCEPT_LNG

|| sysState == SYS_ACCEPT_TZ || sysState == SYS_ACCEPT_YEAR || sysState ==

SYS_ACCEPT_MONTH || sysState == SYS_ACCEPT_DAY || sysState == SYS_ACCEPT_HOUR

|| sysState == SYS_ACCEPT_MINUTE || sysState == SYS_ACCEPT_SECOND) {

if (lastKey == KEY_ENTER) {

storeInputBufferValue(sysState);

} else {

readKeypadInput();

}

}

// else if (sysState == SYS_RUNNING) {

// }

}

}

return 0;

}

void initTimer() {

Page 37: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

36

// Clock prescaler = F_OSC / 1024

TCCR0 |= (1 << CS02) | (1 << CS00); // Timer clock signal, hence timer

counter increment is now set to 15.625 Hz

// Enable interrupt on timer counter overflow event

TIMSK |= (1 << TOIE0); // Timer counter will overflow approx. 15625/

256 = 61.03515625 times per second

// Initialize counter registry

TCNT0 = 0x00; // max values is 255

}

/**

* Disable timer counter overflow interrupt

*/

void stopTimer() {

TIMSK |= (0 << TOIE0);

}

/**

* Sets the DDR bit associated with the LED to "high" in order to set the

* LED as an output device. Leaves the remaining bits of DDRD unchanged.

*/

void ledInit () {

DDRD |= (1<<DDD7);

ledOff();

}

/**

* Sets the PORT register bit associated with the LED to "low", in order to

turn off the LED.

*/

void ledOff () {

PORTD &= ~(1<<PORTD7);

}

/**

* Sets the PORT register bit associated with the LED to "high", in order to

turn off the LED.

*/

void ledOn () {

PORTD |= (1<<PORTD7);

}

void ledBlink(int duration) {

ledOn();

delay_ms(duration);

ledOff();

}

/**

* Extends the '_delay_ms()' function by allowing time delays longer than

4194.24 ms.

Page 38: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

37

* The maximal possible delay with '_delay_ms()' is 262.14 ms / F_CPU in MHz

* (F_CPU == 16 MHz, defined in the program header)

*

* @param uint16_t ms The time period by which to delay code execution,

expressed in miliseconds

*/

void delay_ms (uint16_t ms) {

/*uint16_t maxDelay = 4000; // rounded from 4194.24 for code

simplification reasons

char delayCycles = ms / maxDelay;

if (ms <= maxDelay) {

_delay_ms(ms);

}

else {

ms = ms - (delayCycles * maxDelay);

do {

_delay_ms(maxDelay);

delayCycles--;

} while (delayCycles > 0);

_delay_ms(ms);

}*/

while (ms) {

_delay_ms(1);

ms--;

}

}

/**

* Concatenates two strings into one

*

* @param pointer Pointer to start of first string

* @param pointer Pointer to start of first string

* @param pointer Pointer to start of resulting string

*/

// void concat (char *a, char *b, char *res) {

// sprintf(res, "%s%s", a, b);

//}

/**

* Initialize LCD

*/

void lcdInit (char startupCommand) {

LCD_DATA_DDR = 0xFF; // Set LCD data lines as outputs from corresponding

DDR

LCD_DATA_PORT = 0x00;

LCD_CTRL_DDR |= 0x70; // Set LCD control lines as outputs from

corresponding DDR

LCD_CTRL_PORT = (LCD_CTRL_PORT & 0x8F) | 0x50; // LCD_EN = 1, LCD_RW = 0,

LCD_RS = 1

_delay_ms(1);

lcdPutCommand(startupCommand); // Power up the display

lcdPutCommand(LCD_SETUP); // Set up the data transfer mode (4/8 bit),

# of character lines (1/2) and font size (5x8/5x11)

lcdPutCommand(LCD_CLEAR); // Clear the display

Page 39: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

38

_delay_ms(1);

}

/**

* Clears the display

*/

void lcdClear() {

lcdPutCommand(LCD_CLEAR);

_delay_ms(1);

}

/**

* Send 8 bits of data to the LCD

* @param {Char} c Data to send to LCD

*/

void lcdPutChar (char c) {

LCD_CTRL_PORT |= (1<<LCD_EN);

_delay_ms(1);

LCD_DATA_PORT = c;

_delay_ms(1);

LCD_CTRL_PORT &= ~(1<<LCD_EN);

}

/**

* Sends a command to the LCD.

* @param {Char} command The command code for the LCD

*/

void lcdPutCommand (char command) {

LCD_CTRL_PORT &= ~(1<<LCD_RS);

_delay_ms(1);

lcdPutChar(command);

_delay_ms(1);

LCD_CTRL_PORT |= (1<<LCD_RS);

}

/**

* Puts the cursor on the position on the display

* @param {Char} x The display line; possible values: 1/2

* @param {Char} y The display column; possible values: 1-16

*/

void lcdGoToXY(char x, char y) {

char address = ((x==1) ? 0x80 : 0xC0);

address += (y-1);

lcdPutCommand(address);

}

/**

* Write a string of characters to the position on the display specified by

first two arguments

* @param x The line of the display (1/2)

Page 40: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

39

* @param y The column of the display (1-16)

* @param str A pointer to the starting address of the string

*/

void lcdWriteString(char x, char y, char *str) {

lcdGoToXY(x,y);

while (*str) {

lcdPutChar(*str);

str++;

}

}

void lcdWriteSystemStateHeader(char state) {

lcdClear();

switch (state) {

case SYS_IDLE:

lcdWriteString(1, 1, "Idle");

break;

case SYS_ACCEPT_LAT:

lcdWriteString(1, 1, "Lat");

break;

case SYS_ACCEPT_LNG:

lcdWriteString(1, 1, "Lng");

break;

case SYS_ACCEPT_TZ:

lcdWriteString(1, 1, "TZ");

break;

case SYS_ACCEPT_YEAR:

lcdWriteString(1, 1, "Year");

break;

case SYS_ACCEPT_MONTH:

lcdWriteString(1, 1, "Month");

break;

case SYS_ACCEPT_DAY:

lcdWriteString(1, 1, "Day");

break;

case SYS_ACCEPT_HOUR:

lcdWriteString(1, 1, "Hour");

break;

case SYS_ACCEPT_MINUTE:

lcdWriteString(1, 1, "Minute");

break;

case SYS_ACCEPT_SECOND:

lcdWriteString(1, 1, "Second");

break;

}

//lcdWriteString(2,1,"> ");

//lcdGoToXY(2, 3);

lcdGoToXY(2, 1);

return;

}

/**

* Outputs a floating number as a string, on the LCD

Page 41: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

40

* @param x LCD line

* @param y LCD column

* @param number The value that needs to be output

*/

void lcdWriteFloat(char x, char y, double number) {

char str[12];

unsigned char strLength = 11;

unsigned char precision = 6;

dtostrf(number, strLength, precision, str);

lcdWriteString(x, y, str);

}

/**

* Initiate the keypad on the board.

*/

void keypadInit () {

// Set columns as outputs

DDRB |= 0x0F;

PORTB &= 0xF0;

// Set keypad rows as inputs and enable the pull-up resistors on the

associated port pins

DDRC &= 0x0F;

PORTC |= 0xF0;

}

/**

* Reads in the currently pressed key on the keypad, without debouncing.

* For key debouncing, see "isStableKeyInput" function.

*/

char getPressedKey() {

unsigned char keys[4][4] = {{ '1', '2', '3', KEY_BKSP },

{ '4', '5', '6', '+' },

{ '7', '8', '9', '-' },

{ KEY_INSERT, '0', '.', KEY_ENTER }};

unsigned char PORTB_masks[4] = { 0b11111110, 0b11111101, 0b11111011,

0b11110111};

unsigned char PINC_masks[4] = { 0b00010000, 0b00100000, 0b01000000,

0b10000000 };

unsigned char i, j;

// One by one, pull the columns to GND (PORT value associated with the

selected

// column is 0, while the others are set to 1) and read the PIN values for

the rows

for (i=0; i<4; i++) {

PORTB |= 0b00001111; // Pull all pins associated with the

Keypad's columns to VCC (=1)

PORTB &= PORTB_masks[i]; // link column [i+1] to GND

nop();

for (j=0; j<4; j++) {

Page 42: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

41

if ((PINC & PINC_masks[j]) == 0x00) { // check if key

`keys[j][i]` is pressed

return keys[j][i];

}

}

}

return NO_KEY;

}

/**

* Determines if a key pressed has stabilized after the

* switch bounce, by simple consecutive readings of the key.

* @param {char} key The key to verify if stable

* @param {char} iterations The number of iterations for the stability

check

* @return {boolean}

*/

bool isStableKeyInput (char key, char iterations){

for (char i=1; i<=iterations; i++) {

if (key != getPressedKey()) {

return false;

}

}

return true;

}

/**

* Detects if a NEW key was pressed on the keypad

* @return {boolean}

*/

bool isKeyPressed() {

char currentKey;

// Get the current key

currentKey = getPressedKey();

// Check for key input stability (switch bounce effect)

if (!isStableKeyInput(currentKey, 15)) {

return false;

}

// Determine of a key was pressed

if (currentKey != lastKey) {

lastKey = currentKey;

if (currentKey != NO_KEY) {

return true;

}

}

return false;

}

/**

Page 43: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

42

* Determines whether the input character can be part of a number

* @param key

* @return {boolean}

*/

bool isNumberComponent(char key) {

return (isdigit(key) || key == KEY_MINUS || key == KEY_DOT);

}

/**

* Resets the keypad input buffer and brings its associated pointer to its

default value

*/

void clearInputBuffer() {

inputBufferPointer = -1;

memset(&inputBuffer[0], 0, sizeof(inputBuffer));

}

/**

* Attempts to store the input value from the keypad into its corresponding

variable (lat, lng, tz, ...)

* @param {Char} param The code identifying the variable which needs to receive

the input value

*/

void storeInputBufferValue(char param) {

switch (param) {

case SYS_ACCEPT_LAT:

lat = atof(inputBuffer);

sysState = SYS_ACCEPT_LNG;

break;

case SYS_ACCEPT_LNG:

lng = atof(inputBuffer);

sysState = SYS_ACCEPT_TZ;

break;

case SYS_ACCEPT_TZ:

tz = atoi(inputBuffer);

sysState = SYS_ACCEPT_YEAR;

break;

case SYS_ACCEPT_YEAR:

year = atoi(inputBuffer);

sysState = SYS_ACCEPT_MONTH;

break;

case SYS_ACCEPT_MONTH:

month = atoi(inputBuffer);

sysState = SYS_ACCEPT_DAY;

break;

case SYS_ACCEPT_DAY:

day = atoi(inputBuffer);

sysState = SYS_ACCEPT_HOUR;

break;

case SYS_ACCEPT_HOUR:

hour = atoi(inputBuffer);

sysState = SYS_ACCEPT_MINUTE;

break;

case SYS_ACCEPT_MINUTE:

minute = atoi(inputBuffer);

Page 44: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

43

sysState = SYS_ACCEPT_SECOND;

break;

case SYS_ACCEPT_SECOND:

second = atoi(inputBuffer);

sysState = SYS_RUNNING;

initTimer();

break;

}

clearInputBuffer();

lcdWriteSystemStateHeader(sysState);

}

/**

* Reads in the keypad input and processes it

*/

void readKeypadInput() {

if (isNumberComponent(lastKey)) {

if (inputBufferPointer < INPUT_BUFFER_MAX_LEN) {

inputBufferPointer++;

inputBuffer[inputBufferPointer] = lastKey;

lcdGoToXY(2, inputBufferPointer + 1);

lcdPutChar(lastKey);

return;

}

}

if (lastKey == KEY_BKSP) {

if (inputBufferPointer > -1) {

inputBuffer[inputBufferPointer] = NO_KEY;

lcdGoToXY(2, inputBufferPointer + 1);

inputBufferPointer--;

lcdPutChar(NO_KEY);

lcdPutCommand(LCD_CURSOR_LEFT);

return;

}

}

return;

}

/**

* Checks if the current day is the last year of the month. *

* @return bool True if the day is the last day of the month, false

otherwise;

*/

bool endOfMonth() {

if ((month==1 || month==3 || month==5 || month==7 || month==8 || month==10

|| month==12) && day==31) {

return true;

}

if ((month==4 || month==6 || month==9 || month==11) && day==30) {

return true;

}

Page 45: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

44

if (month==2) {

if (year%4==0) {

if (day==29) {

return true;

}

}

else {

if (day==28) {

return true;

}

}

}

return false;

}

void updateTime() {

second += CALC_INTERVAL;

if (second == 60) {

second = 0;

minute++;

if (minute == 60) {

minute = 0;

hour++;

if (hour == 24) {

hour = 0;

day++;

if (endOfMonth()) {

day = 1;

month++;

if (month == 13) {

year++;

month = 1;

}

}

}

}

}

}

/**

* Normalizes an angle to the 0-360 degree interval

*/

float normalizeAngle(float angle) {

return fmod(angle,360);

}

/**

* Converts angle from degrees to radians

*/

float deg2rad(float angle) {

Page 46: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

45

return angle * M_PI / 180;

}

/**

* Converts angle from radians to degrees (not normalized to 0-360 interval)

*/

float rad2deg(float angle) {

return (180 * angle) / M_PI;

}

/**

* Determine the Sun's position on the sky as a pair of values constituting its

elevation and azimuth.

* The values are stored in global variables 'elevation' and 'azimuth'.

*/

void setSunPosition () {

char _month = month;

int _year = year;

float _lat = deg2rad(lat);

float b, c, jd, L, g, l, e, delta, a, X, Y, ha;

// 1. Determine the Julian Date for the current moment

// The Julian Date (jd) of any instant is the Julian day number for the

preceding noon

// plus the fraction of the day since that instant.

// Julian Dates are expressed as a Julian day number with a decimal

fraction added.

// The Julian Date for 06:37, 10 August 2013 (UTC) is 2456514.775787.

if (_month <= 2) {

_month += 12;

_year -= 1;

}

c = 2 - floor(_year/100.0) + floor(_year/400.0);

b = day + (hour - tz)/24.0 + minute/1440.0 + second/86400.0;

jd = (floor(365.25 * (_year + 4716)) + floor(30.6001 * (_month + 1)) -

2453069.5) + b + c;

// 2. Determine the Mean Longitude (L) and Mean Anomaly (g) of the Sun (in

degrees)

L = normalizeAngle(280.461 + 0.9856474 * jd);

g = normalizeAngle(357.528 + 0.9856003 * jd);

// 3. Determine the Ecliptic Longitude (l) of the Sun (in degrees)

// Note that the `sin(g)` and `sin(2*g)` terms constitute an approximation

// to the 'equation of centre' for the orbit of the Sun

g = deg2rad(g);

l = L + 1.915 * sin(g) + 0.02 * sin(2*g);

// 4. Determine the obliquity of the ecliptic plane (e, in degrees)

e = 23.439 - 0.0000004 * jd;

// 5. Determine the Right Ascension (a) and Declination (delta) of the Sun

e = deg2rad(e);

l = deg2rad(l);

Y = cos(e) * sin(l);

Page 47: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

46

X = cos(l);

a = rad2deg(atan(Y/X));

delta = asin(sin(e)*sin(l));

if (X < 0) {

a += 180;

}

if (X > 0 && Y < 0) {

a += 360;

}

// 6. Determine the Local Sidereal Time (lst) and then the Hour Angle (ha)

of the Sun.

// lst = normalizeAngle(280.46061837 + 360.98564736629 * jd + lng);

ha = normalizeAngle(280.46061837 + 360.98564736629 * jd + lng) - a;

// 7. Determine the Sun's azimuth and elevation

ha = deg2rad(ha);

c = sin(_lat);

b = cos(_lat);

a = sin(delta);

e = cos(delta);

elevation = asin(a*c + e*b*cos(ha));

Y = -e*b*sin(ha);

X = a - c*sin(elevation);

elevation = rad2deg(elevation);

azimuth = rad2deg(atan(Y/X));

if (X < 0) {

azimuth += 180;

}

if (X > 0 && Y < 0) {

azimuth += 360;

}

}

/**

* Outputs the Sun's position to the LCD, each of the two values on a separate

line and with a header preceding it

*/

void outputSunPosition() {

char sAzimuth[9];

char sElevation[9];

char line1[14] = "elv: ";

char line2[14] = "azm: ";

// Convert the azimuth and elevation values to strings

(void)dtostrf(elevation, 8, 3, sElevation);

(void)dtostrf(azimuth, 8, 3, sAzimuth);

// Concatenate the two angles as strings, with their corresponding line

headers (also strings)

Page 48: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

47

strcat(line1, sElevation);

strcat(line2, sAzimuth);

// Write elevation and azimuth to LCD

lcdPutCommand(LCD_CLEAR);

lcdWriteString(1, 1, line1);

lcdWriteString(2, 1, line2);

return;

}

Page 49: LUCRARE DE LICENŢĂ - ACSE Departmentacse.pub.ro/wp-content/uploads/2014/08/licenta.pdf · 2 1. INTRODUCERE Lucrarea de fata reprezinta un studiu asupra eficientizarii producerii

48

8. BIBLIOGRAFIE

Deutsche Gesellschaft Für Sonnenenergie (Dgs), 2006. Planning and

Installing Photovoltaic Systems: A guide for installers, architects and engineers

(second edition). Earthscan, UK

Antonio Luque, Steven Hegedus, 2003. Handbook of Photovoltaic Science

and Engineering. Wiley, England

A. Goetzberger, V.U. Hoffmann, 2005. Photovoltaic solar energy

generation. Springer, Berlin

Tom Markvart , Luis Castañer, 2003. Practical Handbook of Photovoltaics:

Fundamentals and Applications. Elsevier, New York, NY

Roger A. Messenger, Jerry Ventre, 2005. Photovoltaic Systems Engineering

SECOND EDITION. CRC Press, Florida

Keith Burnett, 1997. Position of the Sun.

http://stargazing.net/kepler/sun.html, accesat ultima data in anul 2014

Thomas Fischl, 1998. AVRUSBBoot - USB bootloader for Atmel AVR

controllers. http://www.fischl.de/avrusbboot/, accesat ultima data in 2014

Răzvan Tătăroiu. AVR USB Bootloader: Programare microcontroler pe USB.

https://sites.google.com/site/razvan784/avrusbbootloader, accesat ultima data

la 15.09.2014

STMicroelectronics, 2014. DMOS driver for bipolar stepper motor

(datasheet).

http://www.st.com/web/en/resource/technical/document/datasheet/CD0000229

4.pdf, accesat ultima data in anul 20014

Atmel, 2010. 8-bit Microcontroller with 16K Bytes In-System

Programmable Flash (datasheet). http://www.atmel.com/Images/doc2466.pdf,

accesat ultima data in anul 2014