IMPLEMENTAZIONE DEL CODICE
In questo capitolo viene descritto l’algoritmo utilizzato per simulare i diversi scenari di missione, in che modo sono state utilizzate e implementate le equazioni descritte nel Cap. 2. Si introducono alcuni schemi a blocchi per descrivere piu in dettaglio la struttura del codice e l’ordine dei comandi eseguiti.
4.1 Introduzione all’algoritmo
L’algoritmo simula uno scenario di missione, in cui il satellite, spinto da un propulsore elettrico, effettua una serie di trasferimenti per raggiungere e schiumare i detriti. Il programma è in grado di scegliere automaticamente la sequenza di detriti da deorbitare e il tempo di attesa prima di accendere il motore ed eseguire il trasferimento tra un detrito e quello successivo.
L’algoritmo è stato schematizzato in blocchi numerati (vedi Fig. 50), all’interno dei quali è stata inserita una breve descrizione del comando.
Figura 50 -‐ Schema a blocchi dei principali comandi dell’algoritmo.
Ogni blocco rappresenta una sequenza di stringhe del codice, e quando si avvia una simulazione il programma segue l’ordine in cui sono state
scritte. Nel primo e nel secondo blocco l’algoritmo carica il database di detriti, salvato sotto forma di matrice e successivamente vengono assegnati i valori e le condizioni iniziali relativi al satellite e alla sua orbita di partenza (e.g. massa totale iniziale, altitudine di partenza). Nel terzo blocco il programma simula un primo trasferimento verso un’orbita secondaria, la cui altitudine viene calcolata eseguendo una media fra le altitudini dei detriti appartenenti al database caricato precedentemente. Il satellite quindi individua automaticamente il primo detrito e inizia il trasferimento per raggiungerlo. Quest’ultimo passaggio viene ripetuto fino a quando il satellite non finisce tutta la schiuma o fino a quando la quantità di propellente non assume un valore pari a 100 kg. Il motivo di questa scelta sta nel fatto che il satellite, una volta terminata la sua missione, debba azionare il motore per deorbitarsi, quindi è stato scelto un valore arbitrario (approssimativo) di propellente, sotto il quale non deve scendere. Quando il satellite conclude il suo deorbitamento, l’algoritmo ricerca nel database i detriti rimasti. Se rimane un certo numero di detriti il programma comincia nuovamente il ciclo simulando la missione con un altro satellite dalle stesse caratteristiche del precedente. In caso contrario termina mostrando i risultati delle simulazioni.
4.2 Database di detriti
Per ogni tipologia di detriti descritti nel Cap. 3 (SL-‐8, SL-‐3, SL-‐14) è stato creato un diverso database (una matrice 50x3), nel quale sono elencati i valori di altitudine, inclinazione e RAAN degli oggetti. Ogni
riga corrisponde a ciascun detrito. Nel primo blocco il programma carica tutti i valori inseriti all’interno della matrice. Le seguenti tabelle mostrano i tre database creati per effettuare le simulazioni:
4.3 Assegnazione delle variabili e delle condizioni iniziali
In questo paragrafo verrà descritto il Blocco 2, suddividendolo in ulteriori blocchi, come è mostrato in Fig. 51.
Figura 51 -‐ Schema del blocco relativo all’assegnazione delle variabili e delle condizioni iniziali
All’interno del secondo blocco sono state inserite quelle che sono le caratteristiche fisiche della Terra, rappresentate dai seguenti parametri:
• Raggio terrestre (𝑅! = 6378,14 km)
• Armonica zonale 𝐽! (1,082 x 10!!)
• Parametro gravitazionale terrestre (μ = 398.600 𝑘𝑚!𝑠!!)
Le caratteristiche del satellite sono invece rappresentate dai seguenti parametri:
• Massa totale
• Massa totale di schiuma • Massa totale di propellente • Impulso specifico
• Spinta
Il satellite viene lanciato su un’orbita a un’altitudine di 300 km, perché in questo modo gli stadi del lanciatore deorbitano più velocemente e rimangono a un’altitudine inferiore a quella della stazione spaziale internazionale. I lanciatori utilizzati sono descritti nel capitolo successivo.
L’inclinazione dell’orbita iniziale di parcheggio varia secondo la tipologia di detriti che si vuole raggiungere, in particolare:
• SL-‐8 è i = 74° • SL-‐3 è i = 81° • SL-‐14 è i = 82°
Il valore dell’inclinazione non è comunque costante per tutti gli elementi del database. Le piccole variazioni tra un oggetto e l’altro sono dell’ordine di 0.1 deg. Pertanto per raggiungere ogni detrito sono necessarie anche piccole variazioni di inclinazione che sono realizzate dal propulsore elettrico.
Poiché i valori di RAAN dei detriti sono uniformemente distribuiti, è stato ipotizzato che il satellite parta da un valore di RAAN medio.
4.4 Trasferimento nell’orbita di parcheggio secondaria
In questo paragrafo verrà descritto il Blocco 3, suddividendolo in ulteriori blocchi, come è mostrato in Fig. 52
Figura 52 -‐ Schema del blocco utilizzato per descrivere il trasferimento nell’orbita di parcheggio secondaria.
Dopo che l’algoritmo calcola un’altitudine media, 𝐻!, il satellite si trasferisce in un’orbita circolare a quell’altitudine. Quest’orbita è stata
denominata: “orbita di parcheggio secondaria”. Durante il trasferimento il satellite utilizza il motore solo per variare il suo semiasse maggiore, quindi il valore dell’angolo di sparo β è zero. L’inclinazione non subisce alcuna variazione mentre il RAAN cambia a causa della perturbazione dovuta all’armonica zonale 𝐽!.
Utilizzando un’orbita di parcheggio secondaria, il satellite si trova all’interno della fascia di detriti e quindi variare il valore di semiasse maggiore per raggiungere il primo detrito richiede un consumo minore di propellente e un tempo di trasferimento più breve, rispetto al caso in cui il satellite debba partire dall’orbita di partenza (300 km).
Durante il trasferimento, il programma aggiorna i valori di semiasse e di RAAN dei detriti rimasti all’interno del database, perché subiscono l’effetto dell’atmosfera e di 𝐽!. Nel caso in cui un detrito superi una soglia minima di altitudine, arbitrariamente fissata a 150 km, questo viene comunque cancellato dal database. A queste quote, infatti, l’oggetto incontra gli strati più densi dell’atmosfera ed inizia a bruciare deorbitando naturalmente. Il codice, pertanto tiene automaticamente in conto il deorbitamento naturale dei detriti durante lo svolgimento della missione attiva.
4.5 Il satellite individua e raggiunge il detrito
In questo paragrafo verrà descritto il Blocco 4, suddividendolo in ulteriori blocchi, come è mostrato in Fig. 53
Figura 53 -‐ Schema del blocco utilizzato per spiegare in che modo il satellite individua un detrito
Per individuare un detrito è stato implementato un vincolo che impone al satellite di aspettare in un’orbita di attesa finchè il valore di ΔΩ non sia minore di un certo valore 𝛺! scelto arbitrariamente a priori. Quando il valore di ΔΩ risulta minore o uguale a 𝛺! allora il satellite inizia il trasferimento verso il detrito scelto. L’orbita di attesa è rappresentata dall’orbita di parcheggio secondaria, nel caso in cui il satellite stia aspettando di individuare il primo detrito, altrimenti dall’orbita su cui si trova il detrito che il satellite ha appena schiumato.
Il motivo per cui è stato fissato un limite massimo per ΔΩ è dovuto al fatto che il trasferimento fra due orbite con la stessa altitudine e con valori diversi di RAAN è molto costoso in termini di tempo e di propellente consumato, rispetto al caso in cui il trasferimento debba avvenire ad esempio fra due orbite complanari.
Figura 14 -‐ Schema del blocco che spiega in che modo il satellite raggiunge il detrito
Il trasferimento verso il detrito scelto avviene mediante due fasi consecutive. All’inizio la direzione di spinta è tale da ottenere variazioni di semiasse maggiore ed inclinazione contemporaneamente. Successivamente il satellite effettua un secondo trasferimento cambiando la direzione della spinta in modo da ottenere variazioni di semiasse maggiore e Raan insieme. Il motivo per cui si effettuano due trasferimenti consecutivi è dovuto al fatto che le equazioni delle variazioni secolari d’inclinazione e di RAAN sono state ottenute integrando le equazioni di Lagrange utilizzando valori diversi di anomalia eccentrica E. Questo concetto è stato comunque discusso più a fondo nel Cap. 2. Questo tipo di trasferimento avviene utilizzando un angolo β espresso dall’Eq. 39, introdotta nel Cap. 2
L’angolo iniziale 𝛽!/!! viene ricavato calcolando le variazioni iniziali di semiasse e inclinazione:
𝛥𝑟! = 𝑟!! − 𝑟!! (44) 𝛥𝑖! = 𝑖!!− 𝑖!! dove:
• 𝑟!! = semiasse maggiore iniziale del detrito
• 𝑟!! = semiasse maggiore iniziale del satellite
• 𝑖!! = inclinazione iniziale del detrito
• 𝑖!! = inclinazione iniziale del satellite
Sostituendo i valori iniziali nell’equazione precedente so ottiene:
𝛽!/!! = arctan𝛥𝑖! 𝜋 𝑟!!
𝛥𝑟! (45)
Dove 𝛽!/!! è il valore iniziale dell’angolo prima di cominciare il primo
trasferimento. Ogni volta che il satellite completa un’orbita i valori di semiasse maggiore ed inclinazione cambiano, avvicinandosi sempre di più a quelle del detrito obiettivo.
Terminato il primo trasferimento, vengono aggiornati i parametri orbitali a e Ω del detrito, e il satellite inizia la seconda fase del
trasferimento, azionando il motore per ottenere variazioni di semiasse maggiore e RAAN contemporaneamente.
Il motivo per cui è stata inclusa anche una variazione del semiasse sta nel fatto che quando il satellite raggiunge gli stessi valori di semiasse del detrito, quest’ultimi non rimangono uguali perché, avendo un rapporto area-‐massa diverso, cambia l’effetto della resistenza atmosferica.
Anche in questo caso quindi si utilizza una relazione per l’angolo β, espressa dall’Eq. 40. L’angolo iniziale viene ricavato calcolando le variazioni iniziali di semiasse e RAAN:
𝛥𝑟! = 𝑟!!− 𝑟!! (46) 𝛥𝛺! = 𝛺!!− 𝛺!! Dove:
• 𝑟!! = semiasse maggiore iniziale del detrito
• 𝑟!! = semiasse maggiore iniziale del satellite
• 𝛺!! = RAAN iniziale del detrito
• 𝛺!! = RAAN iniziale del satellite
Sostituendo i valori iniziali nell’equazione precedente so ottiene:
𝛽!/!! = arctan𝛥𝛺 !𝜋 𝑟!sin 𝑖
𝛥𝑟! (47)
Dove 𝛽!/!! è il valore iniziale dell’angolo prima di cominciare il secondo trasferimento. Ogni volta che il satellite completa un’orbita i valori di semiasse maggiore e RAAN cambiano, avvicinandosi sempre di più al detrito. Si suppone che il valore dell’inclinazione i rimanga costante durante la seconda fase del trasferimento.
Una volta raggiunto e schiumato il detrito, l’algoritmo lo cancella dal database, e il satellite si prepara a individuare il prossimo detrito da schiumare. Durante questo lasso di tempo, in cui avvengono i trasferimenti, il programma aggiorna i valori di semiasse, di inclinazione e di RAAN dei restanti detriti.
Durante i trasferimenti, all’interno del codice, i parametri orbitali vengono aggiornati ogni volta che il satellite compie una rivoluzione, poiché per studiare il moto del satellite si utilizzano i valori medi delle variazioni degli elementi orbitali fatti su un’orbita. A ogni ciclo il programma calcola, i valori dei seguenti parametri:
Angolo di sparo β
L’espressione dell’angolo β cambia in base alla fase del trasferimento che il satellite deve effettuare, nel caso di un cambio di semiasse e di inclinazione si utilizza l’equazione 39, per un cambio di semiasse e RAAN, invece, si utilizza l’equazione 40. Tale angolo è mantenuto
costante durante una rivoluzione, mentre viene aggiornato tra una rivoluzione e la successiva se il codice lo richiede, come descritto nel Cap.2.
Densità atmosferica
La densità atmosferica, viene espressa mediante il modello atmosferico
Standard Atmosphere 1976, in funzione del valore dell’altitudine. Poiché
generalmente il satellite, prima di cominciare il trasferimento verso il detrito, si trova ad un’altitudine diversa da quest’ultimo, sono state inserite due diverse variabili per la densità.
Variazioni secolari dei parametri orbitali
Le variazioni secolari causate dalle accelerazioni del motore, della resistenza atmosferica e dell’armonica zonale 𝐽!, sono espresse tramite
le equazioni ricavate per un’orbita circolare [Cap 2]. Queste variazioni sono state ottenute integrando le equazioni di Lagrange in forma gaussiana su un’intera orbita, in modo da ottenere un valore medio.
Parametri orbitali
Per calcolare i valori dei parametri orbitali, sono state usate queste espressioni:
𝑟!!! = 𝑟!+ 𝛥𝑟!"#"$%!+ 𝛥𝑟!"#$!
(48) 𝑖!!! = 𝑖!+ 𝛥𝑖!"#"$%!
𝛺!!! = 𝛺! + 𝛥𝛺!"#"$%!+ 𝛥𝛺!!!
In questo modo il valore del parametro orbitale della rivoluzione n+1 viene aggiornato sommando il valore del parametro relativo alla rivoluzione n con il valore della variazione secolare. Nel caso in cui il satellite debba raggiungere altitudini o inclinazioni inferiori rispetto a quelle in cui si trova, il motore inverte la spinta:
𝑟!!! = 𝑟!− 𝛥𝑟!"#"$%!+ 𝛥𝑟!"#$! (49) 𝑖!!! = 𝑖!− 𝛥𝑖!"#"$%! Tempo
Per calcolare il tempo di trasferimento t sono state utilizzate le seguenti espressioni [40]: 𝑇!!!! = 2 𝜋 𝑟!!!! 𝜇! (50) 𝑡!!! = 𝑡!+ 𝑇!!!! (51)
Dove r è il raggio dell’orbita, 𝑇!!!!è il periodo orbitale, μ+ il parametro
gravitazionale della Terra, 𝑡! è il tempo relativo alla rivoluzione n e 𝑡!!! è il tempo trascorso a percorrere un’intera orbita.
Massa
Il valore della massa del satellite viene aggiornato secondo questa espressione:
𝑚!!! = 𝑚!− 𝑇!!!!𝑇
𝐼!"𝑔! (52)
Dove 𝑚! è la massa del satellite relativa alla rivoluzione n, 𝑚!!! è la
massa del satellite calcolata dopo un’intera orbita.
Accelerazione dovuta al motore
L’accelerazione del motore 𝑎!, espressa come il rapporto fra la spinta T
e la massa istantanea del satellite m, non è costante perché la massa del satellite diminuisce a causa del consumo di propellente e di schiuma. Durante i trasferimenti la massa del satellite cambia solo a causa di una diminuzione di propellente, come è mostrato nella Eq. 52. Appena il satellite raggiunge il detrito, l’algoritmo sottrae la quantità di schiuma alla massa totale del satellite. Quindi l’ultimo valore della massa viene utilizzato per le nuove iterazioni.
4.6 Deorbitamento della piattaforma a fine missione
Come schematizzato in Fig. 56, il ciclo continua fino a quando il satellite non ha più schiuma o quando la quantità di propellente rimasta è inferiore a circa 100 kg (Blocco 5). Quest’ultima condizione è stata inserita perché si suppone che il satellite, una volta terminata la sua missione, si deorbiti da solo (Blocco 6).
Se il satellite finisse il propellente, l’unica forza in grado di deorbitarlo sarebbe la resistenza atmosferica e il suo rientro avverrebbe in un tempo troppo lungo (e.g. ~35 anni in base alla quota dell’ultimo detrito schiumato). Quindi, allocando una certa quantità di propellente per il deorbitamento a fine vita, è ancora possibile utilizzare il propulsore per deorbitarlo più velocemente (e.g. ~ 50 giorni). Poiché il trasferimento richiede solo variazioni di semiasse maggiore l’angolo di sparo β è uguale a zero, dando così il massimo contributo per il deorbitamento. Quando il satellite supera la soglia di 150 km di altitudine, il programma ferma l’algoritmo.
Al Blocco 7, l’algoritmo analizza il database di detriti, e se la matrice è una matrice nulla, il codice termina l’esecuzione stampando i risultati (Blocco 8) a schermo, altrimenti ripete il ciclo partendo dal Blocco 2. Questo caso rappresenta un altro lancio che si effettua per portare in orbita un altro satellite.
Al termine della simulazione, l’algoritmo fornisce in uscita i valori dei seguenti parametri:
• Massa finale del satellite
• Massa di propellente consumato • Massa di schiuma utilizzata • Numero di detriti schiumati
• Numero di detriti deorbitati naturalmente durante la missione • Tempo di missione
La massa è fornita in kg, mentre il tempo sia in giorni sia in anni.