Simulink

Simulink è uno strumento che opera in ambiente Matlab, è un potente strumento interattivo per la modellazione, simulazione ed analisi dei sistemi dinamici. Il suo ambiente di sviluppo grafico consente di creare rapidamente modelli di simulazione mediante il collegamento di blocchi funzione, il suo nome infatti deriva dalle parole Simulation (simulazione) e Link (collegamento).

Simulink è lo strumento ideale per la progettazione di sistemi di controllo, DSP (Digital Signal Processor), sistemi di comunicazione e di altre applicazioni in cui la simulazione gioca un ruolo fondamentale. Ecco alcuni pacchetti software opzionali che possono aumentarne le prestazioni in determinati campi di interesse:

» Real-Time Workshop: consente di compilare in C il modello Simulink, per una più veloce esecuzione, anche stand-alone (fuori da Simulink) e di realizzare una simulazione in real-time.

» Real-Time Windows Target: permette di eseguire la simulazione in tempo reale su normali PC con sistemi operativi tipo Windows dotati di interfacce di I/O verso sistemi fisici. I modelli, compilati in C col RealTime Workshop, vengono eseguiti da Windows. Con le schede di I/O (fornite da altre ditte) si ottiene una interazione tra sistemi hardware e sistemi virtuali: Hardware in the loop. Per via dei sistemi operativi che non sono Real-Time, ha dei limiti nei tempi di simulazione, comunque adeguati alla maggior parte dei processi relativamente lenti.

» xPC Target: simile al precedente, utilizza sempre un target PC, ma con sistema operativo Real-Time.  I modelli si sviluppano su un PC con sistema operativo normale e si trasferiscono sul target per essere eseguiti in tempo reale.

» SimMechanics: per la simulazione di sistemi meccanici, permette facilmente di analizzare cinematismi quali corpi e giunzioni, in quanto dispone di una ricca libreria di componenti.

» Fuzzy Logic Toolbox: utilizza questa interessante tecnica per i regolatori  dell’ultima generazione.

» Stateflow: permette di modellare macchine a stati.

» Virtual Reality Toolbox: con questo pacchetto si possono costruire scenari 3D per le rappresentazioni grafiche di realtà virtuale, che permettono un più facile apprendimento del comportamento dinamico dei sistemi complessi.

» SimPowerSystems: ampia libreria che permette di simulare gli impianti elettrici in tutte le loro componenti, dai generatori, agli impianti di distribuzione e agli utilizzatori.

Le proprietà principali di Simulink possono essere riassunte nel seguente modo:

» facilità  di utilizzo: mediante interfaccia grafica è relativamente facile costruire un modello;

» ampia libreria di blocchi predefiniti;

» debugger grafico: permette di visualizzare il blocco o i blocchi che danno problemi;

» model browser per navigare in modo gerarchico nel modello;

» finestra  di ricerca per modelli e librerie;

» blocchi personalizzati che possono incorporare codice C, Ada, MATLAB e Fortran.

La struttura

Analizziamo come è strutturato:

I Blocchi

Sono sotto-sistemi con un ingresso ed una uscita, un blocco SIMO avrà ingresso ed uscita scalari, un MIMO avrà dei vettori. I  blocchi source avranno solo l’uscita, i  blocchi sink solo l’ingresso. Il blocco ha un nome che lo identifica e la funzione che lo caratterizza.

I modelli

Sono un’insieme di blocchi connessi tra loro da collegamenti.

Le librerie

Sono delle raccolte di blocchi che servono per costruire i modelli, alle librerie di Simulink è possibile aggiungere le proprie, basta creare un modello con i propri blocchi e salvarlo.

Il Workspace

E’ quello di Matlab, in esso possono venire definite, con un opportuno programma di lancio, costanti e variabili prima di avviare la simulazione e riversarvi  i dati durante il run per una post-processazione dei risultati. Simulink può anche prelevare delle serie temporali dal work-space durante la simulazione.

Algoritmi di integrazione

In Matlab vi sono numerosi altri metodi di integrazione che vanno scelti in funzione del tipo di sistema che occorre simulare. Particolare cura va anche posta nella scelta del passo temporale o step di simulazione. Insieme a Simulink vengono forniti più di 200 blocchi integrati che implementano le funzioni di modellazione più comunemente richieste. Essi sono raggruppati in librerie che raccolgono i blocchi con funzioni simili, eccone alcune:

» Sources, sorgenti di segnale come generatori ed altro da mettere in ingresso al sistema;

» Sinks, dispositivi che devono visualizzare le uscite od instradarle nel workspace;

» Discrete,  elementi  di libreria per l’analisi in tempi discreti (trasformate z);

» Continuous, elementi di libreria per l’analisi nel continuo (trasformate di Laplace);

» Discontinuites, elementi di libreria non lineari, come relay, zone morte, etc...;

» Math Operations, blocchi matematici e logici;

» Look-Up Tables, blocchi rappresentanti tavole ad una o più dimensioni che vengono interpolate;

» Signals Routing, elementi per trasformare più scalari in un vettore (e viceversa), deviatori;

