POLITECNICO DI TORINO
Corso di Laurea Magistrale in Ingegneria Aerospaziale Anno accademico 2019-2020
DINAMICA E CONTROLLO DI VEICOLI SPAZIALI GRUPPO Fabio Dalla Rovere Stefano De Santi
Giacomo David Andrea Mammola
Progetto di Simulatore Orbitale: Manovra di Rendez-Vous e Docking Stefano De Santi
Docente Prof. Elisa Capello Collaboratore Ing. Nicoletta Bloise
Dati di progetto La manovra studiata e simulata in questo progetto è il rendez-vous tra un Target, considerato passivo, ed un Chaser con le seguenti specifiche: ●
Massa iniziale:
m = 200 kg
● ●
Dimensioni: Posizione iniziale:
1.2 x 1.2 x 1.2 m V-bar = - 20000 m H-bar = 0 m R-bar = 3000 m
●
Reaction reaction wheels: Tmax = 0.1 Nm J = 0.02 kgm2 n=4
●
Thrusters: Fmax = 1 N Is = 220 s 𝛥ton = 0.02 s n = 12
●
●
Momenti di inerzia: Jx = 48 kgm2 Jy = 48 kgm2 Jz = 48 kgm2 q = [0.5 0.5 0.5 0.5]
Assetto iniziale:
La posizione è riportata nel sistema LVLH: Local Vertical Local Horizontal. Questo sistema è centrato nel Target (che orbita a 400 km di quota, quindi su un orbita LEO), e quindi fornisce la posizione del Chaser rispetto ad esso. Ai fini dell’analisi tale sistema di riferimento viene considerato inerziale, sebbene a rigore non lo sia. Tutta la simulazione è stata effettuato a passo di integrazione fissato pari a 0.01 s, eccezion fatta per i blocchi: ● ●
Controllo: Algoritmo di Guida (escluso il PWPF):
0.02 s 1s
Questi vincoli simulano la necessità dei blocchi di controllo e guida di interfacciarsi con sensori che funzionano ad una frequenza fissata.
1.
Controllo di assetto
Il compito principale del blocco in oggetto è quello di allineare il sistema di riferimento Body del Chaser con quello LVLH del Target. Infatti, al fine di poter implementare la guida è necessario che i due sistemi siano allineati, così da applicare le forze necessarie per le manovre lungo le giuste direzioni. Il controllo di assetto deve anche garantire il mantenimento dell’allineamento acquisito contrastando i momenti di disturbo esterni. La dinamica di assetto del Chaser è definita dalle Equazioni di Eulero: queste correlano i momenti applicati allo spacecraft alle sue accelerazioni angolari, tenendo conto delle caratteristiche inerziali dello stesso. Gli attuatori designati a garantire il controllo d’assetto sono quattro reaction wheels, in configurazione tetraedrica. Data questa peculiarità (necessaria per garantire la ridondanza del sistema) si è reso necessario proiettare i quattro momenti angolari e i quattro momenti delle reaction wheels sui tre assi Body, al fine di poterle utilizzare nelle Equazioni di Eulero. Dal punto di vista della dinamica dell’attuatore, è stato sufficiente aggiungere un filtro passa basso che tenesse conto della massima coppia generabile dalle ruote (che per ovvie ragioni fisiche non possono fornire un momento infinito). Senza cambiare Plant e Attuatore sono stati implementate due differenti logiche di controllo, entrambe con feedback (e quindi closed-loop). Queste rappresentano il Controller della dinamica di assetto e, in base alla differenza tra l’assetto reale e quello desiderato, restituiscono il momento necessario a correggere tale errore. Tale momento ideale, deve passare per la dinamica dell’attuatore per poi entrare come input nelle Equazioni di Eulero. Queste, definendo l’assetto, forniscono in feedback al Controller l’attitude reale del satellite, chiudendo l’anello di controllo. Noto l’assetto, si può calcolare la matrice di rotazione LIB, in grado di convertire nel sistema di riferimento inerziale LVLH, le forze e i momenti definiti in assi Body. Questa non è necessaria ai fini del controllo d’assetto in quanto le Equazioni di Eulero sono definite in assi Body, ma è fondamentale per la dinamica di posizione.
1.1
Controllo PD
Seguendo questa semplice logica di controllo, è stato calcolato il momento necessario sui tre assi al fine di annullare il quaternione errore tra l’assetto desiderato e quello reale del sistema, usando due costanti. La prima, di carattere proporzionale da applicare all’errore stesso, e la seconda derivativa da applicare alla derivata dell’input, ovvero al vettore delle velocità angolari in questo caso. In base a quanto detto, il controllo PD è di tipo closed-loop: si basa sul feedback del sistema aggiornando continuamente il quaternione errore in base all’assetto raggiunto. Si è scelto un controllo basato sui quaternioni in quanto, sebbene siano meno intuitivi, non comportano problemi di implementazione numerica. Il contrario è vero per gli angoli di Eulero, che sebbene più intuitivi, comportano una singolarità: il gimbal lock. Vengono riportati i grafici relativi ai quaternioni, agli angoli di Eulero e alla velocità angolare del sistema, oltre ai momenti generati dalle reaction wheels.
Si possono inoltre riportare i valori di overshoot e steady state error dei quaternioni, al fine di apprezzare come questi rispettino i requisiti imposti (OSmax < 30% ess < 2%):
1.2
Controllo PID
La logica di controllo PID differisce dalla precedente per la presenza di un ulteriore costante, di carattere integrativo, che permette di migliorare la precisione dell’assetto dal punto di vista dello steady state error. Vengono riportati i grafici relativi alla dinamica di assetto ottenuti implementando questo controllore:
Si riportano i valori overshoot e steady state error, in termini di quaternioni. Inoltre, si può effettuare un confronto tra i valori a regime degli angoli di Eulero ottenuti con PD e PID, al fine di apprezzare la migliore precisione di quest’ultimo:
Aggiungendo la parte integrativa si sarebbe potuto incorrere in un peggioramento del transitorio, con un aumento delle oscillazioni e della durata. Questo svantaggio è stato arginato con un opportuno tuning delle costanti: si può notare infatti come la durata e le caratteristiche del transitorio siano del tutto simili a quelle ottenute con l’implementazione del PD.
1.3
Controllo SMC
Il limite dei controlli PD e PID è legata alla loro mancanza di robustezza: affinché funzionino in maniera efficiente è necessario un fine lavoro di tuning che però risulta applicabile solamente al sistema per il quale è stato progettato. Si è quindi proceduto all’implementazione di un controllore SMC (sliding mode control), che a differenza dei precedenti non necessita di tuning ed è un controllore robusto. I risultati, relativi alla dinamica di assetto, con l’implementazione di questo controllore sono i seguenti:
Si può notare che, implementando questo tipo di controllore, si ottiene un aumento del rise time e del transitorio, oltre che un peggioramento della precisione a regime. Quindi, lo SMC, in questo caso, risulta molto meno efficiente e preciso del controllo PD (o PID). Ciò è dovuto
ad un problema intrinseco dello SMC che impone sempre l’erogazione della massima coppia possibile, non sfruttando la capacità delle reaction wheels di fornire un’attuazione continua (si nota il fenomeno del chattering).
1.4
Failure di una reaction wheel
Al fine di dimostrare la ridondanza del sistema di controllo, è stata simulata la failure di una delle 4 reaction wheels, nel caso del controllore PD. Viene di seguito riportata l’evoluzione dell’assetto del Chaser in tale evenienza:
Si può apprezzare come la failure di una singola reaction wheel non comprometta il controllo dell’assetto del Chaser, che è comunque garantito, sebbene il sistema impieghi un tempo leggermente maggiore ad acquisire la configurazione desiderata. Questo testimonia la ridondanza del sistema di controllo d’assetto.
1.5
Momenti di disturbo
Solo alcuni momenti di disturbo sono stati modellati: ●
Il momento di gravity gradient:
●
Un momento esterno di entità costante sui tre assi: Merr = [0.01 0.01 0.01] Nm
Non sono stati considerati nell’analisi i disturbi sull’assetto dovuti alla pressione solare e alla resistenza aerodinamica: dal momento che il corpo ha simmetria cubica, ha senso supporre che il centro di pressione ed il centro aerodinamico coincidano con il baricentro, annullando il braccio delle forze aerodinamiche. Anche il momento dovuto ad un eventuale dipolo residuo è stato trascurato. Un blocco in grado di simulare il disturbo dovuto momento di gravity gradient è stato implementato, tuttavia a causa della geometria cubica del Chaser anche questo momento risulterà nullo, per il satellite in oggetto. Ciononostante, se si fosse interessati a studiare la manovra di un Chaser con differente geometria, sarebbe necessario solamente cambiare i dati di input (del file MATLAB). Tutti i grafici precedentemente riportati sono relativi alla dinamica in cui detti disturbi sono già considerati sotto forma di momenti esterni.
2.
Algoritmo di guida con manovre continue
Le manovre necessarie a portare il Chaser nella posizione richiesta (sulla stessa orbita del Target a 4 metri da esso) sono le seguenti: ●
● ● ●
Free Drift: al fine di portare i Chaser nella giusta posizione per l’inizio della trasferta di Hohmann e per permettere al controllo di assetto di allineare i sistemi di riferimento Body e LVLH Trasferta di Hohmann: al fine di portare il Chaser sulla stessa orbita del Target, 3000 metri dietro di esso Radial Boost: al fine di far avanzare fino a 500 metri dal Target, punto che costituisce l’inizio del cono di approccio Final Approach: al fine di portare il Chaser a 4 metri dal Target
Il docking propriamente detto non è stato considerato in questo progetto. Si sarebbe potuto implementare un algoritmo di guida che prevedesse manovre impulsive. Tuttavia, i thruster avrebbero impiegato un considerevole lasso di tempo per fornire il 𝛥v necessario a causa della loro ridotta potenza. L’ipotesi di impulsività della manovra sarebbe stata quindi un pessima approssimazione della reale dinamica del sistema. Tale incongruenza tra modello impulsivo e realtà avrebbe comportato errori considerevoli sulla precisione della manovra, che è quindi stata progettata come continua. Un tale modello è più attinente alla dinamica del sistema propulsivo implementato sul Chaser: le manovre continue infatti richiedono più basse forze di spinta, essendo basate su un'accelerazione costante dello spacecraft. Tuttavia, dal momento che i thruster possono solo funzionare al massimo della spinta (funzionamento on-off), si è reso necessario implementare un PWPF al fine di approssimare l’andamento continuo della spinta con una serie di impulsi a gradino. Questa dinamica dell’attuatore introduce un errore che può essere ridotto ad un livello accettabile tramite un tuning opportuno dei parametri. Le forze richieste sono state modellate tramite comando step e poi modulate dal PWPF. Dal momento che le Equazioni di Hill, alla base della guida, sono definite nel sistema LVLH, è stato necessario applicare la matrice LIB alle forze create nel sistema di riferimento Body. Dal momento che tale matrice di rotazione dipende dall’assetto, si può notare come il controllo di posizione sia legato a quello di assetto mentre questo sia indipendente dalla posizione del Chaser. Le immagini relative alla dinamica di posizione del Chaser sono ottenuti considerando un controllo di assetto effettuato con l’implementazione del PD.
2.1
Free Drift
In questa fase non vengono applicate forze al Chaser, che si muove liberamente sulla sua orbita sotto il solo effetto della forza gravitazionale. Il Chaser, essendo su un orbita più bassa rispetto al Target (quindi avendo una maggiore velocità di rotazione), riduce la sua distanza lungo V-bar da esso. Come detto, questa manovra è necessaria per permettere al controllo di assetto di allineare i due sistemi di riferimento In questo modo la trasferta di Hohmann viene
effettuata con il giusto assetto, e quindi con le forze impresse nella corretta direzione. In LVLH la manovra di free drift risulta, come prevedibile, una semplice traslazione lungo V-bar. Occorre precisare, che la trattazione di dinamica relativa sfruttando il sistema LVLH è valida per una distanza tra Chaser e Target inferiore ai 17 km. Per semplicità, si suppone che sia valida anche per il caso in oggetto che è border line, sebbene a rigore sarebbe necessario usare una trattazione con sistema di riferimento fisso (tipo ECI).
2.3
Trasferta di Hohmann
Fornendo un’accelerazione continua lungo V-bar, si aumenta l’energia dell'orbita del Chaser fino a portarla a coincidere con quella del Target. L’accelerazione è calcolata come segue:
γx =
−ω 2 Δz 4π
La trasferta di Hohmann è la manovra più efficiente, dal punto di vista del consumo di combustibile, per il trasferimento tra due orbite circolari. Tale manovra richiede un tempo pari a:
Δt = 2.3
ΔV γx
=
ω 2 Δz −ω 2 Δz 4π
=
2π ω
Radial Boost
Si applica al Chaser una spinta radiale nadir pointing al fine di ridurre la sua distanza dal Target. Questa manovra è connessa ad un’accelerazione di entità:
γz = 2.4
ω2 Δx 4π
→
Δt =
ΔV γz
=
ω 2 Δx −ω 2 Δx 4π
=
2π ω
Final Approach
Il Chaser deve percorrere l’ultimo tratto lungo V-bar ad una velocità fissata, che sia compatibile con il docking (nel caso in oggetto pari a 0.15 m/s), e senza uscire da un’area predefinita detta cone of approach. Quindi, è necessario imprimere la velocità richiesta con una spinta lungo V-bar, e al contempo fornire un’accelerazione costante per tutta la manovra in direzione R-bar. Questa è necessaria per impedire al Chaser di mettersi su un’orbita a più alta energia. L’espressione di questa accelerazione è:
γ z = 2ωV x Siccome il 𝛥v lungo V-bar non può essere considerato impulsivo per le considerazioni fatte in precedenza, è necessario ritardare l’accensione dei thruster nadir pointing, al fine di rientrare nel cone of approach. Arrivati alla fine di questo, è necessario fornire un 𝛥v per frenare il Chaser fino ad una velocità di 0.05 m/s.
E’ quindi possibile riportare i grafici, in LVLH, delle varie manovre separate e della manovra completa. Viene anche riportato il grafico del modulo del vettore velocità nel piano V-bar/R-bar:
Il costo di questa manovra, in termini di propellente consumato, è pari a: mF = 0.4784 kg Il consumo è stato calcolato considerando le accensioni dei thrusters, riportate di seguito, che risultano essere accettabili avendo durata minima di 𝛥tON = 0.03 s. Si riporta anche l’andamento, nel tempo, del consumo.
La massa del Chaser compare come moltiplicatore delle accelerazioni necessarie ad effettuare ogni singola manovra, al fine di determinarne la forza richiesta connessa. La massa non è stata quindi inserita come una costante (pari alla massa iniziale) ma è stata ricalcolata ad ogni iterazione, considerando il consumo di combustibile connesso alle accensioni a gradino dei thrusters.
2.5
Forze di disturbo
Al pari dei momenti esterni implementati nel controllo d’assetto, sono state considerate delle forze di disturbo agenti sulla posizione del Chaser. Queste, essendo definite nel sistema di riferimento Body, sono state inserite nello stesso blocco modellante i momenti di disturbo. Le forze dovute alla pressione della radiazione solare non sono state considerate, in quanto in orbite LEO il disturbo predominante è quello legato all’atmosfera residua. Questa viene calcolata come una forza di resistenza aerodinamica agente solo lungo l’asse x Body, di modulo:
F D = − 12 ρv 2 SC D Un’altra forza costante, agente sui tre assi è stata considerata come disturbo. Questa è definita come:
Ferr = [0.01 0.01 0.01] N Tutte le immagini precedentemente riportate non tengono conto della dinamica lungo H-bar, che deve comunque essere controllata. Poiché il Chaser orbita sullo stesso piano perifocale del Target idealmente dovrebbe avere una coordinata lungo H-bar costante e nulla. Tuttavia il disturbo Ferr concorre a deviare tale posizione dell’ideale. La posizione (e la velocità) lungo H-bar viene riportata, in modo da apprezzare come questa oscilli in una fascia di circa 2 cm: ampiezza accettabile ai fini della manovra.
3.
Proportional Navigation Algorithm
Il sistema descritto nel Capitolo precedente è di tipo open-loop: non essendoci alcun feedback la manovra procede indipendentemente dai disturbi esterni, se questi non sono modellati a priori. Dal momento che nella realtà non è possibile né conoscere la dinamica del sistema né prevedere tutti i disturbi, questo algoritmo GNC (Guidance Navigation Control) non è molto robusto. Si è quindi corroborato il progetto di un ulteriore algoritmo, alternativo a quello presentato, in grado di sopperire a questo difetto. L’algoritmo implementato è il PN (Proportional Navigation), mutuato dalla guida dei missili. La sua validità è limitata ai casi in cui il Chaser orbiti sullo stesso piano perifocale del Target; ipotesi rispettata dalla missione studiata. Pertanto, le uniche accelerazioni da fornire sono nel piano V-bar/R-bar:
In cui:
Essendo: ● ●
𝜆: angolo tra la congiungente Chaser-Target e l’asse V-bar Vc: la velocità di crociera del Chaser, relativamente al Target
Questo algoritmo, provvedendo un feedback sia sulla posizione che sulla velocità è molto più robusto del precedente, sebbene presenti anch’esso dei problemi. Anzitutto, non essendo progettato per la guida di satelliti, non rispetta il cone of approach, ma segue una traiettoria di avvicinamento diversa. Pertanto, il punto di destinazione di tale manovra è stato fissato all’inizio del cone of approach, a 500 m dal Target. Inoltre, i valori suggeriti di N = 3,4,5, non risultavano compatibili con una manovra precisa. Il Chaser, arrivava in un intorno del Target di raggio pari a circa 50 m, per poi divergere. Dal momento che i valori di N sopra citati sono tipici per la guida di un missile, la cui velocità relativa all'obiettivo è, per ovvie ragioni di missione, molto maggiore di quella connessa ad una manovra di rendez-vous, si è provveduto ad aumentarne l’entità. Con N = 6, la manovra ottiene una precisione molto maggiore, compatibile con la geometria del cone of approach. Si raggiunge infatti la posizione di: V-bar = -500 m
H-bar = 0.08 m
R-bar = -0.0002 m
La manovra ottenuta, tiene conto dei disturbi su V-bar ed R-bar in maniera dinamica: questi non sono stati definiti a priori ma l’algoritmo calcola le accelerazioni in relazione alla
loro entità, correggendo continuamente la posizione del Chaser. Questo tuttavia non è valido per i disturbi su H-bar, la cui correzione avviene come nell’algoritmo visto in precedenza. Questo tipo di guida, sostituisce le manovre di Free Drift, trasferta di Hohmann e Radial Boost con un’unica manovra continua con approccio closed-loop. Il Final Approach è invece effettuato come al punto precedente. La manovra caratterizzata da guida PN appare come segue:
Possono essere fatte, anche per questo tipo di manovra, delle considerazioni sul consumo di propellente: mF = 0.5315 kg Si può quindi notare come questo tipo di algoritmo di guida, sebbene più robusto, sia connesso ad un consumo di propellente più elevato pur portando il Chaser all’inizio del cone of approach e non a 4 metri dal Target.
APPENDICE 1 Rigid body dynamics with quaternions Lo scopo di questa appendice è illustrare l’implementazione delle equazioni di Eulero al fine di studiare la dinamica di un satellite, considerato come un corpo rigido, in termini di quaternioni. A partire dalle condizioni iniziali di assetto e rotazione, e conoscendo le caratteristiche di inerzia del satellite, è stata studiata la sua evoluzione nel tempo in assenza di momenti esterni. I risultati sono i seguenti:
Si può notare come, in assenza di disturbi esterni, le componenti del momento angolare del sistema si mantengano costanti nel tempo nel sistema inerziale LVLH. Lo stesso vale anche per il modulo del momento angolare e per l’energia del sistema, sebbene questo non sembri osservando le figure. Tuttavia, concentrandosi sulla scala delle fluttuazioni si può notare come queste siano minime e di fatto dovute solamente ad errori di natura numerica commessi nell’integrazione delle equazioni. Quindi, al netto degli errori numerici, energia e momento angolare del satellite sono costanti, in accordo con la teoria, nell’evoluzione temporale del sistema privo di forzanti esterne.
APPENDICE 2 Manoeuvres of spinning spacecraft In questa appendice si è studiata la dinamica di un satellite spinnante sottoposto all’azione di una serie di momenti impulsivi, generati dall’azione di thruster, atti al cambiamento dell’inclinazione dell’asse di spin del satellite stesso. Una prima accensione dei thruster è stata effettuata al fine di cambiare l’inclinazione dell’asse mentre le successive si sono rese necessarie per fermare il moto di precessione instauratosi a seguito della prima accensione.
Si possono notare in questa ultima figura la prima accensione atta a cambiare l’assetto e le successive due contemporanee ma su assi diversi necessarie a fermare il moto di precessione, testimoniato dall’evoluzione degli angoli di Eulero e ancor di più dalle velocità angolari in assi body, non riportate in questa relazione ma calcolate nel corso dello studio. Si è inoltre provveduto a calcolare la massa di combustibile consumata in base alla simulazione, confrontando il risultato con la il valore derivato dall’analisi analitica: ● ●
Risultato analitico: Risultato della simulazione:
mfuel = 0.00139 kg mfuel = 0.00165 kg
APPENDICE 3 Simulink model of a single axis PD controller with PWPF Viene studiato in questa appendice il funzionamento di un controllo d’assetto effettuato mediante thruster, azionati secondo una logica PD. Dal momento che i thruster non sono regolabili in termini di spinta, ma hanno un funzionamento on/off, si è implementato un PWPF necessario per discretizzare il comportamento continuo ideale necessario per effettuare la manovra. Nel caso in oggetto questa consiste nell’acquisizione di un certo angolo 𝜗: è quindi un controllo su un solo asse in termini di angolo di Eulero. Il sistema di controllo è stato opportunamente tunato definendo i seguenti parametri del controllo: Uon = 1
Uoff = 0.25
Kf = 2.5
𝜏 = 0.095
APPENDICE 4 Quaternion feedback control with RCS In questa appendice è stato generalizzato quanto effettuato nella precedente sui tre assi, e implementando il controllo d’assetto in termini di quaternioni. Tra i quattro sistemi di controllo proposti, si è scelto di implementare i controlli 3 e 4. Parametri controllo 3
Uon = 1 Uoff = 0.7 Kf = 5 Kp = [2.5 2.5 2.5] Kd = [8 8 10]
𝜏 = 0.6
Parametri controllo 4 Uon = 0.9 Uoff = 0.85 Kf = 4.5 𝜏=1 𝛼 = [0.03 0.01 0.01] 𝛽 = [0.01 0.03 0.03] Kd = [300 240 300]