Cerca in News Spazio

venerdì 9 marzo 2018

I computer di bordo dei veicoli spaziali di SpaceX, Falcon 9, Dragon, e Falcon Heavy

(Credit SpaceX, mosaic by News Spazio)

NEWS SPAZIO :- Ho trovato un po' di belle informazioni più o meno sparse e ben fatte su alcune caratteristiche dell'hardware e del software (computer e programmi cioè) che si trovano a bordo dei veicoli spaziali di SpaceX, Falcon 9, Dragon e Falcon Heavy.

Ho trovato alcuni aspetti interessanti che portano SpaceX a fare economia sull'intero processo di realizzazione e gestione di un servizio di lancio spaziale e mi fa piacere condividerli in questo post.

Tuttavia non sarà possibile avere un livello di dettaglio molto spinto poiché si tratta di tecnologia "sensibile" Americana con vincoli molto stringenti sulle informazioni divulgabili.
Ma possiamo farci un'idea.



Innanzi tutto, per un veicolo spaziale un computer di bordo affidabile è banalmente una questione di primaria importanza, assolutamente fondamentale. Quindi deve essere anche lui in grado di resistere al pericoloso ambiente spaziale.

Ma tutto ha inizio a Terra. Il lancio ed il raggiungimento dell'orbita sono caratterizzati da molte sollecitazioni meccaniche a cui è soggetto tutto il veicolo durante il volo atmosferico, forti vibrazioni che ne mettono alla prova l'integrità strutturale, del veicolo stesso e dei suoi sistemi.

Una volta raggiunto l'ambiente spaziale, sia un essere umano che i computer che governano la navicella devono essere resistenti alle radiazioni presenti. Sto parlando delle particelle ad alta energia emesse dal Sole che formano il vento Solare, da quelle che provengono dallo spazio esterno e da quelle che sono generate da periodici brillamenti Solari.
Il campo magnetico Terrestre offre una potente protezione, ma è fondamentale adottare ulteriori protezioni. Per quanto riguarda gli esseri umani ne abbiamo già parlato in un precedente post dedicato all'esplorazione di Marte.

