• Non ci sono risultati.

2. CAPITOLO 2 LO SVILUPPO DEL SOFTWARE

2.1 Architettura generale del software

2.1.6 Mappa e spiegazione della logica del programma

Alla luce di tutte le osservazioni di cui sopra, l’architettura del codice è stata realizzata secondo lo schema in Fig. 2.2.

La mappa va letta da sinistra a destra e il codice di colori, come illustrato dalla legenda, caratterizza ogni blocco secondo la propria funzionalità:

• Grigio – sono documenti di vario genere e con diverse estensioni, che verranno specificate in seguito

• Giallo – sono i valori e le voci inseriti manualmente dall’utente, attraverso la GUI

• Verde chiaro – sono i risultati finali del memory budget, cioè le uscite della funzione runtime • Blu – sono i valori e le grandezze che vengono allocate e memorizzate, grazie al software, nel

Workspace17 di MATLAB.

• Rosso – è la funzione runtime (si veda Cap. 2.1.4)

38

• Celeste – Sono gli elementi visualizzabili a video (in questo caso si tratta di diagrammi) • Verde acqua – È la memoria su cui vengono salvati, alla chiusura del programma, i dati

ricavati

Fig. 2.2 - Il diagramma di flusso del funzionamento del programma

Nel seguito verrà illustrata la mappa più nel dettaglio. Si ricorda, tuttavia, che in questa prima parte del capitolo la trattazione è prettamente concettuale e che le metodologie utilizzate per implementare nel software lo schema logico di cui sopra verranno trattate nei prossimi paragrafi.

39

2.1.6.1 Caricamento dei dati nel programma

Come si può osservare, il punto di partenza nella mappa sono le informazioni contenute nel Report File, il documento nel quale sono stati salvati, tramite la simulazione di GMAT, i parametri di interesse in uscita dal propagatore, tra cui il vettore tempo indicato con Timing. Esso è fondamentale per referenziare ogni passo della simulazione eseguita da runtime con la rispettiva posizione sull’asse tempo (definita da data e ora), ed è quindi un ingresso che viene valutato dal blocco in rosso. Pertanto, il primo passaggio da eseguire dopo l’apertura del programma è il caricamento di tale Report File all’interno del programma.

Il secondo gruppo di operazioni da svolgere consiste nella compilazione delle caratteristiche inerenti ai sensori, ai bus, alle memorie ed ai trasmettitori.

In particolare, per i sensori vengono richiesti: un nome identificativo, il Data Rate (calcolabile inserendo singolarmente Sample Rate e Bit per Sample), un operatore logico che definisca le istanze in cui il sensore si trova acceso e funzionante, la capacità della memoria interna del sensore (il cosiddetto buffer) e il bus in uscita dal sensore, cioè il connettore attraverso il quale i dati possono essere scaricati a valle nello schema (cioè verso le memorie).

Per definire le caratteristiche del bus, l’utente deve poi inserire un nome identificativo, il Data Rate massimo che il bus è in grado di fornire ed eventuali overhead e compressione attuati dal bus (i quali possono variare il Data Rate, pertanto vanno presi in considerazione).

Nel terzo blocco partendo dall’alto vengono caratterizzate le memorie, per le quali si richiede, di nuovo, il nome, la capacità, ed il bus in arrivo alla memoria (ovvero il bus a monte della memoria, si veda la Fig. 1.3).

Infine vengono inseriti i dati anche per i trasmettitori di bordo: nome, Data Rate, eventuali overhead e compressione, le stazioni di terra con le quali il trasmettitore effettua il downlink, l’eventuale possibilità di trasmettere anche durante le ore notturne e la memoria a cui il trasmettitore è collegato, dunque la memoria che viene svuotata grazie al trasmettitore ad essa correlato.

2.1.6.2 Ipotesi semplificativa e applicazioni

Per quanto riguarda memorie e trasmettitori, va riportata una importante osservazione: come visto in Fig. 1.3, questi due elementi sono nella realtà spesso collegati tra loro tramite uno dei bus di bordo, dunque sarebbe logico caratterizzare ogni trasmettitore a seconda del bus ad esso collegato e non a seconda della memoria ad esso collegato, come invece detto poc’anzi. Tuttavia, per semplificare

40

l'approccio alla simulazione, supponendo che la velocità di trasmissione dei dati tra la memoria ed il trasmettitore annesso sia pressoché infinita. In altre parole, tutti i bit che arrivano alla memoria, sono immediatamente visibili anche per il trasmettitore, come se i due rappresentassero di fatto un unico elemento. È ovvio che la modellizzazione realizzata così come appena descritta introduce un’ipotesi semplificativa di cui è necessario tenere conto durante le analisi. Tuttavia, come si vedrà nel Cap. 4, è possibile trovare casi reali di satelliti nei quali la memoria in cui vengono immagazzinati i dati è un componente del trasmettitore stesso e pertanto non soffre di alcun rallentamento dovuto ad un limitato Data Rate che caratterizza un qualunque bus reale.

2.1.6.3 Elaborazione dei dati e risultati

Una volta completato il caricamento dei dati necessari alla simulazione, il programma conosce le caratteristiche e le specifiche del satellite necessarie a produrre le uscite richieste. Si passa dunque all’esecuzione del codice runtime: il blocco vede in ingresso le caratteristiche dei componenti (sensori, bus, memorie e trasmettitori) e i tutti i valori contenuti nel report file. Dopo il calcolo, il programma fornisce l’andamento nel tempo di occupazione dei buffer e delle memorie, la quantità totale di dati acquisiti dai sensori e scaricati dai trasmettitori e il Data Rate medio dei sensori. Inoltre, il software permette di visualizzare, sotto forma di diagrammi, l’andamento relativo all’occupazione dei buffer e alle memorie oltre ai valori delle altre voci sopracitate.

2.1.6.4 Caricamento e salvataggio dei risultati

Per conservare in memoria i risultati ottenuti dopo la chiusura del software, l’utente può seguire due strade: salvare l’intera gamma di uscite come variabili MATLAB, in un formato tale da poter essere, eventualmente, ricaricate nel programma, oppure procedere con il salvataggio dei soli plot in formato immagine. È inoltre possibile salvare la configurazione dei componenti (cioè quella descritta nel Cap. 2.1.6.1), per poterla ricaricare e modificare in futuro (le frecce che partono dai quattro blocchi blu principali possono condurre a runtime, oppure direttamente all’ Hard disk). Infatti, il programma è in grado di caricare dei risultati o uno scenario creati in precedenza.

41

Documenti correlati