248_esercitazione1

5
ESERCITAZIONE 1. CALCOLO E RAPPRESENTAZIONE DI ORBITE TRIDIMENSIONALI 1. Testo dell’esercitazione Utilizzando il linguaggio di programmazione MATLAB, lo studente risolva il seguente problema: Parte 1 Dati posizione e velocità iniziali di un satellite in un riferimento inerziale ed un vettore di epoche, calcolare posizione e velocità del satellite in cor- risponenza di ciascuna epoca e rappresentare graficamente la traiettoria del satellite nel riferimento inerziale, salvando una copia su file. Parte 2 Assumendo che la Terra sia sferica e ruoti con velocità angolare costante, calcolare e rappresentare graficamente la traccia a terra di un satellite di cui è nota la posizione nel riferimento inerziale in un certo numero di istanti temporali. A titolo di esempio, si consideri un satellite che il 15/01/1995 @ 00:00:00 si trova r 0 5455.960044 3150.000000 0.000000 km v 0 2.568070 4.448029 6.573961 km/s Si applichino i programmi precedentemente sviluppati per calcolare traiettoria orbitale e traccia a terra nelle successive 24 ore. Dati: μ 398600.4415 km 3 /s 2 r 6378.1363 km α G0 100 il 1/1/1995 @ 00:00:00 T sid 86164 s 1

Upload: verbicar

Post on 08-Apr-2016

22 views

Category:

Documents


0 download

DESCRIPTION

dinamica volo spaziale

TRANSCRIPT

ESERCITAZIONE 1.CALCOLO E RAPPRESENTAZIONE DI ORBITE TRIDIMENSIONALI

1. Testo dell’esercitazione

Utilizzando il linguaggio di programmazione MATLAB, lo studente risolva il seguenteproblema:

Parte 1Dati posizione e velocità iniziali di un satellite in un riferimento inerzialeed un vettore di epoche, calcolare posizione e velocità del satellite in cor-risponenza di ciascuna epoca e rappresentare graficamente la traiettoriadel satellite nel riferimento inerziale, salvando una copia su file.Parte 2Assumendo che la Terra sia sferica e ruoti con velocità angolare costante,calcolare e rappresentare graficamente la traccia a terra di un satellitedi cui è nota la posizione nel riferimento inerziale in un certo numero diistanti temporali.

A titolo di esempio, si consideri un satellite che il 15/01/1995 @ 00:00:00 si trovar0 � r5455.960044 3150.000000 0.000000s kmv0 � r�2.568070 4.448029 6.573961s km/s

Si applichino i programmi precedentemente sviluppati per calcolare traiettoria orbitalee traccia a terra nelle successive 24 ore.

Dati: µ � 398600.4415 km3/s�2

rC � 6378.1363 km αG0 � 100� il 1/1/1995 @ 00:00:00 Tsid � 86164 s

1

ESERCITAZIONE 1. CALCOLO E RAPPRESENTAZIONE DI ORBITE TRIDIMENSIONALI 2

2. Schema di risoluzione

Parte 1.

Creare le funzioni “base” per la soluzione di problemi di meccanica orbitale: rvECI2coe,coe2rvECI, anu2AE, AE2XM, XM2AE, AE2anu. usando le interfacce suggerite.

f u n c t i o n COE = rvECI2coe ( rVectECI , vVectECI , amu)f u n c t i o n [ rVectECI , vVectECI ] = coe2rvECI (COE, amu)f u n c t i o n AE = anu2AE( ecc , anu )f u n c t i o n XM = AE2XM( ecc ,AE)f u n c t i o n AE = XM2AE( ecc ,XM)f u n c t i o n anu = AE2anu( ecc ,AE)

Creare una funzione CorePropagatorf u n c t i o n [ r1 , v1 ] = CorePropagator ( r0 , v0 , dt )

che assegnata una coppia qualunque r0, v0 riferita ad un’epoca t0, calcoli posizione r1 evelocità v1 del satellite dopo un tempo dt.Creare una funzione ShellPropagator

f u n c t i o n [ rMatrixECI , vMatrixECI ] = She l lPropagator ( r0 , v0 , tspan )che, assegnato un vettore di epoche tspan = [t0, t1, t2, . . . , tn�1], valuti la posizione/ve-locità del satellite agli istanti corrispondenti { (r0,v0),(r1,v1), ..., (rn�1,vn�1) } usandol’algoritmo sviluppato in precedenza e li salvi nelle matrici rMatrixECI, vMatrixECI didimensioni 3 � n.Creare una funzione DisegnaTraj3D

f u n c t i o n DisegnaTraj3D ( rMatrixECI )che mostri a schermo una figura con la traiettoria del satellite in un riferimento inerzialee salvarla su file.

Di seguito sono raccolti gli pseudocodici delle funzioni più complesse:

Algorithm 1 Pseudocode for CorePropagatorfunction CorePropagator(r0, v0, dt)

