Sei sulla pagina 1di 78

Scuola universitaria professionale Dipartimento

della Svizzera italiana Tecnologie


Innovative

Progetto di diploma

C00261

Controllo di assetto nello spazio

Studente: Marco Molteni

Relatore: Silvano Balemi


Correlatore: Paolo Ceppi

14 settembre 2007
Controllo di assetto nello spazio

Abstract
The goal of this project was to develop a system for the attitude control of a space-
craft, using the interàtion with the geomagnetic eld. Many solutions have been
studied, and advantages and disadvantages compared. The solutions are a pas-
sive attitude control with a permanent magnet and two hysteresis rods for energy
damping, respectively an active attitude control with three magnetorquers and a
magnetometer.

Riassunto
L'obiettivo di questo lavoro era di sviluppare un sistema per orientare un satellite,
sfruttando le interazioni con il campo magnetico lungo le linee dello stesso. Sono
state studiate varie soluzioni, cercando di trovare vantaggi e svantaggi di ognuna.
Le soluzioni scelte sono state, un controllo passivo tramite un magnete permanente
e due placche isteretiche per dissipare l'energia, rispettivamente un controllo attivo
tramite tre magnetorquer e un magnetometro.

Marco Molteni 1
Controllo di assetto nello spazio

Progetto Assegnato
Controllo di assetto nello spazio
Caratteristiche generali del progetto

Corso di laurea: Elettronica TP

Opzione del progetto: O4 Meccatronica

Tipo di progetto: diploma

Semestre: Semestre Estivo

Elementi organizzativi del progetto

Codice di progetto: C00261

Titolo del progetto: Controllo di assetto nello spazio

Stato del progetto: scelto da studente

Condenzialità: Condenziale

Elementi descrittivi del progetto

Descrizione
Il progetto SSL della SUPSI ha lo scopo di lanciare un satellite in orbita. Si desidera
controllare l'assetto del satellite così da poter per esempio meglio trasmettere, ot-
timizzare l'energia recuperata. L'idea da sviluppare nel progetto consiste nell'ori-
entare il veicolo spaziale lungo le linee di campo magnetico terrestre grazie ad una
combinazione dei seguenti mezzi - magneti permanenti (passivo) - correnti di Fou-
cault nella struttura (passivo) - Hysteresis Rods (placche di isteresi) (passivo) -
magnetorquer: spire percorse da corrente controllata (attivo) - volano(attivo)

Compiti
Denire le speciche di funzionamento - analizzare le diverse soluzioni, varianti,
possibilità e valutarle - realizzare una o più varianti - validare il comportamento del
sistema.