Parlando invece delle protezioni necessarie ad un computer in orbita, uno dei problemi più insidiosi che si verificano (lo vediamo periodicamente alle sonde che viaggiano nel sistema Solare) è detto "Bit Flip".
Quando una particella ad alta energia colpisce un chip di memoria o un processore è possibile che possa far cambiare stato ad un bit (l'unità più piccola di memorizzazione), da 0 a 1 o da 1 a 0, falsandone il valore, o il calcolo nel caso di un processore.

Questo errore può propagarsi nei calcoli successivi e generare stati dell'elaboratore che non corrispondono alla realtà. Ed a seconda del sistema che ne viene colpito possono generarsi problemi molto molto grossi.

La tecnica più semplice utilizzata per proteggersi da questo problema è utilizzare i "bit di parità", usati comunemente da decenni ormai anche sulla Terra nelle trasmissioni e nelle memorizzazioni dei dati. In breve, si aggiunge un bit ad ogni pacchetto di informazione in modo che abbia valore 0 se il numero di bit a 1 nel pacchetto è pari, gli si assegna valore 1 altrimenti. In questo modo il numero di bit che hanno valore 1 nel pacchetto dati è sempre pari. E se un raggio cosmico ribalta il valore di un bit, è possibile stabilire che il pacchetto è stato alterato, proprio perché contando i bit a 1 questi sarebbero dispari.
E' un argomento piuttosto piuttosto tecnico, lo so, e può sembrare complicato. Non vi preoccupate se qualcosa vi è sfuggito, è importante avere un'idea generale (per approfondire andate qui).

Un altro modo per affrontare il problema delle radiazioni (tipicamente vengono usate più tecnologie insieme) è utilizzare componenti elettronici realizzati appositamente per essere più resistenti. E come certamente potrete immaginare si tratta di sistemi molto più costosi di quelli che si trovano normalmente in commercio.

Un'altra "tecnologia" comunemente utilizzata nei veicoli spaziali è quella di avere un certo livello di "ridondanza", replicare cioè i sistemi più critici, come appunto i computer di bordo, avere cioè un sistema principale A ed uno "di scorta" B (il suo Backup) da attivare se e quando si rilevassero problemi in A.

Non ho detto ancora niente sui materiali degli involucri dei computer, i quali possono offrire anch'essi una qualche forma di protezione ulteriore,

Ad ogni modo, il bit flip in sé non danneggia permanentemente un computer. Tipicamente facendo ripartire la macchina in questione (spegni e riaccendi, Control-Alt-Del, vi dice qualcosa?) il computer si riavvia correttamente ed è di nuovo pronto per mettersi all'opera.

SpaceX affronta il problema da un altro punto di vista. Fa l'ipotesi che non si possano proteggere completamente i componenti elettronici dalle radiazioni e progetta i suoi sistemi di conseguenza (Radiation Tolerant Design). Invece di utilizzare hardware certificato al volo spaziale (e quindi molto costoso) SpaceX usa componenti elettronici commerciali, di quelli che possiamo trovare nei nostri computer di casa.

Almeno nella sua prima versione del 2010, la capsula Dragon è dotata di 3 computer di volo (flight computer), ciascuno dei quali con un processore dual core x86. In ogni core gira un'istanza di Linux. In altre parole pensate di avere 6 computer tutti uguali che eseguono lo stesso programma e svolgono gli stessi calcoli.
All'interno dello stesso computer i risultati di ciascuno dei due core sono poi confrontati tra loro.

L'idea è avere quella che si dice una tripla ridondanza, cioè ognuno dei 3 computer di bordo è collegato ai vari altri sistemi (tipicamente microcontrollori) che agiscono sul veicolo spaziale. Se uno dei 3 computer è colpito da radiazioni e produce risultati errati ecco che i suoi due core danno valori differenti.
A questo punto questo computer non invia i comandi all'esterno ed in automatico parte un reboot della macchina "errata" e poi una sincronizzazione con gli altri per "riprendere" ad eseguire lo stesso programma nello stesso punto in cui si trovano gli altri.

Se invece i due core producono lo stesso risultato allora si assume che il calcolo sia corretto ed il comando viene inviato ai destinatari.

A questo punto i microcontrollori che devono ricevere lo stesso comando dai 3 flight computer effettuano un controllo. Se tutto va bene riceveranno 3 comandi uguali ed allora nessun problema, il comando viene eseguito (potrebbe essere quello di lanciare un getto da un razzo di manovra). Altrimenti, ne riceverà meno di 3, e quelli che riceveranno saranno altrettanto buoni. Quindi anche in questo caso il comando sarà eseguito.
Abbiamo quindi visto che questo sistema a tripla ridondanza riesce a funzionare correttamente nel caso in cui uno dei 3 computer desse un risultato errato.

Ma Dragon oltre ai 3 flight computer ha anche altri 18 sistemi che utilizzano tutti ridondanza tripla nei loro computer, per un totale di altri 54 processori per una sola navicella (la capsula Apollo ne aveva 3).

Lo stesso concetto di ridondanza si trova anche negli altri veicoli SpaceX. Il Falcon 9 ad esempio ha 3 computer per ogni motore Merlin del 1° stadio (per un totale di 9x3=27 processori) insieme ai 3 flight computer, e poi aggiungete i computer del 2° stadio. Questa era la situazione al 2012 (in base alle informazioni che ho trovato). Adesso è molto probabile che vi siano un numero maggiore di computer, almeno per gestire le fasi dell'atterraggio del booster.

Un'altra conseguenza interessante della scelta di SpaceX di utilizzare computer commerciali è che si trovano una maggior quantità di tecnici in grado di programmarli, molto più rari e più costosi da assumere se dovessero programmare i costosi computer appositamente progettati per resistere alle radiazioni, i quali lavorano con linguaggi ed ambienti di programmazione particolari (leggi anche qui molto più costosi) molto meno noti e quindi con meno personale "disponibile", ed anche qui più costoso da formare.

Inoltre il normale hardware commerciale è molto più economico ed è possibile effettuare molti e molti test di laboratorio, cosa impensabile per hardware ad hoc.

Infatti, per quanto riguarda il software, l'hardware di volo monta Linux come sistema operativo ed il linguaggio di programmazione usato è il C++, molto diffuso ed ancora attuale e con una grande comunità dietro per garantire tools affidabili. Inoltre come visualizzazione grafica di telemetria durante il volo viene utilizzato LabView su macchine Windows.

Un altro aspetto importante di razionalizzazione che concorre all'economia di scala di SpaceX è che il software  viene il più possibile condiviso tra tutti i veicoli spaziali. Il vantaggio maggiore è che un problema rilevato sul software del Falcon 9, quando viene corretto viene corretto anche su Dragon e Falcon Heavy, aumentando quindi l'affidabilità di tutti i veicoli spaziali di SpaceX.

5 commenti:

  1. Grazie: articolo interessante sul "dietro le quinte" di un progetto spaziale. Chiaro, semplice, ben scritto!
    Giorgio

    RispondiElimina
  2. Grazie del articolo Sergio, sarà interessante "vedere" l'hardware e il software del BFR/BFS.

    RispondiElimina
  3. Ehi bellissimo articolo!!

    Se ne capitassero altri leggiamo volentieri ;-)

    Anzi se volessi fare articoli più tecnici rispetto alle sole news mi trovi perfettamente d'accordo!!


    Gabriele

    RispondiElimina
  4. Complimenti per l'articolo completo, stimolante e informativo, cioè una rarità purtroppo nel panorama editoriale italiano, che spesso preferisce più banalizzare superficialmente che approfondire come hai fatto te.
    Buon Lavoro e continua ad informarci come da più di una decade ormai fai periodicamente.
    Ancora Grazie e Complimenti.

    RispondiElimina
  5. Grazie, un aspetto che non immaginavo!

    RispondiElimina

Chiunque può liberamente commentare e condividere il proprio pensiero. La sola condizione è voler contribuire alla discussione con un approccio costruttivo e rispettoso verso tutti. Evitate di andare off-topic e niente pubblicità, grazie.