coeÐ rv2coe pr0, v0q � ricavo elementi orbitali classiciAE0 Ð anu2AE pe, anu0q � calcolo anomalia eccentrica al tempo t0XM0 Ð AE2XM pe,AE0q � calcolo anomalia media al tempo t0XM1 Ð t. . .u � calcola anomalia media al tempo t1AE1 Ð XM2AE pe,XM1q � calcolo anomalia eccentrica al tempo t1anu1 Ð AE2anu pe,AE1q � calcolo anomalia vera al tempo t1coeÐ update coe at t1 � aggiorno gli elementi orbitali (solo l’anomalia vera!)r, v Ð coe2rvECI pcoeq � ricavo pos/vel dagli elementi orbitali aggiornati

end function

ESERCITAZIONE 1. CALCOLO E RAPPRESENTAZIONE DI ORBITE TRIDIMENSIONALI 3

Algorithm 2 Pseudocode for ShellPropagatorfunction ShellPropagator(r0, v0, tspan)

for i ¤ n dodtÐ tspanpiq � tspanp1qr, v Ð CorePropagator pr0, v0, dtq � propago da t0 a tspan(i)rMatrixECIp:, iq Ð r;vMatrixECIp:, iq Ð v;

end forend function

Algorithm 3 Pseudocode for DisegnaTraj3Dfunction DisegnaTraj3D(rMatrixECI)

figure() � nuova figuradefinisci il layout � (viewpoint, x,y,z-label, title)X,Y, Z Ð rMatrixECIplot3(X,Y,Z,’-b’) � disegna l’orbitasave pdf

end function

Parte 2.Creare una funzione ECI2ECEF

f u n c t i o n [ rVectECEF ] = ECI2ECEF(JD, rVectECI )che trasforma un vettore posizione in componenti ECI nelle corrispondenti compomentivalutate in un riferiemento Earth-Centered Earth-Fixed, all’epoca JD.Creare una funzione rect2polar

f u n c t i o n [ r , th , f i ] = r e c t 2 p o l a r ( rVect )che trasforma un set di componenti cartesiane in componenti polari (modulo, longitudine,latitudine).Creare una funzione CoreTrace

f u n c t i o n [ Lat , Long ] = CoreTrace (JD, rVectECI )che, dato un singolo vettore di posizione nel riferimento inerziale rECI riferito all’epocaJD, ne calcoli l’impronta a Terra.Creare una funzione ShellTrace

f u n c t i o n [ LatVect , LongVect ] = She l lTrace ( rMatrixECI , tspan_MJD)che, assegnato un vettore 1�n di epoche tspanMJD � rt1, t2, . . . , tn�1], ed una matrice3�n rMatrixECI contenente la posizione del satellite nel riferimento inerziale negli istanticorrispondenti, valuti per ciascuno longitudine e latitudine Lo, La usando l’algoritmosviluppato in precedenza e li salvi nelle matrici LongVect, LatVect di dimensioni 1 � n.Creare una funzione DisegnaTraccia2D

f u n c t i o n DisegnaTraccia2D ( LatVect , LongVect )che mostri a schermo (e salvi su file) una figura con la traccia a terra del satellite nelpiano Longitudine-Latitudine.

Di seguito sono raccolti gli pseudocodici delle funzioni più complesse:

ESERCITAZIONE 1. CALCOLO E RAPPRESENTAZIONE DI ORBITE TRIDIMENSIONALI 4

Algorithm 4 Pseudocode for CoreTracefunction CoreTrace(MJD, rVectECI)

rVectECEF Ð ECI2ECEF(MJD,rVectECI)Lat,Long Ð rect2polar(rVectECEF)

end function

Algorithm 5 Pseudocode for ShellTracefunction ShellTraccia(rMatrixECI, tspan)

for i ¤ n dorVectECI Ð rMatrixECI(:,i)Lat,Lon Ð CoreTrace pMJD, rVectECIqLatVect(i) Ð Lat;LongVect(i) Ð Lon;

end forend function

Algorithm 6 Pseudocode for ECI2ECEFfunction ECI2ECEF(MJD,rVectECI)

Define problem constant � solar day, sidereal day, Earth rotation rateEvaluate αgrw � Right ascension of Greenwich MeridianTECI2ECEF Ð R3p�αgrwq � Rotation matrix from ECI to ECEFrVectECEF Ð TECI2ECEF rVectECI

end function

Nomi delle variabili usate nel codice:rVectECI: [3x1] S/C position in ECIvVectECI: [3x1] S/C velocity in ECIrVectECI: [3x1] S/C position in ECEF

amu: grav. parameter of the primary bodyCOE: classical orbital elements

[a; ecc; ainc; gom; pom; anu]a: semi-major axis

ainc: inclinationgom: right ascension of the ascending node (RAAN)pom: perigee argumentanu: true anomalyAE: eccentric anomalyXM: mean anomaly

MJD: Modified Julian Datetspan_MJD: [1 � n] vector of epochs in seconds

tspan: [1 � n] vector of epochs in MJD

Consigli:

ESERCITAZIONE 1. CALCOLO E RAPPRESENTAZIONE DI ORBITE TRIDIMENSIONALI 5

(1) Usare sempre vettori colonna per le variabili posizione e velocità;(2) Salvare su pdf usando il comando:

i R e s o l u t i o n = 600 ;ImgNameStr = ’ p i c1 ’ ;p r i n t ( ’�dpdf ’ , s p r i n t f ( ’�r%d ’ , i R e s o l u t i o n ) , s t r c a t ( ImgNameStr , ’ . pdf ’ ) ) ;