Obbiettivi
L'obbiettivo è di poter orientare il satellite in funzione delle linee magnetiche ter-
restri, con un orientazione predeterminata oppure con un`orientazione impostabile
(variante in funzione delle speciche)

Marco Molteni 2
Controllo di assetto nello spazio

Tecnologie
-

Contatti del progetto

Relatore
Balemi, Silvano

Co-Relatore
Ceppi, Paolo

Marco Molteni 3
Indice

1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Requisiti e speciche . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1 Requisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Speciche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Studio delle soluzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1 Metodi passivi . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.1 Controllo a gradiente di gravità . . . . . . . . . . . . 11
3.1.2 Controllo a magnete permanente . . . . . . . . . . . 11
3.1.3 Controllo a stabilizzazione dello spin . . . . . . . . . 12
3.2 Metodi attivi . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.1 Zero Momentum . . . . . . . . . . . . . . . . . . . . 14
3.2.2 Momentum bias . . . . . . . . . . . . . . . . . . . . 15
3.3 Classicazione Attuatori . . . . . . . . . . . . . . . . . . . . . 16
3.3.1 Propulsori . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.2 Magnetic Torquer . . . . . . . . . . . . . . . . . . . . 17
3.3.3 Vele Solari . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.4 Appendici Aerodinamiche . . . . . . . . . . . . . . . 18
3.3.5 Ruote di Reazione . . . . . . . . . . . . . . . . . . . 19
3.3.6 Ruote di momento . . . . . . . . . . . . . . . . . . . 19
3.3.7 Control Moment Gyros . . . . . . . . . . . . . . . . . 20
3.4 Classicazione Sensori . . . . . . . . . . . . . . . . . . . . . . 21
3.4.1 Sensori di Sole . . . . . . . . . . . . . . . . . . . . . 21
3.4.2 Sensori di Orizzonte . . . . . . . . . . . . . . . . . . 21
3.4.3 Sensori di Stelle . . . . . . . . . . . . . . . . . . . . . 21
3.4.4 Magnetometri . . . . . . . . . . . . . . . . . . . . . . 22
4 Scelta della soluzione . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1 Controllo passivo a Magnete Permanente . . . . . . . . . . . . 23
4.2 Controllo attivo (MagnetoTorquer e Magnetometri) . . . . . . 24
5 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.1 [1] Magnete Permanente . . . . . . . . . . . . . . . . . . . . . 25
5.2 Placca Isteretica . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3 [4] MagnetoTorquer . . . . . . . . . . . . . . . . . . . . . . . . 26
5.4 Progettazione del controllore . . . . . . . . . . . . . . . . . . . 28
6 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.1 Simulazione metodo passivo . . . . . . . . . . . . . . . . . . . 29

14 settembre 2007 Marco Molteni 4


Controllo di assetto nello spazio

6.1.1 Prima simulazione . . . . . . . . . . . . . . . . . . . 29


6.1.2 Seconda simulazione . . . . . . . . . . . . . . . . . . 31
6.1.3 Terza simulazione . . . . . . . . . . . . . . . . . . . . 33
6.2 Simulazione metodo attivo . . . . . . . . . . . . . . . . . . . . 35
6.2.1 Prima simulazione . . . . . . . . . . . . . . . . . . . 35
6.2.2 Seconda simulazione . . . . . . . . . . . . . . . . . . 37
6.2.3 Terza simulazione . . . . . . . . . . . . . . . . . . . . 39
7 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.1 Lavori Futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
A Notazioni e Denizioni . . . . . . . . . . . . . . . . . . . . . . . . . . 42
A.1 [3] Sistemi di riferimento . . . . . . . . . . . . . . . . . . . . . 42
A.1.1 Earth-Centered Inertial (ECI) frame . . . . . . . . . 42
A.1.2 Earth-Centered Earth Fixed (ECEF) frame . . . . . 42
A.1.3 Earth-Centered Orbit frame . . . . . . . . . . . . . . 42
A.1.4 Orbit frame . . . . . . . . . . . . . . . . . . . . . . . 42
A.1.5 Body frame . . . . . . . . . . . . . . . . . . . . . . . 42
A.2 [3] Matrice di rotazione . . . . . . . . . . . . . . . . . . . . . . 43
A.3 Quaternioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
A.4 Rappresentazione d'assetto . . . . . . . . . . . . . . . . . . . . 44
A.4.1 Angoli di Euler . . . . . . . . . . . . . . . . . . . . . 44
A.4.2 Parametri di Euler . . . . . . . . . . . . . . . . . . . 44
B Modello Matematico . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
B.1 [3] Dati Orbitali . . . . . . . . . . . . . . . . . . . . . . . . . . 46
B.1.1 Stima dell'orbita . . . . . . . . . . . . . . . . . . . . 48
B.2 [2] Trasformazioni tra i dierenti sistemi di riferimento . . . . 51
B.2.1 ECEF to ECI . . . . . . . . . . . . . . . . . . . . . . 51
B.2.2 Da Earth-Centered Orbit to ECI e ECEF . . . . . . 51
B.2.3 ECI to Orbit frame . . . . . . . . . . . . . . . . . . . 51
B.2.4 Orbit frame to Body frame . . . . . . . . . . . . . . 52
B.3 Modello del campo magnetico (IGRF) . . . . . . . . . . . . . 53
B.4 [3] Dinamica del satellite . . . . . . . . . . . . . . . . . . . . . 55
B.5 [2] Cinematica del satellite . . . . . . . . . . . . . . . . . . . . 55
B.6 NORAD TLE . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
B.7 Placche isteretiche . . . . . . . . . . . . . . . . . . . . . . . . 56
C File Matlab/Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
C.1 File Matlab: Modello IGRF . . . . . . . . . . . . . . . . . . . 57
C.1.1 beld.m . . . . . . . . . . . . . . . . . . . . . . . . . 57
C.1.2 checkChkSum.m . . . . . . . . . . . . . . . . . . . . 58
C.1.3 readPart.m . . . . . . . . . . . . . . . . . . . . . . . 59
C.1.4 recursion.m . . . . . . . . . . . . . . . . . . . . . . . 60
C.1.5 schmidt.m . . . . . . . . . . . . . . . . . . . . . . . . 62
C.1.6 convertTLE.m . . . . . . . . . . . . . . . . . . . . . 63
C.1.7 loadTLE.m . . . . . . . . . . . . . . . . . . . . . . . 63
C.1.8 OrbitwithIGRF.m . . . . . . . . . . . . . . . . . . . 67

Marco Molteni 5
Controllo di assetto nello spazio

C.1.9 FoundBB.m . . . . . . . . . . . . . . . . . . . . . . . 70
C.2 File Matlab: Simulazione . . . . . . . . . . . . . . . . . . . . . 71
C.2.1 euler2q.m . . . . . . . . . . . . . . . . . . . . . . . . 71
C.2.2 simul.m . . . . . . . . . . . . . . . . . . . . . . . . . 71
C.3 File Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
D Uso dei modelli Matlab/Simulink . . . . . . . . . . . . . . . . . . . . 76

Marco Molteni 6
Elenco delle gure

1 Roll, Pitch e Yaw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


2 Ruote di reazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Ruote di Momento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4 Magnetorquer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5 Passivo 1: Campo magnetico misurato dal magnetometro . . . . . . . 29
6 Passivo 1: Sfasamento fra campo magnetico e asse y . . . . . . . . . . 30
7 Passivo 2: Campo magnetico misurato dal magnetometro . . . . . . . 31
8 Passivo 2: Sfasamento fra campo magnetico e asse y . . . . . . . . . . 32
9 Passivo 3: Campo magnetico misurato dal magnetometro . . . . . . . 33
10 Passivo 3: Sfasamento fra campo magnetico e asse y . . . . . . . . . . 34
11 Attivo 1: Campo magnetico misurato dal magnetometro . . . . . . . 35
12 Attivo 1: Sfasamento fra campo magnetico e asse y . . . . . . . . . . 36
13 Attivo 2: Campo magnetico misurato dal magnetometro . . . . . . . 37
14 Attivo 2: Sfasamento fra campo magnetico e asse y . . . . . . . . . . 38
15 Attivo 3: Campo magnetico misurato dal magnetometro . . . . . . . 39
16 Attivo 3: Sfasamento fra campo magnetico e asse y . . . . . . . . . . 40
17 Elementi orbitali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
18 Perturbazioni a periodi lunghi e a periodi corti . . . . . . . . . . . . . 48
19 Modello IGRF 1995 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
20 Modello dell'isteresi magnetica . . . . . . . . . . . . . . . . . . . . . . 56
21 Simulazione metodo passivo . . . . . . . . . . . . . . . . . . . . . . . 73
22 Dinamica del satellite . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
23 Cinematica del satellite . . . . . . . . . . . . . . . . . . . . . . . . . . 73
24 Magnetometro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
25 Calcolo angolo sfasamento tra B e asse y . . . . . . . . . . . . . . . . 74
26 Metoto Passivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
27 Magnete Permanente . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
28 Placca Isteretica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
29 Controllo Attivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
30 PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
31 Calcola angolo e direzione coppia . . . . . . . . . . . . . . . . . . . . 75

14 settembre 2007 Marco Molteni 7


Controllo di assetto nello spazio

1 Introduzione
Il progetto SSL della SUPSI ha lo scopo di orire agli studenti la possibilità di
cimentarsi con problematiche dello spazio. Fra le attività correnti si progetta un
satellite della classe Cubesat da mettere in orbita prossimamente.
In questo ambito una delle varie problematiche relative ad una missione spaziale è
quella del controllo d'assetto.

Marco Molteni 8
Controllo di assetto nello spazio

2 Requisiti e speciche
2.1 Requisiti
I requisiti espressi sono i seguenti:

1. Denire le speciche di funzionamento.

2. Orientare il satellite in funzione delle linee magnetiche terrestri.

3. Validare il comportamento del sistema.

2.2 Speciche

Volume
Numero 1.1
Descrizione Il controllo di assetto deve avere un volume contenuto.
Valori Volume massimo: 15 cm3
Riferemento 1
Osservazioni Specica da rispettare sia per metodi passivi che per
metodi attivi.

Peso
Numero 1.2
Descrizione Il controllo di assetto deve avere un peso contenuto.
Valori Peso massimo: 150 g
Riferemento 1
Osservazioni Specica da rispettare sia per metodi passivi che per
metodi attivi.

Posizione
Numero 1.3
Descrizione Il controllo di assetto deve avere un posizionamento
all'interno del cubo vincolato.
Valori Posizione: Vincolata per controllare correttamente (ved.
Design)
Riferemento 2
Osservazioni Specica da rispettare per metodi passivi che per metodi
attivi.

Marco Molteni 9
Controllo di assetto nello spazio

Tempo
Numero 1.4
Descrizione Il controllo di assetto deve controllare la posizione in un
determinato tempo.
Valori Tempo massimo : Qualunque
Riferemento 1
Osservazioni Specica da rispettare sia per metodi passivi che per
metodi attivi.

Consumo
Numero 1.5
Descrizione Il controllo di assetto deve consumare poca energia e
poca potenza.
Valori Consumo massimo: 3 W di picco per 0.5 s - 150 W a
regime
Riferemento 1
Osservazioni Specica da rispettare solo per metodi attivi.

Validazione
Numero 1.6
Descrizione Il controllo di assetto sarà validato in simulazione
Valori
Riferemento 3
Osservazioni Specica da rispettare solo per metodi attivi.

Marco Molteni 10
Controllo di assetto nello spazio

3 Studio delle soluzioni


3.1 Metodi passivi
3.1.1 Controllo a gradiente di gravità

Gradiente Gravitazionale
Descrizione Sfrutta la tendenza di un corpo 00 allungato00 a disporsi con
l'asse di minima inerzia nella direzione della verticale locale,
garantendo un controllo a due assi.
Accuratezza ±5°
Vantaggi Utile per veicoli con payload di tipo 00 nadir-pointing00 .
Semplice e passivo.
Svantaggi Vincoli sulla geometria delle masse.
Coppie utili per il controllo sono modeste.
Utilizzabile solo in orbite basse.
Piccoli disturbi eccitano moti propri (librazione) che
richiedono opportune tecniche di smorzamento.
Solo due assi possono essere controllati.
Peso
Volume

3.1.2 Controllo a magnete permanente

Magnete permanente
Descrizione La presenza di magneti permanenti tendono ad allineare il
satellite lungo la direzione del campo magnetico locale.
Accuratezza ±5°
Vantaggi Semplice e passivo.
Svantaggi Non dà coppia nella direzione del campo magnetico.
Dipende dal campo magnetico terrestre, ecace sono in orbite
basse.
Richiedono tecniche di smorzamento per frenare le oscil-
lazioni.
Peso
Volume

Marco Molteni 11
Controllo di assetto nello spazio

3.1.3 Controllo a stabilizzazione dello spin

Spin
Descrizione Il veicolo viene messe in rotazione attorno ad un asse, sfrutta
il principio di rigidezza giroscopica: l'asse generato dal mo-
mento angolare H di un corpo rotante manifesta una tendenza
a rimanere sso sotto l'azione di un impulso di coppia T dt in
misura proporzionale a H . La stabilità del moto si realizza se
l'asse di spin è l'asse di massima inerzia del veicolo.
Accuratezza Da ±0.1° a ±1°
Vantaggi Passivo e piuttosto accurato.
Fornisce un movimento di scansione per i sensori.
Media i ussi termici.
Svantaggi Vincoli sulla geometria delle masse del sistema.
Consente di ottenere puntamenti intermittenti.
Richiede combustibile per manovre di ripuntamento.
Peso
Volume

Dual Spin
Descrizione Pensato per ovviare al problema del puntamento intermit-
tente. Si usa un rotore ad elevata velocità e una piattaforma
coassiale rotante a bassa velocità (una rotazione per orbita).
La piattaforma è utilizzata per il montaggio degli strumenti
che devono mantenere il puntamento.
Accuratezza Da ±0.1° a ±1°
Vantaggi Puntamento continuo.
Svantaggi Complessità e adabilità dello snodo meccanico e del sistema
di connessione elettrica tra il rotore e la piattaforma.
Peso
Volume

Marco Molteni 12
Controllo di assetto nello spazio

3.2 Metodi attivi


I satelliti che oggi utilizzano le tecniche di controllo attive sono persino più comuni di
quelli che utilizzano i controlli passivi. Facendo riferimento sui sensori e gli attuatori
montati a bordo, le loro manovre risultano stabili ed accurate, ma allo stesso tempo
risultano più complessi e costosi. Il controllo di torsione attorno ai tre assi richiede
una combinazione di diversi dispositivi: ruote (di reazione e di momento), control
moment gyro, propulsori o dispositivi di torsione magnetica. In generale, i primi due
sistemi possono assumere due forme: una è chiamata 00 zero momentum00 e utilizza
una ruota di reazione su ogni asse, l'altra utilizza il 00 momentum bias00 e consiste
nell'inserimento di un'unica ruota di momento lungo l'asse di beccheggio (pitch ved.
g (1). Entrambe le opzioni, in genere, necessitano di propulsori o di dispositivi di
torsione magnetica.

Figura 1: Roll, Pitch e Yaw

Marco Molteni 13
Controllo di assetto nello spazio

3.2.1 Zero Momentum

Zero Momentum
Descrizione Il veicolo non ha nominalmente alcun residuo di momen-
to angolare. Vengono utilizzati degli attuatori (propulsori,
Ruote di reazione e Control moment Gyro) per compensare
continuamente i disturbi o per eseguire manovre.
Accuratezza Da ±0.1° a ±1°
Quest'intervallo dipende dalla tipologia di sensori e attuatori
scelta.

Figura 2: Ruote di reazione

Marco Molteni 14
Controllo di assetto nello spazio

3.2.2 Momentum bias

Momentum Bias
Descrizione Il rotore (ruote di momento) gira in modo pressocchè costante
e a velocità elevate al ne di fornire una certa rigidità giro-
scopica al satellite smorzando i piccoli disturbi lungo gli assi
di rollio (roll) e imbardata(yaw). I veicoli con ruote di mo-
mento vengono usati per rendere stabile un asse del satellite
(tipicamente in sistemi Nadir-pointing).
Accuratezza Da ±0.1° a ±1°
Quest'intervallo dipende dalla tipologia di sensori e attuatori
scelta.

Figura 3: Ruote di Momento

Marco Molteni 15
Controllo di assetto nello spazio

3.3 Classicazione Attuatori


Gli attuatori si distinguono in:

ˆ Esterni: Possono modicare il momento angolare del intero sistema. Tra gli
attuatori esterni si utilizzano i propulsori, gli attuatori magnetici, le vele solari
e le appendici aerodinamiche.

ˆ Interni: Non possono modicare il momento angolare dell'intero sistema. Tra


gli attuatori interni si utilizzano ruote di momento (MW), ruote di reazione
(RW) e Control Moment Gyros (CMG).

3.3.1 Propulsori

Propulsori
Descrizione Si tratta di propulsori a reazione, con asse non passante per
il centro di massa. In questo modo utilizzando dei clusters
è possibile realizzare coppie di controllo attorno a tre assi
arbitrari.
Accuratezza Da ±0.1° a ±5°
Vantaggi Non risentono della quota.
Possono produrre coppia in ogni direzione.
Svantaggi Richiedono combustibile a bordo.
Spinta non controllabile.
Controllo pulsante (impulsi della durata di alcuni ms).
Il materiale eiettato può contaminare il veicolo.
Peso

Marco Molteni 16
Controllo di assetto nello spazio

3.3.2 Magnetic Torquer

Magnetic Torquer
Descrizione Sono delle bobine alimentate in modo da modicare il momen-
to di dipolo residuo m, in questo modo, si possono ottenere
coppie di controllo T = m×B . Dove m = n·I·A·c, essendo n
il numero di spire, A la sezione delle spire, I la corrente e c il
versore dell'asse della bobina.
Accuratezza
Vantaggi Non richiedono combustibile.
Facilmente e continuamente controllabili.
Svantaggi Variabilità del campo magnetico (algoritmi di controllo non
lineare e necessità dei magnetometri a bordo).
Consumano energia elettrica
Coppie interessanti solo su orbite basse (no a 10 · 10−6 N m)
Non danno coppia nella direzione del campo magnetico.
Possono interferire con la strumentazione di bordo.
Peso Da 0.1 a 1 kg

Figura 4: Magnetorquer

Marco Molteni 17
Controllo di assetto nello spazio

3.3.3 Vele Solari

Vele Solari
Descrizione Sono delle appendici di geometri opportuna progettate per
sfruttare la pressione della radazione solare, in modo da
realizzare una coppia rispetto al centro di massa del veicolo.
Accuratezza
Vantaggi Non richiedono combustibile.
Svantaggi Pur con superci grosse realizzano coppie di modesta entità.
Necessitano meccanismi per il controllo delle vele.
Peso

3.3.4 Appendici Aerodinamiche

Appendici Aerodinamiche
Descrizione Sfruttano le interazioni aerodinamiche su superci, even-
tualmente orientabili, opportunamente disposte rispetta alla
direzione del moto.
Accuratezza
Vantaggi Possono fornire coppie anche molto intense a quote basse.
Svantaggi Ecaci solo al di sotto di 500 km.
Richiedono meccanismi per il controllo dei proli aerodinam-
ici.
Peso

Marco Molteni 18
Controllo di assetto nello spazio

3.3.5 Ruote di Reazione

Ruote di Reazione
Descrizione Sono messe in rotazione solo quando è necessario variare l'ori-
entamento del satellite: mettendone in rotazione una si ot-
tiene una conseguente rotazione del satellite nella direzione
opposta, quando poi il satellite ha raggiunto la posizione vo-
luta si ferma la ruota di reazione e conseguentemente anche
il satellite si ferma (questo se non ci sono disturbi esterni da
compensare).
Accuratezza ±0.001°
Vantaggi Consentono un controllo molto accurato.
Svantaggi L'immagazzinamento del momento angolare è limitato alla
capacità della ruota, è necessario prevedere delle procedure
di desaturazione (una volta che viene raggiunta la velocità
massima, non può immagazzinare altro momento angolare,
ci vuole quindi qualcosa che fornisce momento esterno, es.
Magnetorquer).
Una ruota per ogni asse.
Peso Da 0.2 a 5 kg

3.3.6 Ruote di momento

Ruote di Momento
Descrizione Sono mantenute in rotazione durante tutta la missione, for-
nendo dunque una stabilizzazione inerziale, e se sono pilotate
con controllo di coppia possono anche fungere da dispositivi
di puntamento.
Accuratezza
Vantaggi
Svantaggi
Peso Da 0.2 a 5 kg

Marco Molteni 19
Controllo di assetto nello spazio

3.3.7 Control Moment Gyros

Control Moment Gyros


Descrizione Rappresentano un estensione delle ruote di reazione. Con-
sistono in un rotore montato su sospensioni cardaniche at-
tuate da motori elettrici. In questo modo è possibile applicare
coppia attorno a una qualsiasi direzione.
Accuratezza
Vantaggi Possono fornire livelli elevati di coppia.
Svantaggi Dispositivi complessi che impegnano consistenti risorse di
sistema.
Peso Da 10 a 100 kg

Marco Molteni 20
Controllo di assetto nello spazio

3.4 Classicazione Sensori


3.4.1 Sensori di Sole

Sensori di Sole
Principio Fisico Sono sensori di riferimento, per l'individuazione della
direzione del sole.
Accuratezza Da ±0.01° a ±1°
Vantaggi
Svantaggi
Peso Da 0.1 a 1 kg
Potenza Da 0 a 0.2 W

3.4.2 Sensori di Orizzonte

Sensori di Orizzonte
Principio Fisico Sono sensori di riferimento, che forniscono informazioni
sull'assetto del satellite rispetto ai corpi celesti.
Accuratezza Da ±0.1° a ±1°
Vantaggi
Svantaggi
Peso Da 2 a 5 kg
Potenza Da 2 a 10 W

3.4.3 Sensori di Stelle

Sensori di Stelle
Principio Fisico Sono sensori di riferimento, che identicano nel sistema di
riferimento dello strumento, i vettori che puntano stelle note.
Accuratezza Da ±0.001° a ±0.1°
Vantaggi
Svantaggi
Peso Da 5 a 50 kg
Potenza Da 2 a 20 W

Marco Molteni 21
Controllo di assetto nello spazio

3.4.4 Magnetometri

Magnetometri
Principio Fisico Determinano l'orientazione del campo magnetico locale
rispetto ad un sistema di riferimento solidale al veicolo.
Accuratezza Da ±0.5° a ±3°
Vantaggi
Svantaggi
Peso Da 0.1 a 1.5 kg
Potenza Da 0.1 a 1 W

Marco Molteni 22
Controllo di assetto nello spazio

4 Scelta della soluzione


Dai dati raccolti precedentemente, si è deciso di analizzare e simulare due tipi di
controllo d'assetto, uno passivo e uno attivo.

4.1 Controllo passivo a Magnete Permanente


Avendo come requisito l'orientamento lungo le linee di campo magnetico, l'uni-
co metodo passivo che permette abbastanza semplicemente di raggiungere questo
obbiettivo è il controllo a Magnete Permanente (MP).
Un MP posizionato su un asse del satellite, tenderà a orientare quest'asse lungo le
linee di campo magnetico secondo la legge:

τm (t) = m × B (t) (1)

dove m è il momento magnetico del MP, B(t) è il campo magnetico e τm è la coppia


magnetica agente sul satellite.
Non essendo presente sul satellite un sistema di smorzamento dell'energia, l'inter-
azione tra il MP e il campo magnetico porterebbe ad una oscillazione 00 innita00 .
Per ovviare a questo problema si usano delle placche isteretiche che posizionate in
opportune posizioni, minimizzano le oscillazioni del MP. Quando il satellite oscilla,
le placche isteretiche (seguendo la curva d'isteresi) cambiano polarità rispetto al
campo magnetico producendo una dissipazione dell'energia.
Nella scelta del materiale e nel posizionamento all'interno del satellite bisogna fare
attenzione ad alcuni aspetti. La prima cosa da garantire è che il campo magnetico
terrestre non saturi il materiale isteretico e la seconda è che le placche vanno po-
sizionate il più lontano possibile e in maniera perpendicolare rispetto al magnete, in
modo che quest'ultimo non le inuenzi.

Marco Molteni 23
Controllo di assetto nello spazio

4.2 Controllo attivo (MagnetoTorquer e Magnetometri)


Per quanto riguarda il controllo attivo è stato scelto di usare come attuatori 3
magneto torquer, uno per ogni asse, e come sensori un magnetometro che fornisce
le componenti (x,y ,z ) dell campo magnetico visto dal satellite.
Il controllo cercherà di annullare il valore delle componenti x e z , allineando l'asse
y del satellite lungo le linee del campo.
Le motivazioni che hanno portato a scegliere questi sensori/attuatori sono:

ˆ MagnetoTorquer
Si è scelto un MagnetoTorquer perchè è l'attuatore meno pesante tra tutti
quelli classicati, ore buone coppie di controllo per le orbite (LEO) a cui si
trova il nostro satellite e le regole di controllo sono relativamente semplici.
É stato preferito alla ruota di reazione soprattutto per il minor ingombro in
termini di volume, tenendo conto che ci sarebbe bisogno di tre ruote, una per
ogni asse.

ˆ Magnetometro
Dovendo controllare l'assetto rispetto al campo magnetico, l'unico sensore in
grado di fornire le indicazioni del campo è il Magnetometro.

Marco Molteni 24
Controllo di assetto nello spazio

5 Design
5.1 [1] Magnete Permanente
Il magnete permanente deve essere scelto garantendo alcuni fattori. Esso deve essere
il più piccolo e leggero possibile ma allo stesso tempo fornire un'alta induzione
residua. I magneti più 00 forti00 al mondo sono quelli al neodimio e per la nostra
applicazione è stato scelto il neodimio 30 SH, le cui caratteristiche sono:

Caratteristiche Valore
Induzione Residua (Br ) ( 1.04 − 1.15 ) T
Coercitività normale (Br ) ( 10100 − 10600 ) Oe
Temperatura di Curie (Tc ) 140 ◦ C
Densità (ρ) 7.4 g/cm3
Dimensione [ 8 , 0.7 , 0.7 ] cm

Da questi dati si possono ricavare il momento magnetico (m) e il peso (P ) del


magnete:

Br · V
m= = 3.4 A · m2 (2)
µ0
e
P = V · ρ = 29 g (3)

5.2 Placca Isteretica


Il compito della placca isteretica è quello di dissipare l'energia, quindi dovra essere
scelta in modo che abbia una piccola coercività e un alta permeabilità relativa. Il
materiale scelto è l' HyMu80 le cui caratteristiche sono:

Caratteristiche Valore
Induzione Residua (Br ) 0.35 T
Coercitività normale (Hc ) 10000 Oe
Induzione di Saturazione (Bs ) 0.73 T
Densità (ρ) 8.74 g/cm3
Volume 1.004 cm3

Marco Molteni 25
Controllo di assetto nello spazio

5.3 [4] MagnetoTorquer


I tre magnetotorquer saranno esattamente gli stessi. I vincoli dei magnetorquer sono
presentati in questa tabella:

Parametro Simbolo Valore Unità


Larghezza massima ω 80.5 [mm]
Altezza massima h 97.5 [mm]
Larghezza massima della sezione ωc 2 [mm]
Altezza massima della sezione hc 5 [mm]
Area media delle spire A 7546 [mm2 ]
Area media della sezione Ac 10 [mm2 ]
Circonferenza C 356 [mm]
Massa totale incl. isolazione Mtotal 60 [g]
Massa di una spire incl. isolazione Mc 16.66 [g]

Dati per rame e alluminio:

Parametro Simbolo Valore (cu) Valore (al) Unità


Densità ρx 8.93e 3
2.7e 3
[kg/m3 ]
Resistività σx 1.55e−8 2.5e−8 [Ωm]
Coecente di temperatura αx 3.9e−3 3.9e−3 [K −1 ]

La progettazione del magnetorquer è basata su quattro equazioni; una per la massa,


una per la potenza, una per la resistenza e una per il momento magnetico producibile.
La massa di un magnetorquer è determinabile da:

Mc = n · C · aw · ρ (4)

dove n è il numero di spire.


La potenza dissipata da un magnetorquer è determinabile da:

P = Ucoil · I = I 2 · R (5)

La resistenza di un magnetorquer è determinabile da:

n · C · σ (T )
R= , σ (T ) = σ0 (1 + αx · T ) (6)
aw
Il momento magnetico producibile da un magnetorquer:

m=n·I ·A (7)

Dalle equazioni (4 - 7) può essere trovata la relazione che lega la massa, la potenza
e il momento magnetico:
µ ¶
m·C 2 ρ·σ
Mc = (8)
A P

Marco Molteni 26
Controllo di assetto nello spazio

L'obbiettivo è di ottimizzare l'ecienza del magnetorquer, in base alla massa e alla


potenza, è quindi possibile riscrivere l'equazione come:
s
A Mc · P
m= · (9)
C σ·ρ

Per massimizzare il momento magnetico producibile il prodotto σ · ρ deve essere


minimizzato. Dalla tabella precedente il materiale migliore risulta essere l'alluminio.
La minimizzazione dell'area della sezione dipende dalla resistività del lo, dalla
potenza e dal numero di spire.
La resistenza si trova dall'equazione 6 e per minimizzare la tensione risulta:
2
Ucoil,min
Rmax = (10)
P
Eguagliando le equazioni (6 e 10) si ottiene:
2
Ucoil,min n · C · ρmax
= (11)
P αw,min

e sostituendo l'equazione (4) nell'equazione (11), la minima area della sezione è:


s
1 Mc · P · σmax
αw,min = · (12)
Ucoil,min ρ

L'area minima della sezione deve essere comparata con quella disponibile dai dati. Il
diametro minimo di un lo di rame è 0.02 mm e per l'alluminio 1.1 mm. Basandoci
su queste informazioni l'unica scelta disponibile è il lo di rame.
Dalla scelta del lo e del diametro dello stesso, il numero di spire può essere trovato
da:
M
n= (13)
C · αw,min · ρ
Il risultato di questi calcoli è il seguente:

Parametri per un magnetorquer Simbolo Value Unità


Diametro del lo senza isolazione dw 0.13 [mm]
Numero di spire n 415
Massa M 18 [g]
Area delle spire con isolazione Aw 9.1 [mm2 ]

Marco Molteni 27
Controllo di assetto nello spazio

5.4 Progettazione del controllore


Il controllo di assetto deve annullare l'angolo tra il campo magnetico terrestre e
l'asse da controllare. La coppia applicata al satellite ha tre componenti spaziali,
una per ogni asse.
É stato quindi pensato di progettare un controllore che fornisce solo il valore della
coppia, ma non la direzione. Quest'ultima è calcolata tramite questa equazione:

~y × B~
~τnorm = (14)
|y| · |B|

Il controllore progettato è un regolatore PID, il cui design è il seguente:


Processo da controllare:
100
P (s) = 2 (15)
s
Controllore PID:
1 s
C (s) = Kp + KI · + Kd · (16)
s s+a
Da cui risulta in anello chiuso:
C·P
GCL = 1+C·P =
100·(KP +KD )·s2 +100·(KP ·a+KI )·s+(100·a·KI ) (17)
= s4 +a·s3 +100·(KP +KD )·s2 +100·(KP ·a+KI )·s+(100·a·KI )

Scegliendo di posizionare i poli in:

pole = [−0.020; −0.022; −0.018; −0.016] (18)

Inne risultano i seguenti valori:

KP = 3.34 · 10−6
KI = 16.7 · 10−9
(19)
KD = 18.2 · 10−6
a = 76 · 10−3

Marco Molteni 28
Controllo di assetto nello spazio

6 Risultati
Per capire a fondo come si comporta il controllo passivo, si siono eettuato tre
simulazioni, con diverse situazioni iniziali, in modo da coprire la maggior parte delle
condizioni una volta che il satellite è stato lanciato.

6.1 Simulazione metodo passivo


6.1.1 Prima simulazione
Nella prima simulazione il satellite ha una posizione perpendicolare al campo mag-
netico con le tre velocità angolari nulle.

Il risultato è il seguente:

Figura 5: Passivo 1: Campo magnetico misurato dal magnetometro

Come si può notare, il campo magnetico, dopo una prima parte di forte oscillazione,
si stabilizza mantenendo comunque un leggera oscillazione lungo le componenti x e
z , questo è dovuto al fatto che le due placche istetiche riescono a dissipare le grandi
oscillazioni ma non quelle piccole.

Marco Molteni 29
Controllo di assetto nello spazio

Figura 6: Passivo 1: Sfasamento fra campo magnetico e asse y

Una volta stabilizzato il satellite oscilla attorno all'asse y di circa (12 ± 8) gradi.

Marco Molteni 30
Controllo di assetto nello spazio

6.1.2 Seconda simulazione


Nella seconda simulazione il satellite ha una posizione quasi parallela al campo mag-
netico con le tre velocità angolari nulle.

Il risultato è il seguente:

Figura 7: Passivo 2: Campo magnetico misurato dal magnetometro

Come si può notare, il campo magnetico, non ha più una prima parte di forte
oscillazione essendo il satellite quasi in posizione, ma mantiene comunque una leggera
oscillazione lungo le componenti x e z .

Marco Molteni 31
Controllo di assetto nello spazio

Figura 8: Passivo 2: Sfasamento fra campo magnetico e asse y

Il satellite oscilla intorno all'asse y con un angolo che rimane tra 14 e i 10 gradi.

Marco Molteni 32
Controllo di assetto nello spazio

6.1.3 Terza simulazione


Nella terza simulazione il satellite ha una posizione perpendicolare al campo mag-
netico con le tre velocità angolari non nulle.

Il risultato è il seguente:

Figura 9: Passivo 3: Campo magnetico misurato dal magnetometro

Come si può notare, la simulazione è molto simile al primo caso, infatti il magnete
permanente annulla subito le rotazioni dovute al lancio e dopo di che, grazie alle
placche isteretiche, porta il satellite in posizione con le stesse oscillazioni del primo
caso.

Marco Molteni 33
Controllo di assetto nello spazio

Figura 10: Passivo 3: Sfasamento fra campo magnetico e asse y

Una volta stabilizzato il satellite oscilla attorno all'asse y di circa (12 ± 8) gradi.

Marco Molteni 34
Controllo di assetto nello spazio

6.2 Simulazione metodo attivo


6.2.1 Prima simulazione
Nella prima simulazione il satellite ha una posizione perpendicolare al campo mag-
netico con le tre velocità angolari nulle.

Il risultato è il seguente:

Figura 11: Attivo 1: Campo magnetico misurato dal magnetometro

Come si può notare, il campo magnetico, si stabilizza mantenendo comunque un


leggera oscillazione lungo le componenti x e z , il motivo di questa oscillazione è
dovuta ad un errore nella progettazione del controllore, che per la mancanza di
tempo non è stato potuto correggere.

Marco Molteni 35
Controllo di assetto nello spazio

Figura 12: Attivo 1: Sfasamento fra campo magnetico e asse y

Una volta stabilizzato il satellite oscilla attorno all'asse y di circa (± 8) gradi. Il


tempo di stabilizzazione è di 800 secondi circa.

Marco Molteni 36
Controllo di assetto nello spazio

6.2.2 Seconda simulazione


Nella seconda simulazione il satellite ha una posizione quasi parallela al campo mag-
netico con le tre velocità angolari nulle.

Il risultato è il seguente:

Figura 13: Attivo 2: Campo magnetico misurato dal magnetometro

Come si può notare, il campo magnetico, oscilla sempre lungo le componenti x e z .

Marco Molteni 37
Controllo di assetto nello spazio

Figura 14: Attivo 2: Sfasamento fra campo magnetico e asse y

Il satellite oscilla intorno all'asse y con un angolo che rimane tra i ± 7 e gli ± 8.

Marco Molteni 38
Controllo di assetto nello spazio

6.2.3 Terza simulazione


Nella terza simulazione il satellite ha una posizione opposta al campo magnetico con
le tre velocità angolari nulle.

Il risultato è il seguente:

Figura 15: Attivo 3: Campo magnetico misurato dal magnetometro

Come si può notare, la simulazione è molto simile al primo caso, infatti il satel-
lite si stabilizza attorno all'asse y , mantenendo sempre la solita oscillazione dovuta
all'errore di controllo.

Marco Molteni 39
Controllo di assetto nello spazio

Figura 16: Attivo 3: Sfasamento fra campo magnetico e asse y

Una volta stabilizzato il satellite oscilla attorno all'asse y di circa (± 8) gradi. Il


tempo di stabilizzazione è di 800 secondi circa.

Marco Molteni 40
Controllo di assetto nello spazio

7 Conclusioni
Gli obbiettivi di questo lavoro sono stati parzialmente raggiunti, il modello di
simulazione è completamente funzionante.
Nel controllore attivo, vi è un errore che provoca un oscillazione che non permette
di annullare l'errore. Il controllo è comunque funzionante.
La maggior parte del tempo è stata impiegata per trovare tutti i modelli che servono
per eettuare la simulazione, di conseguenza è rimasto poco tempo per implementare
il controllore.

7.1 Lavori Futuri


Come sviluppi futuri ci sono:

ˆ Spire in corso per la dissipazione passiva.

ˆ Migliorare e ottimizzare il controllore PID.

ˆ Implementare un ltro di Kalman.

ˆ Metodo 00 Ibrido00 (passivo e attivo) per controllare il satellite.

ˆ Testare il controllore su un banco di prova.

ˆ Tarare e testare il magnetometro.

Marco Molteni 41
Controllo di assetto nello spazio

A Notazioni e Denizioni
A.1 [3] Sistemi di riferimento
Per il controllo d'assetto del satellite vengono utilizzati vari sistemi di riferimento
spiegati qui di seguito.

A.1.1 Earth-Centered Inertial (ECI) frame


L'ECI frame è un sistema di riferimento inerziale usato per i dati di navigazione.
Questo frame è sso nello spazio e ha origine nel centro della terra con l'asse z
puntato verso il Polo Nord. L'asse x punta verso il vernal equinox (equinozio di
Primavera) e l'asse y completa il sistema di coordinate usando il metodo della mano
destra. Questo frame è indicato con la lettera I

A.1.2 Earth-Centered Earth Fixed (ECEF) frame


Anche l'ECEF frame ha origine nel centro della terra ma gli assi x e y sono ruotati
rispetto all'ECI frame. L'asse x punta verso l'intersezione del meridiano di Green-
wich con l'equatore, l'asse y completa il sistema di coordinate usando il metodo della
mano destra. Questo sistema di riferimento è stato introdotto perchè il modello del
campo magnetico fornisce i dati rispetto a questo frame. Questo frame è indicato
con la lettera E

A.1.3 Earth-Centered Orbit frame


Gli elementi orbitali sono espressi rispetto a questo frame. L'origine del sistema di
riferimento coincide con il centro della terra. L'asse x punta verso il perielio, l'asse y
verso il semiasse minore e l'asse z è perpendicolare al piano orbitale. Questo frame
è indicato con la lettera OC

A.1.4 Orbit frame


L'origine di questo frame coincide con il centro di massa del satellite, esso è ruotato
rispetto all'ECI frame con un fattore che dipende dall'altezza dell'orbita. L'asse y
punta nella direzione tangente all'orbita, l'asse z punta verso il centro della terra
e l'asse x completa il sistema di coordinate usando il metodo della mano destra.
Questo frame è indicato con la lettera O

A.1.5 Body frame


Anche questo frame ha origine nel centro di massa del satellite. L'asse z punta verso
il nadir, mentre gli altri due assi coincidono con l'orbit frame se gli angoli di Euler
sono uguali a 0°. Questo sistema di riferimento è usato per il controllo. Questo
frame è indicato con la lettera B

Marco Molteni 42
Controllo di assetto nello spazio

A.2 [3] Matrice di rotazione


La matrice di rotazione è la relazione che c'è tra due sistemi di riferimento. Essa è
usata per trasformare un vettore da un sistema di riferimanto ad un altro.
La denizione è: Rba , cioè una rotazione dal sistema di riferimento b al sistema di
riferimento a. Quindi Rba Rab = I dove I è la matrice identità.
In questo lavoro è stata usata anche un'altra matrice denita come:
 
0 −ω3 ω2
S (ω) = 
 ω3 0 −ω1 
 (20)
−ω2 ω1 0

Questa equazione può essere utilizzata per il calcolo dei prodotti vettoriali.

m × B = S (m) B (21)

A.3 Quaternioni
In matematica, i quaternioni sono entità introdotte da William Rowan Hamilton nel
1843 come estensioni dei numeri complessi.
I quaternioni sono un corpo non commutativo: hanno quindi tutte le proprietà
usuali dei campi, quali i numeri reali o complessi, tranne la proprietà commutativa
del prodotto.
Essi contengono i numeri complessi, e sono anche uno spazio vettoriale sui numeri
reali a 4 dimensioni (analogamente ai complessi, che sono uno spazio sui reali a
2 dimensioni). Le due proprietà di corpo e di spazio vettoriale danno quindi al
corpo una struttura di algebra di divisione non commutativa. I quaternioni hanno
importanti applicazioni nello studio del gruppo delle rotazioni dello spazio tridi-
mensionale, nella sica (nella teoria della relatività e nella meccanica quantistica).
Impieghi 00 sorprendenti00 si hanno nel campo della robotica, dove vengono impiegati
per individuare la posizione spaziale dei bracci meccanici a più snodi, e il controllo
d'assetto, in quanto il calcolo tramite quaternioni è più stabile.
Un quaternione è un elemento scrivibile come:
η + e1 i + e2 j + e3 k
con η , e1 , e2 e e3 numeri reali ed i, j , k simboli letterali. Somma e prodotto di due
quaternioni sono deniti tenendo conto delle relazioni:
i2 = j 2 = k 2 = ijk = −1.

Marco Molteni 43
Controllo di assetto nello spazio

A.4 Rappresentazione d'assetto


La rappresentazione d'assetto non è semplice come la rappresentazione della po-
sizione; esso ha tre gradi di libertà rotazionali, quindi può essere rappresentato
grazie a tre parametri.
Comunque, la rappresentazione su tre parametri è singolare per certe posizioni d'as-
setto. Per evitare singolarità sono richiesti più parametri, ma questo è ridondante
nella rappresentazione e saranno necessari alcuni vincoli.

A.4.1 Angoli di Euler


Gli angoli di Euler [ψ θ φ] sono le rotazioni intorno agli assi x, y , z chiamate roll,
pitch and yaw. Gli angoli di Euler sono la base per la matrice di rotazione. Questa
rotazione può essere scomposta in tre rotazioni intorno ai tre assi sopra citati.

Rx,y,z = Rx (ψ) Ry (θ) Rz (φ) (22)

dove  
1 0 0
 
Rx (ψ) =  0 cos ψ sin ψ  (23)
0 − sin ψ cos ψ
 
cos θ 0 − sin θ
 
Ry (θ) =  0 1 0  (24)
sin θ 0 cos θ
 
cos φ sin φ 0
Rz (φ) =  
 − sin φ cos φ 0  (25)
0 0 1

A.4.2 Parametri di Euler


I parametri di Euler sono una parametrizzazione dell'assetto, riferita ai quaternioni.
Essi hanno quattro parametri, non singolari, e i vincoli sono facili da stabilire.
Una rotazione di un angolo θ attorno a un asse λ è ottenibile con i quaternioni come:
" # " #
η cos 2θ
q= = (26)
ε λ · sin 2θ

dove i vincoli richiesti sono i seguenti:

kqk = 1 (27)

εT ε + η 2 = 1 (28)
ε21 + ε22 + ε23 + η 2 = 1 (29)

Marco Molteni 44
Controllo di assetto nello spazio

Il principale vantaggio dei quaternioni è che la rotazione è" espressa


# da un prodotto
η1
di quaternioni. La rotazione da u a v è descritto da q1 =
ε1
" # " #
0 0
= q1 ⊗ ⊗ q̄1 (30)
u v
" #
η1
dove q̄1 = e il prodotto tra quaternioni è denito da:
−ε1
" # " # " #
η1 η2 η1 ε2 + η2 ε1 + S (ε1 ) ε2
q1 ⊗ q2 = ⊗ = (31)
ε1 ε2 η1 η2 − εT1 ε2

Marco Molteni 45
Controllo di assetto nello spazio

B Modello Matematico
B.1 [3] Dati Orbitali
Per denire univocamente l'orbita di un Satellite sono richiesti sei numeri detti
00
elementi orbitali00 del satellite oppure 00 elementi Kepleriani00 , dal nome di Johann
Kepler (1571 - 1630). Questi numeri deniscono un'ellisse, la orientano rispetto alla
Terra e collocano in un certo istante il satellite su di essa. Nel modello Kepleriano
i satelliti orbitano su di una ellisse di forma ed orientamento costanti.
Gli elementi orbitali fondamentali sono:

ˆ Inclinazione orbitale (i)


Distanza angolare del piano orbitale dal piano di riferimento (piano equatori-
ale) espressa in gradi.

ˆ Longitudine del nodo ascendente (Ω)


Angolo misurato sul piano equatoriale compreso tra la direzione del vernal
equinox e il nodo ascendente dell'orbita di un satellite

ˆ Argomento di perielio (ω )
Angolo, misurato sul piano orbitale, compreso tra il nodo ascendente ed il
vettore rivolto nella direzione del periasse

ˆ Eccentricità (e)
L'eccentricità può essere considerata come la misura di quanto la forma del-
l'orbita devia da un cerchio. Se l'orbita è circolare e vale 0.

ˆ Periodo orbitale (n)


Eìl tempo che impiega un corpo orbitante per compiere un'orbita completa,
espresso in minuti. Detto anche periodo di rivoluzione.

ˆ Anomalia media (M ) Frazione di periodo orbitale trascorsa dall'ultimo pas-


saggio al perielio, espressa come angolo

Figura 17: Elementi orbitali

Marco Molteni 46
Controllo di assetto nello spazio

È importante notare la dierenza tra anomalia media, anomalia eccentrica e anoma-


lia vera. L'anomalia eccentrica è un valore angolare ausiliario, usato per correlare
l'anomalia vera (che è quella osservata) con quella media (che è quella calcolata).
La relazione tra anomalia vera (υ ) e anomalia eccentrica (E ) è:
cos E−e
cos υ = √1−e cos E
1−e2 sin E (32)
sin υ = 1−e cos E

E la relazione tra anomalia media (M ) e anomalia eccentrica (E ) è:

M = E − e sin E (t) (33)

Marco Molteni 47
Controllo di assetto nello spazio

B.1.1 Stima dell'orbita


Assumendo che la legge di Keplero

E (t) = M (t) + e · sin E (t) (34)

non è accurata questa può essere migliorata tenendo conto di alcuni irregolarità
conosciute. La più grande fonte di errore è il fatto che la Terra non è perfettamente
circolare. Questa deformazione è parametrizzata usando dei coecenti Ji , dove i è
l'ordine di deformazione. Le forze gravitazionali dal Sole e dalla Luna, le maree e
le radiazioni elettromagnetiche posso disturbare e inuenzare l'orbita del satellite.
Queste perturbazioni sono divise in perturbazioni secolari,a periodi corti e a periodi
lunghi. Le perturbazioni a periodi corti sono periodiche e con un periodo minore del
periodo del orbita, mentre le perturbazioni a periodi lunghi hanno un periodo più
lungo rispetto al periodo del orbita. In gura (18) sono mostrate le perturbazioni
che inuenzano gli elementi orbitali. Per la stima dell'orbita si tiene conto delle sole
perturnazioni secolari.

Figura 18: Perturbazioni a periodi lunghi e a periodi corti

Marco Molteni 48
Controllo di assetto nello spazio

Perturbazioni secolari

ˆ Perturbazioni dovute alla non sfericità della Terra


La terra non è una sfera, infatti ha un rigonamento all'equatore ed è appiattita
ai poli. Questo provoca una perturbazione di tutti gli elementi orbitali. Per la
stima dell'orbita si tiene conto della deformazione di secondo ordine, la quale
considera che la Terra è solo appiattita ai poli.
Dalle equazioni planetarie di Lagrange, il fattore di appiattimento J2 , modica
le derivate della longitudine del nodo ascendente e l'argomento del perielio
secondo le seguenti formule:
3 cos i
Ω̇J2 = − na2e 2 · J2 (35)
2 a (1 − e2 )2

3 5 cos2 i − 1
ω̇J2 = na2e 2 · J2 (36)
4 a (1 − e2 )2
dove ae è il raggio medio della Terra, e il valore numerico di J2 per la Terra è
1.08284·10− 3.

ˆ Perturbazioni dovute al Sole e alla Luna


Il Sole e la Luna causano una variazione periodica a tutti gli elementi orbitali,
ma solo per la longitudine del nodo ascendente e per l'agomento del perielio
questa variazione è secolare. Per orbite quasi circolari, come nel nostro ca-
so, esiste un approssimazione fornita da Wertz e Larson (1999) per le prime
derivate dei due elementi.
cos i
Ω̇luna = −0.00338 (37)
n
cos i
Ω̇sole = −0.00154 (38)
n
e
5 cos2 i − 1
ω̇luna = 0.00169 (39)
n
2
5 cos i − 1
ω̇sole = 0.00077 (40)
n
dove n è il numero di orbite al giorno, Ω̇ e ω̇ sono espresse in gradi/giorno.

Partendo dagli elementi orbitali in un singolo punto, la stima della posizione futura
diventa relativamente semplice. L'anomalia media cambia in maniera proporzionale
al tempo, quindi la sua previsione futura è:

M (t0 + t) = M (t0 ) + n · t (41)

Per trasformare i dati nel ECEF frame, visto che è il formato su cui si basa il
modello IGRF, bisogna risolvere l'equazione di Keplero (34) con la relativa anomalia

Marco Molteni 49
Controllo di assetto nello spazio

eccentrica e anomalia media. L'equazione ha un' unica soluzione, ma essendo un'


equazione trascendente non puo essere invertita e quindi risolta. La soluzione più
semplice è risolverla con un metodo iterativo. Nel nostro caso la soluzione è stata
trovata usando il metodo di Newton.
M + e sin Ei − Ei
Ei+1 = Ei + (42)
1 − e cos Ei
Partendo dall'anomalia eccentrica, il vettore dal centro della Terra al satellite nel
Earth-Centered Orbit frame è:
 
cos E − e
 √ 
rOC = a  1 − e2 sin E  (43)
0

Tenendo conto delle perturbazioni secolari, la posizione del satellite (ECEF) in ogni
tempo partendo dagli elementi kepleriani è:
³ ³ ³ ´ ´ ´
rE = Rz − Ω0 + Ω̇J2 + Ω̇luna + Ω̇sole · t + θ0 + ωe · Rz (−i) ·
 
√ cos E − e (44)
 
·Rz (− (ω0 + (ω̇J2 + ω̇luna + ω̇sole ) · t)) · a ·  1 − e2 sin E 
0

La funzione Matlab che contiene queste trasformazioni è nell appendice (B).

Marco Molteni 50
Controllo di assetto nello spazio

B.2 [2] Trasformazioni tra i dierenti sistemi di riferimento


Per passare da un sistema di riferimento ad un altro, occorre eettuare varie rotazioni
riportate qui di seguito.

B.2.1 ECEF to ECI


La rotazione fra questi frame è determinata dal angolo α = we t, dove we è la velocità
di rotazione terrestre e t è il tempo passato da quando i due frame erano allineati.
La rotazione è espressa da:
 
cos α sin α 0
I  
RE =  − sin α cos α 0  (45)
0 0 1

B.2.2 Da Earth-Centered Orbit to ECI e ECEF


Questa rotazione è stata usata per trovare tutti i dati orbitali che servono al modello
del campo magnetico. La rotazione è espressa da:
I
ROC = Rz (−Ω) Rx (−i) Rz (−ω) (46)
E
ROC = Rz (−Ω + α) Rx (−i) Rz (−ω) (47)
Dove i, Ω, ω sono gli elementi orbitali inclinazione, longitudine del nodo ascendente
e argomento del perielio.

B.2.3 ECI to Orbit frame


Questa rotazione dipenda dalla velocità del satellite w0 . L'Orbit frame è ruotato di
un angolo β rispetto all'asse y , e può essere espresso come β = β0 + w0 t, dove β0 è
la latitudine e t è il tempo trascorso dall'ultima volta che il satellite è passato per il
punto con latitudine 0°.
 
cos β 0 sin β

RI,y = 0 1 0   (48)
− sin β 0 cos β
In più l'Orbit frame è inverso rispetto all'ECI frame, per questo vi è anche una
rotazione ripetto all'asse x:
   
1 0 0 1 0 0
RI,x =  0 cos π − sin π  =  0 −1 0 
  
 (49)
0 sin π cos π 0 0 −1
quindi combinando le due rotazioni si ottiene:
 
cos β 0 sin β
O  
RI =  0 −1 0  (50)
sin β 0 − cos β

Marco Molteni 51
Controllo di assetto nello spazio

B.2.4 Orbit frame to Body frame


Questa rotazione è quella usata per il controllo d'assetto e dipende dall'assetto del
satellite. Usando le equazioni (26) e (30) con λ = ² e β =η si ottiene la rotazione:
O
RB = 1 + 2ηS (ε) + 2S 2 (ε) (51)
 
³ ´T η 2 − ε21 − ε22 + ε23 2 (ηε1 + ε2 ε3 ) 2 (ηε2 − ε1 ε3 )
B O  2 2 2 2 
RO = RB =  2 (ηε1 − ε2 ε3 ) −η + ε1 − ε2 + ε3 2 (ηε3 + ε1 ε3 ) 
2 2 2 2
2 (ηε2 + ε1 ε3 ) 2 (ε1 ε2 − ηε3 ) −η − ε1 + ε2 + ε3
(52)

Marco Molteni 52
Controllo di assetto nello spazio

B.3 Modello del campo magnetico (IGRF)


Per poter simulare le interazioni tra il satellite e il campo magnetico terrestre è neces-
sario determinare l'andamento del vettore magnetico istante per istante. E' quindi
essenziale avere un modello esatto del campo magnetico terrestre; l'International
Association of Geomagnetism and Aeronomy (IAGA) ha elaborato l'International
Geomagnetic Reference Field (IGRF).
Il valore del campo magnetico terrestre in un determinato punto della supercie del
nostro pianeta è il risultato della sovrapposizione di contributi aventi origine diversa,
corrispondenti ciascuno ad un diverso campo. L'analisi condotta con opportuni
metodi matematici, introdotti da Carl Friedrich Gauss, ha consentito di stabilire che
il campo magnetico terrestre è per la quasi totalità (99%) generato nel nucleo uido
della Terra, ricco di ferro (il cosiddetto campo principale). Il restante valore, detto
campo residuo, è dovuto al contributo di altre cause: il campo crostale, generato
dalle rocce magnetizzate della crosta terrestre; il campo esterno, dovuto agli sciami
di particelle cariche provenienti dallo spazio, in particolar modo dal Sole; il campo
d'induzione elettromagnetica, causato da correnti indotte nella crosta e nel mantello
dal campo esterno variabile nel tempo.
Un modello globale del campo geomagnetico comunemente usato è l'IGRF, esso
prende in esame solo il valore del campo principale dovuto a cause interne. Secondo
tale modello, il campo magnetico terrestre può essere visto, per semplicità, come se
al centro della Terra fosse presente una potentissima barra magnetica (denita in
gergo tecnico dipolo magnetico) inclinata di 11°30' rispetto all'asse terrestre (tale
rappresentazione riesce a spiegare il 95% del campo interno).
Il modello IGRF si basa su un set di coecenti armonici, chiamati coecenti di
gauss, gnm e hmn no all'ordine n=10. Il modello IGRF è specicato ogni 5 anni e
l'ultimo modello emesso dall'IAGA è l'IGRF 2000.
La formula per ricavare il campo magnetico è:
n µ ¶n+1
N X
X R
V (r, θ, λ) = R · (gnm cos mλ + hm m
n sin mλ) · Pn · (cos θ) (53)
n=1 m=0 r

B = −∇V (54)
dove R è il raggio medio della terra (6371.2 km), e r,λ,θ sono le coordinate sferiche.
r è la distanza dal centro della terra, λ è la longitudine da Greenwich e θ è la colat-
itudine (90° - latitudine).Pnm · (cos θ) è la funzione semi-normalizzata di Schmidt.
I valori del campo magnetico generati dal modello IGRF sono forniti secondo l'ECEF
frame. Avendo bisogno, per eettuare le simulazioni, degli stessi dati nell'Orbit
frame, è stata eettuata una trasformazione tra i due sistemi di riferimento. Usando
la rotazione inversa dall'equazione (47), il campo magnetico nell' Earth-Centered
Orbit frame è:

BOC = (Rz (−Ω + θ) Rx (−i) Rz (−ω))−1 · BECEF


(55)
BOC = Rz (ω) Rx (i) Rz (Ω − θ) · BECEF

Marco Molteni 53
Controllo di assetto nello spazio

Figura 19: Modello IGRF 1995

La rotazione ulteriore da Earth-Centered Orbit frame a Orbit frame eè


³ ´ ³ ´
BO = Rx π2 Rz υ + π2 BOC
  
1 0 0 − sin υ cos υ 0 (56)
BO =   
 0 0 1   − cos υ − sin υ 0  BOC
0 −1 0 0 0 1

deve υ è l'anomalia vera.

Marco Molteni 54
Controllo di assetto nello spazio

B.4 [3] Dinamica del satellite


La dinamica del satellite è stata modellata da Wertz nel 1978 partendo dalla denizione
di momento angolare ed arrivando a denire:

Ḣ (t) + ω (t) × H (t) = τ (t)

dove H è il momento angolare (H = Iw), w è la velocità angolare del satellite e τ è


la somma delle coppie applicate al satellite.

B.5 [2] Cinematica del satellite


Le equazioni della dinamica fornisco l'andamento della velocità angolare in riferi-
mento al Body frame. Per ottenere le informazione relative alla rotazione da Orbit
frame a Body frame da usare per trovare il campo magnetico visto dal satellite (come
se ci fosse un magnetometro) si usano i quaternioni secondo la sequente equazione
dierenziale:
η̇ = − 12 εT ω
(57)
ε̇ = 12 ηω − 12 ω × ε = 12 [ηI − S (ε)] ω
La quale in forma matriciale risulta:
 
0 ω3 −ω2 ω1
1
 ω3 0 ω1 ω2 

q̇ =  q (58)
2 ω2 −ω1 0 ω3 
−ω1 −ω2 −ω3 0

Marco Molteni 55
Controllo di assetto nello spazio

B.6 NORAD TLE


I dati Kepleriani possono essere codicati in molti modi. Il più diuso è il NASA /
NORAD two-line elements (TLE), dove i dati sono impostati su due righe.
Il formato di questi dati è il seguente:
1 AAAAAU YYLLLPPP BBBBB.BBBBBBBB .CCCCCCCC DDDDD-D EEEEE-E F GGGGZ
2 AAAAA HHH.HHHH III.IIII JJJJJJJ KKK.KKKK MMM.MMMM NN.NNNNNNNNRRRRRZ
La seconda riga contiene i dati orbitali secondo questo formato:

ˆ HHH.HHHH Inclinazione orbitale (da 0° a 180°)

ˆ III.IIII Longitudine del nodo ascendente (da 0° ta 360°)

ˆ JJJJJJJ Eccentricità (tra 0.0 e 1.0)

ˆ KKK.KKKK Argomento del perielio (da 0° ta 360°)

ˆ MMM.MMMM Anomalia media (da 0° ta 360°)

ˆ NN.NNNNNNNN Periodo orbitale (giri al giorno)

I dati Norad usati per le simulazioni sono i seguenti:


2003031A
1 27840U 03031A 03183.10979269 -.00001348 00000-0 -40620-3 0 103
2 27840 98.7185 190.0474 0093934 259.7739 99.2887 14.38254380 221

B.7 Placche isteretiche


Il modello matematico della placca isteretica è stato ottenuto cercando di model-
lare, il meglio possibile, la curva isteretica di un materiale ferromagnetico. Si è
praticamente cercato di 00 squadrare00 la curva come in gura (20):

Hearth/b
mhyst
2 1/uo Bhyst
Hysteresis −K−
Bearth/b
1
Dot Product Br/Hc Saturation mhyst
Vhyst/uo Product

Hearth/hyst Slope

1
uhyst

Figura 20: Modello dell'isteresi magnetica

Per simulare il comportamento non lineare del materiale, è stato creato un modello
Simulink che riceve il campo magnetico terrestre Bb visto dal satellite e dividendolo
per la permeabilità magnetica del vuoto µ0 trova il campo magnetico nel materiale
Hτ . Con questo valore, percorre la curva isteretica modellata e risale al usso
magnetico prodotto B . Inne da questo valore risale al momento magnetico generato
dalla placca secondo la formula m = µV0 .

Marco Molteni 56
Controllo di assetto nello spazio

C File Matlab/Simulink
C.1 File Matlab: Modello IGRF
C.1.1 beld.m

1 %+================================================================+
2 %
3 % Programmers: Carlos Roithmayr Feb 1997
4 %
5 % NASA Langley Research Center
6 % Spacecraft and Sensors Branch (CBC)
7 % 757 864 6778
8 % c.m.roithmayr@larc.nasa.gov
9 %
10 %+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
11 %
12 % Purpose:
13 % Compute magnetic field exerted at a point P.
14 %
15 %+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
16 %
17 % Argument definitions:
18 % repe m Position vector from Earth’s center, E*, to a
19 % point, P, expressed in a basis fixed in the
20 % Earth (ECF): 1 and 2 lie in equatorial plane
21 % with 1 in the plane containing the prime
22 % meridian, in the direction of the north pole.
23 % nmax Maximum degree of contributing spherical harmonics
24 % mmax Maximum order of contributing spherical harmonics
25 % K coefficients that relate Schmidt functions to
26 % associated Legendre functions.
27 % A Derived Legendre polynomials
28 % ctilde See pp. 4−−9 of Ref. [1]
29 % stilde See pp. 4−−9 of Ref. [1]
30 % G, H Tesla Schmidt−normalized Gauss coefficients
31 % R_mean m Mean radius for International Geomagnetic
32 % Reference Field (6371.2 km)
33 % bepe Tesla Magnetic field at a point, P, expressed in ECF
34 % basis
35 %
36 %+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
37 %
38 % References:
39 %
40 % 1. Mueller, A. C., "A Fast Recursive Algorithm for Calculating
41 % the Forces Due to the Geopotential", NASA JSC Internal Note
42 % No. 75−FM−42, June 9, 1975.
43 % 2. Roithmayr, C., "Contributions of Spherical Harmonics to
44 % Magnetic and Gravitational Fields", EG2−96−02, NASA Johnson
45 % Space Center, Jan. 23, 1996.
46 %

Marco Molteni 57
Controllo di assetto nello spazio

47 %+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
48 %
49 % Conversion factors:
50 % 1 Tesla = 1 Weber/(meter−meter) = 1 Newton/(Ampere−meter)
51 % = 1e+4 Gauss = 1e+9 gamma
52 %
53 %+================================================================+
54 function bepe =bfield(repe,nmax,mmax,K,A,ctilde,stilde,G,H, r_total)
55 % The number 1 is added to degree and order
56 % since MATLAB can’t have an array index of 0.
57 e1=[1 0 0];
58 e2=[0 1 0];
59 e3=[0 0 1];
60 rmag = sqrt (repe*repe’);
61 rhat = repe/rmag;
62 u = rhat(3); % sin of latitude
63 bepe = [0 0 0];
64 % Seed for recursion formulae
65 scalar = r_total*r_total/(rmag*rmag);
66 for n = 1:nmax
67 % Recursion formula
68 scalar = scalar*r_total/rmag;
69 i=n+1;
70 for m = 0:n
71 j=m+1;
72 if m <= mmax
73 ttilde(i,j) = G(i,j)*ctilde(j) + H(i,j)*stilde(j);
74 % ECF 3 component {Eq. (2), Ref. [2]}
75 b3(i,j) = −ttilde(i,j)*A(i,j+1);
76 % rhat component {Eq. (2), Ref. [2]}
77 br(i,j) = ttilde(i,j)*(u*A(i,j+1) + (n+m+1)*A(i,j));
78 % Contribution of zonal harmonic of degree n to magnetic
79 % field. {Eq. (2), Ref. [2]}
80 scalar*K(i,j)*(b3(i,j)*e3 + br(i,j)*rhat);
81 bepe = bepe + scalar*K(i,j)*(b3(i,j)*e3 + br(i,j)*rhat);
82 end
83 if ((m > 0) & (m <= mmax))
84 % ECF 1 component {Eq. (2), Ref. [2]}
85 b1(i,j) = −m*A(i,j)*(G(i,j)*ctilde(j−1) + H(i,j)*stilde(j−1));
86 % ECF 2 component {Eq. (2), Ref. [2]}
87 b2(i,j) = −m*A(i,j)*(H(i,j)*ctilde(j−1) − G(i,j)*stilde(j−1));
88 % Contribution of tesseral harmonic of degree n and order m to
89 % magnetic field. {Eq. (2), Ref. [2]}
90 bepe = bepe + scalar*K(i,j)*(b1(i,j)*e1 + b2(i,j)*e2);
91 end
92 end
93 end

C.1.2 checkChkSum.m

Marco Molteni 58
Controllo di assetto nello spazio

1 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
2 % Check whether or not string has check sum Z
3 %
4 % The TLE check sum algorithm is used.
5 %
6 % This function is used as an assisting function in:
7 % loadTLF.m
8 %
9 % 09/10−2001 Martin Pedersen
10 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
11 function cs = checkChkSum(string)
12 cs = 0;
13 for i = 1: length (string)
14 if (~ isempty ( str2num (string(i))))
15 cs = cs + str2num (string(i));
16 elseif (string(i)==’−’)
17 cs = cs + 1;
18 end
19 end
20 cs = mod(cs,10);
21 return ;

C.1.3 readPart.m

1 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
2 % Reads a variable of ANSI C−type type from string.
3 %
4 % Prints ’ERROR not a TLE file (failed on: string |
5 % with type type): ERRMSG’
6 % if there is an error. ERRMSG is sscanf’s error message.
7 %
8 % An error has occured if ERRMSG!=’’
9 %
10 % type e.g.: ’%d’, ’%f’, ’%s’
11 %
12 % This function is used as an assisting function in:
13 % loadTLF.m
14 %
15 % 09/10−2001 Martin Pedersen
16 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
17 function [ret, charsRead] = readPart(string, type )
18 [ret, rlen, ERRMSG, charsRead] = sscanf (string, type );
19 if (~ isempty (ERRMSG))
20 disp ( sprintf (’ERROR not a TLE file (failed on: %s | with type: %s): %s’
21 , string, type , ERRMSG));
22 ret = −1;
23 return ;
24 end ;
25 charsRead = charsRead − 1;
26 if ( isempty (ret))

Marco Molteni 59
Controllo di assetto nello spazio

27 ret = 0;
28 end
29 return ;

C.1.4 recursion.m

1 %+================================================================+
2 %
3 % Programmers: Carlos Roithmayr Dec 1995
4 %
5 % NASA Langley Research Center
6 % Spacecraft and Sensors Branch (CBC)
7 % 757 864 6778
8 % c.m.roithmayr@larc.nasa.gov
9 %
10 %+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
11 %
12 % Purpose:
13 % Recursive calculations of derived Legendre polynomials and other
14 % quantities needed for gravitational and magnetic fields.
15 %
16 %+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
17 %
18 % Argument definitions:
19 % repe m Position vector from Earth’s center, E*, to a
20 % point, P, expressed in a basis fixed in the
21 % Earth (ECF): 1 and 2 lie in equatorial plane
22 % with 1 in the plane containing the prime meridian,
23 % 3 in the direction of the north pole.
24 % The units of length are not terribly important,
25 % since repe is made into a unit vector.
26 % nmax Maximum degree of derived Legendre polynomials
27 % mmax Maximum order of derived Legendre polynomials
28 % A Derived Legendre polynomials
29 % ctilde See pp. 4−−9 of Ref. [1]
30 % stilde See pp. 4−−9 of Ref. [1]
31 %
32 %+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
33 %
34 % References:
35 %
36 % 1. Mueller, A. C., "A Fast Recursive Algorithm for Calculating
37 % the Forces Due to the Geopotential", NASA JSC Internal Note
38 % No. 75−FM−42, June 9, 1975.
39 % 2. Lundberg, J. B., and Schutz, B. E., "Recursion Formulas of
40 % Legendre Functions for Use with Nonsingular Geopotential
41 % Models", Journal of Guidance, Control, and Dynamics, Vol. 11,
42 % Jan−−Feb 1988, pp. 32−−38.
43 %
44 %+================================================================+

Marco Molteni 60
Controllo di assetto nello spazio

45 function [A,ctilde,stilde] = recursion(repe,nmax,mmax)


46 clear A;
47 A= zeros (nmax+3,nmax+3); % A(n,m) = 0, for m > n
48 R_m = sqrt (repe*repe’);
49 rhat = repe/R_m;
50 u = rhat(3); % sin of latitude
51 A(1,1)=1; % "derived" Legendre polynomials
52 A(2,1)=u;
53 A(2,2)=1;
54 clear ctilde
55 clear stilde
56 ctilde(1) = 1; ctilde(2) = rhat(1);
57 stilde(1) = 0; stilde(2) = rhat(2);
58 for n = 2:nmax
59 i=n+1;
60 % Calculate derived Legendre polynomials and "tilde" letters
61 % required for gravitational and magnetic fields.
62 % Eq. (4a), Ref. [2]
63 A(i,i) = prod (1:2:(2*n − 1));
64 % Eq. (4b), Ref. [2]
65 A(i,(i−1))= u*A(i,i);
66 if n <= mmax
67 % p. 9, Ref. [1]
68 ctilde(i) = ctilde(2) * ctilde(i−1) − stilde(2) * stilde(i−1);
69 stilde(i) = stilde(2) * ctilde(i−1) + ctilde(2) * stilde(i−1);
70 end
71 for m = 0:n
72 j=m+1;
73 if (m < (n−1)) & (m <= (mmax+1))
74 % Eq. I, Table 1, Ref. [2]
75 A(i,j)=((2*n − 1)*u*A((i−1),j) − (n+m−1)*A((i−2),j))/(n−m);
76 end
77 end
78 end

Marco Molteni 61
Controllo di assetto nello spazio

C.1.5 schmidt.m

1 %+================================================================+
2 %
3 % Programmers: Carlos Roithmayr Feb 1997
4 %
5 %NASA Langley Research Center
6 %Spacecraft and Sensors Branch (CBC)
7 %757 864 6778
8 %c.m.roithmayr@larc.nasa.gov
9 %
10 %+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
11 %
12 % Purpose:
13 % Compute coefficients that relate Schmidt functions to associated
14 % Legendre functions.
15 %
16 %+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
17 %
18 % Argument definitions:
19 % nmax Maximum degree of contributing spherical harmonics
20 % mmax Maximum order of contributing spherical harmonics
21 % Kcoefficients that relate Schmidt functions to
22 %associated Legendre functions (Ref. [1]).
23 %
24 %+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
25 %
26 % References:
27 %
28 % 1. Haymes, R. C., Introduction to Space Science, Wiley, New
29 % York, 1971.
30 % 2. Roithmayr, C., "Contributions of Spherical Harmonics to
31 % Magnetic and Gravitational Fields", EG2−96−02, NASA Johnson
32 % Space Center, Jan. 23, 1996.
33 %
34 %+================================================================+
35 function K = schmidt(nmax,mmax)
36 % Seed for recursion formulae
37 K(2,2) = 1;
38 % Recursion formulae
39 for n = 1:nmax
40 i=n+1;
41 for m = 0:n
42 j=m+1;
43 if m == 0
44 % Eq. (3), Ref. [2]
45 K(i,j) = 1;
46 elseif ((m >= 1) & (n >= (m+1)))
47 % Eq. (4), Ref. [2]
48 K(i,j) = sqrt ((n−m)/(n+m))*K(i−1,j);
49 elseif ((m >= 2) & (n >= m))
50 % Eq. (5), Ref. [2]

Marco Molteni 62
Controllo di assetto nello spazio

51 K(i,j) = K(i,j−1)/sqrt ((n+m)*(n−m+1));


52 end
53 end
54 end

C.1.6 convertTLE.m

1 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
2 % Convert to rad and min
3 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
4 % − Constants given by the NORAD TLE (all at epoch)
5 function [modTLE] = convertTLE(TLE)
6 meanMo = TLE(19);
7 orbEcc = TLE(16);
8 orbInc = TLE(14);
9 meanAno = TLE(18);
10 argPer = TLE(17);
11 rghtAsc = TLE(15);
12 SGPdragp1 = TLE(8);
13 SGPdragp2 = TLE(9);
14 SGP4dragp = TLE(10);
15 EpYear = TLE(5);
16 EpJD = TLE(6);
17 EpTime = TLE(7);
18 revNo = TLE(20);
19 n0 = 2* pi *meanMo/1440; % Mean motion (rad/min)
20 e0 = orbEcc; % Eccentricity (0.0<=e0>=1.0)
21 i0 = pi *orbInc/180; % Inclination (rad)
22 M0 = pi *meanAno/180; % Mean anomaly (rad)
23 w0 = pi *argPer/180; % Argument of perigee (rad)
24 Ohm0 = pi *rghtAsc/180; % Right ascension of the ascending node (rad)
25 dn0 = 2*2* pi *SGPdragp1/(1440^2);
26 % Rirst time derivative of mean motion(rad/min^2)
27 ddn0 = 6*2* pi *SGPdragp2/(1440^3);
28 % Second time derivative of mean motion (rad/min^3)
29 Bstar = SGP4dragp; % SGP4 type drag coefficient
30 % Mean year (400 year period) in days:
31 meanYearDays = (400*365 + 4 * (100/4 − 1) + 1) / 400;
32 % Time of epoch (since y2k)
33 t0 = (EpYear*meanYearDays + EpJD + EpTime)*1440;
34 modTLE = [t0 dn0 ddn0 Bstar i0 Ohm0 e0 w0 M0 n0 revNo 1440/meanMo];

C.1.7 loadTLE.m

1 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
2 % Loads NORAD TLE file and converts the data to the
3 % units rad and minutes.

Marco Molteni 63
Controllo di assetto nello spazio

4 %
5 % Performs approx. 98% syntax check of the file. The onely
6 % thing thatr is not checked is whether there is a correct
7 % number of spaces in the file. However this should be
8 % unnecessary since the function should output an error on
9 % on all possible data failures.
10 %
11 % The converison part of the function can be excluded. Then
12 % it is a ’clean’ loader.
13 %
14 % −1 is returned in ret if an error has occured.
15 %
16 % Description of the different returned parameter is given
17 % below in the source code when they are extracted.
18 %
19 % 09/10−2001 Martin Pedersen
20 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
21 function [TLE, satName, class, IDpiece] = loadTLE(filename)
22 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
23 % Initialise return variables
24 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
25 ret = 0; satName = 0; satID1 = 0;
26 class = 0; IDyear = 0; IDlaunchNO = 0; IDpiece = 0;
27 EpYear = 0; EpJD = 0; EpTime = 0; SGPdragp1 = 0;
28 SGPdragp2 = 0; SGP4dragp = 0;
29 Eph = 0; ElementNo = 0; satID2 = 0; orbInc = 0;
30 rghtAsc = 0; orbEcc = 0; argPer = 0;
31 meanAno = 0; meanMo = 0; revNo = 0; checkZ2 = 0;
32 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
33 % Load file
34 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
35 fid = fopen (filename, ’r’); %Open file
36 line0 = fgetl (fid);
37 line1 = fgetl (fid);
38 line2 = fgetl (fid);
39 fclose (fid);
40 if (line0==−1)
41 disp (’Not a valid TLF file (line 1).’);
42 ret=−1;
43 return ;
44 elseif (line1==−1)
45 disp (’Not a valid TLF file (line 2).’);
46 ret=−1;
47 return ;
48 elseif (line2==−1)
49 disp (’Not a valid TLF file (line 3).’);
50 ret=−1;
51 return ;
52 elseif ( length (line1)>69)
53 disp (’TLE line 1 too long.’);
54 ret=−1;
55 return ;
56 elseif ( length (line2)>69)

Marco Molteni 64
Controllo di assetto nello spazio

57 disp (’TLE line 2 too long.’);


58 ret=−1;
59 return ;
60 elseif ( length (line1)<69)
61 disp (’TLE line 1 too short.’);
62 ret=−1;
63 return ;
64 elseif ( length (line2)<69)
65 disp (’TLE line 2 too short.’);
66 ret=−1;
67 return ;
68 elseif (line1(1)~=’1’)
69 disp (’TLE line 1 not labeled correct.’);
70 ret=−1;
71 return ;
72 elseif (line2(1)~=’2’)
73 disp (’TLE line 2 not labeled correct.’);
74 ret=−1;
75 return ;
76 end
77 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
78 % Get the individual elements
79 % − See also the TLE sepecification
80 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
81 % Name of satellite
82 satName = line0;
83 % LINE 1:
84 % Satellite ID number (NNNNN)
85 satID1 = readPart(line1(3:7),’%d’);
86 % Security classification (U=Unclassified, 1 char)
87 class = readPart(line1(8),’%c’);
88 % International Designator: last two digits of launch year (YY)
89 IDyear = readPart(line1(10:11),’%d’);
90 % −−,,−−: Launch number of the year (NNN)
91 IDlaunchNO = readPart(line1(12:14),’%d’);
92 % −−,,−−: Piece of the launch (NNN)
93 IDpiece = readPart(line1(15:17),’%s’);
94 % Epoch year (YY)
95 EpYear = readPart(line1(19:20),’%d’);
96 % Epoch Julian day (DDD)
97 EpJD = readPart(line1(21:23),’%d’);
98 % Epoch time; fraction of one day (.FFFFFFFF)
99 EpTime = readPart(line1(24:32),’%f’);
100 % SGP drag parameter (<|1|) (.NNNNNNNN)
101 sign = readPart(line1(34),’%c’);
102 SGPdragp1 = readPart(line1(35:43),’%f’);
103 if ( sign ==’−’)
104 SGPdragp1 = −1*SGPdragp1;
105 end
106 % SGP drag2 parameter ((.)NNNNN−N (last 10’s exp))
107 sign = readPart(line1(45),’%c’);
108 [SGPdragp2, len] = readPart(line1(46:50),’%d’);
109 exponent = −1*readPart(line1(52),’%d’);

Marco Molteni 65
Controllo di assetto nello spazio

110 SGPdragp2 = SGPdragp2*10^(exponent−len);


111 if ( sign ==’−’)
112 SGPdragp2 = −1*SGPdragp2;
113 end
114 % SGP4 drag parameter (NNNNN−N (last 10’s exp))
115 sign = readPart(line1(54),’%c’);
116 [SGP4dragp, len] = readPart(line1(55:59),’%d’);
117 exponent = −1*readPart(line1(61),’%d’);
118 SGP4dragp = SGP4dragp*10^(exponent−len);
119 if ( sign ==’−’)
120 SGP4dragp = −1*SGP4dragp;
121 end
122 % Ephemeris type (N)
123 Eph = readPart(line1(63),’%d’);
124 % Element sat number (NNNN)
125 ElementNo = readPart(line1(65:68),’%d’);
126 % Check sum for line one (N)
127 checkZ1 = readPart(line1(69),’%d’);
128 % LINE 2:
129 % Satellite ID number (NNNNN)
130 satID2 = readPart(line2(3:7),’%d’);
131 % Orbital inclination (NNN.NNNN)
132 orbInc = readPart(line2(9:16),’%f’);
133 % Right Ascension (NNN.NNNN)
134 rghtAsc = readPart(line2(18:25),’%f’);
135 % Orbital Eccentricity (NNNNNNN)
136 orbEcc = readPart(line2(27:33),’%d’)/10^7;
137 % Argument of perigee (NNN.NNNN)
138 argPer = readPart(line2(35:42),’%f’);
139 % Mean Anomaly (NNN.NNNN)
140 meanAno = readPart(line2(44:51),’%f’);
141 % Mean Motion (NN.NNNNNNNN)
142 meanMo = readPart(line2(53:63),’%f’);
143 % Revolution number (NNNNN)
144 revNo = readPart(line2(64:68),’%d’);
145 % Check sum for line two (N)
146 checkZ2 = readPart(line2(69),’%d’);
147 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
148 % Check checksum
149 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
150 if (checkChkSum( line1(1:( length (line1)−1)) )~=checkZ1)
151 disp (’Incorrect check sum for TLE line 1.’);
152 ret = −1;
153 return ;
154 elseif (checkChkSum( line2(1:( length (line2)−1)) )~=checkZ2)
155 disp (’Incorrect check sum for TLE line 2.’);
156 ret = −1;
157 return ;
158 end ;
159 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
160 % Return loaded values in vector
161 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
162 TLE = [ret satID1 IDyear IDlaunchNO...

Marco Molteni 66
Controllo di assetto nello spazio

163 EpYear EpJD EpTime SGPdragp1 SGPdragp2 SGP4dragp Eph...


164 ElementNo satID2 orbInc rghtAsc orbEcc argPer meanAno...
165 meanMo revNo];
166
167 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
168 % Convert to rad and min
169 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−%
170 % − Constants given by the NORAD TLE (all at epoch)
171 function [modTLE] = convertTLE(TLE)
172 meanMo = TLE(19);
173 orbEcc = TLE(16);
174 orbInc = TLE(14);
175 meanAno = TLE(18);
176 argPer = TLE(17);
177 rghtAsc = TLE(15);
178 SGPdragp1 = TLE(8);
179 SGPdragp2 = TLE(9);
180 SGP4dragp = TLE(10);
181 EpYear = TLE(5);
182 EpJD = TLE(6);
183 EpTime = TLE(7);
184 revNo = TLE(20);
185 n0 = 2* pi *meanMo/1440; % Mean motion (rad/min)
186 e0 = orbEcc; % Eccentricity (0.0<=e0>=1.0)
187 i0 = pi *orbInc/180; % Inclination (rad)
188 M0 = pi *meanAno/180; % Mean anomaly (rad)
189 w0 = pi *argPer/180; % Argument of perigee (rad)
190 Ohm0 = pi *rghtAsc/180; % Right ascension of the ascending node (rad)
191 dn0 = 2*2* pi *SGPdragp1/(1440^2);
192 % Rirst time derivative of mean motion(rad/min^2)
193 ddn0 = 6*2* pi *SGPdragp2/(1440^3);
194 % Second time derivative of mean motion (rad/min^3)
195 Bstar = SGP4dragp; % SGP4 type drag coefficient
196 % Mean year (400 year period) in days:
197 meanYearDays = (400*365 + 4 * (100/4 − 1) + 1) / 400;
198 % Time of epoch (since y2k)
199 t0 = (EpYear*meanYearDays + EpJD + EpTime)*1440;
200 modTLE = [t0 dn0 ddn0 Bstar i0 Ohm0 e0 w0 M0 n0 revNo];

C.1.8 OrbitwithIGRF.m

1 function [B_orb, r_eci, r_ecef,t]=


2 orbit_with_IGRF(keplerian, time, delta, theta0)
3 % Estimates the vector B_orb, r_eci and r_ecef
4 % from the epoch the keplerian elements
5 % given were valid until ’time’ for every ’delta’ seconds.
6 %
7 % Inputs
8 % keplerian: Holds the six keplerian elements.
9 % The 5th keplerian element is the semimajor axis,

Marco Molteni 67
Controllo di assetto nello spazio

10 % not the mean motion


11 % time: Scalar value for how long ahead the estimator goes
12 % delta: Scalar value for the time step
13 % theta0: The right ascencion of greenwich at the epoch
14 %
15 % Output
16 % All vectors are matrices with size 3:1+ceil(time/delta)
17 % They hold x−,y− and z−axis values for each time step
18 % B_orb: The earths magnetic field in orbit coordinates
19 % r_eci: The vector to the satellite in ECI frame
20 % r_ecef: The vector to the satellite in ECEF frame
21 %
22 %
23 % Author: Kristian Svartveit
24 %
25 inc=keplerian(1);%inclination
26 raan=keplerian(2);%Rigth ascension of ascending node
27 omega=keplerian(3);%argument of perigee
28 e=keplerian(4);%eccentricity
29 a=keplerian(5);%mean motion%%%Molteni
30 m=keplerian(6);%mean anomaly
31 t=0:delta:time;
32 a_earth = 6.378137e6;%earth radius
33 T_earth_exact = 8.6164130e4; % Length of Sideral Day
34 w_E = 2* pi /T_earth_exact; % Earth Angular Velocity
35 G_const = 6.6720e−11; % Gravitational Constant
36 M_earth = 5.9742e24; % Mass of the Earth
37 my_g = G_const*M_earth; % Earth Gravitational Constant
38 n= sqrt (my_g/a^3);%mean motion %%%% Editato da Molteni
39 %%%%%a=(my_g/n^2)^(1/3);%semimajor axis
40 % Time derivatives of raan, omega and M
41 deg_d2rad_sec= pi /180/(60*60*24);
42 J2=1.08284e−3;%the second gravitational zonal harmonic of the Earth
43 raan_dot_J2=−3/2*n*a_earth^2* cos (inc)./(a.^2*(1−e^2)^2)*J2;
44 raan_dot_moon=−.00338* cos (inc)/15*deg_d2rad_sec;
45 raan_dot_sun=−.00154* cos (inc)/15*deg_d2rad_sec;
46 raan_dot=raan_dot_J2+raan_dot_moon+raan_dot_sun;
47 omega_dot_J2=3/4*n*a_earth^2*(5* cos (inc)^2−1)./(a.^2*(1−e^2)^2)*J2;
48 omega_dot_moon=0.00169*(5* cos (inc)^2−1)/15*deg_d2rad_sec;
49 omega_dot_sun=.00077*(5* cos (inc)^2−1)/15*deg_d2rad_sec;
50 omega_dot=omega_dot_J2+omega_dot_moon+omega_dot_sun;
51 theta=mod(theta0+w_E*t,2* pi );%rotation between eci and ecef
52 raan=raan(1)+raan_dot.*t;
53 omega=omega(1)+omega_dot.*t;
54 m=m(1)+n.*t;
55 % Solving Kepler’s equation E=M+e*sin(E) with Newton’s method
56 E=m;
57 eps =1;
58 tol=1e−9;
59 while max ( eps .^2)>tol
60 eps =(m+e* sin (E)−E)./(1−e* cos (E));
61 E=E+ eps ;
62 end

Marco Molteni 68
Controllo di assetto nello spazio

63 cE= cos (E);


64 sE= sin (E);
65 %true anomaly sine and cosine
66 cnu=(cE−e)./(1−e*cE);
67 snu=( sqrt(1−e^2)*sE)./(1−e*cE);
68 %argument of perigee sine and cosine
69 comega= cos(−omega);
70 somega= sin(−omega);
71 %raan sine and cosine
72 craan= cos(−raan);
73 sraan= sin(−raan);
74 %raan+theta sine and cosine
75 craant= cos(−raan+theta);
76 sraant= sin(−raan+theta);
77 %theta sine and cosine
78 ctheta= cos (theta);
79 stheta= sin (theta);
80 %Vector from earth’s center to satellite in earh centered orbit
81 rx=a.*(cE−e);
82 ry=a.*( sqrt(1−e^2)*sE);
83 rz= zeros (1, length (E));
84 r=[rx;ry;rz];
85 %Rotation matrix for inclination about x−axis
86 rx_i=[1 0 0;
87 0 cos(−inc) sin(−inc);
88 0 −sin(−inc) cos(−inc)];
89 [G,H] = IGRF2000;
90 nmax = 10;
91 mmax = 10;
92 Kschmidt = schmidt(nmax,mmax);
93 r_eci= zeros ( size (r));
94 for i=1: length (r)
95 rz_omega=[comega(i) somega(i) 0;−somega(i) comega(i) 0;0 0 1];
96 rz_raant=[craant(i) sraant(i) 0;−sraant(i) craant(i) 0;0 0 1];
97 rz_raan=[craan(i) sraan(i) 0;−sraan(i) craan(i) 0;0 0 1];
98 r_eci(:,i)=rz_raan*rx_i*rz_omega*r(:,i);
99 r_ecef(:,i)=rz_raant*rx_i*rz_omega*r(:,i);
100 R_i_e = [ctheta(i) −stheta(i) 0;stheta(i) ctheta(i) 0;0 0 1];
101 repe=r_ecef(:,i)’;
102 [A,ctilde,stilde] = recursion(repe,nmax,mmax);
103 r_total = sqrt ( sum (repe.^2));
104 B_ecef(:,i) =
105 bfield(repe,nmax,mmax,Kschmidt,A,ctilde,stilde,G,H, r_total)’;
106 B_eci(:,i)=R_i_e*B_ecef(:,i);
107 B_orb_c(:,i)=rz_omega’*rx_i’*rz_raan’*B_eci(:,i);
108 B_orb(:,i)=[1 0 0;0 0 1;0 −1 0]*
109 [−snu(i) cnu(i) 0;−cnu(i) −snu(i) 0;0 0 1]*B_orb_c(:,i);
110 end

Marco Molteni 69
Controllo di assetto nello spazio

C.1.9 FoundBB.m

Listing 1: Contiene tutti i parametri del orbita


1 clear all ;
2 close all ;
3 clc ;
4
5 TLE=loadTLE(’norad.tle’);
6 modTLE=convertTLE(TLE);
7 keplerian(1)=modTLE(5); %inclination
8 keplerian(2)=modTLE(6); %Rigth ascension of ascending node
9 keplerian(3)=modTLE(8); %argument of perigee
10 keplerian(4)=modTLE(7); %eccentricity
11 keplerian(5)=(6.67428e−11*5.9736e24/
12 (modTLE(10)/60)^2)^(1/3); %semimajor axis
13 keplerian(6)=modTLE(9); %mean anomaly
14
15 time=modTLE(12)*60*10;
16 delta=1;
17 theta0=0* pi /180;
18
19 [B_orb, r_eci, r_ecef,t]=orbit_with_IGRF(keplerian, time, delta, theta0);
20 plot (B_orb(1,:)’)
21 hold on
22 plot (B_orb(2,:)’,’r’)
23 plot (B_orb(3,:)’,’g’)
24 legend (’Bx − velocity vector’,’By − perpendicolare piano orbitale’
25 ,’Bz − verso centro Terra’)
26 figure
27
28 plot (r_ecef(1,:)’)
29 hold on
30 plot (r_ecef(2,:)’,’r’)
31 plot (r_ecef(3,:)’,’g’)
32 legend (’x − axis with 0 latitude e 0 longitude’,’y − completa mano destra’
33 ,’z − verso polo nord’)
34
35 figure
36
37 plot (r_eci(1,:)’)
38 hold on
39 plot (r_eci(2,:)’,’r’)
40 plot (r_eci(3,:)’,’g’)
41 legend (’x − vernal equinox’,’y − completa mano destra’,
42 ’z − asse di rotazione terrestre’)
43
44 save B_orbit.mat B_orb time t

Marco Molteni 70
Controllo di assetto nello spazio

C.2 File Matlab: Simulazione


C.2.1 euler2q.m

Listing 2: Angoli di Euler to Quaternioni


1 % Trasforma da angoli di Euler a quaternioni
2 %
3 %
4 % Author: Marco Molteni
5 %
6 function [ q ] = euler2q( e )
7 r=e(1);
8 p=e(2);
9 y=e(3);
10 u1=1/2* sin (r);
11 u2=1/2* sin (p);
12 u3=1/2* sin (y);
13 u4=1/2* cos (r);
14 u5=1/2* cos (p);
15 u6=1/2* cos (y);
16
17 n=u1*u2*u3+u4*u5*u6;
18 e1=−u2*u3*u4+u1*u5*u6;
19 e2=u1*u5*u3+u2*u4*u6;
20 e3=u3*u4*u5−u1*u2*u6;
21
22 q=[ e1,e2,e3,n ];

C.2.2 simul.m

Listing 3: File di Simulazione


1 % File di simulazione, inizializza e trova il controllore
2 %
3 %
4 % Author: Marco Molteni
5 %
6
7 clear
8 load B_orbit.mat %Carica i dati del campo magnetico
9
10 % Posizione magnete e placche isteretiche %
11 u_m =[0 4.1 0];
12 hys1=[1 0 0];
13 hys2=[0 0 1];
14
15 % Matrice d’inerzia %
16 Mc=1; % Peso del satellite [kg]
17 l=0.1; % Lato Cubo [m]

Marco Molteni 71
Controllo di assetto nello spazio

18 J=[Mc/2*(2*l^2) 0 0;0 Mc/2*(2*l^2) 0;0 0 Mc/2*(2*l^2)];


19 Jinv=J^(−1);
20
21 uo=4e−7*pi ; %Permeabilita magnetica nel vuoto
22
23 % Dati placca isteretica
24 Br=0.35;
25 Hc=1.0;
26 Bs1=0.73;
27 Vhyst1=1.004e−6;
28
29 t=0:1:time; % vettore tempo
30
31 % Condizioni iniziali %
32 alpha_init=[180,180,180];
33 w_init=[0,0,0];
34 %alpha_init=[90,45,−135];
35 % w_init=[0.02,0.05,−0.002];
36
37 q_0=euler2q( pi /180*alpha_init);
38 H_init=w_init*J;
39
40
41 contr=[0 1 0];
42
43 % Controllore PID
44 r=0.01;
45 %pole=r*[exp(−i*3/4*pi) exp(i*3/4*pi) exp(−i*11/12*pi) exp(i*11/12*pi)];
46 pole=−2*[0.01 0.011 0.009 0.008];
47 v= poly (pole);
48 a=v(2);
49 Ki=v(5)/a/100;
50 Kp=(v(4)/100−Ki)/a;
51 Kd=v(3)/100−Kp;
52 Ka=4;
53 T_max=4e−6; % Coppia massima del controllore
54
55 % Magnetotorquer
56 phi_r=1.55e−8; % Resistività del rame
57 a_w= pi *(0.13e−3/2)^2; % Sezione filo
58 N=415; % Numero di spire
59 A=7496e−6; % Area Magnetorquer [m^2]
60 C=4* sqrt (A); % Circonferenza
61 Res=N*C*phi_r/a_w; % Resistenza
62
63
64 %Magneti_Permanenti
65 %print −s −deps2 sim_MP.eps
66 %MagnetoTorquer
67 %print −s −deps2 sim_PID.eps

Marco Molteni 72
Controllo di assetto nello spazio

C.3 File Simulink

B_body tau tau w_body w q Quat2Eul

Cinematica roll, pitch, yaw


Magnete Dinamica Satellite Quaternions to Euler Angles
Placche Isteretiche

B_body q

Campo magnetico

B_body alpha

Angolo tra asse y


e campo magnetico
Calcolo
angolo di
sfasamento

Figura 21: Simulazione metodo passivo

Jinv(1,:)
Inertia
Jinv(2,:)
Inertia2
Jinv(3,:)
A1 w_b
Hdot Inertia4 A2
[A]u 1
Tex_b H_b A3
1
1 u w_body
s
tau MatProduct1
Integrator

w_b
u1
v
u2
H_b
XProduct

Figura 22: Dinamica del satellite

Dot Product
Omega1
Omega2
1 w
Omega3
w Omega4 qdot q q^
Dot Product1 1/2 1
Omega
s 1
Gain Integrator q
u |u| Product
Dot Product2
VecNorm

Dot Product3

Figura 23: Cinematica del satellite

Marco Molteni 73
Controllo di assetto nello spazio

A1 A1
1 q A2 A2
1
[A]u
A3 A3
q
u B_body
QUA2MAT1
MatProduct2

[t’, B_orb’]
Mag Field Input

Figura 24: Magnetometro

asse da controllare
−C−
1
acos −K− 1
B_body
alpha
Divide Gain

f(u)

Figura 25: Calcolo angolo sfasamento tra B e asse y

Bearth/b
Tmag/b
u_m umag/b
umag Permanent Magnets
Bearth/b
1 Bearth/b
Thyst/b 1
B_body
hys1 uhyst/b
tau
uhyst1 Hysteresis Bars1
Bearth/b
Thyst/b
hys2 uhyst/b
uhyst2 Hysteresis Bars2

Figura 26: Metoto Passivo

2 mxB
u1
umag/b u2
v 1
1 Tmag/b
XProduct
Bearth/b

Figura 27: Magnete Permanente

2 uhyst mxB
mhyst u1
uhyst/b
Bearth/b v 1
u2
Hysteresis Model Thyst/b
1 XProduct
Bearth/b

Figura 28: Placca Isteretica

Marco Molteni 74
Controllo di assetto nello spazio

180/pi 3
phi

PID
asse da controllare
abs(T)
angolo phi T
contr asse tau
1
dir_t tau

1 B_body
dir_m
B_body tau
m 2
B_body m

tau to m

Figura 29: Controllo Attivo

Ka

1
Ki
s
Integrator

angolo
1 Kp 1
phi T
Saturation

Kd.s
s+a
Transfer Fcn

Figura 30: PID

1 asse
asse phi 1
2 B_body angolo
B_body
Angolo
di sfasamento

B_body dir_t 2
dir_t
asse dir_m 3
dir_m
Calcolo direzione
torque
momento magnetico

Figura 31: Calcola angolo e direzione coppia

Marco Molteni 75
Controllo di assetto nello spazio

D Uso dei modelli Matlab/Simulink


In questo lavoro sono stati studiati due modelli, presenti nella cartella 00 Simulazioni00 .
Per usare correttamente i modelli seguire questa procedura

1. Nella cartella 00 Campo magnetico00 è presente un le chiamato 00 norad.tle00 , dove


bisogna inserire i dati orbitali secondo lo standard NORAD.

2. Aprire Matlab e eseguire il le Found_B.m nella cartella 00 Campo magnetico00 .

3. Verra generato un le chiamato 00 B_orbit.mat00 .

4. Spostare il le 00 B_orbit.mat00 nella cartella 00 Satellite00 .

5. Da Matlab eseguire il le 00 simul.m00 .

6. Simulare uno dei 2 modelli sotto citati con Simulink.

7. Modello passivo: 00 MagnetiPermanenti.mdl00 .

8. Modello attivo: 00 MagnetoTorquer.mdl00 .

Marco Molteni 76
Bibliograa

[1] The PiCPoT project. PhD thesis, Politecnico di Torino.

[2] Stian Søndersrød Ose. Attitude determination for the Norwegian student satellite
nCube. PhD thesis, Norwegian University of Science and Technology Trondheim
Norway June 07, 2004, 2004.

[3] Kristian Svartveit. Attitude determination of the NCUBE satellite. PhD thesis,
Norwegian University of Science and Technology Trondheim Norway, 2003.

[4] Søren Vejlgaard Vedstesen Torben Graversen, Michael Kvist Frederiksen. Atti-
tude Control system for AAU CubeSat. PhD thesis, Aalborg University Institute
of Electronic Systems Department of Control Engineering, 2002.

14 settembre 2007 Marco Molteni 77

Potrebbero piacerti anche