Professional Documents
Culture Documents
E particolarmente indicato per costruire schemi a blocchi di sistemi dinamici lineari e non lineari
e per eseguire la loro simulazione. Mette a disposizione una grande serie di moduli predefiniti,
con la possibilit per lutente di crearne di nuovi, eventualmente anche programmati in C o
Foltran.
Per far partire Simulink occorre essere nello shell di Matlab e cliccare sullicona:
clicca qui
Librerie Simulink
clicca qui apparir la seguente pagina di lavoro
dov possibile inserire i blocchi delle
librerie.
Creare un modello:
1. Trascinare o copiare e incollare dalla finestra della libreria i blocchi desiderati nel nuovo
modello
2. Connettere le icone dei blocchi
1. Posizionare il mouse in corrispondenza della porta di uscita del primo blocco che si vuole
connettere e trascinare il mouse fino alla porta di entrata del secondo blocco
2. Posizionare il mouse in corrispondenza della porta di uscita del primo blocco che si vuole
connettere e trascinare il mouse fino al secondo blocco
3. Selezionare il primo blocco o gruppo, poi selezionare il secondo tenendo premuto il tasto
CTRL
Connessioni ramificate
Trascinare il blocco da inserire sulla linea di connessione tra i due blocchi principali
Annotazioni
1. Per inserire delle notazioni fare un doppio click su unarea vuota del modello, in questo
modo si apre una casella di testi
2. Per inserire formule, lettere greche, ecc usando la notazione Latex, selezionare
lannotazione e selezionare Enable TeX Commands sal men Edit
3. Creando un modello Simulink da un file .m usare:
add_block(built in/Note,test/Pippo,Positione,[550 0 0 180])
La creazione di un sottosistema permette di semplificare la visualizzazione di un modello
complesso e rende pi semplice organizzare la struttura anche gerarchica dei blocchi
Creazione di un subsystem
1. Aggiungere un Subsystem block al modello (cercare nelle librerie), poi aprirlo e inserire i
blocchi voluti; usare Import blocks e Outport blocks per usare input e output esterni
2. Aggiungere i blocchi al modello normalmente, poi raggrupparli selezionandoli e cliccare su
Create Subsystem dopo aver cliccato col tasto destro del mouse
3. E possibile impostare permessi di accesso di lettura e scrittura ai blocchi di un sottosistema
dal dialog box impostando Access parameter ReadOnly o NoReadOrWrite
Sottosistemi condizionali
1. enable susystem: Enable block dalla libreria Signals & Systems
2. triggered subsystem: Trigger block dalla libreria Signals & Systems
3. triggered and enable subsystem: Enable + Trigger block dalla libreria Signals & Systems
4. control flow subsystem: Control Flow Blocks con i flussi di controllo for, if-else, switch, while
Workspace
Simulink ha un proprio workspace in cui salvare le variabili simile a quello di Matlab. Le variabili
si un modello sono visibili solo allinterno del workspace di quel modello.
Se esistono due variabili, uno nel wokspace di Matlab, laltro in quello del modello, con lo stesso
nome, Simulink user la variabile workspace del proprio modello senza pericolo di conflitto con
altri modelli.
S-Function
Una S-Function una descrizione in linguaggio macchina di un blocco di Simulink. Queste
funzioni possono essere scritte in Matlab, C, C++, Ada o Fortran. La S-Function in C, C++, Ada e
Fortran S-functions sono complicate come MEX-files e vengono linkate dinamicamente a Matlab
quando necessario. Le S-functions consentono di aggiungere dei propri blocchi ai modelli
Simulink
Funzioni MATLAB
E possibile inserire una funzione scritta in Matlab usando il blocco MATLAB FUNCTION
Parametri di blocco
E inoltre possibile cambiare i valori dei parametri di blocco durante una simulazione, sia tramite
la finestra di dialogo delle propriet del blocco, sia tramite riga di comando da Matlab usando
set_param.
Oltre alle librerie disponibili da Simulink possibile creare delle proprie librerie.
Per fare ci sufficiente selezionare dal men la voce File > New > Library
Prima di poter copiare dei blocchi da una libreria necessario averla salvata!
Una volta aperta una libreria non pu essere modificata, pu essere sbloccata selezionando dal
men Edit > Unlock Library
Note
1. Time step: determinato dal componente che cambia pi velocemente nel sistema simulato
2. Per effettuare il run di un modello Simulink da un file .m usare il comando
sim <modelname>
3. La maggior parte dei blocchi di Simulink ha un proprio set di parametri che possono avere
dei valori passati da un file .m. Questo consente di avere simulazioni in batch con
ridefinizioni dei valori tramite iterazioni in un ciclo di controllo
Come esempio costruiamo un modello di un sistema con una funzione di trasferimento di ordine
1, con entrata di tipo a gradino unitario.
Prendiamo dalla biblioteca Souce il modulo Step input, da Continuous il modulo Transfer Fcn e
da Sinks il modulo Scope.
Con un doppio click del mouse su un blocco possiamo settare i parametri, direttamente per
mezzo di finestre di dialogo.
In seguito uniamo i blocchi tra di loro utilizzando il mouse con il tasto sinistro premuto.
Possiamo vedere come il cursore del mouse si trasformi in una doppia croce avvicinandosi
allentrata del blocco successivo, per poi diventare la punto di una freccia al momento che il
collegamento effettivo.
Costruiamo un modello Simulink che risolva lequazione differenziale:
1. Nella libreria del Simulink cercare il blocco Sine Wave e trascinarlo sul nuovo modello
2. Cercare nella libreria il blocco Integrator e trascinare anche questo sul nuovo modello
3. In fine cercare il blocco Scope e trascinare anche questultimo nello stesso modello Simulink
Amplitude: 10
Frequency (rad/sec): 2*pi*50
Initial condition: -1
Il risultato analitico
2. Condizione iniziale 0
dalla quale sar necessario isolare laccelerazione e successivamente integrare due volte ed
ottenere la posizione rappresentata dalla funzione x(t).
Risultati:
posizione
velocit
accelerazione
Come detto precedentemente, il Simulink utilizza un proprio Workspace nel quale alloca le
variabili utilizzate nel modello.
Lutilizzo di questo Workspace utile per effettuare il salvataggio dei plot delle grandezze che si
desidera monitorare nella simulazione.
Con riferimento allesempio precedente, aggiungere per ciascuna variabile da monitorare un
blocco to workspace e collegare al suo ingresso la grandezza tempo-variante. Inoltre
necessario aggiungere anche un ulteriore to workspace per la grandezza tempo che viene
conteggiato con il blocco clock.
Per i blocchi to workspace necessario inserire il variable name ed inoltre impostare il Save
format su Array.
Questo permette al Matlab di salvare i valori delle grandezze monitorate in un vettore (array)
per effettuare successivamente, in fase di plot lassociazione della grandezza al corrispettivo
istante temporale del clock.
Avviare la simulazione e al termine aprire il Command Window di Matlab e digitare il seguente
comando:
>> plot(ts,posizione);
>> title('posizione')
>> xlabel('tempo [s]')
>> ylabel('posizione [m]')
>> grid
>> figure(2)
>> plot(ts,velocita)
>> title('velocit')
>> xlabel('tempo')
>> ylabel('velocit [m/s]')
>> grid
>> figure (3)
>> plot(ts,accelerazione)
>> title('accelerazione')
>> xlabel('tempo [s]')
>> ylabel('accelerazione [m/s^2]')
>> grid
Ciascuna immagine pu essere salvata come file JPEG in una qualsiasi cartella del PC.