TARTU ÜLIKOOL LOODUS- JA TEHNOLOOGIATEADUSKOND Füüsika instituut Ivar Mahhonin Bakalaureusetöö arvutitehnikas (12 EAP) SATELIITIDE JÄLGIMISE OPTIMEERIMINE MAAJAAMADES Juhendajad: Urmas Kvell Lauri Kimmel Tõnis Eenmäe Kaitsmisele lubatud ............................................ Juhendaja ............................................ allkiri, kuupäev Juhendaja ............................................ allkiri, kuupäev Juhendaja ............................................ allkiri, kuupäev Tartu 2013 1 Sisukord 2 Sissejuhatus ................................................................................................................ 4 3 Satelliitide jälgimine .................................................................................................. 5 3.1 Satelliidi trajektoori esitamine ........................................................................... 5 3.2 Antenni suunadiagramm .................................................................................... 7 3.3 Antennide suunamise piirangud ......................................................................... 9 3.4 Ülelendude liigitamine ..................................................................................... 10 3.5 Antennipöörajate juhtimine .............................................................................. 13 3.5.1 Satelliidi jälgimise tarkvara Gpredict ....................................................... 13 3.5.2 Missioonijuhtimiskeskuse tarkvara ehitamise raamistik Hummingbird ... 14 3.5.3 Sõnumiteenuskeskkond ActiveMQ........................................................... 14 3.5.4 Orbitaaldünaamika teek Orekit ................................................................. 15 4 Optimeerimise mooduli kavandamine ..................................................................... 16 4.1 Arvutuste moodul ............................................................................................. 16 4.2 Optimeerimise moodul ..................................................................................... 16 4.3 Antenni pööraja juhtimine ................................................................................ 17 5 Optimeerimise mooduli realisatsioon ...................................................................... 19 5.1 Programmeerimiskeele Java valiku põhjused .................................................. 19 5.2 Andmete vastuvõtmine missioonijuhtimiskeskusest ........................................ 19 5.3 Satelliidi trajektoori arvutuste moodul ............................................................. 21 5.4 Optimeerimise moodul ..................................................................................... 21 5.4.1 Tartu Observatooriumi satelliitside maajaama antennipööraja ................. 23 5.4.2 Tartu Ülikooli satelliitside maajaama antennipööraja............................... 27 5.5 Optimeeritud andmete edastamine antennipöörajasse ..................................... 28 6 Satelliitide jälgimise optimeerimise testimine ......................................................... 30 6.1 Vahendid ........................................................................................................... 30 6.2 Tarkvaralise testimise tulemused ..................................................................... 30 6.2.1 Tartu Ülikooli satelliitside maajaama pöörajate testimine ........................ 32 6.2.2 Tartu Observatooriumi satelliitside maajaama pöörajate testimine .......... 35 6.2.3 Riistvaraline testimine .............................................................................. 35 7 Kokkuvõte ................................................................................................................ 38 8 Summary .................................................................................................................. 39 9 Kasutatud kirjandus .................................................................................................. 41 10 Lisad ..................................................................................................................... 42 Lisa 1. Lihtlitsents ....................................................................................................... 42 2 Lisa 2. Lähtekood ........................................................................................................ 43 Lisa 3. Bamboo testimise raaport ................................................................................ 44 3 2 Sissejuhatus Käesoleva bakalaureusetöö põhieesmärgiks on satelliitide jälgimise optimeerimine maajaamades. Kuna maajaamade antennide liikumine on mehaaniliselt piiratud, siis seab see ka piirangud madalal Maa orbiidil tiirlevate satelliitide pidevale jälgimisele. Seetõttu võib side satelliidiga ka ühe ülelennu jooksul katkeda. Tartu Ülikooli satelliitside maajaama jaoks on oluline pideva side toetamine satelliidiga ESTCube-1 [1] , sest sellest sõltub terve missiooni edukus: kui satelliidi positsiooni jälgimisel esineb raskusi, siis toob see endaga kaasa andmepakettide kao sideseansi jooksul. Satelliitide jälgimise optimeerimine maajaamades on levinud probleem ka teistes satelliitside jaamades, aga hetkel puudub olemasolev vabalt kättesaadav universaalne lahendus. ESTCube-1 projektis oli maajaama antennipööraja juhtimiseks kasutusel tarkvara Gpredict [2] . Selle põhifunktsionaalsus võimaldab arvutada satelliidi jooksvat trajektoori ja edastada käske antennipöörajale satelliidi jälgimiseks. Gpredict’i peamiseks puuduseks on piiratud funktsionaalsus satelliitide jälgimise optimeerimiseks erinevate antennipöörajatega. Satelliidi ESTCube-1 missioonjuhtimise tarkvara põhineb avatud lähtekoodiga Hummingbird’i Java raamistikul. Antud raamistiku puuduseks on satelliitide jälgimise optimeerimise mooduli puudumine. Käesoleva töö eesmärgid on: ● kavandada tarkvaramoodul, mis arvutab satelliidi ülelennu trajektoori konkreetses ajavahemikus, ● mooduli testimine ühiktestidega (lähtekoodi kattuvus testidega üle 70 protsendi) ja selle katsetamine reaalsetes olukordades, ● kavandada tarkvaramoodul, mis analüüsib etteantud satelliidi ülelennu trajektoori ja lähtuvalt antennipöörajast optimeerib pööraja juhtimise käsud satelliidi pidevaks jälgimiseks, ● optimeerimismooduli testimine ühiktestidega (lähtekoodi kattuvus testidega üle 70 protsendi) ja selle katsetamine Tartu Ülikooli satelliitside maajaamas erinevate satelliitidega. 4 3 Satelliitide jälgimine Satelliit liigub meie planeedi ümber mööda kindlat orbiiti. Satelliidi positsiooni orbiidil kirjeldatakse kasutades parameetreid, mis võimaldavad arvutada satelliidi asukohta mistahes ajahetkel. Meie kasutame Kepleri orbiidi lähendit (vt. joonis 1), kus orbiidil liikuva keha asukohta saab kirjeldada kuue parameetriga: ekstsentrilisus (e, ingl. k. eccentricity), suur pooltelg (a, ingl. k. semimajor axis), kaldenurk (i, ingl. k. inclination), tõususõlme laiuskraadid (Ώ, ingl. k. longitude of the ascending node), periapsise argument (ω, ingl. k. argument of periapsis), keskmine anomaalia (ν, ingl. k. mean anomaly). Joonis 1. Kepleri orbiit koos seda määravate parameetritega [3]. Praktiliseks satelliitide jälgimiseks esitatakse nimetatud parameetreid TLE-formaadis. Sellise kaherealise formaadi nimetus on TLE, ingl. k. Two- Line Element set. Tänu oma kompaktsusele, on antud formaat laialt kasutusel satelliidi orbiidi parameetrite levitamiseks ja satelliidi asukoha leidmiseks suvalises asukohas ja suvalisel ajal. Näitena on toodud joonisel 2 rahvusvahelise kosmosejaama ISS üks TLE. Joonis 2. Rahvusvahelise kosmosejaama ISS orbiidi parameetrid TLE-formaadis, mis on välja antud 2008. aastal 264. päeval. [4] 3.1 Satelliidi trajektoori esitamine 5 Satelliidi ülelennu trajektoor satelliitside maajaama suhtes esitakse tavaliselt horisondi- lises koordinaatsüsteemis, kus satelliidi asukoht taevas on määratud asimuudi ja elevatsiooni (kõrgus horisondist) kaudu (vt. joonis 3). Joonis 3 . Horisondiline koordinaatsüsteem. [5] Asimuut on nurk põhjapunkti ja seniiti läbiva suurringi ning satelliidi asukohta ja seniiti läbiva suurringi vahel. Asimuudi mõõdetakse põhjapunktist ida suunas. Elevatsioon on nurk horisondi ja satelliidi asukoha vahel, mõõdetuna piki satelliidi asukohta läbivat suurringi. Joonisel 4 on kujutatud satelliidi ESTCube-1 trajektoor taevasfääril, vaadelduna Tartust ühe ülelennu jooksul. Toodud trajektoori puhul on näha, et ülelennu algushetkel on asi- muudi väärtus 184 kraadi ja elevatsiooni väärtus on 0 kraadi. Ülelennu kõrgeimas punk- tis on asimuudi väärtus 270 kraadi ja elevatsioon 39 kraadi. Joonisel 5 on näha kuidas asimuudi ja elevatsiooni väärtused muutuvad täpsemalt. 6 Joonis 4. Satelliidi ESTCube-1 trajektoor Tartu Ülikooli satelliitside maajaama suhtes (ülelennu algus 23. mail 2013 kell 23:20). Kellaajad trajektoori peal näitavad ajahet- ki mil satelliit ületab seda punkti. Elevatsioon on antud 30-kraadise sammuga, st. vä- lisringil on elevatsioon 0 kraadi ja joonise keskpunktis on 90 kraadi. Asimuudi väärtuse nullpunktiks loetakse põhjasuunda (joonisel tähistatud N-ga) ja see suureneb päripäeva 360 kraadini. Joonis 5. Antud graafik näitab asimuudi ja elevatsiooni muutumist ülelennu jooksul. Vasakpoolne telg näitab, et asimuudi väärtused muutuvad vahemikus 180 kuni 350 kraadi. Parempoolne telg näitab, et elevatsioon muutub vahemikus 0 kuni 50 kraadi. 3.2 Antenni suunadiagramm Satelliidi edukaks jälgimiseks maajaamast on oluline arvestada jaama antennide võime- kusega. Jaama kirjeldamiseks kasutame antennide suunadiagramme, mis iseloomusta- vad antenni kiirguse amplituudi sõltuvust suunast (vt. joonis 6). Suunadiagrammi põhi- karakteristikud on järgmised:  pealehe laius ja kiirguse tase, 7  kõrvallehtede maksimaalse kiirguse tase,  tagalehe maksimaalse kiirguse tase. Kõrval- ja tagalehtede olemasolu näitab, et antenn kiirgab raadiolaineid mitte ainult pealehe suunas vaid ka teistesse suundadesse, mis võib suurendada raadiohäireid. Joonis 6. Antenni suunadiagramm ühes tasandis ringkoordinaadistikus.[6] Satelliidi ESTCube-1 peamist sidejaama, Tartu Ülikooli satelliitside maajaama, iseloo- mustavad parameetrid on:  70 cm laineala ristyagi antennid (WX7036 [7]) võimendusega 14- 16,3 dBd ja pealehe laius (3 dB piir) on 30 kraadi,  2 m laineala ristyagi antennid (WX214 [7]) võimendusega 12,3 dBd ja pealehe laius on 40 kraadi. Antennide suunamiseks kasutatakse antennipööraja komplekti, mis koosneb asimuudi ja elevatsiooni pöörajast. Lähtudes antennipöörajate parameetritest võime satelliitsides kasutatavad pöörajad tinglikult jagada neljaks grupiks:  elevatsiooni pöörajad, mis pööravad maksimaalselt 90 kraadi,  elevatsiooni pöörajad, mis pööravad maksimaalselt 180 kraadi,  asimuudi pöörajad, mis pööravad maksimaalselt 360 kraadi,  asimuudi pöörajad, mis pööravad rohkem kui 360 kraadi. Tartu Ülikooli satelliitside maajaamas on kasutusel antennipööraja Yaesu G5500, mille ulatus elevatsioonis on 180 kraadi ja asimuudis 450 kraadi. Antud maajaama elevatsiooni pööraja kiirus on 2,68 kraadi/ s ja asimuudi pööraja kiirus on 6,20 kraadi/s. 8 Satelliidi ESTCube-1 raadiosideks planeeritakse rajada teine maajaam Tartu Observatooriumis, kus on antennipöörajad, mis toetavad elevatsiooni 0 kuni 180 kraadi ja asimuudi väärtuseid 0 kuni 360 kraadi. 3.3 Antennide suunamise piirangud Satelliidi ühe ülelennu jälgimiseks maajaamaga on tarvis jagada ülelennu trajektoor etapphaaval asimuudi ja elevatsiooni paarideks, millega juhitakse antennipöörajaid. Edukaks raadiosideks piisab, kui suunamistäpsus on väiksem kui antenni pealehe laius. Kuid tegelikult eksisteerib madalal Maa orbiidil olevate satelliitide jälgimisel mitmeid raskuseid. Maajaama antennid on ühendatud raadioga kaablite kaudu. Kui antennipööraja pöörab liialt ümber oma telje, siis võivad antennikaablid keerduda ümber antennimasti ja minna katki. Et seda vältida, on antennipöörajate liikumine mehaaniliselt piiratud. See tähen- dab , et antennid ei saa tavaliselt teha üle ühe täispöörde asimuudis. Seega tekib satellii- tide jälgimisel sideauk, kui satelliidi trajektoor ületab põhjasuuna ehk asimuudi 0 või 360 kraadi. Teiste sõnadega, pööraja ei saa ületada seniidi ja põhjasuuna vahelist joont, kuna selle punkti ületamine on mehaaniliselt piiratud. Näiteks, kui satelliidi ülelend algab asimuudilt 270 kraadi, liigub päripäeva 360 kraadini ja sealt edasi 15 kraadini. Satelliiti jälgides muutub antennipööraja asimuut ühtlaselt kuni 360 kraadini, peale seda on pööraja sunnitud tegema täispöörde, et jätkata jälgimist vahemikus 0 kuni 15 kraadi (vt. joonis 7). Joonis 7. Ilma optimeerimiseta juhitud antennipööraja võib jälgida satelliiti pidevalt kuni põhjasuunani (näidatud joonisel rohelise värviga). Pärast seda sooritab pööraja 9 täispöörde, mille ajal on antennid suunatud satelliidist eemale ja raadioside katkeb. Seejärel jätkab antennipööraja satelliidi jälgimist (näidatud joonisel punase värviga). Tavaliselt tekib probleem ka elevatsiooni pöörajatega, kui satelliidi ülelend on väga kõrge, st. maksimaalse elevatsiooni väärtus kasvab 90 kraadini. Sellisel kõrgel ülelen- nul tekib olukord, kus seniidilähedases taeva piirkonnas muutuvad asimuudi väärtused väga kiiresti. Seetõttu peab asimuudi pööraja tegema praktiliselt pool pööret loetud se- kundite jooksul. Kõrgetel ülelendudel on kindel elevatsiooni väärtus, alates millest muutub satelliidi kii- rus asimuudis maajaama suhtes kiiremini, kui on antennipööraja maksimaalne kiirus. Maksimaalne kiirus sõltub antennipööraja tüübist. Tartu Ülikooli satelliitside maajaamal on nimetatud kiirus 6,2 kraadi/sekundis. Tabelis 1 on toodud maksimaalsed asimuudi muutumise kiirused erinevate elevatsioonidega ülelendudel. On näha, et Tartu Ülikooli satelliitside maajaama jaoks on antud elevatsiooni väärtus 80,2 kraadi (piir). Alates sel- listest ülelendudest on vaja asimuudi pöörajal tagada kiirus 4,5 kraadi/ sekundis. Paraku spetsifikatsioonis toodud 6,2 kraadi / sekundis kiiruse juures ei ole suunamise täpsus nii hea ja kiirus 4,5 jätab piisava varu kindlalt tagatud jälgimiseks. Tabel 1. Maksimaalsed asimuudi muutumise kiirused erinevate elevatsioonidega üle- lendudel. Maksimaalne elevatsioon (kraad) 87,1 80,2 70,4 60,2 Maksimaalne asimuudi kiirus (kraad/ s) 16,7 4,5 2,4 0,7 3.4 Ülelendude liigitamine Satelliitide jälgimise seisukohalt võib erinevad ülelendude trajektoorid jagada tinglikult neljaks grupiks: 1. ülelennu trajektoor ei ületa seniidi ja põhjasuuna vahelist joont ning elevatsioon on üsna madal (vt. joonis 8). 2. ülelennu trajektoor ületab põhjasuuna aga elevatsioon on ikkagi üsna madal (vt. joonis 9). 10 3. ülelennu trajektoor ei ületa põhjasuunda aga nüüd on ülelend kõrge (vt. joonis 10). 4. ülelennu trajektoor ületab põhjasuuna ja ülelend on kõrge (vt. joonis 11). Joonis 8. Ülelendude grupp nr.1: satelliidi trajektoor ei ületa põhjasuunda ja elevatsiooni väärtused on väiksemad kui 80 kraadi. Joonis 9. Ülelendude grupp nr. 2: satelliidi trajektoor ei ületa põhjasuunda ja elevatsiooni väärtused on väiksemad kui 80 kraadi. 11 Joonis 10. Ülelendude grupp nr. 3: satelliidi trajektoor ei ületa põhjasuunda ja mõned elevatsiooni väärtused on suuremad kui 80 kraadi. Joonis 11. Ülelendude grupp nr. 4: satelliidi trajektoor ületab põhjasuunda ja mõned elevatsiooni väärtused on suuremad kui 80 kraadi. Jälgides satelliiti, mille trajektoor kuulub 1. ülelendude gruppi (vt. joonis 8), ei teki antennipöörajatel takistusi liikumisel, sest trajektoor ei ületa põhjasuuna ja seniidi vahelist joont ja ülelend on madal. Satelliidi jälgimine on pidev. Kui satelliidi ülelend ületab põhjasuuna ja seniidi vahelise joone (vt. joonis 9), siis kon- takti ajal peab antennipööraja tegema täispöörde ja tekib katkestus raadiosides, kuna täispöörde ajal on antennid suunatud satelliidist eemale. Antennipöörajate jaoks, mille asimuudi maksimaalne väärtus on 360 kraadi, on antud asjaolu probleemne. Juhul kui asimuudi pöörajad lubavad teha pööret vahemikus, mis on suurem kui 360 kraadi, või- vad nad ületada seniidi ja põhjasuuna vahelise joone kuni teatud piirväärtuseni (asimuu- di pöörajate maksimaalne ulatus). Näiteks Tartu Ülikooli satelliitside maajaama asi- muudipööraja suudab pöörata kuni 450 kraadini, mis tähendab 90 kraadi üle põhjasuu- na. Kui on väga kõrge ülelend, siis peab asimuudi antennipööraja tegema väga kiirelt peaaegu pool pööret, aga tavaliselt võtab see aega minuteid või isegi kauem ja sel ajal võib tekkida katkestus raadiosides. Joonisel 10 näeme, et sellistel ülelendudel võib elevatsiooni väärtus küündida kuni 90 kraadini. Antennipöörajate jaoks tähendab see, et pärast kindlat elevatsiooni kõrgust ei jõua nad enam jälgida satelliiti, kuna selle kiirus asimuudis on suurem, kui pöörajate maksimaalne asimuudi kiirus. Tavaliselt tähendab see, et antennipööraja töötab sellistel hetkedel täisvõimsusega. 12 Viimane kõige keerulisem olukord, kui satelliidi ülelend on kõrge ja ta ületab nullasimuudi, siis on probleemiks antennipööraja täispööre asimuudis põhjasuuna ületamisel ja asimuudi pööraja töötamine täisvõimsusega elevatsiooni kõrgetel väärtustel. 3.5 Antennipöörajate juhtimine Maajaamade pöörajate juhtimiseks on olemas erinevaid tarkvaralahendusi, mis on kasu- tusel Tartu Ülikooli satelliitside maajaamal. 3.5.1 Satelliidi jälgimise tarkvara Gpredict Gpredict on reaalajas satelliiti jälgiv ja satelliidi trajektoori arvutav rakendus (vt. joonis 12). Gpredict oli kaua aega kasutusel Tähe-4 maajaamas põhilise kontakti planeeriva ja satelliiti jälgiva tarkvara rollis. Selle põhifunktsionaalsus, mis oli kasutusel Tartu Ülikooli satelliitsidemaajal on järgmine: ● võimaldab mugavat TLE-formaadis antud orbiidiandmete uuendamist, ● oskab arvutada ülelendude jaoks vajalikud andmed päris põhjaliselt: ○ arvutab kontaktide alg- ja lõpp-punktid ning hetked ○ oskab suhelda antennipöörajatega ja raadiojaamadega ja neid juhtida. Antud töös on Gpredict kasutatusel satelliidi trajektoori arvutamise tulemuste võrdlemiseks. Joonis 12. Gpredict’i tarkvara kasutajaliides. 13 3.5.2 Missioonijuhtimiskeskuse tarkvara ehitamise raamistik Hummingbird Satelliidi ESTCube-1 missioonjuhtimise tarkvaraks on kasutatud Hummingbird avatud lähtekoodiga Java teek infrastruktuuri jälgimis- ja kontrollsüsteemide ehitamiseks. Hummingbird pakub mugavat keskkonda ja tavafunktsionaalsust:  satelliidi orbiiti ja ülelendude arvutamine,  satelliidi juhtimiseks,  maajaama segmendi süsteemi jälgimine (seahulgas protsessor, lõimed, kettaruum),  andmete haldamine ja levitamine kasutades kõige ühiseid protokolle (JMS, HTTP, RMI, FTP, SFTP, TCP...).  telemeetria kalibreerimine,  sündmustest teadaandmine,  ilmajaama jälgimiseks ning juhtimiseks. Antud töö lahendus integreeritakse Hummingbird’i tekisse, et lisada sellele pideva satelliidi jälgimise funktsionaalsust. [8] 3.5.3 Sõnumiteenuskeskkond ActiveMQ Satelliidi ESTCube-1 missioonijuhtimiskeskus koosneb erinevatest tarkvaraplokkidest. Iga plokk täidab oma funktsiooni ja on ühendatud teiste plokkidega. Nende omavaheliseks seostamiseks on vaja kuidagi korraldada nende vaheliste andmevoogude liikumist. Tarkvaraline kommunikatsioon on loodud Java sõnumiteenuskeskkonna Apache ActiveMQ abil [9]. Kui konkreetne tarkvaraplokk rakendab oma funktsiooni, siis ta saadab oma tulemuse ActiveMQ serverisse. ActiveMQ omakorda edastab need tulemu- sed teistele tarkvaraplokkidele, mis saavad teada, mida ja millal neil vaja teha on. Sõ- numite sisu on erinev ja sõltub konkreetse tarkvaraploki nõuetest. Selline sõnumiringlus on sarnane sellele, kuidas närviimpulsid edastavad informatsiooni ajusse ja on mugav võimalus erinevate funktsioonidega tarkvaraplokkide vahelise kommunikatsiooni seadistamiseks. 14 Käesolevas töös loodud tarkvara on ühendatud missioonijuhtimiskeskusega, kasutades sarnaseid printsiipe. 3.5.4 Orbitaaldünaamika teek Orekit Esimene samm, millega alustatakse satelliidi jälgimist, on selle jooksva positsiooni arvutamine, kasutades TLE- formaadis orbiidi andmeid. Selle ülesande jaoks on käesolevas töös kasutusel avatud lähtekoodiga Javas realiseeritud orbitaaldünaamika teek Orekit. [10] Orekit’i põhifunktsionaalsus on see, et ta pakub palju valmis tehtud vahendeid satelliidi asukoha arvutamiseks. Antud töös oli Orekit kasutusel trajektoori asimuudi ja elevatsiooni kalkuleerimiseks. 15 4 Optimeerimise mooduli kavandamine Et missiooni täita edukalt, jagasin oma töö etappideks. Optimeerimise mooduli põhiosad on:  arvutuse moodul, mis arvutab välja satelliidi jooksva positsiooni,  trajektoori koordinaatide optimeerimise moodul, mis optimeerib satelliidi trajektoori antennipöörajate jaoks nii, et side oleks pidev,  antenni juhtumis osa, mis genereerid sõnumid antennipöörajate jaoks. 4.1 Arvutuste moodul Satelliidi trajektoori arvutamiseks oli vaja luua asimuutide ja elevatsioonide väärtuste arvutamise moodulit, mis: ● tarbib satelliiti ja maajaama kirjeldavad metaandmed (vt. tabel 2) ja väljastab satelliidi trajektoori koordinaadid määratud ajavahemikus. Arvutamise moodul kasutab teegi Orekit funktsioone, ● välja arvutatud koordinaadid edastatakse optimeerimise moodulisse (vt. joonis 13). Joonis 13. Satelliidi trajektoori arvutamise mooduli tööskeem. 4.2 Optimeerimise moodul 16 Selle mooduli sisendiks on antennipööraja tüübi objekt ja optimeerimata satelliidi trajektoori maatriks. ● Tuvastab sisendandmete põhjal, millise ülelennu tüübiga on tegemist. ● Tuvastab antennipööraja ja ülelennu tüübi põhjal, millist koordinaatide optimeerimisalgoritmi rakendada. ● Rakendab koordinaatide optimeerimise algoritmi koordinaatide maatriksi peal. ● Tagastab optimeeritud koordinaadid antennipööraja juhtimissõnumite genereerijale (vt. joonis 14). Joonis 14. Koordinaatide optimeerimise etapi tööskeem. 4.3 Antenni pööraja juhtimine Antennipöörajate liikumise optimeerimise viimaseks etapiks on antennipöörajatele juhtimiskäskude genereerimine. ● Genereerib juhtimiskäske antennipöörajate jaoks pidevaks satelliidi jälgimiseks. ● Edastab sõnumeid antennipöörajatele AMQ serveri kaudu (vt. joonis 15). 17 Joonis 15. Juhtimiskäskude genereerimise tööskeem. 18 5 Optimeerimise mooduli realisatsioon 5.1 Programmeerimiskeele Java valiku põhjused Programmeerimiskeele Java valiku põhjused olid järgmised: ● Platvormiülene. ● Programmeerimiskeel Java on täielikult objektorienteeritud keel, mis lubab parem organiseerida tarkvara arhitektuuri. ● Java on laialt kasutatav programmeerimiskeel. Sellele on loodud palju valmisteeke, mida kasutades on võimalik uue rakenduse arendamisel tunduvalt aega säästa. ● Satelliidi ESTCube-1 missioonijuhtimiskeskuse pealoogika on realiseeritud programmeerimiskeeles Java, seega on uue Java projekti integreerimine sinna üsna lihtne. 5.2 Andmete vastuvõtmine missioonijuhtimiskeskusest Et oma funktsiooni täita, mu tarkvara kasutab sisendina nn metaandmed- ehk andmeid kirjeldavad andmeid. Metaandmed on küsitud AMQ serverist kasutades minu tarkvara sõnumite tarbija klassi, mis pidevalt ootab AMQ serveri poolt sõnumeid konkreetse päisega. AMQ sõnum kujutab endast Java objekti, mille argumendid on programmis kasutatud metaandmed. Metaandmed on esitatud tabelis 2. Tabel 2 kirjeldab AMQ’st vastuvõetud metaandmete hulka. Metaandmed Kirjeldus Kasutus long contactStart sidekontakti alguse aeg sidekontakti ajad on vajalikud selle jaoks, et genereerida juhtimiskäsud antennipööraja jaoks kindlas ajavahemikuks long contactEnd sidekontakti lõpu aeg double GS_LONGITUDE maajaama asukoha maajaama asukoha koordinaa- 19 geograafiline pikkuskraad did võimaldavad teha arvutusi meie jaama suhtes double GS_ALTITUDE maajaama asukoha kõrgus üle merepinna double GS_LATITUDE maajaama asukoha geograafiline laiuskraad double uplinkFr signaali saatesagedus saate- ja vastuvõtusagedused on kasutusel, kui me arvutame satelliidi liikumisest tingitud Doppleri nihet. double downlink_fr satelliidi signaali vastuvõtu sagedus double gsMaxAzimuth antennipööraja asimuudi antennipööraja elevatsiooni ja maksimaalne väärtus asimuudi maksimaalsed väärtused annavad teada, millise pööraja tüübiga on tegu ja millised ülelendude gruppe selle jaoks optimeerime. double gsMaxElevation antennipööraja elevatsiooni maksimaalne väärtus double gsReceivingSector antenni suunadiagrammi laius kraadides TLE tle (String row1, String satelliidi orbiidi parameetrid objekt TLE sisaldab endas row2) andmeid satelliidi orbiidi kohta 20 5.3 Satelliidi trajektoori arvutuste moodul Järgmine samm on metaandmete kasutamine trajektoori elevatsiooni ja asimuudi paaride väljaarvutamiseks. Paarid on vajalikud antennipööraja draiveri jaoks, kus nende abil määratakse antennide suund igaks ülelennu ajahetkeks. Terve ülelend on esitatud selliste paaride massiivina – satelliidi trajektoori koordinaatidega. Metaandmetest on teada satelliidi ülelennu ajavahemik. Asimuudi ja elevatsiooni paaride arvutamine toimub FOR- tsükli sees. Tsükli keha sees tehakse koordinaatide arvutused, kasutades teegi Orekit funktsioone. Iga uue tsükli iteratsiooniga nihutatakse edasi ajapunkti, mille suhtes arvutatakse välja elevatsiooni ja asimuudi paar. Tsükli lõpptingimuseks on valitud sidekontakti lõpu aeg (vt. joonis 16). Joonis 16. Asimuudi ja elevatsiooni paaride arvutamise tööskeem. Kõik välja arvutatud paarid pannakse massiivi ja edastatakse antennipöörajate liikumise optimeerimise moodulisse. 5.4 Optimeerimise moodul Optimeerimise mooduli peaülesandeks on: ● ülelennu grupi tuvastamine, lähtudes etteantud koordinaatide massiivist, ● koordinaatide teisendamine, lähtudes kasutatavast antennidepööraja tüübist. 21 Kui optimeerimise moodulile antakse ette koordinaadid, siis esimese sammuna analüü- sitakse neid, et tuvastada ülelennu grupp:  kui trajektoor ei ületa seniidi ja põhjasuuna vahelist joont ja elevatsioon on ma- dal, siis on tegemist 1. ülelendude grupiga,  kui trajektoor ületab seniidi ja põhjasuuna vahelist joont ja elevatsioon on madal, siis on tegemist 2. ülelendude grupiga,  kui trajektoor ületab seniidi ja põhjasuuna vahelist joont ja elevatsioon on kõrge siis on tegemist 3. ülelendude grupiga,  kui trajektoor ei ületa seniidi ja põhjasuuna vahelist joont ja elevatsioon on kõr- ge, siis on tegemist 4. ülelendude grupiga. Algoritmi loogilise töö põhimõtte on kujutatud joonisel 17. Joonis 17. Ülelennu grupi tuvastamise loogika. Antennipöörajate liikumise optimeerimine on realiseeritud kahe antennipööraja tüübi jaoks, kus ● elevatsiooni ja asimuudi maksimaalsed väärtused on 180 ja 360, ● elevatsiooni ja asimuudi maksimaalsed väärtused on 180 ja 450. 22 Selline antennipöörajate valik on põhjendatud sellega, et antud pöörajad on kasutusel satelliidi ESTCube-1 maajaamades (Tartu Observatooriumis ja Tartu Ülikoolis). 5.4.1 Tartu Observatooriumi satelliitside maajaama antennipöö- raja 1. ülelendude grupp. Kui ülelennud kuuluvad esimesse gruppi (vt. joonis 7) , siis sellisel juhul optimeerimist ei tehta, kuna antennide asimuudi ja elevatsiooni pöörajad ei ületa maksimaalseid piirväärtuseid ja saavad jälgida satelliiti edukalt. 2. ülelendude grupp Kui optimeerimismoodul tegeleb 2. grupi ülelendudega, siis selle põhi-optimeerimine on suunatud sellele, et vältida antennide asimuudipööraja liikumist üle nullasimuudi joone. Antud juhtumi optimeerimiseks töötati välja algoritm, mis muudab koordinaatide paare järgmiselt: ● elevatsiooni väärtus satelliidi tõusmisel horisondi kohale on 180 kraadi ja järgnevad väärtused kahenevad (uus_väärtus = 180 kraadi - jooksev_väärtus), ● asimuudi väärtusest lahutakse või liidetakse 180 kraadi (uus_väärtus= jooksev_väärtus ± 180 kraadi). Kasutades antud algoritmi, muudab tarkvara 2. gruppi ülelendude koordinaatide paare antennipöörajatele sobivamaks sellisel viisil, et satelliidi jälgimine ülelennu ajal muutub pidevaks. Uurime konkreetset näidet. Oletame, et jooksev ülelend kuulub 2. ülelendude gruppi ja selle trajektoori asimuudi ja elevatsiooni paarid on järgmised (vt. tabel 3): Tabel 3. 2. Ülelendude gruppi optimeerimise näide. Indeks 0 1 2 3 4 5 6 7 Asimuut 56 38 24 12 4 358 354 350 Elevatsioon 35 33 30 25 20 16 12 8 23 Paaride massiivist on nähtav, et seniidi ja põhjasuuna vahelist joont ületatakse pärast massiivi 4. elementi. Antennipööraja alustab enda positsioneerimist pärast punkti väär- tusega 4 ja liigub edasi 358 punkti suunda. Kui ta jõuab asimuudi punkti väärtusega 0, on antennipööraja sunnitud tegema täispöörde, et jõuda oma sihtpunkti (mehaaniliste blokaatorite tõttu). Kui me rakendame antud massiivile optimeerimisalgoritmi, saame järgmised massiivi elemendid (vt. tabel 4): Tabel 4. 2. ülelennu trajektoori põhjal genereeritud elevatsiooni ja asimuudi koordinaadid antennipööraja suunamiseks. Indeks 0 1 2 3 4 5 6 7 Asimuut 236 218 204 192 184 178 174 170 Elevatsi 145 147 150 155 160 164 168 172 oon Tarbides optimeeritud koordinaadid antennipöörajad saavad jälgide satelliidi pidevalt. 3. ülelendude grupp Proovides jälgida ülelende , mis kuuluvad 3. gruppi (ülelend on kõrge ja trajektoor ei ületa nullasimuudi joont), tuleb selline ajahetk, kui satelliidi kiirus on suurem, kui asi- muudi antennipööraja maksimaalne kiirus ja pööraja ei jõua jälgida satelliidi vastavalt. Antud olukorra lahendamiseks kasutatakse algoritmi, mis lubab liikuda asimuudi pööra- jale sobiva kiirusega ja vältida olukorda, kus elevatsiooni pöörajad ei saa liikuda edasi (kui nad jõuavad 90 kraadini) ja sunnivad asimuudi pöörajat teha poolpööret, et jälgida satelliidi edasi. Algoritm töötleb satelliidi trajektooripunktide massiivi. Opereerib elevatsioonide ja asimuutide väärtustega paralleelselt. Antud probleemi lahendamise mugavuseks jagasin asimuudi ringi neljaks sektoriks: 24  1. sektor 0 kuni 90 kraadi,  2. sektor 90 kuni 180 kraadi,  3. sektor180 kuni 270 kraadi,  4. sektor 270 kuni 0 kraadi. Kui jooksev asimuudi väärtus kuulub samasse sektorisse, kust algas satelliidi liikumine, siis väärtus jääb samaks. Kui asimuudi väärtused kuuluvad vahesektorisse, siis me muudame asimuudi väärtuse tema eelmiseks väärtuseks. Juhul kui asimuudi väärtus kuulub sellesse sektorisse, kus satelliit lõpetab oma ülelennu, siis muudame väärtused vastupidiseks (±180 kraadi). Paralleelselt vaatame elevatsiooni väärtuseid: kui eelmise elevatsiooni väärtus on väiksem kui jooksev, siis jääb see samaks, kui suurem, siis seee teisendatakse väärtuseks, mis kuulub vahemikku 90 kraadi kuni 180 kraadi. Joonis 18. 3. ülelendude gruppi trajektooride optimeerimine. Rakendades antud optimeerimist on võimalik vältida olukorda, kus asimuudi pööraja ei jõua jälgida satelliiti vastavalt 4. ülelendude grupp 25 Ülelennud, mis kuuluvad 4. gruppi on sarnased nendega, mis kuuluvad 3. gruppi – nad on kõrged. Ainuke erinevus on see, et nad ületavad nullasimuudi joont. Nagu enne kirjeldatud, tavalise (mitte-optimeeritud) kõrgete ülelendude jälgimise ajal satelliidi kiirus on suurem, kui antenni asimuudipööraja maksimaalne kiirus. 4. grupi ülelendude puhul lisandub selline asjaolu, et nad ületavad seniidi ja põhjasuuna vahelist joont. See sunnib antennipöörajat ülelennu kestel tegema asimuudi täispöörde tagasi (aga võib ka edasi – olukord sõltub sellest, kust poolt ülelend nullasimuudi joone üle- tab). Et sellist olukorda vältida, kasutame algoritmi, mille tööpõhimõte on sarnane algoritmi- ga 3. grupi ülelendude jaoks. Algoritm vaatab läbi satelliidi trajektoori massiivi. Opereerib elevatsioonide ja asimuu- tide väärtustega paralleelselt. Kui jooksev asimuudi väärtus kuulub samasse sektorisse, kust algas satelliidi liikumine, siis väärtus muutub vastupidiseks (±180 kraadi). Kui asimuudi väärtused kuuluvad vahesektorisse, siis me muudame asimuudi väärtuse tema eelmiseks väärtuseks. Juhul, kui asimuudi väärtus kuulub sellesse sektorisse, kus satel- liit lõpetab oma ülelennu, siis väärtused jäävad samaks. Paralleelselt vaatame elevatsiooni väärtuseid: kui eelmise elevatsiooni väärtus on väiksem kui jooksev väär- tus, siis see teisendatakse väärtuseks, mis kuulub vahemikku 180 kuni 90 kraadi, kui suurem, siis jääb see samaks (vt. joonis 19). 26 Joonis 19. 4. ülelendude gruppi trajektooride optimeerimine. Rakendades antud optimeerimist, me väldime olukorda, kus antennipööraja ületab põh- jasuuna ja asimuudipööraja liigub suure kiirusega. 5.4.2 Tartu Ülikooli satelliitside maajaama antennipööraja Jälgides satelliiti antennipöörajaga, mille asimuudipööraja maksimaalne ulatus on 450 kraadi, siis põhilised probleemid satelliidi pideval jälgimisel on samad kui eelmise asi- muudi pööraja puhul. Sellepärast on satelliidi jälgimise optimeerimine antud antenni- pööraja tüübi puhul on sarnane nagu eelmise pöörajatüübi puhul. Kuna antennipööraja funktsionaalsus lubab teha lisapööret vahemikus 360 kuni 450 kraadi, siis optimeerimisalgoritmi optimeerimine seisneb selles, kuidas kasutada 90 kraadist põhja ja idasuuna vahele jäävat “lisavahemikku“ satelliidi pidevaks jälgimiseks. 1. ülelendude grupp Jälgides satelliidi ülelende, mis kuuluvad 1. gruppi, optimeerimist ei tehta, kuna satellii- di trajektoor ei ületa nullasimuudi joont ja antennipöörajate liikumine ei ole piiratud. 2. ülelendude grupp Kui tegemist on 2. grupi ülelennuga, siis et kasutada antud antennipööraja lisaulatust on vaja selgeks teha, kas trajektoori algus või lõpp-väärtus (sõltub satelliidi liikumise suu- 27 nast) jääb vahemikku 360 kuni 450 kraadi. Kui see on nii, siis antenn saab liikuda üle nullasimuudi joone ilma piiranguta. Vastasel juhul jõuab antennipööraja mehaanilise blokeeringuni. Vaadatakse ülelennu trajektoor läbi. Tehakse selgeks, kas satelliidi trajektoor muutub paripäeva. Kui ei, siis kontrollitakse, kas trajektoori esimese asimuudi väärtus on väik- sem kui 90 kraadi. Juhul kui ei, siis rakendatakse optimeerimist samal viisil nagu esime- se antennipööraja tüübi jaoks. Kui esimese asimuudi väärtus on väiksem kui 90 kraadi, siis kõigile trajektoori asimuutide väärtustele enne seniidi ja põhjasuuna vahelise joone ületamist liidetakse 360 kraadi. Samad tingimused kontrollitakse juhul, kui satelliidi trajektoor muutub erinevusega, et koordinaate muudetakse pärast seniidi ja põhjasuuna vahelise joone ületamist (vt. joonis 20). Joonis 20. 2. ülelendude gruppi trajektooride optimeerimine. 3. ja 4. ülelendude grupid 3. ja 4. ülelendude gruppide puhul kasutatakse optimeerimisi, mis on samad nagu Tartu Observatooriumi antennipööraja puhul. 5.5 Optimeeritud andmete edastamine antennipöörajasse Viimase etapina on käskude genereerimine antennipööraja draiveri jaoks. Käskude ge- nereerimine toimub tavalise FOR tsükli sees, kus optimeeritud trajektoori koordinaatide 28 objektist võetakse asimuudi ja elevatsiooni paaride väärtuseid. Iga käsule lisatakse pai- sena aega, millal seda käsku lastakse välja AMQ serverist pöörajatesse. Genereeritud käsud edastatakse AMQ-sse ja sellega on optimeerimisprotsess lõppenud. 29 6 Satelliitide jälgimise optimeerimise testimine Käesolevas bakalaureusetöös loodud lahenduse testimine on realiseeritud nii tarkvarali- selt, kasutades ühikteste (ingl. k. unit tests) kui ka reaalse riistvara peal, jälgides reaal- seid satelliite. Tarkvaraline testimine on jagatud kaheks osaks: 1. Arvutusmoodul:  Asimuudi ja elevatsiooni paaride arvutamine. 2. Optimeerimise moodul:  Antennipööraja tüübi tuvastamine.  Ülelennu tüübi tuvastamine.  Satelliitide jälgimise optimeerimise testimine erinevate tüüpi pöörajate- ga. Riistvaraline testimine oli suunatud pideva side toetamisele (satelliidi jälgimine pide- valt) erinevate ülelendude gruppide puhul. 6.1 Vahendid Tarkvaraliseks testimiseks kasutati:  Eclipse Juno- Java tarkvaraarendusplatvorm,[11]  JUnit – ühiktestimise teek Java keele jaoks, [12]  Gpredict- millega genereeriti testandmed, millega võrreldi Orekiti tulemusi,  CelesTrak- veebiteenus TLE-formaadis orbiidiparameetrite allalaadimiseks.[13] Riistvaraline testimine:  1. antennipööraja tüüp: asimuut 360, elevatsioon 180,  optimeerimise moodul- juhtimiskäskude genereerimiseks,  CelesTrak- veebiteenus TLE-formaadis orbiidiparameetrite allalaadimiseks,  veebikaamera, mis näitas antennide suunda,  arvuti. 6.2 Tarkvaralise testimise tulemused Realiseerides tarkvaralise testimise eesmärke, saavutasin oma projektis üle 70 protsenti lähtekoodi kattumist testidega (vt. joonis 21). 30 Samuti, testimine oli kontrollitud kasutades Bamboo – tarkvara haldamise serveri abil. [14] Testide tulemused on 3. lisas. Joonis 21. Projekti koodi ühiktestidega kattuvus. Koodi kattuvust testidega kontrollisin Eclipse’i lisamooduliga EclEmma.[15] Ühiktestid oli realiseeritud sellisel viisil, et Gpredict’ist olid võetud konkreetsete üle- lendude andmed, mis olid kasutatud tulemuste võrdlemiseks igas testis. Arvutuste testimiseks olid kirjutatud testid, mis oodatava tulemusena kasutasid Gpredict’ist võetud andmed. Need andmed edastatakse testimise funktsioonidele ja kontrollitakse, kas tulemused Gpredict’i tulemustega. Antud mooduli testimiseks oli kasutatud 5. tabelis toodud anded: Tabel 5. Kalkulatsiooni mooduli testimiseks oli kasutatud MASAT-1 satelliidi orbiidi andmed ja Tartu, Tähe-4 maajaama asukoha andmeid. Nimetus Väärtus MASAT-1 satelliidi TLE read. Read olid 1 38081U 12006E 13054.10096693 salvestatud 14:01:46, 24.02.2013. .00039570 33082-5 86766-3 0 8907 2 38081 69.4788 93.7652 0662838 286.7841 66.1545 14.34813775 53317 Maajaama pikkuskraadid 26.73 kraadi 31 Maajaama laiuskraadid 58.3 kraadi Maajaama kõrgus merepinnast 59.0 m Testide tulemused on nähtavad 5. tabelist, kust on arusaadav, et antud tarkvaramoodul saab edukalt hakkama oma eesmärgiga Tabel 6. Asimuudi ja elevatsiooni arvutamise tulemused. Nimetus Jooksev tulemus Oodatud tulemus Asimuudi väärtus (kraadid) 6.79 6.88 Elevatsiooni väärtus (kraa- -15.91 -15.94 did) Antennipöörajate liikumise optimeerimise testimiseks oli võetud Gpredict’ist erinevate ülelendude gruppide trajektoorid, mis olid optimeerimise funktsioonide sisendiks. Oodatava tulemusena oli kasutatud Gpredict’ist võetud ja käsitsi optimeeritud sisend- andmeid (käsitsi arvutatud, kuna polnud allikat, kust võtta need optimeeritud andmed etalonina). Iga erineva ülelennu grupi jaoks oli vajalik tuvastada selle grupp ja tagastada optimeeri- tud koordinaadid, et nad oleksid peaaegu samad nagu oodatavad tulemused. Selle osaga sai optimeerimise moodul edukalt hakkama. Antennipöörajate liikumise optimeerimise testimise tulemusi on võimalik nähajärgneva- test tabelitest. 6.2.1 Tartu Ülikooli satelliitside maajaama pöörajate testimine Testides Tartu Ülikooli satelliitside maajaama pöörajate liikumise optimeerimist tarkva- raliselt sain järgmiseid tulemusi (vt. tabel 7 kuni 11). 6.2.1.1 2. ülelendude gruppide jälgimise optimeerimise testimine Tabelist 7 on näha, et trajektoori asimuutide ja elevatsioonide paaride teisendamine toi- mub vastavalt algoritmi loogikale: asimuudi pööraja on suunatud satelliidiga vastas suunas ja elevatsiooni pööraja on suunatud satelliidiga samas suunas. Tabel 7. 2. ülelendude gruppi jälgimise optimeerimise testimiseks oli valitud ESTCube-1 satelliit. Testimine oli tehtud 22.05.2013, 18:34. Satelliidi TLE andmed olid järgmised: 1 39161U 13021C 13142.14354486 .00001483 00000-0 26165-3 0 465, 2 39161 98.1280 220.5365 0009624 190.4917 169.6097 14.68924241 2174 32 Mitteoptimeeritud Optimeeritud Asimuut Elevatsioon Asimuut Elevatsioon Ülelennu aeg 69 0 249 180 19:47:53 66 1 246 179 19:48:20 63 2 243 178 19:48:48 59 3 239 177 19:49:15 55 3 235 177 19:49:42 51 4 231 176 19:50:10 46 5 226 175 19:50:37 41 5 221 175 19:51:04 37 6 217 174 19:51:32 32 6 212 174 19:51:59 27 6 207 174 19:52:26 22 6 202 174 19:52:54 17 5 197 175 19:53:21 12 5 192 175 19:53:48 8.0 4 188 176 19:54:16 3.0 3 183 177 19:54:43 359 3 179 177 19:55:11 356 2 176 178 19:55:38 352 1 172 179 19:56:05 6.2.1.2 3. ülelendude gruppide jälgimise optimeerimise testimine Tabelist 8 on näha, et trajektoori asimuutide ja elevatsioonide paaride teisendamine toimub vastavalt algoritmi loogikale: asimuudi antennipööraja liigub vähesel määral ja satelliidi jälgimine toimub elevatsiooni pööraja abil. Tabel 8. 3. ülelendude gruppi jälgimise optimeerimise testimiseks oli valitud COSMOS 1975 satelliit. Testimine oli tehtud 22.05.2013, 18:43. Satelliidi TLE andmed olid järg- mised:1 19573U 88093A 13141.64031157 .00001594 00000-0 13143-3 0 8735, 2 19573 82.5227 339.4064 0015286 308.8211 51.1647 14.98317273336536 Mitteoptimeeritud Optimeeritud Asimuut Elevatsioon Asimuut Elevatsioon Ülelennu aeg 346 0 346 0 18:50:26 346 2 346 2 18:51:07 346 5 346 5 18:51:47 346 9 346 9 18:52:28 346 12 346 13 18:53:08 346 18 346 18 18:53:49 346 25 346 25 18:54:29 346 35 346 35 18:55:10 346 50 346 50 18:55:51 33 344 74 344 74 18:56:31 172 76 352 76 18:57:12 169 52 349 128 18:57:52 169 36 349 144 18:58:33 168 25 348 155 18:59:13 168 18 348 162 18:59:54 168 13 348 167 19:00:34 169 9 349 171 19:01:15 169 5 349 175 19:01:56 169 2 349 178 19:02:36 6.2.1.3 4. ülelendude gruppide jälgimise optimeerimise testimine Tabelist 9 on näha, et trajektoori asimuutide ja elevatsioonide paaride teisendamine toimub vastavalt algoritmi loogikale: asimuudi antennipööraja on suunatud satelliidiga vastavasse suunda ja liigub vähesel määral. Satelliidi jälgimine toimub elevatsiooni pööraja abil. Tabel 9. 4. ülelendude gruppi jälgimise optimeerimise testimiseks oli valitud RS-22 sa- telliit. Testimine oli tehtud 22.05.2013, 19:14. Satelliidi TLE andmed olid järgmised: 1 27939U 03042A 13142.56003996 .00000902 00000-0 17869-3 0 4336,2 27939 97.7984 331.7483 0012155 269.1264 90.8536 14.64445685515547 Mitteoptimeeritud Optimeeritud Asimuut Elevatsioon Asimuut Elevatsioon Ülelennu aeg 14 0 374 0 18:50:26 14 2 374 2 18:51:07 14 6 374 6 18:51:47 14 9 374 9 18:52:28 14 14 374 14 18:53:08 13 19 373 19 18:53:49 12 26 372 26 18:54:29 10 37 370 37 18:55:10 6 52 366 52 18:55:51 348 73 366 73 18:56:31 233 75 390 75 18:57:12 210 54 390 126 18:57:52 205 38 385 142 18:58:33 203 27 383 153 18:59:13 202 20 382 160 18:59:54 202 14 382 166 19:00:34 201 9 381 171 19:01:15 201 6 381 174 19:01:56 34 201 2 381 178 19:02:36 6.2.2 Tartu Observatooriumi satelliitside maajaama pöörajate testimine Tartu Observatooriumi pöörajate optimeerimise testid olid tehtud ainult 2. ülelendude gruppi jaoks, kuna jälgides teisi ülelennu ta käitub samalt nagu Tartu Ülikooli satelliit- side maajaama pöörajad. Tabelist 10 on nähtav, et trajektoori asimuutide ja elevatsioonide paaride teisendamine toimub vastavalt algoritmi loogikale: trajektoori asimuutide väärtusi teisendatakse nii, et asimuudi antennipööraja saaks ületada põhjasuuna. Tabel 10. 2. ülelendude gruppi jälgimise optimeerimise testimiseks oli valitud satelliit ESTCube-1 satelliit. Testimine oli tehtud 22.05.2013, 19:16. Satelliidi TLE andmed olid järgmised: 1 39161U 13021C 13142.14354486 .00001483 00000-0 26165-3 0 465, 2 39161 98.1280 220.5365 0009624 190.4917 169.6097 14.68924241 2174 Mitteoptimeeritud Optimeeritud Asimuut Elevatsioon Asimuut Elevatsioon Ülelennu aeg 69 0 429 0 19:47:53 66 1 426 1 19:48:20 63 2 423 2 19:48:48 59 3 419 3 19:49:15 55 3 415 3 19:49:42 51 4 411 4 19:50:10 46 5 406 5 19:50:37 41 5 401 5 19:51:04 37 6 397 6 19:51:32 32 6 392 6 19:51:59 27 6 387 6 19:52:26 22 6 382 6 19:52:54 17 5 377 5 19:53:21 12 5 372 5 19:53:48 8 4 368 4 19:54:16 3 3 363 3 19:54:43 359 3 359 3 19:55:11 356 2 356 2 19:55:38 352 1 352 1 19:56:05 6.2.3 Riistvaraline testimine 35 Lisaks tarkvaralise testimisele oli tehtud ka riistvaraline testimine (reaalsetes olukorda- des). Testimine oli rohkem suunatud pideva satelliidi jälgimisele erinevate ülelendude gruppide puhul. Oli vaja aru saada, kas optimeerimise algoritmid tõesti töötavad nii, et antenn on koguaeg suunatud satelliidi poole. Testimine oli tehtud ainult Tartu Ülikooli satelliitside maajaamas, kuna tol hetkel Tartu Observatooriumi maajaama antenn ei olnud veel seadistatud. Testimise viis oli järgmine:  Defineerime tabelis 2 määratud metaandmed,  käivitame optimeerimise mooduli,  kontrollime, kas käsud antennipöörajate jaoks jõuavad antennipöörajateni,  kontrollime, kas antennipöörajad liikuvad käskude järgi. Testimine näitas, et iga ülelendu tüübi jaoks optimeerimise algoritm töötab ja lubab jälgida Tartu Ülikooli satelliitside maajaamale satelliite pidevalt. Tõestusena võib näidata AAUSAT3 satelliidi ülelennu optimeeritud trajektoori osa (vt. tabel 11), mis oli edastatud Tartu Ülikooli satelliitside maajaama antennipöörajatele (vt. joonis 22). Tabel 11. AAUSAT3 satelliidi optimeeritud trajektoori osa. Trajektoori välja arvutami- ne oli tehtud 23.05.2013, 20:30. Satelliidi TLE andmed olid: 1 39087U 13009B 13143.08539338 .00000611 00000-0 23441-3 0 818, 2 39087 98.6314 333.2535 0013266 24.6778 335.5032 14.34037573 12399. Asimuut Elevatsioon Aeg 373 14 20:36:07 372 17 20:36:34 371 20 20:36:58 370 20 20:37:00 369 23 20:37:20 368 26 20:37:38 367 27 20:37:48 367 29 20:37:55 365 32 20:38:11 364 33 20:38:19 364 35 20:38:25 362 38 20:38:37 361 38 20:38:40 359 41 20:38:51 36 Joonis 22. Tartu Ülikooli satelliitside maajaama antennipöörajate draiveri sõnumid, mis näitavad, et tabelis 11 määratud asimuutide ja elevatsioonide paarid jõuavad pöö- rajateni. Käsk kujul „P 372 17“ tähendab, et draiver annab asimuudipöörajale väärtus 372 kraadi ja elevatsiooni pöörajale 17 kraadi. 37 7 Kokkuvõte Antud tööna valminud lahendus täitab väga hästi seatud eesmärke: välja arvutada satel- liidi trajektoori ja optimeerida selle sellisel viisil, et antenn oleks suunatud satelliidi poole pidevalt erinevate ülelendude tüüpide puhul. Antud probleemi lahendus on kirjutatud Java keeles. Satelliidi parameetrite välja arvu- tamiseks kasutatakse Orekit’i - orbitaaldünaamika Java teek. Integreerides minu plaani ESTCube-1 missioonjuhtivuskeskusesse, ESTCube-1 mees- kond sai kasutusele Java programmeerimise keeles kirjutatud tarkvaramooduli, mis lu- bab:  kalkuleerida satelliidi jooksva asukohta,  jälgida satelliidi pidevalt erinevate ülelendude gruppide puhul: o trajektooride puhul, mis ületavad põhjasuuna, o trajektooride puhul, mis on kõrged maajaama suhtes.  lubab kasutada antud lahendust mitu pöörajate gruppide jaoks: o toetab Tartu Ülikooli ja Tartu Observatooriumi satelliitside maajaama antennipöörajate liikumise optimeerimist.  on testitud kasutades ühik teste (unit tests): o lähtekoodi katmine testidega on üle 70 protsendi.  saab edulaket hakkama reaalsetes olukordades: o oli testitud reaalsetes olukordades Tartu Ülikooli satelliitiside maajaama puhul. Selle lahendusega satelliidi pideva jälgimise probleem on lahendatud ja optimeeritud: erinevate ülelendude gruppide puhul side satelliidiga jääb pidevaks. Probleemi lahendus tuleb laiendina Hummingbird’i - avatud lähtekoodiga Java teegi infrastruktuuri jälgimis- ja kontrollsüsteemide ehitamiseks Edasi võiks seda süsteemi täiendada, lisades juurde teiste antennipöörajate tüüpide tuge, kuna loodud platvorm on lihtsasti laiendatav. Antud lahendus tuleb kasuks ka teiste kosmosemissioonide meeskondade jaoks ja mõne aja pärast muutub avatud lähtekoodiga projektiks Hummingbird’i osana. 38 8 Summary SATELLITES TRACKING OPTIMIZATIONS FOR GROUND STATIONS Ivar Mahhonin The main objective of this bachelors thesis is satellites tracking optimization for ground stations. Ground stations antennas movement is mechanically limited. It puts limits for tracking the objects on low-Earth orbit. Due to this fact contact with the satellite can change to discontinuous during one pass. For University of Tartu satellite communication ground station it is important to support continuous connection with the ESTCube-1 satellite [1], because the success of the mis- sion depends on it. Satellite tracking optimization is universal problem for all the ground stations. There is no open source solution for this problem currently. University of Tartu satellite communication ground station software is created using Hummingbird – open source infrastructure for building monitoring and control systems for remotes assets. [8]. There is no satellites tracking optimization module in Hum- mingbird, so was made a decision to create one. The main objectives of this thesis were states as:  design software module, which consists of satellite trajectory calculation for a given period and its processing to optimization module,  module testing with unit and real-life tests,  design optimization module, which analyzes satellite trajectory and generates commands for antenna rotators for continuous satellite tracking,  optimization module testing with unit and real-life tests. Integrating given objectives into ESTCube-1 mission control system, ground station team obtained software module, that can:  calculate satellite trajectory for a next pass,  track satellite continuously during different types of passes: o for the satellite trajectories, that cross azimuth null relatively to the ground station, o for the trajectories, that are high relatively to the ground station.  allows to use this solution for the different types of rotators: 39 o supports satellites tracking optimization for University of Tartu and Tar- tu Observatory satellite communication ground stations.  optimize satellite tracking for the ground stations. Source code of this solution was tested with unit test (more than 80% is covered) and in real situations, where it has shown its ability to fulfill the objectives. Current software module is suitable for implementing new rotator types and will be use- ful for other ground stations. 40 9 Kasutatud kirjandus 1. Janhunen, P., P.K. Toivanen, J. Polkko, S. Merikallio, P. Salminen, E. Haeggström, H. Seppänen, R. Kurppa, J. Ukkonen, S. Kiprich, G. Thornell, H. Kratz, L. Richter, O. Krömer, R. Rosta, M. Noorma, J. Envall, S. Lätt, G. Mengali, A.A. Quarta, H. Koivisto, O. Tarvainen, T. Kalvas, J. Kauppinen, A. Nuottajärvi and A. Obraztsov, “Electric solar wind sail: Towards test missions (Invited article)“, Rev. Sci. Instrum., 81, 111301, 2010. 2. Gpredict - real-time satellite tracking and orbit prediction application http://gpredict.oz9aec.net/, viimati vaadatud 23.05.2013. 3. L. Snyder, „Orbital parameters“ http://en.wikipedia.org/wiki/File:Orbit1.svg. 4. CelesTrak, ISS (ZARYA) TLE http://www.celestrak.com/NORAD/elements/stations.txt, viimati vaadatud 23.05.2013. 5. T. Carlson, „Horisondiline koordinaatsüsteem“ http://en.wikipedia.org/wiki/File:Azimuth-Altitude_schematic.svg, viimati vaa- datud 23.05.2013. 6. Tallinna Tehnika Ülikooli, Raadio- ja sidetehnika instituut, „Antennide para- meetrid“ http://www.lr.ttu.ee/irm/antennid/2_Antennide_parameetrid.pdf, vii- mati vaadatud 23.05.2013. 7. Yagi antennide spetsifikatsioon http://www.wimo.de/cgi- bin/verteiler.pl?url=yagi-antennas-wimo_e.html, viimati vaadatud 23.05.2013. 8. Hummingbird ESTCube-1 missioonis http://hbird.de/?q=project/estcube, viima- ti vaadatud 23.05.2013. 9. Apache ActiveMQ http://activemq.apache.org/, viimati vaadatud 23.05.2013. 10. Orekit https://www.orekit.org/forge/projects/orekit/wiki/Overview, viimati vaa- datud 23.05.2013. 11. Eclipse Juno http://www.eclipse.org/juno/, viimati vaadatud 23.05.2013. 12. JUnit http://junit.org/, viimati vaadatud 23.05.2013. 13. Celestrak http://celestrak.com/, viimati vaadatud 23.05.2013. 14. Bamboo http://www.atlassian.com/software/bamboo/overview, viimati vaadatud 23.05.2013. 15. EcClemma http://www.eclemma.org/, viimati vaadatud 23.05.2013. 41 10 Lisad Lisa 1. Lihtlitsents Mina Ivar Mahhonin (ik. 39003152212) annan Tartu Ülikoolile tasuta loa (lihtlitsentsi) enda loodud teose „Satelliitide jälgimise optimeerimine maajaamades reprodutseerimi- seks säilitamise ja üldsusele kättesaadavaks tegemise eesmärgil, sealhulgas digitaalarhii- vi DSpace-is lisamise eesmärgil kuni autoriõiguse kehtivuse tähtaja lõppemiseni; üldsu- sele kättesaadavaks tegemiseks ülikooli veebikeskkonna kaudu, sealhulgas digitaalarhii- vi DSpace´i kaudu kuni autoriõiguse kehtivuse tähtaja lõppemiseni. Olen teadlik, et punktis 1 nimetatud õigused jäävad alles ka autorile. Kinnitan, et lihtlitsentsi andmisega ei rikuta teiste isikute intellektuaalomandi ega isiku- andmete kaitse seadusest tulenevaid õigusi. Tartu, 22.05.2013 ______________________________________ (allkiri) 42 Lisa 2. Lähtekood Tarkvaralise lahenduse lähtekood on lisatud DVD- ga. 43 Lisa 3. Bamboo testimise raaport Joonis 23. Bamboo serveri testimise raaport. Summaarne lähtekoodi kattuvus testidega on 71.95 %. 44