Modern világító diódák (LED-ek) összehasonlító vizsgálata
SZAKDOLGOZAT
Hollósy Ádám 2010
Modern világító diódák (LED-ek) összehasonlító vizsgálata
1
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Villamosmérnöki és Információs rendszerek Tanszék mérnök-informatikus BSc szak
SZAKDOLGOZAT Modern világító diódák (LED-ek) összehasonlító vizsgálata
Hollósy Ádám
Témavezető: Csuti Péter 2010
2
Modern világító diódák (LED-ek) összehasonlító vizsgálata
ide jön a témakírás
3
Modern világító diódák (LED-ek) összehasonlító vizsgálata
NYILATKOZAT Alulírott Hollósy Ádám diplomázó hallgató, kijelentem, hogy a szakdolgozatot a Pannon Egyetem Villamosmérnöki és Információs Rendszerek tanszékén készítettem mérnök informatikus BSc diploma (bachelor of science in information technology) megszerzése érdekében. Kijelentem, hogy a szakdolgozatban lévő érdemi rész saját munkám eredménye, az érdemi részen kívül csak a hivatkozott forrásokat (szakirodalom, eszközök, stb.) használtam fel. Tudomásul veszem, hogy a szakdolgozatban foglalt eredményeket a Pannon Egyetem, valamint a feladatot kiíró szervezeti egység saját céljaira szabadon felhasználhatja. Veszprém, 2010. november 30. Hollósy Ádám
Alulírott Csuti Péter témavezető kijelentem, hogy a szakdolgozatot Hollósy Ádám a Pannon Egyetem Villamosmérnöki és Információs Rendszerek tanszékén készítette mérnök informatikus BSc szak (bachelor of science in information technology) megszerzése érdekében. Kijelentem, hogy a szakdolgozat védésre bocsátását engedélyezem . Veszprém, 2010. november 30. Csuti Péter
4
Modern világító diódák (LED-ek) összehasonlító vizsgálata
KÖSZÖNETNYILVÁNÍTÁS
Mindenekelőtt szeretnék köszönetet mondani témavezetőmnek, Csuti Péternek, hogy tudásával, hasznos tanácsaival és türelmes segítőkészségével támogatta szakdolgozatom létrejöttét.
További köszönettel tartozom eddigi tanulmányaim során megismert tanáraimnak, ismerőseimnek is, akik hozzásegítettek azon ismeretek megszerzéséhez, melyek elengedhetetlenek voltak dolgozatom megírása során. Külön köszönet illeti a JFreeChart függvénykönyvtárat létrehozó, és azt azóta is töretlenül lelkesedéssel fejlesztő csapatának, akik nagyban hozzájárultak munkám elkészítéséhez. Végül, de nem utolsó sorban, szeretném hálámat kifejezni szüleimnek, önzetlen támogatásukért, és amiért megteremtették számomra a tanulás lehetőségét.
5
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Tartalomjegyzék:
Tartalomjegyzék ............................................................................................................... 6 Tartalmi összefoglaló ....................................................................................................... 7 1. Bevezető ....................................................................................................................... 8 1.1. A kísérlet ................................................................................................................ 8 1.2. Relatív és abszolút fotometria ................................................................................ 9 1.3. Gyorsított öregítés ................................................................................................. 11 2. Az LM-80-as dokumentum, avagy kísérletünk szabványa – kivonat ......................... 14 3. Kísérletünk a gyakorlat tükrében ................................................................................ 21 4. Esettanulmány: A rendszer koncepciójától az implementálásig ................................. 29 4.1. Beolvasó és feldolgozó modul koncepciója .......................................................... 33 4.2. Elektronikus jegyzőkönyv felépítése .................................................................... 34 4.3. Az adatbázis felépítése .......................................................................................... 35 4.4. Beolvasó és feldolgozó modul implementálása .................................................... 39 4.5. Grafikonrajzoló és jelentéskészítő modul koncepciója és megvalósítása ............. 41 5. Az elvégzett munka és a kész szoftver bemutatása ..................................................... 44 5.1. Beolvasó és feldolgozó modul bemutatása ........................................................... 44 5.2. Grafikonrajzoló és jelentéskészítő modul bemutatása .......................................... 52 6. Összefoglaló ................................................................................................................ 62 Irodalomjegyzék .............................................................................................................. 63 Melléklet ......................................................................................................................... 64
6
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Tartalmi összefoglaló Szakdolgozatom témája a Villamosmérnöki és Információs rendszerek Tanszék Virtuális környezetek és Fénytan Laboratóriumában folyó projektmunkához kapcsolódik. Ebben vettem részt, mint méréseket végző segítő, illetve elkészítettem egy szoftvert, mely az adatfeldolgozás automatizálását valósítja meg. A kísérlet keretén belül tanulmányozzuk, hogy a teljesítmény LED-eket miképp tudjuk hatékony módon közvilágítási célokra felhasználni. Egyes gyártók különböző
típusú
LED-jeit
vizsgáljuk,
ezek
hosszú
távú
fényerő
és
színképváltozását. Valós körülmények között ez rendkívül lassú folyamat, ezért ún. gyorsított öregítési eljárást alkalmazunk, amely során megfigyelhetjük a kérdéses paraméterek változásának tendenciáját. A kísérlet során méréseket végzünk (fényerősség, színkép, nyitófeszültség, hőmérséklet), a mért adatokat a mérőműszer elektronikus jegyzőkönyvekbe rögzíti. Feladatom ezen jegyzőkönyveknek feldolgozása; az azokban szereplő adatok szabványos adatbázisban történő tárolása. Az adatbázisnak a későbbiek folyamán tetszőlegesen bővíthetőnek kell lennie az újabb mérések adataival. Az összegyűjtött adatokat elemezzük. Szükséges, hogy grafikonokon is ábrázolhassuk az adatsorokat, így az idő folyamán mutatkozó eltérések, változási tendenciák észlelhetővé válhatnak. Az analizálás során felhasználjuk a statisztika alapvető eszközeit is (átlag, szórás). A kapott eredményekből PDF jelentést generálunk. Megoldásom
Java
nyelven
íródott,
a
JFreeChart
grafikonkezelő
függvénykönyvtár felhasználásával. Kulcsszavak: Grafikon, JFreeChart, MySQL, Java, iText
7
Modern világító diódák (LED-ek) összehasonlító vizsgálata
1. Bevezető A szakdolgozat célkitűzése, LED-eket vizsgáló kísérletsorozat alatt végzett fényerősségmérések szoftveres támogatása, a belőlük származó adatfeldolgozás automatizálása. A feldolgozott adatok - logikailag megfelelő struktúrában -, egy szabványos adatbázisban kerülnek eltárolásra, így ennek tartalma a kísérlet folyamán folyamatosan bővíthető az újabb és újabb mérésekkel gyűjtött értékekkel. Ezekből, a felhasználó által megszabott szempontok alapján, grafikonokat és statisztikai elemzéseket szeretnénk készíttetni a későbbiekben. Az így felhalmozott adatok analíziséből olyan következtetéseket próbálunk levonni, melyek a kísérletsorozat központi kérdéskörébe esnek. Ehhez szükséges, hogy grafikusan ábrázolhassuk az adatsorokat, így az idő előrehaladtával mutatkozó eltérések, változási tendenciák vizuálisan is - szembeötlően - megmutatkozhatnak. A vizsgálat során a statisztikai repertoár alapvető eszközeit is felhasználjuk (átlag, standard szórás), hogy az így kapott eredményekből táblázatos kimutatásokat, PDF jelentést generálhassunk. Az elkészült program ennek a szándéknak kíván megfelelni. De mielőtt részletesen bemutatnám a fejlesztés menetét, az ennek során felmerült kérdéseket és a program felépítését, a téma – és annak specifikus mivolta - megkívánja, hogy először magát a projektet, és annak célkitűzését ismertessem. Ez a projekt egyébként a dolgozat írása pillanatában, jelenleg is folyamatban van. 1.1. A kísérlet Napjainkban az SSL-ek (Solid-State Lighting, azaz szilárdtest fényforrások), és az ebbe a típusba tartozó teljesítmény LED-ek (Light Emitting Diode, azaz fénykibocsátó diódák) népes családja a világítástechnika legkülönbözőbb területein kerül felhasználásra. Ennek a hazai projektnek keretében konkrétan azt vizsgáljuk, hogy mennyire alkalmasak közvilágítási feladatok ellátására. Ehhez behatóbban kell tanulmányoznunk a különböző gyártók széles kínálatában megtalálható teljesítmény LED-ek közép és hosszú távú stabilitását. Mérnünk kell azok fényerő és színkép változásait.
8
Modern világító diódák (LED-ek) összehasonlító vizsgálata
A modern világító diódák, melyek már így is szinte az élet minden területén használatosak, - a nem túl távoli jövőben - forradalmasítani fogják a közvilágítást. Miért szükséges speciális kísérleti módszer alkalmazása és fotometriai mérés a LEDek vizsgálatához? Ezek az új technológiák még napjainkban is igen gyors ütemben fejlődnek, műszaki tulajdonságaik változnak. Az ilyen fényforrásokat tartalmazó lámpatestek
pedig
sokban
különböznek
tradicionális
társaikétól.
A
világítástechnikában ezért külön módszerek kerültek kidolgozásra paramétereik vizsgálatára. Ezek a technikák szabványok keretei között lettek rögzítve. Tekintsünk bele a lényegesebbek tartalmába. 1.2. Relatív és abszolút fotometria Mint látni fogjuk, SSL lámpatestek esetében (melyek LED modulokat is tartalmazhatnak) sajnos nem alkalmazhatóak a hagyományos fényforrások mérésére kidolgozott szokásos technikák. Ez a tradicionális fényforrások és az SSL lámpatestek felépítése közti eltérésekből, illetve a tulajdonságaik közti alapvető különbségekből fakad. Emiatt, ha ilyen típusú lámpatestek fotometriai vizsgálatát szeretnénk végrehajtani, akkor - a hagyományos fényforrások során alkalmazott relatív fotometria helyett az abszolút fotometria módszereit kell követnünk. Ezekről a módszerekről további információkat az LM-79-es szabványban olvashatunk [1]. Érdekességképpen pár kiragadott részt ismertetnék a dokumentumból. A
hagyományos
fényforrások
vizsgálata
általában
goniofotométer
segítségével és relatív fotometriai módszerrel valósul meg. Ebben az esetben, az eljárás alatt a világítótest és a fényforrás tesztelése egymástól elkülönítve történik. Ezután a fénykibocsátás intenzitás-eloszlás értéket, melyet goniofotométerrel mértek, egy meghatározott eljárással normalizálják, majd egy relatív skálán ábrázolják (erről további részleteket a szabvány szövegében találunk). Ez a metódus az SSL-ek esetében nem megvalósítható, mivel a legtöbb LED-lámpa úgy lett megtervezve, hogy a lámpatest és a fényforrás egymástól működés közben nem szétválasztható. Illetve, amikor ez bizonyos kivételes esetekben technikailag lehetséges, a relatív fotometria akkor sem bizonyul akkurátus eredményt szolgáltató eljárásnak, mivel a LED fénykibocsátása jelentősen megváltozik, hiszen a fényforrás burkolata nélkül teljesen más hőmérsékleten üzemel; ez a hőmérsékletkülönbözet pedig döntő
9
Modern világító diódák (LED-ek) összehasonlító vizsgálata
mértékben befolyásolja a mért értékeket. Ebből kifolyólag egy másik módszert kell választanunk. Bizonyos IES szabványok erre abszolút fotometria néven szoktak hivatkozni. Ebben az esetben a fényforrás abszolút fénykibocsátás intenzitáseloszlását mérjük meg anélkül, hogy elválasztanánk a fényforrást annak burkolatától (ennek részletes ismertetését az LM-35-02 szabványban találjuk). Az SSL világítótesteket mindig így szokás mérni, azonban érdemes megemlíteni, hogy ritkán, de előfordul, hogy bizonyos hagyományos fényforrásokat is abszolút fotometria alkalmazásával vizsgálnak. Ennek részletei azonban számunkra érdektelenek, hiszen mi most nem SSL lámpatesteket, hanem önálló LED modulokat mérünk. Így a dolgozat során nem ez a dokumentum lesz meghatározó, hanem az LM-80-as szabványban szereplő, kifejezetten
LED-ek mérésére vonatkozó előírások,
javaslatok.
10
Modern világító diódák (LED-ek) összehasonlító vizsgálata
1.3. Gyorsított öregítés A másik ok, hogy különleges eszközöket és kivitelezési módot igényel vizsgálatunk, az a LED-ek figyelemreméltóan hosszú élettartamában, és a későbbiek során tárgyalt sajátos tulajdonságaikban rejlik. A hagyományos fényforrásokhoz képest extrém hosszúságú, 50000 óra, illetve bizonyos típusok esetén, az akár 100000 órát is meghaladó élettartam miatt, meglehetősen nehézkes - ha nem egyenesen lehetetlen - próbálkozás lenne „valós körülmények” között megfigyelni a fényerősség és a színkép változásának tendenciáját. Érdemes belegondolni, hogy ez hosszú éveket jelentene egy normál körülmények között használt LED esetében (pl. 50000 üzemóra nagyjából ~ 5,7 év folyamatos működést jelent, állandó égetés mellett!). Nem beszélve arról, hogy nyilvánvalóan értelmetlen vállalkozás is lenne, hisz tapasztalhatjuk, hogy ennyi idő alatt olyan jelentős fejlődés zajlik le az SSL-ek piacán, hogy a kísérleti eredményekből levont konzekvenciák már megszületésük pillanatában „elavultnak” számítanának. Nekünk pedig használható információk gyűjtése a célunk. Így nem csoda, hogy már a 2000-es évek elején, a figyelem a LED-ek működés közbeni degradációjának gyorsított szimulációja felé fordult; az ebből fakadó törekvésekből pedig egy jól bevált eljárás született, mely a gyakorlatban már bizonyított[2]. A konkrét megvalósítás esetünkben egy LED-égető berendezés, amely ún. „gyorsított öregedést” valósít meg. Működésének legfőbb alapelvét az a megfigyelés szolgáltatta, hogy a GaN-alapú foszfor-adalékolt (pc) fehér LED-ek teljesítményét – úgy, mint a többi félvezető eszköz esetében is –, az azokat meghajtó áram nagysága, illetve a világítódiódát körülvevő hőmérséklet döntő mértékben befolyásolja. Ennek következtében, a természetes üzemeltetési körülmények között lezajló elhasználódási folyamatot a valóságoshoz képest lényegesen felgyorsítva modellezhetjük. A felhasznált „stressz paraméterek” tehát elsősorban a meghajtóáram és a hőmérséklet, melynek az adott LED üzemeltetése során közvetlenül van kitéve. A korábbi tanulmányok alapján az 5 mm-es pc diódák fénykibocsátásának romlása exponenciális tendenciát mutatott az idő előrehaladtával. Ha az élettartam alakulását kísérték figyelemmel, akár a meghajtóáram, akár az égetés folyamán alkalmazott hőmérséklet nagyságának függvényében, mindkét esetben exponenciális romlási tendenciát tapasztaltak.
11
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Bürmen 2007-ben végzett kísérletének eredményei szintén alátámasztották ezt a viselkedésjelleget, így arra a megállapításra jutott, hogy számos kereskedelmi forgalomban kapható 5mm-es pc LED élettartamát legjobban egy exponenciális modell felállításával lehet megbecsülni. Noha a kis áramértékkel (5 mA – 20 mA között) üzemelő LED-ekhez képest a teljesítmény LED-ek (melyek tipikusan 350 mA, vagy e fölötti meghajtóárammal működnek) lényegesen lassabban vesztettek fényerejükből, azonban mindkét esetben a már szóban forgó tendencia érvényesült: exponenciális fényerősségcsökkenés az idő függvényében, és élettartam csökkenés a hőmérséklet függvényében. A fényerősség degradáció mértéke és a LED modulra – égetése során – közvetlenül ható hőmérséklet nagysága közötti összefüggést illusztrálja az 1. ábra[2].
1. ábra: a fényerősség degradáció és a hőmérséklet kapcsolata Ezt a megfigyelést felhasználva egy, az Egyesült Államokban található ipari testület, az Alliance for Solid State Illumination System and Technologies (ASSIST) - mely nemzetközi tagokkal is rendelkezik -, különböző ajánlásokat fogalmazott meg, és javaslatot tett egy tesztelési eljárás szabványosítására, amellyel különböző típusú LED-ek élettartamát mérhetjük. A LED-es világítástechnika ipar nem sokkal később már alkamazta, és azóta is aktívan használja az ASSIST által kidolgozott módszert, megfelelő ajánlásait szem előtt tartva. Ezek közül áttekintjük a számunkra kiemelten lényegeseket.
12
Modern világító diódák (LED-ek) összehasonlító vizsgálata
A LED élettartamát, általános célú megvilágítási feladatok esetén úgy definiáljuk, hogy vesszük azt az időintervallumot, mely során az eredeti fényáram kibocsátásról, annak 70%-ára csökken, erre az L70 jelöléssel utalhatunk (a megadott százalék küszöbszintként fogható fel). Továbbá az ASSIST javaslata tartalmazza, hogy a LED-eket, 3 különböző hőmérsékleten üzemeltetve is mérjük, ezáltal felfedhetjük a világítódióda élettartama, és annak hőmérséklete közti kapcsolatot. A LED tartó panel (black plate) hőmérsékletének meghatározásához az öregítő berendezésben elhelyezett hőmérőt használtunk. A LED élettartama, mint tartó panelének hőmérséklete függvényében változó érték hasznos információ az olyan OEM gyártóknak (cég, mely több beszállító termékeiből állítja össze saját termékét), akik pl. LED-eket tartalmazó lámpatesteket, szerelvényeket terveznek és gyártanak. Hiszen ezen ismeretek birtokában, a fejlesztés során az adott termékhez megfelelőbb hőelvezetési módszer kerülhet kidolgozásra, mellyel a termék élettartama jelentős mértékben meghosszabbodhat. Végtére is, egy adott felhasználási területen, a vásárló számára már inkább a komplett világítórendszer élettartama számít, mintsem az egyes LED egységek teljesítménye. Hasznos megjegyezni, hogy az exponenciális degradációs karakterisztika nem univerzálisan törvényszerű, mivel léteznek LED típusok, melyek életük során eltérő viselkedésmintát követnek. A modelljeik pedig - jellemzően az első 100 órában igencsak változatos viselkedést mutathatnak, mielőtt „stabilabb pályára” állnának. Előfordulnak olyan esetek, amikor a fényerősség – akár több százalékkal is – növekedhet átmenetileg. Így nem meglepő, hogy ha ezt relatív skálán ábrázoljuk, akár 104%-os fényerősséget is tapasztalhatunk.[3])
13
Modern világító diódák (LED-ek) összehasonlító vizsgálata
2. Az LM-80-as dokumentum, avagy kísérletünk szabványa – kivonat Ahhoz hogy teljes és átfogó képet kaphassunk a kísérletünkről, muszáj megismerkednünk az ASSIST által kidolgozott LM-80 szabvány bizonyos részleteivel. Ezért ebben a fejezetben megpróbálom összefoglalni saját szavaimmal a leglényegesebbnek ítélet részeket. Amíg az LM-79 az SSL lámpatestek - és azon belül is a számunkra jelen pillanatban oly lényeges LED-eket tartalmazó világítótestek – mérésének helyes kivitelezését, ezáltal az eredmények egzaktságát elősegítő ajánlásokat tartalmazza, addig az LM-80-as szabvány[4] a gyorsított öregítési folyamat kivitelezését ismerteti, leírja a kontrollált körülmények között történő égetés feltételeit, melyek lehetővé teszik, hogy a kísérlet eredményei, és annak konklúziói „hordozhatóak legyenek”. Ugyanis, ha a különböző laborok önkényes feltételeket támasztva, ezáltal eltérő körülményeket teremtve végeznék effajta vizsgálataikat, akkor ezekből az autonóm viszonyok között született eredményekből bajosan lehetne általános érvényű következtetéseket levonni. Viszont, ha követjük a standard előírásokat és javaslatokat, akkor a kísérletünk konklúziói – akár nemzetközi viszonylatban is – felhasználhatóak. Így ezt a szabványt érdemes részletekbe menően megismernünk, mivel mint látható, alapvető jelentőséggel bír a kísérlet relevanciája szempontjából. Tartalmát kivonatos formában most az olvasó elé tárom. A bevezetőben általános információkat olvashatunk a LED-ekről, azok élettartamának illetve fénymegtartó képességének méréséről, mivel ezek nagyrészt megegyeznek az előző részben már tárgyaltakkal, így nem ismétlem őket meg. Kiegészítésként megjegyzi, hogy a folytonosan bekövetkező fényerősségcsökkenés mellett a LED-ek által kibocsátott fény spektrumában (színképe) is fokozatos változásokat tapasztalhatunk, így a folyamat az idő előrehaladtával akár elfogadhatatlan megvilágításhoz és színvisszaadáshoz is vezethet. Ezen változások pedig közvetve hatást gyakorolnak a LED élettartamára, hiszen a színképi teljesítményeloszlás változása befolyásolhatja a dióda fényerősségét is. A színkép változásának vizsgálata ugyan a stabilitás fontos kérdése, de jelen dolgozatnak nem fő célkitűzése, ezért ennél mélyebben ezt a kérdést most nem vizsgálom.
14
Modern világító diódák (LED-ek) összehasonlító vizsgálata
A dokumentum nem szándékozik iránymutatást vagy ajánlást nyújtani a kibocsátott
fényáram
megtartás
jövőbeli
alakulása tekintetében
a
becslés
módszeréből fakadó limitáción túl. Ugyanis a jövőbeli értékek becslését extrapolálással végezzük az eddigi, jelen pillanatig rendelkezésre álló mérések értékei alapján, és ennek a módszernek megvannak a maga korlátai. A terminológiai definíciókat ismertető rész először a méréseink során használatos mértékegységeket veszi sorra.
villamos mértékegységeink: volt (feszültség), amper (áramerősség), watt (teljesítmény);
A hőmérséklet mérésére Celsius skálát használunk;
Fotometriai egységünk a lumen (fényáram).
- LED fényforrások: Azok a LED csomagok, füzérek, modulok, melyeket külső áramgenerátorral táplálunk. - Fényáram megtartás pillanatnyi értéke: Az új világítótest által kibocsátott fényáram értékéből, ha kivonjuk az adott pillanatig tartó üzemeltetés során bekövetkező degradáció nagyságát, akkor megkaphatjuk a megmaradó kibocsátott fényáram értékét (tipikusan a maximálisan kibocsátott érték százalékaként szokás kifejezni). Megadják még az égetéssel telt időt órák számában kifejezve, mely során a világítótest fényáram megtartása egy adott százaléknyi degradációt szenved el. Ekkor ebbe az óraértékbe nem számít bele azon órák száma, melyeket a világítótest kikapcsolt állapotban töltött. - LED fényforrás meghibásodása: Amennyiben az adott világítódióda meghibásodás következtében fénykibocsátásra képtelenné válik. Korai hibák esetén - mint amilyen gyártási defektus következtében lép fel – ezek jelentésre kerülnek, de érdemben nem vesszük őket figyelembe a LED fényforrás élettartamának kalkulációja során. Azt az (első bekapcsolástól) eltelt üzemeltetési időt, mely során a LED az eredeti fényáram kibocsátásának megadott százalékát elveszti, és egy bizonyos küszöbszint alá csökken, a következőképpen jelöljük:
15
Modern világító diódák (LED-ek) összehasonlító vizsgálata
- L70 (óra érték): Azon eltelt időn mennyisége, amely után a világítódióda eredeti fényáramának 70%-ának kibocsátására képes; - L50 (óra érték): Azon eltelt időn mennyisége, amely után a világítódióda eredeti fényáramának 50%-ának kibocsátására képes. - Tokozás-hőmérséklet (Ts): A gyártó által kijelölt, hőmérsékletmérésre kialakított csatlakozópont, amelyen a LED világítótest hőmérsékletét mérhetjük. A következő részben a fizikai és a környezettel kapcsolatos megfontolásokat olvashatunk. Javasolt laboratóriumi iránymutatás, hogy a LED-eket aránylag tiszta környezetben mérjük és tároljuk a kísérlet során. Mielőtt megkezdenénk a beüzemelést, a LED modulokat meg kell tisztítani a kezelésük során esetlegesen rájuk rakódott ujjlenyomatokról és szennyeződésektől. Ezen kívül, feltétlenül követnünk kell a gyártó által mellékelt kezelési instrukciókat, a LED-ek károsodásának
elkerülése
végett
(pl.
elektrosztatikus
kisülés
stb.)
Az egyes LED egységek eredményeit külön-külön érdemes figyelemmel kísérnünk a vizsgálat során. Az egyes világítótesteket érdemes az azonosítás (és későbbi hivatkozás) megkönnyítése érdekében megjelölni. Másik lehetőség, hogy a mozgatásuk, szállításuk során felcédulázzuk őket. A legegyszerűbb lehetőség mégis az, ha az élettartam tesztelésre szolgáló gép belső terében úgy alakítjuk ki a modulok helyét, hogy azokra elfoglalt pozíciójuk alapján tudjunk hivatkozni. Mindenesetre az azonosítási módszer kapcsán – amit kiválasztunk –, gondoskodnunk kell a magas hőés fénykibocsátással szembeni ellenállóságról. Ennek megfelelő olyan jelölési módszer vagy anyagok használata indokolt, mint pl. tartósan ellenálló vonalkódok, kerámiatinta jelölések, magas hőmérsékletnek ellenálló filctollak, vagy bármilyen más olyan módszer, mely a tesztelési folyamat során szükséges esetben időszakosan megújítható. Kiemelten fontos kérdés a LED modulok tesztpéldányainak kiválasztása is. Ez azért lényeges, mert a tesztelés eredménye a mintapéldányok válogatásának módszerétől, a minta nagyságától, a tesztelés során fellépő körülményektől és egyéb befolyásoló tényezőktől függ. A tesztpéldányokat úgy kell megválogatnunk, hogy azok megfelelő mértékben reprezentálni tudják a tesztelés során használt diódatípusok összességét. Ezáltal a levont következtetések általánosíthatóak
16
Modern világító diódák (LED-ek) összehasonlító vizsgálata
legyenek az összes ilyen típusú LED-re. Az esetek többségében a mintaválasztási módszer pontos részleteit megfelelő szabvány írja le. A választott válogatási módszert és a minta nagyságát tartalmaznia kell a kísérleti jelentésünknek. A kísérlet környezeti feltételeire is tartalmaz előírásokat az LM-80-as szabvány. Ezek egyike, hogy az élettartam tesztben résztvevő világítótestek ne legyenek erős vibrációnak kitéve; noha, ez a feltétel LED fényforrások tesztelése esetében kevésbé minősül kritikusnak. Ennél sokkal inkább fontosabb tényezők a hőmérséklet és a levegő páratartalma. A mérések közti öregítő égetésre szolgáló hőmérsékletet, mely a doboz belső terében a tartópogácsáknál uralkodik, úgy kell megválasztanunk, hogy az megfelelően reprezentálja a vásárlók felhasználási körülményeit, miközben az ajánlott előírt értékek között marad. Ez normális esetben három előre meghatározott hőmérsékletértékből kerül ki (55°C, 85°C és egy harmadik, a gyártó által meghatározott hőmérséklet). A meghajtóáram nagysága is kövesse
a
gyártó
által
megszabottakat.
Az
élettartam
tesztelés
alatt
a
hőmérsékletingadozás nem haladhatja meg a 2°C-os eltérést, míg a környező levegő hőmérséklete az 5°C fokos ingadozást. A relatív páratartalom nem haladhatja meg a 65%-ot. A légáramlatokat minimalizálni kell a megfelelő stabil körülmények között történő világítóegységek üzemeltetéséhez, mivel az ingadozó légáramlat eltérő hőeloszlási
karakterisztikát
hoz
létre,
mely
befolyásolná
az
egyenletes
diódaöregedést. Ahhoz hogy elkerülhető legyen az egyenetlen hőeloszlás (és bizonyos területeken történő hő-felhalmozódása), minimális mennyiségű légmozgás biztosítása szükséges, de arról gondoskodnunk kell, hogy a lámpatest közvetlen környezetében ne keltsünk légáramlást. A felszerelt lámpatestek orientációjának meg kell felelnie a gyártó által megadottaknak. Általánosságban elmondható, hogy ez LED-ek esetében nem befolyásolja működésüket – lévén szilárd test fényforrások -, azonban az elhelyezkedés közvetve hatással lehet a hőeloszlásra, hiszen arra az esetleges hűtőbordák és az eszköz hőmérséklet menedzsmentje kihatással van. Ezután, következik egy részletekbe menő villamos és hőmérsékleti paraméterekre vonatkozó ismertető rész, azonban ezt terjedelmi okokból nem részletezem. További információk erről az LM-80-as eredeti dokumentum
17
Modern világító diódák (LED-ek) összehasonlító vizsgálata
idevonatkozó részében olvashatóak, amely a függelékben megtalálható. Ezek közül egy említendő ajánlás, hogy LED világítómodulok esetén olyan külső meghajtógenerátorokat kell használnunk, melyek megfelelnek a gyártók iránymutatásainak. A tesztelés és mérés helyes kivitelezésének ismertetése következik. Az élettartam tesztelés során a LED-ek égetésével eltelt üzemeltetési idő precíz nyilvántartása kritikus jelentőséggel bír. Fontos, hogy az időmérő eszköz, mellyel ezt mérjük, csak azokat az időintervallumokat számolja, amikor a modulok ténylegesen áram alatt vannak, így az esetleges áramkimaradásokból fakadó égetéskiesés időtartamát ne vegye figyelembe. Az időmérő eszköz bizonytalansága nem haladhatja meg a ±0,5%-ot. A fotometrikus mérés kivitelezésének meg kell felelnie a LED egységek mérésére alkalmas kidolgozott laboratóriumi tesztmódszernek. A fényáram mérését az adott LED-eken olyan meghajtóárammal való táplálás mellett kell elvégezni, amelyet az élettartam tesztelés során használunk. Mivel a LED élettartama során tapasztalt színstabilitás a legtöbb világítási alkalmazásban fontos paraméter, ezért azok színképi tulajdonságait is meg kell határoznunk. Határozottan javasolt, hogy a fotometriai és színingermetrikai értékeket spektroradiométerrel mért színképi teljesítményeloszlási adatokból határozzuk meg. A környezeti hőmérsékletet a fényerősség és színképméréshez 25°C fokos értékre kell állítanunk ±2°C fokos hibahatárral. A környező hőmérséklet alakulását egyébként az egész mérőprocesszus időtartama alatt mindvégig naplóznunk kell, majd a mérési jegyzőkönyvben mellékelnünk kell. A LED fényforrások esetében szükséges, hogy tesztelésük megkezdése előtt, azok szobahőmérsékletűre hűljenek. A
már
korábban
meghatározott,
öregítésre
szolgáló
hőmérsékleten
legkevesebb 6000 óráig kell égetni a világítótesteket, ezalatt pedig minimum 1000 óránként mérési adatokat gyűjteni. Javasolt 10000 óráig folytatni az öregítést, annak céljából, hogy még tökéletesebb élettartambecslést lehetővé tévő modellt állítsunk fel a mérési eredményekből. Ellentétben a többi, eltérő típusú fényforrástól, melyek élettartamára és teljesítményére a be/kikapcsolási ciklusok száma hátrányos befolyással van, LED-ek élettartamára akár a nagyobb sebességű – villogásszerű – működés is csak
18
Modern világító diódák (LED-ek) összehasonlító vizsgálata
elhanyagolható hatást gyakorol. Azonban a meghajtóáram erősségét konstans értéken kell tartani, csak így kerülhetőek el az annak ingadozásából fakadó, eredménytorzító kihatások. A tápellátás megvalósítási módja is dokumentálandó. A kísérlet során az egyes LED egységek meghibásodásáról vizuális úton (szemrevételezéssel), vagy automatikus monitorozó rendszer segítségével értesülünk, melyet legalább minden mintavételezés idején ellenőriznünk kell. Minden hibajelenség
hátterét
alaposan
ki
kell
vizsgálnunk,
hogy
biztonsággal
megállapíthassuk, az csak az adott LED világítóegység hibájából fakadt-e, vagy esetleg tápegység, áramgenerátor, illetve az elektromos csatlakozók helytelen működéséből. A katasztrofális LED modul hibákról szóló információkat mellékelni kell a kísérleti jelentésben. A színképeltolódás (spektrumeltolódás) mértékének megállapítása céljából javasolt, hogy a színképet a fényerősség vizsgálatakor, egyazon fotometrikus tesztelés során végezzük. A szabvány végén egy összefoglaló listát találunk, melyben számba veszik azokat a paramétereket, melyeket a jelentésnek feltétlenül tartalmaznia kell. A beszámolóban szerepelnie kell minden olyan lényeges adatnak, amely a teszt körülményeire, a felhasznált berendezések típusára, és a kísérletben részt vevő LED modulok pontos típusára vonatkozik. A következő tételekből álló listát mellékelnünk kell a dokumentációban:
A tesztben résztvevő LED világítóegységek száma;
Az egyes modulok pontos leírása (típus/modell/gyártó);
Leírás a felhasznált segédberendezések típusáról, paramétereiről;
Üzemelési ciklusok (ki/bekapcsolás, ezek időpontjai, hossza);
Környezeti hőmérsékletre, légmozgásra és relatív páratartalomra vonatkozó adatok;
Tokozás-hőmérséklet: Az a hőmérsékletérték, amit a modulon a gyártó által megadott termoelem-mérőponton regisztrálunk;
Az egyes világítóegységek meghajtóárama, ezzel az áramerősséggel táplálva „öregítettük” az élettartam tesztelés során;
19
Modern világító diódák (LED-ek) összehasonlító vizsgálata
A világítódióda kezdeti fényáramkibocsátásának értéke, nyitófeszültségének nagysága, melyet a fotometrikus mérések során mérünk;
Az
egyes
LED-modulok
fénymegtartó
képességének
adatai,
azok
középértékével, standard szórásával, minimum és maximum fénymegtartási értékével, minden egyes LED-re lebontva.
Megállapítások
az
esetlegesen
bekövetkező
LED
fényforrás
hibák
tapasztalatáról; feljegyzés azok körülményeiről, és a bekövetkezésük időpontjáról.
A modulok monitorozási intervalluma;
A fotometrikus mérések bizonytalanságának számértéke;
A fellépett színképeltolódás adatai, melyeket a vizsgálatok során mértünk.
Mindegyik teszt során készült jelentésnek tartalmaznia kell legalább ezeket a listapontokat. A tesztelés eredményeinek bemutatásához javasolt azokat táblázatos formába rendezni.
20
Modern világító diódák (LED-ek) összehasonlító vizsgálata
3. Kísérletünk a gyakorlat tükrében Most, hogy áttekintő jelleggel megismerkedtünk a kísérlet elméleti hátterével, itt az ideje, hogy az olvasó elé tárjam a saját szemszögből szerzett gyakorlati tapasztalataimat, élményeimet. Számomra a munka az öregítést végző gép LED moduljainak beszerelési fázisában kezdődött, ekkor kapcsolódtam be a tanszék projektjébe, mint hallgató, a Mérnöki Tervezés című tantárgy keretében. Első feladatom volt, hogy segítsek a LED modulok azok tartópogácsáihoz illesztése során esedékes vezetékezésében. Miután rögzítettük a LED-eket a megfelelő tartóelemekhez, úgy kellett megoldanunk a vezetékek forrasztással történő csatlakoztatását, hogy a kialakuló vezetéksereg ne zavarja meg majd a mérések során a fotometriai mérősapka felhelyezését. Ez nem volt könnyen kivitelezhető, mivel a vezetékek viszonylag nagy felületét blankolni kellett, és a közel elhelyezkedő világítóegységekhez tartozó vezetékek könnyedén rövidre zárhatták egymást. Ezen gondos rendezéssel próbáltunk segíteni, de még így is néha előfordult a mérés során egy-egy modul „pislákolása” a mérősapka felhelyezésekor. Kép, mely az öregítő gép felépítését szemlélteti:
2. ábra: Az „öregítő gép” belseje
21
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Az azonos típusú LED modulokat sorba kapcsoltuk, így a gépen belül összefüggő oszlopokat kialakítva belőlük. A gép doboza összesen 10 ilyen oszlopot rejt, és egy oszlopon belül 6 db világítódióda került felszerelésre, mint az ábrán is látható. A legfontosabb adatokat a következő táblázatban foglaltam össze. 1. táblázat: A gépben található LED modulok főbb adatai Oszlop
Modell
Típus
Gyártó
Áram (mA)
1.
XREWHT-L1-4D-Q3
Cree XLamp XR-E
CREE
350
2.
XREWHT-L1-WG-Q5
Cree XLamp XR-E
CREE
350
3.
XPEWHT-L1-WM0-Q5
Cree XLamp XP-E
CREE
350
4.
LUWV5AM - HULUX
Golden DRAGON Plus
Osram
350
5.
LXML-PWC1-0090
Luxeon Rebel
Lumileds
350
6.
6000K-1W/HK-LED
HK-LED
350
7.
3000K-1W/HK-LED
HK-LED
350
8.
3000K-3W/HK-LED
HK-LED
700
9.
XPEWHT-L1-WM0-Q5
Cree XLamp XP-E
CREE
700
10.
LXML-PWC1-0090
Luxeon Rebel
Lumileds
700
11.
MC-E
CREE
350
12.
MC-E
CREE
350
13.
MC-E
CREE
350
14.
MC-E
CREE
350
15.
MC-E
CREE
350
16.
MC-E
CREE
350
Az egyes oszlopok árammal való táplálása két külön tápegység segítségével történik. Amint azt megfigyelhetjük, az első 7 oszlopot 350 mA-rel, amíg a 8-astól a 10-es oszlopig 700 mA-rel hajtjuk meg. Az oszlopok eltérő áramértékkel való táplálását 10 db külön meghajtó áramkör biztosítja – melyeket számítógépről vezérelhetünk, mindegyik csatornán akár egyedi áramértéket választva. A táblázat utolsó 6 sora azért van halványabban feltüntetve, mert azok csak logikailag jelentenek külön oszlopot. Fizikailag csak 2-2 világító dióda alkotja őket, amelyek 1000 óra égetés után kerültek behelyezésre a 6-7-8-as oszlop megadott pozícióiba, lecserélve ezzel az
22
Modern világító diódák (LED-ek) összehasonlító vizsgálata
addig ott helyet foglaló LED-eket. A 10 oszlop mellé bevezetésre került továbbá egy 11. ún. referencia sor is. Ebben minden egyes világítódióda eltérő típusú, az egész kísérlet alatt szobahőmérsékleten marad, és csak a mérések idejére kapcsoljuk be. Logikailag külön oszlopként való kezelésük azonban indokolt a szoftveres adatfeldolgozást elősegítendően. Ennek részletesebb okát a beolvasó szoftver működését leíró fejezetben ismerhetjük meg. A 3. ábrán két-két képet láthatunk a felhasznált meghajtó áramkörökről és az öregítésben nem részt vevő referenciasorról:
3. ábra: a meghajtó áramkörök és a referencia sor Miután elkészültünk az oszlopok kialakításával, üzemkész állapotba hozásával, következett az öregítő égetéséhez és a mérések végrehajtásához szükséges hőmérsékletet biztosító rendszer használatba helyezése. Ez a berendezés egy Julabo termosztátból
és
egy
hőközvetítő
folyadékot
(etilén-glikol)
cirkuláltató
csőrendszerből áll, melyek az öregítő gép belsejében, a LED tartópogácsáit tartalmazó alaplapot járják át, így azt a beállított hőmérsékletértéken tartva. A tartópogácsák és LED modulok között speciális - az egyenletes hőátadás megvalósulását segítő -, hővezető pasztát helyeztünk el. A gép csukott állapotában az öregítésre szolgáló égetés 85°C fokos hőmérsékleten történik, a fotometriai mérések elvégzéséhez pedig 25°C fokot állítunk be, és megvárjuk, amíg erre az értékre visszahűlnek a világítómodulok. A méréseket
értelemszerűen
nyitott
fedélhelyzetben
végezzük.
A
megfelelő
hőmérsékletűre beállított cirkuláló folyadék a csöveken keresztül jut el az alaplap
23
Modern világító diódák (LED-ek) összehasonlító vizsgálata
azon részeihez, ahol a fő hőátadás történik. Ventilátorok hivatottak arról gondoskodni, hogy egyenletes hőeloszlású viszonyok uralkodjanak a belső térben. Mind az áramgenerátor vezérlő-áramköreivel, mind ezekkel a ventilátorokkal HyperTerminal
segítségével
soros
porton
keresztül
AT
parancsokkal
kommunikálhatunk. A 4. ábrán láthatjuk a termosztátot, illetve a csöveket.
4. ábra: Julabo termosztát és a hővezető folyadékot cirkuláltató csőrendszer Mielőtt az öregítés élesben elkezdődött volna, számtalan tesztmérést végeztünk el, hogy az esetleges fennakadások a hivatalos eredményeinket már ne befolyásolják. Másrészt, ki kellett dolgoznunk egy megbízható mérési protokollt. Ez azt jelenti, hogy a fényerősség és színképmérést mindig egy olyan előre rögzített lépésekből álló, jól bevált metódus szerint hajtsuk végre, amely meghatározott eredményt produkál, determinált adatstruktúrát tartalmazó elektronikus jegyzőkönyv fájlok formájában. Ennek kulcsfontosságú jelentősége lesz, mivel a beolvasó modul ezt a strukturált adattartalmat várja el, azok helyes értelmezése és feldolgozása érdekében. A következő részben ezt az általunk kifejlesztett és használt mérési protokollt fogom ismertetni. A fényáram és a színkép mérésének időpontjai az LM-80-as szabvány irányelveinek megfelelően kerültek megválasztásra. Ekkor kiadva a megfelelő parancsokat az öregítő égetést megszakítjuk, a LED modulokat lekapcsoljuk, és a
24
Modern világító diódák (LED-ek) összehasonlító vizsgálata
85°C fokról a vizsgálat elvégzéséhez előírt 25°C fokra hűtjük, majd elkezdődhet a LED modulok vizsgálata. A mérést minden esetben külső labor tápegység segítségével végezzük, és egyszerre csak egy oszlopot vizsgálunk. Ezt az előírt meghajtóárammal tápláljuk, majd a generátor feszültségét addig növeljük, amíg az el nem éri a megfelelő feszültséget, amely már nagyobb, mint az éppen mérés alatt álló LED-ek együttes nyitófeszültsége. Ez alatt a világítódióda egyáltalán nem, vagy nagyon halványan világít. Az áram és a feszültség beállításakor minden esetben körültekintően kell eljárni, mert az extrém nagy feszültség, vagy a rosszul megválasztott áramerősség jelentősen megrövidítheti a LED-ek élettartamát, illetve akár azonnali tönkremenetelt is eredményezhetnek. Miután az adott oszlop üzemel, 5 percet várakozunk, mert tapasztalataink szerint ennyi ideig tart, amíg stabilizálódnak az egyes LED modulokon mérhető nyitófeszültség és fényáram értékek, mely egyébként a modulok működése miatt bekövetkező hőmérsékletemelkedésből fakad. Emlékezzünk, a szabvány 0,5%-os határon
belüli
bizonytalanságot
tolerál
feszültségméréskor,
így
ennek
bekövetkezéséig várunk (termikus kiegyenlítődés). Azért, hogy elkerüljük a teszt során a felesleges 5 perces „üresjáratokat” minden egyes oszlop mérése előtt a következőket tesszük. Mivel tudjuk, hogy egy oszlop LED-sorának lemérése kb. 5 percig tart, így annak megkezdésekor egy másik oszlopot is bekapcsolunk, természetesen – egy második áramgenerátort felhasználva – a neki előírt meghajtóárammal táplálva. Tehát amíg mérjük az első oszlopot, addig „bemelegítjük” pl. a 6. oszlopot, így mikor az elsővel végeztünk, azonnal kezdhetjük is mérni a hatodikat. Ezzel jelentős időt spórolunk, hiszen 10 oszlop esetén ez 50 percet jelentene tétlenséggel töltve, ezzel pont a kétszeresére növelve a mérésprocedúra időigényét. A mérések két speciális mérősapkával történnek. Egyik a fényáram, másik a színkép mérésére szolgál. A mérősapka felépítése biztosítja, hogy pontosan illeszkedjék a LED modulok tartópogácsáira, ezáltal a külvilágból származó zavaró fényhatásokat kizárja. Az eszközben található detektor(okat), csak az adott LED által kibocsátott fény érheti el, mely fotoáramot indukál a detektorban. Ennek értékét regisztráljuk a mérések során.
25
Modern világító diódák (LED-ek) összehasonlító vizsgálata
A következő képeken láthatjuk a fényerősség vizsgálat során alkalmazott mérősapkát (5.1. ábra), (a fényerősségmérő) számítógépes vezérlőprogramját (5.2. ábra), illetve az egyik külső áramgenerátort (5.3. ábra), mellyel a vizsgálat során az adott oszlopot meghatjuk.
5.1. ábra
5.2. ábra
5.3. ábra
A műszer az értéket az USB kapcsolaton (pontosabban egy emulált soros porton keresztül) továbbítja a kezelőprogramjának, amely azt később az elektronikus jegyzőkönyvfájlba menti. A LED modulokat az adott oszlopban, sorban egymás után mérjük le, oszloponként ezt 5-ször megismételve. Így az egy oszlopba tartozó értékek a jegyzőkönyvfájlban is összefüggően kerülnek elmentésre. A LED modulok többszöri lemérésének az a célja, hogy később ezen értékek átlagát és szórását képesek legyünk meghatározni. Segítségükkel az esetleges mérési hibákból fakadó torzulások csökkenthetőek. Minden egyes oszlop fényerősség vizsgálata előtt
26
Modern világító diódák (LED-ek) összehasonlító vizsgálata
nyitófeszültség mérést végzünk, majd a vizsgálat után ezt megismételjük. A kapott értékeket az aktuális méréskor követett oszlopsorrend feltüntetése mellett egy (papír) jegyzőkönyvlapon vezetjük. Az adott oszlop tényleges fényáram mérésének megkezdését megelőzően, először egy ún. sötétáram értéket mérünk. Ez egy olyan fotoáram érték, melyet mindig – a speciálisan erre a célra kijelölt – kikapcsolt állapotban lévő LED-re felhelyezett fényerősség mérő alatt uralkodó „sötétség” idéz elő. Ezt az értéket hibakorrekciós célokra használják, de az én beolvasó modulom számára fontos „elválasztójelként” is funkcionál, az egyes oszlopokhoz tartozó fényáram értékek között. Így a fájl tartalma (az egyes oszlopokhoz tartozó világítódiódáknak megfelelő) 6*5 fotoáramérték sor melyet mindig két sötétáram értéket tartalmazó sor fog közre. Ez a struktúra a vizsgálat során mért oszlopok számának
megfelelően
ismétlődik.
Miután
lemértük
az
összes
oszlopot
(emlékezzünk! 10 fizikailag létező oszlopunk van + 5 logikai + referencia sor) a kezelőprogramban mentjük a jegyzőkönyvet. A 6.1. és 6.2. ábrán példát láthatunk a papíralapú jegyzőkönyvlap és az elektronikus formátumú jegyzőkönyvfájl tartalmára (16 oszlop került beolvasásra):
6.1. ábra: elektronikus jegyzőkönyvfájl
6.2. ábra: papír alapú jegyzőkönyvlap
Mivel a kísérlet jelenleg is folyamatban van, ezért a jövőben további jegyzőkönyvek fognak készülni. Ezeket az adatokat (és még néhány további fájlt) fogjuk
27
Modern világító diódák (LED-ek) összehasonlító vizsgálata
felhasználni a kiértékelést és kimutatást végző program bemeneteként. Az eddigi mérések adatairól vezetünk egy további kimutatást is, mely online hozzáférhető és szerkeszthető, Google SpreadSheet[5] dokumentum formájában. Ebben többek között megtaláljuk a mérések pontos időpontjait, különböző oszlopokhoz és LED modulokhoz tartozó nyitófeszültség értékeket, az égetett órák számának alakulását, a leállítások/újraindítások körülményeit, illetve számos további információt a kísérlettel kapcsolatban. Erről a dokumentumról egy - jelenlegi állapotát tükröző pillanatképet helyeztem el a mellékletekben.
Működés közben - illusztráció
28
Modern világító diódák (LED-ek) összehasonlító vizsgálata
4. Esettanulmány: A rendszer koncepciójától az implementálásig A fejezetben a program fejlesztésének fázisait úgy próbálom ismertetni, ahogy azok a folyamat során lépésenként felmerültek. Ha áttekintjük a feladatkiírásban szereplő elvárásokat, két olyan fő feladatkört emelhetünk ki, melyekre az elkészült szoftvernek megoldást kell nyújtania.
Mérések során elektronikus jegyzőkönyv formájában keletkezett adatok beolvasása és feldolgozása automatikus módon;
Jelentés készítése felhasználó által kiválasztott adatokból - a megadott szempontok alapján - táblázat és grafikon formájában.
Mivel ez a két rész elég jól elkülöníthető egymástól, ezért tervezéskor úgy döntöttem,
moduláris
felépítésű
programot
fejlesztek
megoldásukra.
Ezen
megfontolásból, két fő modul íródott; egy, grafikonkészítésre és jelentésgenerálásra és egy, beolvasási és feldolgozási műveletek végrehajtására. Illetve ezek mellett írtam még pár kisebb segédkomponenst is, melyek a fénymérés-jegyzőkönyveken kívüli, egyéb adatfájlok (hőmérséklet, dióda nyitófeszültségek) automatikus beolvasását támogatják. A komplex egész elemibb részekre bontásának több indokát is láttam. Egyrészt, ha az összes szolgáltatást egyben kínáló monolitikus szoftvert hozok létre, annak kezelőfelülete óhatatlanul túlbonyolódik. Az átláthatóság csökkenése miatt, a felhasználók számára kezelése jóval kényelmetlenebbé, akár nehézkessé is válhat. Illetve, amennyiben laborunkban olyan speciális igény merül fel, hogy szimultán szeretnénk az egyik munkaállomáson adatbevitelt végezni, miközben egy másik gépen kollégánk különféle adatokból már a grafikonokat szeretné tanulmányozni, akkor ez a koncepció erre lehetőséget ad. De nem csak felhasználói szempontból közelítettem meg a kérdést. Az objektumorientált paradigma pont arra ösztönzi a programozókat, hogy lehetőleg komponensekre (objektumokra) bontsák a feladatot, így a már elkészült osztályok segítségével lehetőségük nyíljon a kód újrafelhasználhatóságában rejlő előnyök kiaknázására. Ennek szellemében, a beolvasó modulom igen kevés módosítással
29
Modern világító diódák (LED-ek) összehasonlító vizsgálata
képes lenne másfajta mérésekből származó, de hasonló felépítésű jegyzőkönyvek beolvasására, és feldolgozására is (ugyanez igaz a beolvasó segédmodulokra). Az adatbázis szerkezete – szintén követve az eddigi koncepciót – autonóm táblák halmaza. Így könnyedén – egy adatbázis-adminisztrációs program segítségével –, pár új tábla és oszlop létrehozásával/módosításával tetszőleges hasonló feladathoz hangolhatjuk az adatbázist és a beolvasó modult. Hasonlóképp a grafikon ábrázolására és a táblázatok létrehozására szolgáló modul írásakor is szem előtt tartottam, hogy amennyiben a későbbiekben felmerül a továbbfejlesztés
igénye,
vagy
akár
másfajta
mérések
értékeinek
vizuális
ábrázolásának kívánsága, akkor kicsiny módosításokat végezve az osztályon, bevethető legyen ilyenfajta célokra is. Így összességében elmondható, hogy a program hasznos segítség lehet majd általánosabb (de hasonló lépésekből álló) problémák megoldására, amennyiben a megfelelő kódrészleteket a kívánalmakhoz igazítjuk. Az
objektumorientált
filozófia
nyújtotta
előnyök
gyakorlatban
történő
kamatoztatása céljából a Java[6] nyelvet választottam munkaeszközömként. Természetesen C++, illetve C# nyelven is megvalósítható lett volna a feladat, de saját programozási ismereteimet, illetve a grafikus felület Java nyelven történő viszonylag egyszerű kivitelezhetőségét mérlegelve, végül ez tűnt számomra kézenfekvőbbnek. A programnyelv kiválasztásának másik fontos aspektusa volt, hogy lehetőleg egy olyan mellett törjek lándzsát, mely rendkívül széles körű (akár harmadik fél által fejlesztett) függvénykönyvtár repertoárral rendelkezik, ezáltal a gyakorlatban már bevált, jól működő komponensek felhasználásával gyorsíthassam a munkát, és a „kerék újbóli feltalálása” helyett inkább a kiírásban megfogalmazott érdemi problémák algoritmizálásra összpontosíthassak. Nem lehet szó nélkül hagyni azt a tényt sem, hogy programom oroszlánrészét – jellegéből fakadóan - az adatbevitel, konvertálás és adatkivitel (adatbázisba importálás) részek teszik ki. Így mindenképpen egy olyan programozási nyelven szerettem volna létrehozni, mely lehetőleg külső függvénykönyvtár hozzáadása nélkül ezekre a műveletekre rugalmas lehetőséget képes biztosítani. Ezen kívánalmakat pedig a Java tökéletesen kielégíti. Primitív, illetve objektum változótípusai között kényelmesen konvertálhatunk szimplán néhány megfelelő tagfüggvény meghívásával, a fájlok beolvasása/írása
30
Modern világító diódák (LED-ek) összehasonlító vizsgálata
adatfolyamok (streamek) segítségével egyszerűen megvalósítható, az adatbázis kapcsolat létrehozása és a kétirányú adatáramlás pedig a MySQL Connector/J komponens[7] felhasználásával könnyűszerrel kivitelezhető. Bár mostani esetünkben a platformok közötti hordozhatóság nem volt kritikus szempont, de a kész szoftver a nyelv tulajdonságának köszönhetően teljes egészében platformfüggetlen lett (Windows, GNU/Linux, MacOS X, *BSD, Solaris és egyéb Unix-szerű operációs rendszerek alatt legalábbis biztosan működőképes) A nyelv kiválasztása után felmértem, hogy a feladat milyen jellegzetes részfeladatokra bontható le, amelyek megoldására már „kész” eszközök állnak rendelkezésre. Kezdjük magával a szoftveres infrastruktúra elemeivel: kellett egy szabványos adatbázis-platform, melyet kényelmesen és gyorsan képes vagyok adminisztrálni. Az utóbbi feltétel egyébként elengedhetetlennek bizonyult a tényleges fejlesztés során. Egyrészt, mivel egy interaktív adminisztrációs felület segítségével lehetett gördülékenyen (és fájdalommentesen) létrehozni az adatbázis szerkezetét, másrészt a tesztelés folyamán rengeteg félregépelésből illetve egyéb okból fakadó hibára derült fény, szimplán az adminisztrációs felületen az események végigkövetésével. A tradicionális konzolos SQL parancsokkal való operálás a hibalehetőségek számát megnövelte volna, és lassított is volna a fejlesztés során. A választott programok: MySQL[8] adatbázis szerver, phpMyAdmin[9] + Apache HTTP szerver[10] a webes felületen történő adminisztráláshoz. Windowsos környezetben ezeket legkényelmesebben egy XAMPP[11] nevű szervercsomag feltelepítésével érhetjük el. Én is ezt alkalmaztam. A beolvasó modulhoz szükséges komponensek után a másik modult vettem szemügyre, főképp, hogy milyen lehetőségeim vannak a grafikonrajzolás témakörében.
Elsőre,
egy
gondolat
erejéig
felmerült
bennem,
hogy
a
java.awt.Graphics2D csomag segítségével saját magam fogok skálát, és értékeket rajzolni, de ezt az ötletet hamar elvetettem. Belegondoltam, hogy milyen finom beosztású skálán is kell majd dolgoznom, ahol néhány százezred (vagy akár milliomod) pontosságú hiba sem tolerálható, mivel ilyen nagyságrendbe eső változásokat is szeretnénk figyelemmel kísérni. Illetve a kezdetektől fogva igényként szerepelt, hogy lehetőleg a grafikon legyen interaktív. Semmiképpen sem csak egy statikus képet akartam előállítani, sokkal inkább egy olyan objektumot szándékoztam
31
Modern világító diódák (LED-ek) összehasonlító vizsgálata
a felhasználó elé tárni, amelynek tulajdonságait futási időben képes változtatni. Ezáltal lehetőséget teremtve pl. a koordinátarendszer adott régiójának kinagyítása funkcióra, a tengelyskálák finomságának kézi felülbírálására, egérrel kijelölt értéktartomány kirészletezésére, az aktuális állapot nyomtatóra küldésére vagy képfájlba mentésére. Mindezeket szem előtt tartva tudatosult bennem, hogy az AWTvel való rajzolás nem kifizetődő, mivel a részletek implementálása igencsak nehézkes lenne, nem beszélve a határidő rövidségéről. Emiatt áttekintettem a grafikonkezelő segédkönyvtárak meglepően széles választékát, hogy kiválaszthassak egy olyat, amely felhasználása által lehetőségem van minden fenti kívánalom kielégítésére. Természetesen jogi szempontokat is figyelembe kellett vennem, hiszen hiába volt számos kereskedelmi – figyelemreméltóan gazdag szolgáltatáskörrel bíró – termék; jelentősebb pénzösszeget elkölteni, illetve törvényt sérteni nem állt szándékomban. Emiatt valami Open-Source (nyílt forráskódú, és általában szabad felhasználású) függvénykönyvtár tűnt jobb választásnak. Még így is rengeteg lehetőség maradt, azonban néhány órányi olvasgatás után végül a JFreeChart[12] mellett döntöttem. Mindenre képes, amire szükségünk van, emellett az LGPL (Lesser General Public License) lehetővé teszi, hogy – bizonyos megkötésekkel - szabadon felhasználható legyen a saját programok fejlesztése során. A modul másik fő funkciója egy egyszerű jelentés generálása. Ez tulajdonképpen szöveget, táblázatos formába rendezett adatsorokat, és persze grafikont tartalmaz. A lehetőségek áttekintése után, ennek formátumaként a PDF-et választottam, mivel ez a különböző tanulmányok, laboratóriumi kimutatások közkedvelt elektronikus formátuma. Hordozhatósága miatt méltán vívta ki a „dokumentumok ipari szabványa” jelzőt. Java nyelven, ha PDF kimenetet szeretnénk előállítani, azt több módon is megtehetjük; én ezek közül az iText[13] (PDF fájlok tartalmának előállítására
és
manipulálására
szolgáló)
sokszínű
lehetőséget
biztosító
függvénykönyvtár mellett döntöttem.
32
Modern világító diódák (LED-ek) összehasonlító vizsgálata
4.1. Beolvasó és feldolgozó modul koncepciója Most, hogy már részletesebben megismertük a projekt során felmerülő kérdéseket, átfogó képet kaphattunk a rendszeresen elvégzendő mérési feladatokról is; láthattuk, hogy ezek minden alkalommal rengeteg adatot generálnak. Méréseink során a különböző szenzorok által regisztrált adatokat a mérőműszerek elektronikus formátumú jegyzőkönyvekben rögzítik. Ezek esetünkben kivétel nélkül sima szöveget tartalmazó -„plain-text”- fájlok. Felépítésük szerencsére meglehetősen egyszerű, így előnyös a későbbi feldolgozás szempontjából. Viszont ezzel a „nyers” formátummal dolgozni meglehetősen kényelmetlen, hisz bármilyen elemzést, vagy kimutatást szeretnénk készíteni, ahhoz először importálnunk kell őket, egy adatsorokat már kezelni képes programban (pl. Microsoft Excel, OpenOffice.org stb.), majd logikailag rendezni kell őket valamilyen formába, és csak ezután tudunk érdemben foglalkozni magával az adattartalommal. További tipikus feladat ilyenkor, hogy megfelelő feltételek, függvények segítségével csak azokat az adatokat „válogassuk ki”, melyekre egy adott kimutatás esetén éppen kíváncsiak vagyunk. Konkrét példa: Az 1. sor 5. LED és a 7. sor 3. LED fényerősségének időbeli alakulására az első 7000 órában. Ezek átlagértékének és szórásának kiszámítása. Illetve a két LED egymással való összehasonlítása, relatív százalékos skálán történő ábrázolás alkalmazásával. Ebben az esetben az adatsorból ki kellene valamilyen módon válogatnunk a megfelelő elemeket. Esetleg segédtáblázatokat is érdemes lenne létrehoznunk a már meglévő adatokból, majd ezek értékeit felhasználva tudnánk grafikont konstruálni. Ez nem minden esetben triviális feladat, ráadásul a fenti csak egy egyszerűbb példa. Nem beszélve arról, hogy mivel a jelen pillanatban is zajló kísérleti folyamat időszakosan bővülő adathalmazáról beszélünk, annak újabb és újabb értékeit is be kell illeszteni a megfelelő helyekre; a szinkronban tartás nem csak kényelmetlen, de időigényes munka. Tehát viszonylag hamar tudatosult az adatbázis szükségessége, ahová képesek vagyunk menteni az egyes mérések során gyűjtött új adatokat, olyan strukturált formában, mely megkönnyíti a későbbi célzott lekérdezéseket. A mérési alkalmakkor
33
Modern világító diódák (LED-ek) összehasonlító vizsgálata
létrejött jegyzőkönyvek feldolgozását, majd adatbázisba exportálást pedig jó lenne automatizálni, hogy lehetőleg minimális felhasználói interakciót igényeljenek. Ez nem csak téves értékek bevitelétől, egyéb hibalehetőségektől kímélné meg a méréseket végző személyt, de nem utolsó sorban rengeteg idejét is megspórolná. Ezáltal lehetővé téve, hogy a legfrissebb mért adatokkal rugalmasan és gyorsan tudja bővíteni az adatbázist, csupán egy kis gépeléssel, és néhány kattintással. Ennek szellemében született meg a Feldolgozó és beolvasó modul terve, mely ezeket az igényeket képes kielégíteni. 4.2. Elektronikus jegyzőkönyv felépítése Mielőtt rátértem volna a modul fejlesztésére, gondosan elemezni kellett a „bemenetet”, hisz ezen fogunk minden további műveletet végezni. Programom jelen feladatkiírás
keretében
a
fénymérés
jegyzőkönyveinek
feldolgozására
lesz
felkészülve, így innentől érdemben ezzel foglalkoztam. A mellékletben elhelyeztem az általam rendelkezésre álló összes jegyzőkönyvfájlt, a következő illusztráció segítségével pedig demonstrálnám az egyes sorokban található adatokat:
7. ábra: elektronikus jegyzőkönyvfájl felépítése
Mint láthatjuk, ez a töredék egy fénymérés jegyzőkönyvfájl elejéből származik. Így az első sor nem meglepő módon egy sötétáram érték. Az utána található sorok, pedig az adott oszlopban helyet foglaló LED modulok fényáram értékei. Az egyes sorok felépítése: Mérés ID száma – tabulátorkarakter – mért fényáram számértéke – tabulátorkarakter - Timestamp (mérés dátuma és időpontja) A Mérés ID száma: Egy számláló értéke, melyet a mérőműszer minden egyes mérés elvégzésekor léptet eggyel. Így ezt az értéket indexként használva kényelmesen
34
Modern világító diódák (LED-ek) összehasonlító vizsgálata
tudunk hivatkozni az egyes mérési műveletre a későbbiek folyamán. Bár programom ezeket az értékeket beolvassa és el is tárolja az adatbázisban, nincs egyéb hatással annak működésére. Megemlítendő, hogy a 6.2. ábrán szereplő jegyzőkönyvlapon a táblázat
„sorozatszámok”
oszlopában
feltüntettük
ezek
intervallumait
az
egyértelműség kedvéért. Fényáram számértéke: Leglényegesebb adatunk. Mind azt korábban már tárgyaltuk, a világítódióda által kibocsátott fényáram, amely kísérletünk tárgyát képezi; segítségével a dióda fényáram megtartó képességének és élettartamának alakulását vizsgáljuk. Timestamp: Ez egy időbélyeg, mely az aktuális mérés dátumát és pontos időpontját tartalmazza. Felhasználhatjuk olyan esetekben, amikor pl. csak megadott időintervallumban történt mérések értékeit akarjuk ábrázolni, tanulmányozni. 4.3. Az adatbázis felépítése Mielőtt nekiláthattam volna a program írásának, még szükséges volt, hogy az adatbázis logikai szerkezetét kialakítsam, hiszen a beolvasó modul minden feldolgozott adatának ez fog „kimenetéül”, és tárolóhelyéül szolgálni. Mint már a bevezetőben tárgyaltuk, kezdettől fogva egymástól független táblák létrehozásában gondolkodtam. Az, hogy jelenleg a fényerősség mérésre koncentrálunk, nem jelenti azt, hogy a programot megvalósító osztályt ne lehetne más mérések által előállított, de hasonló szerkezetű jegyzőkönyvek feldolgozására használni a későbbiekben (pl. színmérés). Mindössze bizonyos kódrészleteket kell csak módosítani, illetve új adattáblákat létrehozni. Ennek tükrében talán már érthető a minimalista adatbázisszerkezetre való törekvésem. Jelenleg 12 tábla van, de a jövőben valószínűleg - a funkciók gyarapítása mentén - számuk tovább fog bővülni:
35
Modern világító diódák (LED-ek) összehasonlító vizsgálata
8. ábra: az adatbázis táblái Mivel a 12 tábla szerkezetének mélyreható ismertetése nagyon nagy terjedelmű lenne, ezért azt a megoldást választottam, hogy részletesen csak azokat a táblákat ismertetem, amelyek kulcsfontosságúak az épp bemutatott modul működése során. A kevésbé lényeges táblák szerkezetét áttekintő jelleggel említem csak, néhol jelentősen leegyszerűsítve tartalmuk magyarázatát. (Természetesen a mellékletben megtekinthető az összes tábla részletes felépítése, illetve a sample.sql fájl tartalmazza a komplett adatbázist, valós mérésekből származó adatokkal feltöltve.) A beolvasó modul a 12 táblából 10-et fog használni. A maradék két táblát (temperature, temporarytemperature) az egyik – hőmérséklet adatok beolvasására szolgáló – kisegítő modul fogja kezelni. Kulcsfontosságú táblánk az ydata, mivel ez tárolja a méréseink során mért összes fényáramértéket (mely a legfontosabb adat jelen kísérletünkben), másrészt a többi ydata* előtaggal rendelkező tábla tartalma ebből lesz - a modul által automatikusan - legenerálva, így ennek felépítésével érdemes megismerkednünk:
36
Modern világító diódák (LED-ek) összehasonlító vizsgálata
9. ábra: az ydata tábla szerkezete és tartalma Mint láthatjuk, szerkezete alkalmas a jegyzőkönyvfájl egy sorában található adatok tárolására, annyi kiegészítéssel, hogy 4 további mezőt adtam hozzá a táblához. Vegyük sorra ezeket. Az elapsedhours (integer típusú) mezőben fogjuk tárolni, hogy az adott mérés során keletkező jegyzőkönyvben található értékek az öregítő égetés hányadik órájában keletkeztek. A col (integer) és row (integer) mezők pedig azt tárolják majd, hogy az adott LED modul fizikailag a gép melyik oszlopában és sorában foglal helyet. A type (string) mező pedig egy rövid azonosító karaktersorozatot tartalmaz, mely a LED modul pontos tulajdonságait határozza meg (típus, gyártó, táplálására használt meghajtóáram). Ezt úgy valósítottam meg, hogy létrehozásra került egy ledtype tábla, mely tartalmazza a szimbólumok és a pontos leírások közötti megfeleltetést, így hash táblaként használhatjuk majd az ydata táblában található LED modulok adatainak lekérdezésére. Mint azt látni fogjuk, a többi ydata* tábla automatikusan ki fog egészülni az ydata-ból származtatott értékekkel. Ezek a táblák egyébként relatív és statisztikai adatokat tartalmaznak majd az egyes LED modulokról és oszlopokról, illetve egy (később kifejtett) módszerrel ezekből konvertált relatív értékeket, melyek a relatív skálás ábrázoláshoz és a százalékos
értékeket
tartalmazó
táblázatok
generálásához
szükségesek.
A
darkcurrent tábla fogja tartalmazni a beolvasás során talált sötétára mértékeket, felépítése hasonló, mint az ydata esetében. Az elektronikus jegyzőkönyv adatbázisba exportálásánál lehetőséget fogunk teremteni, hogy a lapon található (mérés előtti/utáni) nyitófeszültségek is bevitelre kerüljenek. Ezeket a felhasználónak kell begépelnie. Az értékek a diodeforwardvoltage táblában kerülnek elmentésre.
37
Modern világító diódák (LED-ek) összehasonlító vizsgálata
10. ábra: a diodeforwardvoltage tábla szerkezete Ennek felépítése: kezdő időbélyeg, záró időbélyeg (az adott oszlop mérésének kezdetének és végének ideje), égetésből eltelt óra, kezdetkor, záráskor mért nyitófeszültség értéke, és az oszlopazonosító. Az oszlophoz tartozó nyitófeszültségek mellett automatikusan lemérésre kerülnek a LED modulok nyitófeszültségei is 3 különböző hőmésékleteken: 25°C, 55 °C, 85 °C hőmérsékleteken. Szerencsére, ezeket nem kell kézzel bevinnünk, mivel automatikusan egy fájlba menti őket a berendezés, adatbázisba exportálásukat pedig megvalósítja egy későbbiekben elkészült beolvasó segédmodul. Ezzel együtt a felhasználói felületen lehetőséget kell teremtenünk ezek kézi bevitelére is, mivel erre szükség lehet. Ejtsünk néhány szót az ydata táblából származtatott többi adattábláról. Ezekben mind statisztikai és relatív értékeket tárolunk. Emlékezzünk, hogy a mérésekkor minden LED modult összesen 5-ször mértünk le. Ezzel az volt célunk, hogy csökkentsük a mérési hibák hatásait, átlagértéket és szórást számíthassunk belőlük. Ennek elvégzését egyébként a szabványban is előírják, hisz a vizsgálatok célja pontosan olyan változások és trendek megfigyelése, ahol alapvető szerephez jutnak az átlagértékek, szórások. Amint befejezésre kerül egy ydata táblába irányuló író lekérdezés, automatikusan beíródnak a származtatott táblába is a generált értékek. A relatív értékek akkor kerülnek majd felhasználásra, ha a fényáram értékeket egy relatív (százalékos skálán) akarjuk majd ábrázolni. A gyakorlatban ez annyit tesz, hogy amikor az adott LED legelső fényáramát regisztráltuk az adatbázisban (ezt a kritériumot időbélyeg alapján döntjük el), ezt az értéket 100%-nak tekintve, az összes későbbi értéket ennek százalékában fogjuk kifejezni. Ezen értékek által relatív százalékos skálán is ábrázolhatóvá válik a fényáram változás, akár több LED modul egymáshoz képesti összehasonlítására is lehetőséget adva.
38
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Az ydatarelative tábla szerkezete épp ezért szinte teljesen megegyezik az ydata tábláéval, csak a valós értéket konvertáltuk át - a fent említett módon – százalék értékekké. Az ydataaverage pedig az átlagot és a standard szórását tartalmazza az ydata tábla értékeinek. Ezekből az átlagokból aztán ismét számolhatunk egy átlagot, mely megadja a teljes oszlop átlagát, ezt a ydatarelativecol-ban tároljuk. 4.4. Beolvasó és feldolgozó modul implementálása Most hogy a fontosabb táblákat kialakítottam, illetve a modul feladatát is pontosan ismerjük már, kezdődhet az implementálás. A grafikus felhasználói felület létrehozásával kezdtem. Nem akartam nagyon összetett felületet tervezni; egy letisztult, egyszerű felület létrehozása volt a célom. Indítás után a program első teendője, hogy a felhasználó számára lehetővé tegye egy jegyzőkönyvfájl kiválasztását, melyet ezután soronként megjelenít, a tartalom szerkezeti áttekintése céljából. Itt a felhasználó ellenőrizheti, hogy a fájl, – tartalmát tekintve – megfelelőe, nincs benne esetleg oda nem illő sor, vagy olyan szerkezeti eltérés, amely meghiúsíthatná a megfelelő értelmezést. Ha az előző fejezetben ismertetett mérési protokollunkat betartva végeztük a mérést, akkor a létrejött jegyzőkönyvfájl sötétáram értékkel kezdődik, és azzal is végződik, másrészt minden mért oszlophoz tartozó fotoáram értéksor két sötétáram értékkel van közrefogva. Ilyen tartalmat kell(ene) mutatnia minden jegyzőkönyvnek, de persze a valóságban előfordulhatnak hibák. Olyasmiket kell ellenőriznünk, hogy nincsenek-e többszörös sötétáram értékeket tartalmazó sorok egymás után, illetve a mérőműszer működésére vonatkozó hibakódok (pl. helytelen méréstartomány, megszakadt kommunikációs kapcsolat stb.), vagy bármilyen sor, amely érvénytelen értékeket tartalmaz. Ha ilyet találunk egy szövegszerkesztővel egyszerűen törölnünk kell ezeket a sorokat, majd megismételni a beolvasást. A program a legelső beolvasott sötétáram érték alapján kísérletet tesz a sötétáram értékhatárt becslésére (amelybe nagy valószínűség szerint a további sötétáram értékek beleesnek majd), ezt fogjuk alkalmazni a fájl további értelmezése során, hogy megállapítsuk, hol kezdődnek és hol végződnek az egyes oszlopokhoz
39
Modern világító diódák (LED-ek) összehasonlító vizsgálata
tartozó értéksorok. Ha a becslés helytelennek bizonyulna, a későbbiekben lehetőséget kell adnunk a felhasználónak a kézi korrekcióra. Ennek a funkciónak van egy másik lényeges feladata. Nem csak a fájl tartalmának áttekintése, hanem – amint látni fogjuk –, a jegyzőkönyvfájlhoz létrehozott/betöltött profil illeszkedésének tesztelése is is. De mi az a profil, és mit értünk illeszkedés alatt? Nos, ha az előző fejezetben a 6.2 ábrán lévő jegyzőkönyv lapot szemügyre vesszük, látható, hogy az egyes oszlopokat nem sorrendben mértük. Viszont erről a jegyzőkönyvfájlban nincs semmiféle információ, így amikor a program beolvassa a fájlt, nem tudhatja, milyen sorrendet követtünk a mérés során. A helyzetet tovább bonyolítja, hogy a kísérlet során bármikor tönkremehet egy véletlen pozícióban található LED modul (méréskor ezt nem mérjük, hanem ugrunk a következőre), illetve cserélhetünk is egy adott pozícióban lévőt LED-et más típusúra. Nyilvánvalóan megoldást kellett találni, hogy a beolvasó modul valamilyen formában „értesüljön” arról, hogy a beolvasott adatsor mely oszlopok és azon belül mely pozícióban helyet foglaló LED-ekről tartalmaz adatokat, és ezek a fizikai pozíciók milyen sorrendben(!) követik egymást (Gondoljunk bele pl., hogy felborítaná a sorrendet, ha egy adott oszlopon belül „kiégne” 2 db LED). Ekkor jött az ötlet, hogy készítek egy profilt, mely „megmondja”, hogy a beolvasásból származó sor éppen mely oszlop mely pozíciójára vonatkozik, és itt milyen típusú LED modul található. Ezt 3 db 16x6 mátrixként implementáltam: public static int[][] mapcol = new int[17][6]; public static int[][] maprow = new int[17][6]; public static String[][] mapvalue = new String[16][6];
A beolvasáskor, minden egyes beolvasott sor értelmezésekor a mátrixokból is kiolvassuk az oszlop (mapcol), sor (maprow), típus (mapvalue) értékeket, majd növeljük eggyel az indexet. Összesen 16 oszlop adatainak tárolására van lehetőség ezekben a mátrixokban. Bejárásukkor ügyelnem kell, hogy ne fussak ki a tartományokból. A profilt nekünk kell létrehoznunk az adott jegyzőkönyvhöz, így ennek megfelelően a felhasználó felületen lehetőséget kellett biztosítanom erre, majd a létrehozott profil fájlba mentéséről/adatainak visszaolvasásáról is gondoskodnom
40
Modern világító diódák (LED-ek) összehasonlító vizsgálata
kellett. Ez lehetővé teszi, hogy szükség esetén több eltérő profilt is készíthessünk, és mindig azt töltsük be, amelyik illeszkedik az éppen beolvasásra váró jegyzőkönyvre. Így már tényleg automatikus az adatbevitel. Miután az adott profilt betöltöttük, újra ki kell jelölnünk a jegyzőkönyv fájlt, és ekkor ellenőrizhetjük, hogy megfelelnek-e az összeegyeztetett értékek a valóságnak. Ha rossz profilt adunk meg, az hibaüzenetet produkál. Miután kijavítottuk a hibánkat, folytathatjuk az adatbázisba exportálással. 4.5. Grafikonrajzoló és jelentéskészítő modul koncepciója és megvalósítása Mivel a Beolvasó és feldolgozó modulban az alapkoncepciót már körüljártuk, illetve az adatbázis szerkezetét tárgyaltuk, az idevonatkozó részeket újból nem ismételném meg. Nézzük azokat a szempontokat, amelyeket ennek a modulnak tervezése során kellett figyelembe venni. Miután elkészültem a beolvasó modullal, amely a tesztelésre szánt jegyzőkönyveket képes volt feldolgozni, és az adatbázisban már helyes értékek jelentek meg, izgatottan kezdtem tervezgetni a grafikonrajzolás megvalósítását. Kezdetnek tanulmányoztam az egyéb kísérletek szakirodalmában szereplő ábrákat, hogy megállapítsam, milyen típusú grafikonokat használnak. Úgy találtam, hogy a Microsoft Excelben is megtalálható diagramszerkesztő által létrehozott pont (X, Y) típusú grafikonokat alkalmazták az esetek többségében. Ezek után számba vettem - a JFreeChart fejlesztői dokumentációjának áttekintésével -, hogy az API segítségével milyen lehetőségeim vannak. Örömmel tapasztaltam, hogy ez a típus Scatter Plot néven támogatva van. Értelemszerűen, ilyenkor az X tengely az égetett órák számát, az Y tengely pedig a fényáram értékeket fogja tartalmazni. Ezen kívül még egy fajta grafikontípust találtam, melyet fel tudtam használni a munkám során, ez a TimeChart. Olyan adatsorok megjelenítésére alkalmas, melyek rendelkeznek egy időbélyeg-érték párral. Így az abszcisszán az időskála, az ordinátatengelyen pedig az mért értékek helyezkednek el. Ezt a megoldást használja fel a hőmérséklet megjelenítésére szolgáló segédgrafikonom, melyről példaképeket a mellékletben lehet találni homerseklet*.png nevű fájlok formájában. Mivel a grafikonrajzolási feladatokat a JFreeChart API-ján keresztül kényelmesen biztosította, a köré építendő felhasználói felület megtervezése következett. Úgy gondoltam, előnyösebb, ha hasonló arculatot mutat, mint a
41
Modern világító diódák (LED-ek) összehasonlító vizsgálata
beolvasó modul GUI-ja, ezért felépítésekor ugyanazt a sémát alkalmaztam. Ez azért hasznos, mert aki a beolvasó modult már ismeri, az intuitív módon átlátja a grafikonrajzoló és jelentéskészítő modul felépítését is (nem beszélve arról, hogy az előzőleg írt kódomat újra fel tudtam használni, így ennek a felületnek a megvalósítási ideje már jócskán lerövidült). Az adatbázis séma értelemszerűen ugyanaz, mint amit a beolvasó modulnál tárgyaltunk. Nyilván itt az adatokat, adatbázisba írásuk helyett, onnan lekérdeznünk kell – megadott kritériumok alapján –, majd értelmeznünk, illetve kapcsolatot teremtenünk köztük. Erre szemléletes példa az yvalue és a ledtype táblák közös használata. Amikor adott pozícióban lévő LED modul adatait lekérdezzük, akkor az ahhoz tartozó - típusát jelölő - szimbólumot, és a szimbólumhoz rendelt pontos leírást össze kell kapcsolnunk, majd az ennek megfelelő információt kell visszaadnunk adott világítódiódáról. Ezt a programom egy egyszerű hash táblával fogja megoldani. Indításkor lefut egy metódus (buildSymbolTable()), mely a ledtype táblában definiált értékpárokkal feltölti a hash táblát, amelyet majd akkor fogunk használni, amikor egy LED pozícióról információkat kérünk le. Így működik a grafikonon megjelenő jelmagyarázat rész is. A grafikonok konstruálása a következőképp zajlik. Van egy ún. XYSeries objektum, melyhez értékpárokat (X, Y) lehet hozzáadni. Ez tulajdonképpen logikailag összetartozó, azonos módon ábrázolandó grafikonpontokat meghatározó adatsor létrehozására alkalmas. Egy adott LED modulnál, ha lekérjük összes eddigi fényáram értékét (és a méréshez tartozó óraszámokat), akkor az így létrejövő (értékpárokból álló) adatsort érdemes ilyen objektumban eltárolni. Ha több ábrázolandó adatforrásunk (pl. LED modul, oszlop nyitófeszültségek stb.) van, adja magát, hogy több XYSeries objektumot hozzunk létre tárolásukhoz, hiszen egy ilyen objektumban csak a logikailag is összetartozó típusú adatok tárolása szerencsés (mivel megjelenítéskor minden egyes objektum adatai egyedi jelzéssel lesznek elhelyezve a grafikonon).
Az objektumokat „felcímkézhetjük” utalva ezzel
tartalmukra, ez a szöveges információ a jelmagyarázat szekcióban lévő jelzések leírására szolgál. Így amennyiben több XYSeries objektumot szeretnénk egyszerre megjeleníteni, segítségül kell hívnunk egy XYSeriesCollection objektumot is. Ez az objektumtípus az XYSeries objektumok halmazaként fogható fel. Tetszőleges számút
42
Modern világító diódák (LED-ek) összehasonlító vizsgálata
elhelyezhetünk benne, végül magát a halmazt adjuk át a chart objektumnak megjelenítésre. Ekkor az összes adatsor egyedileg eltérő grafikonpontokat alkalmazva kirajzoltatható. A felhasználói felület úgy lett kialakítva, hogy a felhasználó tetszés szerint tudja összeállítani ennek a halmaznak a tartalmát. Természetesen a fényáram értékekről át lehet váltani az egyes diódák nyitófeszültség értékeinek ábrázolására is. Ekkor a program automatikusan 3 XYSeries objektumot hoz létre minden egyes adatsorhoz, (amennyiben mindhárom hőmérsékletértékhez rendelkezésre áll mérési adat) majd ezeket pakolja bele a halmazba. A modul másik feladata, hogy az éppen megjelenített grafikon adatairól PDF formátumú jelentést hozzon létre. Ennek kivitelezése rendkívül egyszerű. Úgy oldottam meg, hogy amikor az egyes adatforrások adatait beolvasom, amellett, hogy az XYSeries objektumhoz hozzáadogatom az értékeket, egyúttal nekik megfelelő típusú üres vektorokhoz is hozzáadom. A PDF generálása során a vektorok tartalmát iterátor segítségével bejárva, egyszerű táblázatos formában íratom a fájlba. A JFreeChart szerencsére kiválóan képes együttműködni az iText-tel, így a grafikon exportálása a riport fájl utolsó oldalára különösebb nehézség nélkül kivitelezhető.
43
Modern világító diódák (LED-ek) összehasonlító vizsgálata
5. Az elvégzett munka és a kész szoftver bemutatása A projekt jellegéből fakadóan az elvégzett munka felét – a múlt félév során – a laborban töltött segédkezés, majd a mérések bizonyos hányadának elvégzése tette ki. Sok új gyakorlati ismerettel gazdagodtam a labormunka során, melyek – érzésem szerint – látókörömet is szélesítették. Ennek mozzanatait, és a megszerzett ismeretanyagot a dolgozat első harmadában bemutattam, így most munkám második részének megvalósult eredményeit demonstrálom. Az általam elkészített szoftver tartalmazza mindazokat a funkciókat, melyeket a feladatkiírás elvárt, így ezeket szeretném most működés közben illusztrálni, ezzel az utolsó pontnak is eleget téve („Valósítsa
meg,
és
tesztelje
az
elkészült
programot
a
valódi
mérési
eredményekkel!”). Mint az olvasó tapasztalni fogja, ebben a fejezetben kompromisszumot kellett kötnöm a képméret és az olvashatóság szempontjai között. Nem akartam képekkel túlságosan zsúfolt oldalakat létrehozni, de a láthatóságot sem szerettem volna megnehezíteni. Emiatt a mellékletben minden itt látható ábrát teljes méretében csatoltam, ott egyéb ábrákat is mellékeltem. Erre azért volt szükség, mert a terjedelmi korlátok nem tették lehetővé, hogy minden szolgáltatást kép formájában be tudjak mutatni a dolgozat keretében. Így csak a legfőbb eredményeimet tudom az érdemi részben bemutatni. A további megvalósult funkciókról a melléklet áttekintésével kaphat teljesebb képet a kedves olvasó. 5.1 A beolvasó és feldolgozó modul bemutatása Bemutatom a beolvasó modult működés közben egy jegyzőkönyv bevitelének tipikus lépéseinek végrehajtásával. Majd a kísérlet során gyűjtött (már valós) adatokból fogunk grafikonokat rajzoltatni, illetve egy példajelentést elkészíteni. Az összes jegyzőkönyv és az elkészített jelentés is megtalálható a mellékletekben. A program futtatása során feltételezzük, hogy a feltelepített XAMPP szervercsomagból a MySQL és az Apache szerver már fut, és az adatbázist is létrehoztuk a megfelelő paraméterekkel. Miután elindítjuk a programot a következő felület fogad minket:
44
Modern világító diódák (LED-ek) összehasonlító vizsgálata
11. ábra: a beolvasó és feldolgozó modul főablaka A felső panelen található gombokkal vezérelhetjük a program működését. A „jegyzőkönyv
megnyitása”
gombra
kattintva
feljön
egy
fájlkiválasztó
párbeszédpanel, itt tudjuk kijelölni a beolvasandó jegyzőkönyvfájlt. A megadott fájl beolvasásra kerül és megjelenik az alsó szövegterületen. Itt ellenőrizhetjük (szükség esetén a csúszkával visszagörgetve) a tartalmat):
12. ábra: jegyzőkönyv beolvasása utáni áttekintő nézet Minden sor a jegyzőkönyvfájl egy megadott sorának felel meg. Amennyiben az adott fotoáram értéke a sötétáram éktartományába esik, úgy a program automatikusan új
45
Modern világító diódák (LED-ek) összehasonlító vizsgálata
oszlop értéksoraként érzékeli az utána következő adatokat, ezáltal felismerve és szétválasztva
a
különböző
oszlopok
adatait.
Mint
megfigyelhetjük,
jelen
jegyzőkönyvfájlból 16 oszlop LED moduljainak mérési eredményeit ismerte fel, ezt összehasonlítva a 6.2 ábrán található jegyzőkönyvlappal ellenőrizhetjük, hogy ezen mérés során valóban ennyi oszlopot vizsgáltunk, így ez rendben van. Következő lépés, a méréshez tartozó profil szerkesztése. A program három beépített üzemmódban képes működni:
Alapértelmezett besorolás: az oszlopok sorszáma 1-től indul, és sorrendben növekszik automatikusan a beolvasott oszlopok számáig;
Egyéni besorolás: ebben az esetben - a fent található szövegmezőbe írt számok felsorolásával - mi adhatunk meg egyéni oszlopsorrendet (vesszővel elválasztva), ekkor annyi oszlop kerül csak beolvasásra, ahány számot megadtunk;
Layout mode: profil használatának engedélyezése, mi szinte mindig ebben az üzemmódban használjuk a programot, így ez az alapértelmezetten kiválasztott mód. Ekkor lehetőség van új profil létrehozására, vagy egy korábbi – fájlba elmentett - visszatöltésére.
Kattintsunk a „LED térkép megadása” gombra. Ekkor előjön a következő ablak:
46
Modern világító diódák (LED-ek) összehasonlító vizsgálata
13. ábra: LED profil megadására szolgáló panel Amint azt látható, 16 oszlopnyi, soronként 6-6 érték bevitelére alkalmas szövegmező található a panelen. Az egyes mezők a következő formátumban várnak adatot: (X,Y):TÍPUS. Ahol X az oszlop (1-16), Y az oszlopon belüli LED pozíciója (1-6), Típus pedig az adott pozíciót elfoglaló LED modult meghatározó szimbólum. A kényelem érdekében, a mezők alapértelmezett pozíció értékekkel már kitöltöttek, de ezek szükség esetén megváltoztathatóak. Most mi is így cselekszünk, és a 6.2. ábrán szereplő jegyzőkönyvlap oszlopsorrendjének megfelelően módosítjuk őket. Megemlíteném, hogy az adatbázisban található LED modultípusokhoz tartozó szimbólumok a „LED típusok” fülre kattintással érhetőek el. Ezen a panelen kilistáztathatjuk a rendelkezésre álló típusokat, illetve továbbiakat adhatunk hozzá a meglévőekhez:
47
Modern világító diódák (LED-ek) összehasonlító vizsgálata
14. ábra: LED típusok lekérdezésére és hozzáadására való panel Az
innen
kiolvasott
szimbólumok
és
a
jegyzőkönyvlap
alapján
megszerkeszthetjük az adott méréshez tartozó profilt. Így meghatározzuk, hogy az egyes oszlopok egyes pozícióiban, milyen típusú LED modulok találhatóak. A
szimbólumhoz
társított
leírás
felépítése:
„Modul
Típusa/Gyártó
megnevezése@Égetése során ezen a meghajtóáram értéken üzemel”. Amennyiben egy adott pozícióban lévő LED kiégett (vagy épp nem tartalmaz modult), ezt a tényt a „null” szimbólum megadásával jelezhetjük. Ennek hatására a program az adatbeolvasáskor tudni fogja, hogy ezt a pozíciót nem szabad kiosztania (hiszen itt nem mértünk), így azt átugorja és a következő érvényes pozícióra lép.
48
Modern világító diódák (LED-ek) összehasonlító vizsgálata
15. ábra: profil szerkesztésének eredménye Miután elkészítettük a profilunkat, érdemes azt fájlba menteni, mivel tipikusan következő méréseink sem fognak (legalábbis nem jelentős mértékben) eltérni a mostanitól. Ezt a „Mentés” füllel előhívható panel segítségével tehetjük meg. Érdemes megfontolni, hogy a fájl nevében - a dátum segítségével - jelezzük, melyik méréshez készült az adott profil, a későbbi könnyű visszakeresés érdekében. Mostani esetünkben pl. 20100527.led néven. Legközelebb, amikor beolvastatunk egy újabb jegyzőkönyvet, nincs más teendőnk, mint a „Betöltés” fül alatti panelen megkeresni a most elkészített profilt. Ha a profilt mentettük, próbáljuk ki, hogy megfelelően illeszkedik-e a jegyzőkönyvfájlunkhoz (nyilván igen, hiszen ez alapján készítettük, de a későbbi
49
Modern világító diódák (LED-ek) összehasonlító vizsgálata
mérések jegyzőkönyveivel való használat előtt ez a lépés feltétlenül szükséges!) Ehhez menjünk át a „Nyitófeszültség és sötétáram” fülre. Ez fogjuk látni:
16. ábra: Nyitófeszültség és sötétáram panel Ezen a panelen tudjuk bevinni az egyes oszlopok fényáram vizsgálata előtt/után mért nyitófeszültség értékeket (Formátuma: sorelőttiérték;sorutániérték). Szükség esetén itt tudunk korrigálni a sötétáram értékhatáron is. A legalsó mezőben adhatjuk meg, hogy a mérés az öregítő égetés hányadik órájában történt. Nyomjuk meg a „Bevitel”* gombot! Visszatértünk a főablakhoz, tehát most olvastassuk újra a jegyzőkönyvet a „Jegyzőkönyv megnyitása” gomb újbóli használatával. Probléma esetén piros színűre vált a hibát kiváltó jegyzőkönyv tartalma, és egy hibaüzenetben tájékoztatást ad a kiváltó okról. Az ok általában, hogy olyan profilt használunk, melyben kevesebb oszlopot definiáltunk, mint ahányat a beolvasott
*
Az, hogy a „Bevitel” gomb ezen a panelon van, helytakarékossági és praktikai megfontolás is egyben. Mivel egy jegyzőkönyv beolvasásánál általában (bár nem kötelezően) az oszlopok nyitófeszültségei is megadásra kerülnek, az óraértéket pedig kötelezően meg kell adnunk a helyes adatbevitel érdekében.
50
Modern világító diódák (LED-ek) összehasonlító vizsgálata
jegyzőkönyv tartalmazott, vagy rosszul lett megállapítva a sötétáram értékhatár, így a program nem képes szétválasztani az adott oszlopokhoz tartózó adatsorokat. Mindkét esetben kézzel korrigálnunk kell a beállításokon, majd újból próbálkozni, ameddig a jegyzőkönyv tartalma ismét fekete nem lesz (sikeres illeszkedés). Ennek megvalósulását láthatjuk a 17. ábrán.
17. ábra: a jegyzőkönyvfájl újbóli, profilra illeszkedő beolvasása Mint láthatjuk, a jegyzőkönyv beolvasása és feldolgozása itt már a profil alapján történt (erre utaló jel, hogy mind a 16 oszlop adatsora megfelelő pozíciókat és típus értékeket kaptak). Az „Exportálás” gombot megnyomva, az adatok exportálásra kerülnek az adatbázis megfelelő tábláiba. Erről pl. a phpMyAdmin felületén meggyőződhetünk. A többi jegyzőkönyv beolvasása innentől kezdve – amennyiben a LED-ek kiosztása a gépen belül változatlan maradt és a mérési sorrendet sem variáltuk – 2 kattintással realizálható. Igaz, az oszlop nyitófeszültségek értékeit a papírról be kell gépelnünk. A programnak még további funkciói is megvalósultak, ezeket terjedelmi okokból ebben a fejezetben nem ismertetem (ezekről képeket helyeztem el a mellékletben). Két további kisegítő beolvasó modul is elkészült (egyik a világítódiódánkénti nyitófeszültség értékeket, másik, a gép belsejében alakuló hőmérsékleti adatokat tartalmazó fájlokat képes önállóan feldolgozni és
51
Modern világító diódák (LED-ek) összehasonlító vizsgálata
beilleszteni az adatbázisba. Ezek külön grafikus felülettel nem rendelkeznek, így parancssorból indítandóak. 5.2. A grafikonrajzoló és jelentéskészítő modul bemutatása Az előzőekben bemutatott módszer alapján 14 valódi, a kísérletekből származó adatokat tartalmazó jegyzőkönyvet vittem be az adatbázisba, hogy segítségükkel demonstrálni tudjam a Grafikonrajzoló és jelentés készítő modul képességeit. Miután elindítottuk a programot, a következő ablak fogad bennünket:
18. ábra: a grafikon és jelentéskészítő modul főablaka A főablakot látjuk, alul a grafikon rajzterülete helyezkedik el, a felső panelen pedig a vezérlőgombok, illetve egyéb beállítási célokra szolgáló jelölőnégyzetek, szövegmezők találhatóak. Ezek szerepét a bemutató későbbi lépései során ismertetem. Ahhoz hogy rávegyük a programot valamilyen adat ábrázolására, először adatforrásokat kell hozzáadnunk a grafikonhoz. Hogy ezt megtegyük, nyomjuk meg a „Beállítások” gombot; ismerős felépítésű, fülekkel elérhető paneleket tartalmazó ablak fogad minket. Itt kattintsunk át a „Sor nyitófeszültségek” fülre.
*
Megjegyzés: a „sor nyitófeszültsége” fül a mi esetünkben igazából az oszlopok nyitófeszültségét jelenti; mivel a szakirodalom inkább a sor kifejezést volt használatos, jobbnak láttam így elkészíteni a
52
Modern világító diódák (LED-ek) összehasonlító vizsgálata
19. ábra: LED modulok, mint adatforrások kiválasztása Mint látjuk, a gépben található minden egyes LED pozíciót egy annak megfelelő jelölőnégyzet szimbolizál. Ezek bekapcsolásával adhatunk hozzá egy adott LEDmodult az ábrázoláshoz, mint adatforrást. Választhatunk egyetlen konkrét pozícióban található LED-et, vagy több LED tetszőleges kombinációját is. A panel alján található
kék
jelölőnégyzetek
segítségével
egy
egész
oszlop
ábrázolását
kapcsolhatjuk be/ki. Ez nagyon kényelmessé teszi az adatforrások kiválogatását, ha mondjuk több oszlopnyi LED-modult akarunk egymással összehasonlítani. Miután ezek közül valamelyiket bekapcsoltuk, az adott oszlopon belül bármelyik jelölőnégyzet értékét kézileg negálhatjuk. Ha pedig egy adott oszlop „kék kapcsolóját” kikapcsoljuk, akkor minden egyes modul jelölőnégyzete kikapcsolt állapotba kerül.
szoftver szövegezését. Elég, ha megjegyezzük, hogy esetünkben 16 oszlop és oszloponként 6 db LED modul helyezkedik el, így egyértelmű marad, hogy mikor mire hivatkozunk.
53
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Jelöljük ki pl. az 5. oszlopot, és nézzük meg a grafikonon! Ehhez egyszerűen csak kapcsoljuk be a neki megfelelő kék kapcsolót, majd lépjünk át a „Sor nyitófeszültségek” fülre. Ekkor a következő ábrán látható panel tárul elénk.
20. ábra: Sor nyitófeszültségek ablak Itt pedig az „Alkalmaz” gomb lenyomásával visszatérhetünk a főablakhoz. Most már nincs más dolgunk, csak újrarajzoltatni a grafikont a „Grafikon frissítése gombbal”. Miután ez megtörtént, az alábbi ábrán látható eredményt kapjuk.
54
Modern világító diódák (LED-ek) összehasonlító vizsgálata
21. ábra: az 5. oszlop LED moduljainak fényerősség grafikonja Ahogy az látható, meg is jelentek az 5. oszlop egyes LED moduljainak fényáram értékei. Itt most az abszolút ábrázolási módot láthatjuk (a konkrét valós számértékeket megjelenítve). A grafikon alján található a jelmagyarázat. Itt láthatjuk, hogy a kirajzolt pontok melyik LED modulhoz tartoznak. A nyíl után pedig a modul leírását olvashatjuk. Formátuma: „típus/gyártó/meghajtó áram nagysága”. Váltsunk át relatív ábrázolásmódra, hogy százalékértékekben jelenjen meg a fényáram változás! Ezt két módon tudjuk megtenni. Visszalépünk a beállítások ablakba, és a „Statisztika & relatív ábrázolás” fület kiválasztva, a megjelenő panelen bekapcsoljuk az „Áttérés relatív százalékos skálán való ábrázolásra” jelölőnégyzetet. Vagy használhatjuk a gyors eszköztárat. Ez a főoldal tetején található gombok melletti komponenseket jelenti:
22. ábra: A gyors eszköztár
A „PDF Riport generálása” gomb megnyomásakor egy fájlkiválasztó párbeszédpanelen megadhatunk egy fájlt. Ezen a néven fog elkészülni az automatikusan generált jelentésünk az éppen megjelenített grafikonon szereplő adatokról (maga a grafikon is exportálásra kerül a PDF fájlba);
55
Modern világító diódák (LED-ek) összehasonlító vizsgálata
A
relatív
jelölőnégyzettel
kényelmesen
átválthatunk
százalékos
megjelenítésre, illetve onnan vissza abszolút ábrázolásra.
A harmadik gyorseszköz arra szolgál, hogy egy megadott intervallum az ordinátatengelyen mindenképpen megjelenítésre kerüljön. Itt tudjuk kézileg kijelölni az α és Ω mezőben megadott értékekkel az intervallum kezdő és vég pontjait. A jelölőnégyzet bekapcsolásával tudjuk a funkciót aktiválni. (Figyelem! Ha olyan intervallumot adunk meg, amin kívül is vannak értékek, akkor a grafikon automatikusan úgy fog skálázódni, hogy minden - a grafikonon szereplő - érték látszódjék.) Kapcsoljuk be a „relatív” jelölőnégyzetet és frissítsük a grafikont. A
következőt kapjuk:
23. ábra: az 5. oszlop LED moduljainak relatív fényerősség grafikonja Mint láthatjuk, minden LED modul fényárama tényleg 100%-tól indul, így sokkal szemléletesebben tudjuk az egyes modulok értékeinek változását egymással összehasonlítani. Most próbáljuk ki a statisztikai modul szolgáltatásait is. Ehhez nem kell mást tennünk, kattintsunk a Beállítások ablak „Statisztika & relatív ábrázolás” fülére, majd kapcsoljuk be a statisztikai modult. Ekkor elérhetővé válik a következő terület:
56
Modern világító diódák (LED-ek) összehasonlító vizsgálata
24. ábra: Statisztika & relatív ábrázolás panel Ahhoz hogy megnézhessük az átlag és a standard szórás értékeit, célszerűbb kevesebb LED modul adatforrást kiválasztani, hogy áttekinthetőbb legyen a grafikon. A következő ábrához 4 db különálló LED-et választottam csak ki. Nézzük az eredményt:
25. ábra: fényerősség grafikon az átlag és a standard szórás értékek bekapcsolásával
57
Modern világító diódák (LED-ek) összehasonlító vizsgálata
A 25. ábrán már szerepelnek az átlag és szórás értékek is. Azonban, hogy ezeket alaposabban szemügyre vehessük, meg kell ismerkednünk a nagyítás/kicsinyítés funkcióval, mely segítségével ki tudunk részletezni egy adott intervallumot. Ezt az egér segítségével tudjuk megtenni, ilyenkor értelemszerűen csak ez az intervallum fog látszani a grafikonon. Tegyünk egy próbát, nagyítsuk ki a 846 órában mért 6. oszlop 3. pozícióban lévő LED modul fényáram értékeit az egér bal gombját lenyomva, fentről-lefelé balról-jobbra kijelölve a kérdéses területet. (Az eredeti grafikonhoz a lentről-felfelé jobbról-balra történő kattintással juthatunk vissza). Szükség esetén nagyítsunk többször, amíg a 25. ábrához hasonlót nem látunk. Látható, hogy az adott LED modul 5 mérési iterációjából származó kék pontokkal jelölt értékei mellett további 3 különböző jelölés is megjelent. Ezek közül egyik az átlag, mely itt most szürke háromszöggel van jelölve. A másik kettő pedig a standard szórás (kék háromszög, piros négyzet). Lehetőség van csak az átlag érték megjelenítésére is, ha az eredeti értéket megjelenítését a „Statisztika és relatív ábrázolás” fülön kikapcsoljuk. Az egyes szimbólumokat, melyeket az ábrákon láthatunk, automatikusan generálja, majd adja hozzá a grafikonhoz az objektum. Ha egy adott pont fölé visszük az egeret, akkor automatikusan megjelenik, hogy az melyik adatforráshoz tartozik és mik a pontos koordinátái. Jobb kattintás esetén a menüben további beépített (JFreeChart-os) funkciók is elérhetőek, többek között a grafikon képfájlba mentése.
26. ábra: a fényerősség grafikonon szereplő átlag és standard szórás értékei
58
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Természetesen nem csak fényáram értékeket tud a program megjeleníteni, hanem a jegyzőkönyv lapokról bevitt oszlop nyitófeszültségeket, illetve az adott LED modulok egyenkénti nyitófeszültség értékeit is. Ehhez annyit kell tennünk, hogy a „Beállítások” ablak „Sor nyitófeszültségek” fülére kattintva bejelöljük az „Y érték ábrázolás helyett nyitófeszültség diagram módba kapcsolok” rádiógombot. Ennek hatására megváltozik a grafikon címsora, és szerkeszthetővé válik az oszlopokra és világítódiódákra lebontott nyitófeszültségek adatforrások kiválasztására szolgáló panel is. Az egyes LED-ekre vonatkozó nyitófeszültség ábrázoláshoz lépjünk át a „LED nyitófeszültségek fülre”. Természetesen, a teljes oszlopon mért és a diódák nyitófeszültségei együtt is ábrázolhatóak, hiszen egyazon értelmezési tartományon vesznek fel értékeket. Nézzünk meg példaként 6 tetszőlegesen kiválasztott világítódióda nyitófeszültség értékét. Ehhez jelöljük ki őket, alkalmazzuk a beállításokat, majd frissítsük a grafikont. Mint látható, az egyes LED-ek mindhárom hőmérsékleten mért nyitófeszültsége ábrázolásra kerül, a jelmagyarázatban feltüntetve, az adott grafikonpont esetében melyik LED nyitófeszültség értéket melyik hőmérsékleten mértük. Megemlíteném, ezeket az értékeket egyébként - a már korábban említett beolvasó segédmodulom - segítségével vittem be a mérőműszer által generált fájlból.
27. ábra: nyitófeszültség érték grafikon 6 tetszőlegesen választott LED modulra
59
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Hasznos segítség lehet még az idő alapján megjelenítendő grafikonpontok szűrése. Ezt a funkciót az „Időintervallum-filter beállítása” fül alatti panelen lehet aktiválni.
28. ábra: az időintervallum szűrő beállítás ablaka Két időbélyeget megadva, csak ebbe az időintervallumba eső értékek kerülnek megjelenítésre. Ez akkor lehet célravezető, ha nem óraértékek alapján akarjuk egy adott adatforrás értéksorát vizsgálni, hanem konkrétan, csak két abszolút időpont közötti változására vagyunk kíváncsiak. Következik az utolsó főfunkció bemutatása. Amikor egy grafikont létrehoztunk, lehetőségünk van automatikus jelentést generálni róla. Nyomjuk meg a „PDF Riport Generálása” gombot, majd adjunk meg egy fájlnevet, végül mentsük a dokumentumot. A 29. ábrán lévő grafikonból (8. oszlop LED moduljainak fényáram változása) fogjuk a PDF fájlt generáltatni.
60
Modern világító diódák (LED-ek) összehasonlító vizsgálata
29. ábra: a 8. oszlop fényáram változása, melyből jelentést fogunk készíteni A következő ábrákon látható PDF fájltartalmat állítja elő a program. Természetesen, ha az átlagot, illetve a standard szórást is bekapcsoljuk a grafikonon, akkor azok értékei is megjelennek a PDF dokumentum lapjain, táblázatos formában. A 30.-31.-32.-33. ábra az automatikusan generált jelentés tartalmát mutatja be. A „PDF Riport Generálása” gomb megnyomásakor a fájlnév megadása után a program meghívja a megfelelő iText tagfüggvényeket, mellyel létrehozza a PDF fájlt és feltölti a táblázatokkal, majd a grafikonképpel. A 31.-31. ábra mutatja a táblázatos formátumban kimentett fotoáram értékeket. Annak függvényében, hogy mi van a grafikonon megjelenítve, hozzáadódnak az átlagok és a standard szórási értékek adatai is a fájl tartalmához. A 32. ábrán magát, az exportált grafikont láthatjuk. A 33. ábrán pedig annak jelmagyarázatát. Jelenleg ez a szolgáltatás még erőteljes fejlesztés alatt áll, ki szeretném terjeszteni funkcionalitását a nyitófeszültség grafikonokkal való együttműködésre is. Illetve megoldást kell még találnom az oldalakon időnként fellépő tartalom elrendezési problémákra.
61
Modern világító diódák (LED-ek) összehasonlító vizsgálata
30.-31.-32.-33. ábra
62
Modern világító diódák (LED-ek) összehasonlító vizsgálata
6. Összefoglaló A témakiírásnak megfelelően létrehoztam egy olyan szoftvert, amely képes teljesíteni
az elvárt feladatokat, ezen kívül egyéb plusz szolgáltatásokkal is
kiegészítettem az alapfunkciókat. Bízom benne, hogy hasznos segítséget nyújthat olyan szakemberek számára, akik LED modulok közép és hosszú távú stabilitását vizsgálják tesztmérésekkel, és ennek keretében rendszeresen dolgoznak fényáram és nyitófeszültség értékekkel. Célom az volt, hogy a rendszeres mérések során keletkező, nagyobb mennyiségű adat kézi feldolgozásából fakadó monotonitásától megkíméljem őket, egyúttal az automatizálás hatására a hibalehetőségek száma is csökkenjen. Törekedtem arra, hogy az információk szabványos adatbázisban kerüljenek eltárolásra, hogy így könnyen kezelhetővé és megoszthatóvá váljanak mások számára is. A Virtuális környezetek és Fénytan Laboratóriumban jelenleg zajló KÖZLED projekt[14] keretében végzett kísérlet fényáram változás eredményeit már ezzel a programmal is megtekinthetik az érdeklődők. Ugyanakkor fontosnak tartom megemlíteni, hogy a szoftver felépítése során úgy próbáltam eljárni, hogy hasonló mérési feladatokból keletkezett adatok feldolgozására is képessé válhasson, ha valaki ehhez igazítja a beolvasó modul adatfeldolgozó metódusát, illetve a megjelenítő modul grafikonkonstruálási részét. A lehetőség adott, hogy például a jövőben, a program jelenlegi állapotát kibővítve képessé válhasson a színképváltozás mérések adatainak beolvasására, feldolgozására, azok grafikus prezentálására. Ennek lépései meglehetősen hasonlítanak az aktuális probléma megoldásához, bár meg kell jegyeznem, hogy ebben az esetben más típusú ábrázolási módszert és eltérő típusú grafikont kellene kialakítani. Természetesen nem csak a világítástechnika területén kerülhet felhasználásra. Ajánlom tanulmányozás céljából mindazok számára, akik valamilyen hasonló problémát szeretnének automatizálni.
63
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Irodalomjegyzék
[1]
IES-LM-79-08 – Electrical and Photometric Measurements of Solid-State Lighting Products
[2]
Narendran, N., Y. Gu, L. Jayasinghe, J.P. Freyssinier, and Y. Zhu. 2007. Long-term performance of white LEDs and systems. Proceeding of First International Conference on White LEDs and Solid State Lighting, Tokyo, Japan, November 26-30, 2007, P174–P179.
[3]
PHOTOMETRIC AND COLORIMETRIC STABILITY OF LEDS Csuti P1, Kránicz B1, Krüger U2, Schanda J1, Schmidt F2 1. University of Pannonia, Hungary; 2. TechnoTeam Bildverarbeitung GmbH, Germany
[4]
IES-LM-80-08 - Approved Method: Measuring Lumen Maintenance of LED Light Sources
[5]
Google Spreadsheet dokumentum (a mellékletben megtalálható)
[6]
http://www.oracle.com/technetwork/java/javase/downloads/index.html
[7]
http://www.mysql.com/downloads/connector/j/
[8]
http://dev.mysql.com/downloads/mysql/
[9]
http://www.phpmyadmin.net/home_page/index.php
[10]
http://projects.apache.org/projects/http_server.html
[11]
http://www.apachefriends.org/en/xampp-windows.html
(letöltés
dátuma
2010. december 6.) XAMPP for Windows [12]
http://www.jfree.org/jfreechart/ (letöltés dátuma 2010. december 6.)
[13]
http://itextpdf.com/itext.php (letöltés dátuma 2010. december 6.)
[14]
KOZLED Projekt http://www.eet.bme.hu/new/index.php?option=com_content&task=view&id= 266&Itemid=252
(letöltés
dátuma
2010.
december
6.)
Célkitűzés:
Energiatakarékos közvilágítási LED-es lámpatestcsalád fejlesztése
64
Modern világító diódák (LED-ek) összehasonlító vizsgálata
Mellékletek
A szakdolgozatom során felhasznált dokumentumok, képek, forráskódok, szoftverek mind megtalálhatóak a CD mellékleten. A CD tartalma a Főkönyvtár: Szakdolgozat_Hollosy_Adam_2010 könyvtárban található. Az ebben szereplő alkönyvtárak és ezek tartalma: Szakdolgozat:
A szakdolgozatot doc és pdf formátumban tartalmazó könyvtár.
Dokumentumok:
Az
irodalomjegyzékben
hivatkozott,
fájl
formátumban
rendelkezésre álló dokumentumok. Programok:
A szoftver fejlesztése során felhasznált szoftverkomponensek. XAMPP
telepítő
csomag,
JFreeChart
grafikonkezelő
függvénykönyvtár, iText PDF-fájlkezelő függvénykönyvtár. Forraskodok:
A szoftver minden komponensének forráskódja.
Egyeb_fajlok:
Példa fájlok. LED-kiosztási profilok (*.led), jegyzőkönyvek (*.txt), az adatbázis eredeti üres szerkezetét tartalmazó database.sql,
a
példaként
mellékelt,
jegyzőkönyvekkel
feltöltött adatbázis sample.sql. Google Spreadsheet fájl. Egyéb fájlok. Kepek:
A szakdolgozat folyamán felhasznált összes képfájl eredeti méretben (*.png). Ezen kívül a Tovabbi_kepek alkönyvtárban olyan képeket találhatunk, melyek a szoftver további funkcióit hivatottak bemutatni, de a dolgozatban terjedelmi korlátokra való tekintettel nem szerepeltek.
65