Københavns Universitet, Det naturvidenskabelige Fakultet 1 DATALOGI V - Introduktion til Scientific Computing Projektopgaven 2007 Om selve opgaven Formålet med denne opgave er at give kursusdeltagerne et eksempel på et mindre beregningsproblem, som egner sig til at blive løst i programmeringsmiljøet MATLAB c. Desuden kræver opgaven lidt viden om matricer, ikke-lineære ligningssystemer og optimering. Opgaven skal løses i grupper à 2-3 personer, og besvarelsen dokumenteres via en rapport, der afleveres i 2 eksemplarer, og en udfyldt forside, der afleveres i 2 eksemplarer (3, hvis kvittering ønskes). Dokumentationen skal være DIKUs 1.dels-administration i hænde senest fredag den 16. marts kl. 14.00. Indledning Da jeg for en del år siden skulle lave en obligatorisk opgave på det daværende numeriske Datalogi V - kursus, fandt jeg en simplificeret opgave i fly-navigation via landbaserede radiofyr på Internettet (http://linneus1.ethz.ch:8080/1_1.html). Jeg blev interesseret i at finde ud af, hvor realistisk opgaven var, og fandt efterhånden en hel del information om de landbaserede navigations-hjælpemidler (NAVAIDS) på Internettet. Da man imidlertid kan købe bærbare satellit-navigations-modtagere fra ca. 1000 kr. (og opefter), mens et fly-certifikat jo er noget dyrere, ville de fleste studerende dog nok anse en opgave i satellit-navigation for mere interessant, og derfor blev dét temaet for opgaven. (Materialet om fly-navigation med bl.a. diverse flykort over Sjælland kan s- tadig ses på http://www.diku.dk/undervisning/2006f/datv-scicomp/dirfly/). Projektopgaven 2007 består af den daværende opgave, men selvfølgelig med andre spørgsmål og løsninger. Desuden adskiller den sig ved at skulle løses udelukkende ved brug af MATLAB c -systemet.
Af globale satellit-navigationssystemer findes der pt. to, nemlig det amerikanske GPS-system og det russiske GLONASS-system, mens EU-Kommisionen har planer om at sætte det europæiske GALILEO-system i drift i år 2010. Lad os se nærmere på det amerikanske GPS-system, der er finansieret og kontrolleret af Dept. of Defense i USA. Systemet består af tre dele: 2 Et antal satellitter (24 garanteres af US Defense. P.t. er der 29, der fungerer). Satellitternes baner sikrer, at der fra et vilkårligt punkt på jorden altid er mindst 4 (typisk 6 til 10) satellitter synlige,medmindre bygninger, trækroner eller lignen de skygger for sende-/modtagesignalerne. Et antal kontrolstationer fordelt rundt om på Jorden, hvor data fra satellitterne (om bl.a. tid og position) kontrolleres. Informationerne videresendes til hoved-kontrolstationen i Colorado Springs, og herfra sendes korrektionsdata via nogle af de andre stationer regelmæssigt op til satellitterne. Brugernes GPS-modtagere. For at mindske følsomheden over for ydre påvirkninger sendes informationen fra satellitterne på radiobølger af relativt høje frekvenser: 1575,42 MHz og 1227,60 MHz (MHz = millioner svingninger per sekund). Informationerne er: C/A-koden, som er et 1023-bit langt mønster, der gentages hvert millisekund, og som sendes via et periodisk 1,023 MHz signal moduleret på 1575,42MHz-bølgen. Hver satellit udsender sin egen C/A(Coarse Acquisition)-kode. P-koden, som er kryptograferet af det amerikanske forsvar, og som altså er forbeholdt det amerikanske militær og deres allierede. Navigationssignalet, der bl.a. indeholder information om tid og position for den satellit, hvis signal man modtager. Indtil maj 2000 var denne information dog kryptograferet via de data, som hoved-kontrolstationen sendte op til satellitterne. Formålet var SA(Selective Availability),dvs. at kun visse udvalgte skulle kunne benytte GPS-systemet til meget præcise positionsbestemmelser. Da SA næsten var uden effekt, hvis man anvendte DGPS-metoden, dvs. sammenholdt resultaterne fra to modtagere (een på kendt position, og een på ukendt), fjernede man dog i maj 2000 den nedsatte nøjagtighed af informationerne i navigationssignalet. Den simpleste måde at benytte GPS-systemet på, er dén som de billigste GPS-modtagere benytter, og dén som vi vil se nærmere på i denne opgave: Pseudo-range-bestemmelse via (forsinkelsen af) de modtagne C/A-signaler. Som det ses på nedenstående materiale fra K.Dueholms og M.Laurentzius bog GPS, giver denne teknik en positionsnøjagtighed på under 50 meter.
3 Bestemmelse af position (X,Y,Z) via modtagne C/A-signaler Da radiobølger bevæger sig med lysets hastighed: 299792,458 m/msek (eller km/sek) (i vakuum), vil den bølge, der bærer C/A-signalet, typisk være 60-80 msek om at nå GPS-modtageren fra satellitten, der er i ca. 20000 km s højde. Da signalet gentages hvert millisekund, vil de (billige) GPS-modtagere, der kun undersøger forsinkelsen af de modtagne C/A-signaler, dog ikke kunne se hvor mange hele millisekunder signalet har været undervejs. Derfor må brugeren indtaste et gæt på sin position, der afviger højst 149 km (< 0.5 msek) fra den eksakte: Gættet forsinkelse: afstand fra satellit til gættet position 299792,458 = x x,ỹỹỹỹỹ msek Målt tidsforskydning af C/A-signal = 0,yyyyy msek Målt forsinkelse: Round[ x x,ỹỹỹỹỹ - 0,yyyyy] + 0,yyyyy = xx,yyyyy msek Hvis urene i GPS-modtagerne var ligeså præcise som atom-urene i satellitterne (så det modtagne C/A-signal kunne sammenholdes med et synkront genereret C/A-signal i modtageren), og radiobølgerne bevægede sig i vakuum, ville vi nu have næsten den eksakte afstand (299792,458*(xx,yyyyy ± 5*10 6 ) meter) til den satellit, hvis C/A-signal vi modtager. Ud fra afstanden til tre satellitter, ville vores eksakte position så kunne bestemmes.
Navigationssignalet fra satellitterne indeholder information, som modtageren kan benytte til at modellere den forsinkelse af C/A-signalet, der skyldes at bærebølgen skal igennem atmosfæren (og altså ikke vakuum). Effekten af de relativt unøjagtige Quartz-ure i GPS-modtagerne klares derimod ved at måle afstanden til mindst 4 satellitter, og løse følgende beregningsproblem mht. position (X,Y,Z) og bias = 299792, 458 (modtagerurets fejl i msek): 4 Satellit-positioner: (X1,Y1,Z1), (X2,Y2,Z2), (X3,Y3,Z3), (X4,Y4,Z4),... Målte afstande: 299792,458 gange xx 1,yyyyy 1, xx 2,yyyyy 2, xx 3,yyyyy 3, xx 4,yyyyy 4,... Minimér funktionen f(x, Y, Z, bias) = [ (Xi X) 2 + (Y i Y ) 2 + (Zi Z) 2 299792, 458 xx i, yyyyy i + bias ] 2 i 1 Det ville dog være noget besværligt for brugeren, hvis ind- og uddata skulle være i de såkaldte kartesiske ECEF(Earth Centered Earth Fixed)-koordinater (X,Y,Z). I GPS-modtagerne er der derfor indbygget transformationer mellem ECEF-koordinater og de tilsvarende geodætiske koordinater (φ,λ,h), der relaterer til hhv. breddegrad, længdegrad og højde over jordoverfladen. Sådanne transformationer afhænger dog af, hvilket datum ( jordmodel ) der anvendes, og vi vil derfor se nærmere på WGS84, som er det datum, der anvendes i GPS-systemet. (WGS84-modellen er mere eller mindre præcis, afhængig af hvor på Jorden man befinder sig, og derfor kan GPS-modtagere som regel også programmeres til at benytte lokalt mere nøjagtige modeller.) WGS84-modellen I WGS84 modelleres jordoverfladen ved en omdrejningsellipsoide, fremkommet ved at en ellipse roteres rundt om Z-aksen, så ækvator bliver en cirkel. Jordoverfladen består således af de punkter (X 0,Y 0,Z 0 ), der opfylder ligningen: X 2 0/a 2 + Y 2 0/a 2 + Z 2 0/(a (1 fl)) 2 = 1, hvor længderne a og a*(1-fl) af halvakserne er givet ved a = 6378137 m fl = 1/298, 257223563 (fl = flattening ) De punkter (X h,y h,z h ), der ligger i en afstand h uden for ellipsoiden, kan dog ikke beskrives ved en omkringliggende omdrejningellipsoide. Man introducerer derfor vinklerne
λ [ π, π]: længdegraden gående fra -180 øst til 180 øst. λ er omdrejningsvinklen omkring Z-aksen. 5 φ [ π 2, π 2 ]: breddegraden gående fra -90 nord til 90 nord. φ er den vinkel med X-Y-planet, som skal benyttes ved ortogonal projektion af (X h,y h,z h ) ned på ellipsoiden. De geodætiske koordinater (φ, λ, h) kan nu benyttes til at beskrive punkterne (X h,y h,z h ): X h Y h = (ν(φ) + h) cos(φ) cos(λ) = (ν(φ) + h) cos(φ) sin((λ) Z h = (ν(φ)(1 fl) 2 + h) sin(φ) hvor ν(φ) = a 2 / a 2 cos(φ) 2 + a 2 (1 fl) 2 sin(φ) 2 = a/ 1 fl(2 fl) sin(φ) 2 Længde- og breddegrader angives ofte i grader( ), bueminutter( ) og buesekunder( ), hvor xx yy zz tolkes som xx+(yy+zz/60)/60 grader. F.eks. s- varer positionen (55 37 05 Nord, 12 39 22 Øst) ude i Kastrup Lufthavn til de geodætiske koordinater: φ = [55 + (37 + 5/60)/60] π/180 λ = [12 + (39 + 22/60)/60] π/180 h = 0 i hhv. radianer, radianer og meter, og derfor til de kartesiske koordinater (X h, Y h, Z h ) = (3522304, 790951, 5240545) i meter. (Dvs. Kastrup Lufthavn er ca. 6364 km fra Jordens midte!)
Spørgsmål 6 1) Ude på en ø i Illinois målte man følgende fra 6 satellitter i GPS-systemet: Satellit-positionerne (i ECEF-koordinater og i meter): (15524471.175, -16649826.222, 13512272.387) (-2304058.534, -23287906.465, 11917038.105) (16680243.357, -3069625.561, 20378551.047) (-14799931.395, -21425358.240, 6069947.224) (-8862836.251, -23169233.902, 9320381.167) (16814915.181, -10296036.278, 17695276.289) Målte tidsforskydninger af C/A-signalerne (i msek): hhv. 0,43281 0,07443 0,37995 0,04470 0,79280 og 0,70802. Øen er mindre end 149 km fra positionen (40 Nord, 92 Vest). Fra hvilken position blev målingerne foretaget, og hvad hed øen? (Tip: benyt View Maps-faciliteten på Internet-siden http://www.topozone.com til sidstnævnte spørgsmål) Til hjælp er der på/home/disk05/datjs/dirscicomp2 følgende M-filer: obj.m : den funktion f, der skal minimeres (dog mangler xx i,yyyyy i erne at blive sat ind i filen). objg.m : gradienten af den funktion f, der skal minimeres, dvs. dens afledede mht. X, Y, Z og bias (dog mangler xx i,yyyyy i erne at blive sat ind i filen). hessian.dat : Hessian-matricen for f i minimumspunktet. Man må gerne benytte en passende funktion i MATLAB c -systemet til at minimere f, men bør da skrive hvilket software, der anses for bedst egnet til dette minimeringsproblem! (Tips: Anvend format long e og start evt. MATLAB c -funktionen op flere gange med bedre og bedre startgæt) Filen hessian.dat skal benyttes til a) At få gradienten til at ligne 0-vektoren mest muligt. b) At afgøre om det stationære/kritiske punkt er et minimumspunkt. c) At vurdere (via Heath, Kapitel 6), hvor langt vi kan være fra det korrekte minimumspunkt for f som følge af unøjagtig f-beregning. De geodætiske koordinater (φ, λ, h) skal findes via en iterativ metode, hvor normen af fejl-vektoren ses at konvergere kvadratisk mod 0.
2) De målte tidsforskydninger af C/A-signalerne er afrundet til 5 decimaler, og der ligger faktisk en anden ø ca. 200 m fra den beregnede position. Kan vi være sikre på, at vi ikke befinder os på den anden ø? Tip: Vi skal vurdere, hvor meget nulpunktet i gradienten ændrer sig, når de 6 xx i,yyyyy i er varierer ±5 10 6. Dvs. gradienten betragtes som en funktion af 10 variable: V = (X,Y,Z,bias) T og v = (xx 1,yyyyy 1,..,xx 6,yyyyy 6 ) T. Taylor s Sætning giver da, at 0 = f([v T,v T ]) f([ṽ T,ṽ T ]) [ ( f)i V j ] ( ( f) i V Ṽ v j v ṽ [ ] [ ] ( f)i ( f)i = (V Ṽ) + (v ṽ). V j v j Bemærk, at hessian.dat indeholder den første af de to matricer, og at vi ønsker( at vurdere ) ((f.eks. ) max-)normen af V Ṽ. Tip: f v j V i = f V i v j. ) 7