• Non ci sono risultati.

Modello dinamico con Simulink

Nel documento Università degli Studi di Bologna (pagine 119-127)

3.4 Creazione di un modello di simulazione dinamico

3.4.2 Modello dinamico con Simulink

107

Quando β assume i valori limite di ± 90°, vd raggiunge il suo valore massimo

s

d v

v max = , generando il massimo spostamento Doppler fdmax:

c v f f max max d c d ⋅ = (3.24)

Nel modello di simulazione dinamico, che verrà illustrato nella sezione successiva, non si terrà conto dell’effetto Doppler, in quanto la trattazione delle contromisure da prendere per contrastare questo fenomeno non rientra nei limiti preposti in questo lavoro.

3.4.2 Modello dinamico con Simulink

Il modello che si intende realizzare deve rappresentare in maniera abbastanza fedele (anche se, come si è visto, sono state introdotte alcune semplificazioni pratiche) una sorgente di segnali in movimento, che nel caso in esame è un satellite del sistema IRIDIUM.

Una volta avviato Simulink nel modo già spiegato precedentemente, occorre creare un nuovo modello:

− o con un clic del mouse sull’icona che somiglia ad un foglio di carta vuoto;

− oppure selezionando l’opzione New dal menu File del browser di

Simulink.

Si aprirà la finestra Untitled nella quale si può creare il nuovo modello. Nel

browser si selezioni la categoria di blocchi Sources (cliccando una volta): nella

parte destra della finestra saranno visualizzati i blocchi disponibili per la categoria selezionata. Si clicchi sul nome o sull’icona del blocco Signal Builder e, tenendo

premuto il pulsante del mouse, si trascini il blocco nella finestra del nuovo modello, infine si rilasci il pulsante del mouse.

Si noti che, quando si clicca sul nome di un blocco, nella parte superiore della finestra del browser appare una breve descrizione della funzione svolta dal blocco

Capitolo 3 Algoritmo MVDR adattativo

108

selezionato. E’ inoltre possibile accedere alla guida on-line di un blocco, facendo clic con il pulsante destro del mouse sul nome o sull’icona del blocco e selezionando Help dal menu che appare sullo schermo.

Si clicchi due volte sul blocco Signal Builder che si trova nella finestra del nuovo

modello: apparirà una nuova schermata identificata dalla scritta “Signal Builder (untitled/Signal Builder)” in cui viene rappresentato nel tempo un segnale di tipo impulso rettangolare denominato “Signal 1”.

Si aggiunga al segnale presente di default un segnale costante: o si preme il bottone nel menu generale dei comandi in alto a sinistra oppure bisogna cliccare su Signal→New→Constant sempre nel suddetto menu.

Sotto a “Signal 1” si troverà un segnale che mantiene costantemente nel tempo un valore pari a 0 e denominato “Signal 2”. Ora è possibile eliminare “Signal 1” che non serve nel modello che si vuole creare: si posizioni il mouse all’interno del grafico che rappresenta “Signal 1” e, dopo aver cliccato con il tasto destro del mouse, si clicchi su Delete. In questo modo nella schermata del Signal Builder

sarà presente solo il segnale costante (“Signal 2”), che comunque si può rinominare a piacimento (si clicchi una volta su Signal 2 (shown) in basso a destra

e si modifichi il nome nel campo Name in basso a sinistra).

E’ necessario a questo punto cambiare l’intervallo temporale (in secondi) riportato sull’asse delle ascisse (Time (sec)), cliccando nel solito menu Axes→Change time range.. e poi settando i valori corretti nei campi Min time e Max time; nel caso in esame si è scelto di inserire Min time = 0 e Max time = 1000

in modo da poter definire successivamente l’andamento di un segnale nell’arco di 1000 secondi. In maniera simile si devono modificare i valori limite visualizzati sull’asse delle ordinate: dopo aver premuto Axes→Set Y display limits.., si

possono settare i valori desiderati nei campi Minimum e Maximum; nel modello si

è considerato un range che va da -90 a +90.

Il segnale costante (precedentemente creato) può essere trasformato in un segnale variabile linearmente nel tempo cambiando solo la posizione in ordinata dei suoi punti estremi: questo si può fare cliccando il punto estremo che si vuole spostare

Capitolo 3 Algoritmo MVDR adattativo

109

e, tenendo premuto il pulsante del mouse, trascinandolo verticalmente nella posizione desiderata. Nel modello si è preso in considerazione un segnale che variasse tra -50 e 9.6667 in un tempo di 1000 secondi, come illustrato in fig. 3.10. I valori in ordinata non sono stati scelti a caso: si consideri innanzitutto che il segnale che si vuole generare nel modello deve rappresentare lo spostamento continuo nel tempo di un satellite, in termini di variazione della DOA ( [°] ) del segnale da esso emesso. La durata temporale del segnale creato nel modello è stata stabilita arbitrariamente (1000 sec) e, ricordando la velocità di spostamento di un satellite IRIDIUM, 3.58 °/min, si è calcolato che, in un tale intervallo

temporale (equivalente a 16 min e 40 sec), il satellite si spostasse di circa 60°; il

valore di partenza della DOA (-50°) è stato scelto anch’esso arbitrariamente.

Fig. 3.10: segnale che rappresenta la variazione lineare nel tempo della DOA del segnale di un satellite IRIDIUM

Capitolo 3 Algoritmo MVDR adattativo

110

Per completare lo schema di simulazione, si segua questo procedimento, facendo riferimento alla figura 3.11 (finestra del modello che si vuole creare):

Fig. 3.11: finestra del modello di Simulink