» User Defined Functions, per chiamare funzioni create dall’utente in C o Fortran o Matlab. Inoltre Simulink mette a disposizione funzioni per la creazione di blocchi e librerie di blocchi personalizzati.

È possibile personalizzare non solo la funzionalità di un blocco ma anche la sua interfaccia utente, utilizzando icone e finestre di dialogo personalizzate. Ad esempio è possibile creare blocchi per modellare  il comportamento di componenti specialistici meccanici, circuiti o software, come motori, inverter, servovalvole, impianti per la produzione di energia, filtri, gomme, modem, ricevitori o altri componenti dinamici. I blocchi personalizzati possono essere salvati in una propria libreria di blocchi per il futuro utilizzo e possono essere condivisi con gruppi di lavoro, distributori e clienti (figura 1).

Figura 1: esempi di blocchi di Simulink

Figura 1: esempi di blocchi di Simulink

L’avvio

Un modo è quello di battere il comando simulink nella command window, ma il più comodo è quello di cliccare sulla icona del desktop di Matlab (alla sinistra del punto interrogativo), in entrambi i casi viene avviato il Simulink Library Browser. Quindi si può procedere a creare un nuovo modello (icona foglio bianco) o caricar ne uno già esistente. Per modelli complessi è molto meglio creare un programma Matlab (m-file) dove vengono assegnate le variabili e le costanti del modello, alla fine del file si chiama il modello Simulink, quindi si può avviare la simulazione. Nel caso si voglia creare un nuovo modello, cliccando sulla icona relativa (foglio bianco) si apre una finestra corrispondente al nuovo modello, che avrà come nome di default untitled’, salvando il file “save as”, si potrà dare un nome opportuno. Per disegnare il modello si trascinano (drag and drop) i blocchi dalle librerie al modello. I fili di collegamento si tracciano aiutandosi con il  mouse. Un modo automatico consiste nel selezionare il blocco di partenza, tenere premuto il tasto ‘ctrl’ della tastiera, spostare il mouse sul blocco di destinazione e ciccare sul pulsante destro del mouse.

Esempio: come risolvere un’equazione differenziale

Analizziamo adesso un esempio semplicissimo per vedere, in particolare, come poter gestire una simulazione. Negli articoli successive vedremo esempi di sistema di applicazione elettronica. Vogliamo costruire un modello Simulink che risolve la equazione differenziale:

con la condizione  iniziale x(0) = -1. Si inizia delineando lo schema a blocchi di questo modello matematico. L’ingresso è la funzione di forzamento: 3sin(2t); l’uscita, invece, è la soluzione dell’equazione differenziale: x(t) (figura 2).

Figura 2: blocco di esempio.

Figura 2: blocco di esempio.

Primo passo è comporre lo schema trascinando  il blocco sine wave dalla libreria Sources nella finestra del modello (figura 3).

Figura 3: blocco sine wave.

Figura 3: blocco sine wave.

Successivamente trascinare  il blocco integrator dalla finestra Continuos nella finestra del modello (figura 4).

Figura 4: blocco integratore.

Figura 4: blocco integratore.

Infine si trascina il blocco di uscita (Scope) dalla libreria Sinks nella finestra del modello (figura 5).

Figura 5: blocco di uscita.

Figura 5: blocco di uscita.

Dopo aver posizionato  I blocchi del sistema si effettua i collegamenti  (figura 6):

» Posizionare  il puntatore sulla porta di uscita (>) del blocco sine wave.

» Trascinare  l’uscita del blocco sine wave all’ingresso del blocco integrator.

» Trascinare l’uscita del blocco integrator all’ingresso del blocco scope.

Figura 6: collegamenti.

Figura 6: collegamenti.

A questo punto siamo pronti per la simulazione.  I passi da eseguire sono i seguenti:

» Selezionare  i parametri di simulazione facendo doppio click sul blocco sine wave (figura 7) e sul blocco integrator (figura 8).

Figura 7: parametri di simulazione del blocco sine wave

Figura 7: parametri di simulazione del blocco sine wave

 

Figura 8: parametri di simulazione del blocco integrator

Figura 8: parametri di simulazione del blocco integrator

» Doppio click sul blocco scope per vedere i risultati della simulazione (figura 9).

Figura 9: scope

Figura 9: scope

» Avvio della simulazione: nella finestra del modello, dal menù a tendina Simulation, selezionare start (figura 10).

Figura 10: avvio della simulazione.

Figura 10: avvio della simulazione.

» Osservare l’uscita x(t) nella finestra scope (figura 11).

Figura 11: risultati della simulazione.

Figura 11: risultati della simulazione.

Per verificare che l’andamento ottenuto rappresenti la soluzione cercata, si può risolvere analiticamente  l’equazione;  il risultato è:

che coincide con il grafico in figura 11.

2 Commenti

  1. Andrea Garrapa Andrea Garrapa 18 gennaio 2019
  2. Stefano Lovati Stefano Lovati 18 gennaio 2019

Scrivi un commento

EOS-Academy
Abbonati ora!