1. si selezioni e si inserisca il blocco Scope dalla libreria Sinks. Si

colleghi poi la porta di output del blocco Signal Builder alla porta di

input del blocco Scope. Per fare questo, si posizioni il cursore sulla

porta di input o di output; il cursore assumerà la forma di una freccia; tenendo premuto il pulsante del mouse, si trascini il cursore sulla porta dell’altro blocco. Simulink collegherà le porte con una freccia che

punta alla porta di input.

2. Si selezioni e si inserisca il blocco To Workspace dalla libreria Sinks e

il blocco Clock dalla libreria Sources.

3. Si selezioni e si inserisca il blocco Mux dalla libreria Signal Routing;

si faccia doppio clic su questo blocco e si imposti Number of inputs a

Capitolo 3 Algoritmo MVDR adattativo

111

4. Si colleghi la porta di input inferiore del blocco Mux alla porta di

output del blocco Clock e si colleghi la porta di input del blocco To Workspace alla porta di output del blocco Mux. Per effettuare l’ultimo

collegamento, si posizioni il cursore sulla porta di input superiore del blocco Mux e, tenendo premuto il pulsante del mouse, si trascini il

cursore sulla linea che collega il blocco Signal Builder al blocco Scope. Il modello adesso dovrebbe essere simile a quello illustrato

nella figura 3.11.

5. Si clicchi 2 volte sul blocco To Workspace. Si può specificare

qualsiasi nome di variabile come output; la variabile di default è

simout. Si cambi il suo nome in y nel campo di testo Variable name. Si

specifichi Array come formato di salvataggio nello spazio Save format. Si utilizzino i valori di default per gli altri parametri (che

devono essere inf, 1, -1, rispettivamente, per Limit data points to last, Decimation e Sample time (-1 for inherited). Si faccia clic su Ok.

Tramite il blocco To Workspace si possono esportare i risultati della

simulazione nel workspace di Matlab, dove potranno essere utilizzati come veri e propri dati di ingresso.

Prima di eseguire la simulazione è necessario impostare alcuni parametri.

Ciò che alla fine della simulazione interessa avere è un insieme discreto di valori (raccolti poi in un array), ciascuno dei quali rappresenti l’angolo di arrivo del segnale emesso dalla sorgente in movimento (in questo caso il satellite) in corrispondenza di un insieme discreto di istanti di tempo.

La discretizzazione del segnale tempo continuo generato precedentemente attraverso il blocco Signal Builder può essere raggiunta settando un determinato

valore in Sample time (dalla finestra del Signal Builder si clicchi in File→Simulation options); nel modello sotto studio si è posto arbitrariamente un Sample time pari a 20 [s].

Bisogna anche stabilire il tempo di inizio e il tempo di arresto della simulazione: dalla finestra del modello si vada in Simulation→Configuration

Capitolo 3 Algoritmo MVDR adattativo

112

Parameters..→Solver e si settino i valori di Start time e Stop time. Si è stabilito di

fermare la simulazione ad un tempo di 980 s (Start time è ovviamente posto a 0),

in quanto si volevano avere 50 valori discreti di DOA (980/20 = 49 più il valore all’istante 0). Inoltre vanno fissati alcuni altri parametri nella stessa finestra, secondo l’indicazione di fig. 3.12.

Fig. 3.12: finestra in cui vengono settati i parametri del solutore numerico della simulazione

In generale, la variabile di output del blocco To Workspace sarà una matrice

avente tante righe quanti sono i passaggi della simulazione e tante colonne quanti sono gli input del blocco.

La configurazione adottata per la simulazione da effettuare produrrà come uscita del blocco To Workspace (la variabile di output y) una matrice con 2 colonne

(ciascuna colonna è un array di valori). La prima conterrà i valori discreti delle DOAs (in questo caso sono 50 valori), la seconda i corrispondenti istanti di tempo. Si noti che gli istanti di tempo presenti nella seconda colonna di y vengono

generati dal blocco Clock, che infatti è il secondo ingresso di To Workspace. Clock ha un parametro: Decimation, che stabilisce ogni quanti step temporali

Capitolo 3 Algoritmo MVDR adattativo

113

della simulazione generare in output il tempo. Nel caso esaminato Decimation va

impostato a 20.

Ora è tutto pronto per avviare la simulazione: o cliccando su Simulation nella

finestra del modello e selezionando Start; oppure premendo il bottone nella barra degli strumenti della stessa finestra.

La fine della simulazione sarà segnalata dal suono di una campana. Con un doppio clic sul blocco Scope è possibile immediatamente rendersi conto se il

segnale prodotto è proprio quello cercato.

Dopo aver cliccato l’icona del binocolo di Scope per abilitare la scala automatica,

nel caso in esame si può osservare la seguente figura:

Fig. 3.13: visualizzazione, attraverso il blocco Scope, del segnale prodotto a seguito della simulazione

Capitolo 3 Algoritmo MVDR adattativo

114

Aprendo la finestra del Workspace di Matlab, si può constatare la presenza dell’array y, creato a seguito della simulazione e importato grazie al blocco To Workspace del modello di Simulink; l’array stesso è direttamente visualizzabile

mediante un duplice clic: ciò che si ottiene è esattamente questo (fig. 3.14):

Fig. 3.14: visualizzazione dell’array y nel Workspace di Matlab

Qualunque programma di Matlab vede questo array come un dato di ingresso e, perciò, può accedere agli elementi in esso contenuti.

Capitolo 3 Algoritmo MVDR adattativo

115

Nel documento Università degli Studi di Bologna (pagine 119-127)