INTRODUZIONE Matlab (seconda parte) e SIMULINK · Introduzione Matlab/Simulink -- 7 Simulink ....

17
Emilio Lorenzani Tel. 0522 522443 e-mail: [email protected] http://www.ingre.unimore.it CONTROLLI AUTOMATICI e SISTEMI ELETTRICI LINEARI Ingegneria Meccatronica INTRODUZIONE Matlab (seconda parte) e SIMULINK

Transcript of INTRODUZIONE Matlab (seconda parte) e SIMULINK · Introduzione Matlab/Simulink -- 7 Simulink ....

Emilio Lorenzani Tel. 0522 522443

e-mail: [email protected] http://www.ingre.unimore.it

CONTROLLI AUTOMATICI e SISTEMI ELETTRICI LINEARI Ingegneria Meccatronica

INTRODUZIONE Matlab (seconda parte) e SIMULINK

Introduzione Matlab/Simulink -- 2

Plot e Plot3: opzioni per la visualizzazione

clear all close all x = 0:0.1:8*pi; y = sin(x); y1=cos(x); plot(x, y, 'b+:', x, y1,'r*-') grid on pause %occorre digitare un tasto %per eseguire i successivi comandi axis([0 2*pi -1 1]); xlabel('tempo'); ylabel('Seno e Coseno') title('Esempio uso plot')

t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t, 'LineWidth',2); grid on; %disegna una linea in uno spazio 3D

Introduzione Matlab/Simulink -- 3

Opzioni di visualizzazione da comandi user friendly della Figura

E’ possibile salvare l’immagine in diversi formati, modificare l’immagine nei modi più disparati, inserire freccie, testo, legende, ecc…

Altri comandi per disegnare grafici 2D, stesse funzionalità di plot: loglog: entrambi gli assi hanno scale logaritmiche semilogx: scala logartimica per asse x e lineare per asse y semilogy: scala lineare per asse x e logaritmica per asse y

Introduzione Matlab/Simulink -- 4

Uso dei vettori in Matlab come polinomi 1/2

Oltre alla rappresentazione di segnali (mediante la sequenza dei valori che esso assume in determinati intervalli di tempo), i vettori possono rappresentate dei polinomi. Un polinomio è descritto dal vettore dei suoi coefficienti

Esempio polinomio 5s2+s+2 >> pol=[5 1 2] pol = 5 1 2 >> roots(pol) % Calcolo radici di un polinomio rappresentato da % un vettore ans= -0.1000 + 0.6245i -0.1000 - 0.6245i

Introduzione Matlab/Simulink -- 5

Uso dei vettori in Matlab come polinomi 2/2

COMANDO polyval >>pol=[5 1 2] % polinomio 5s2+s+2 >>polyval=(pol, 0) % determina il valore del polinomio per un %valore dell’incognita ans= 2 >>polyval=(pol, 2) ans= 24

COMANDO conv Prodotto di polinomi (conv) (s+1)(s+1)=s2+2s +1 >> pol1=[1 1]; pol2=[1 1]; >> polprod=conv(pol1,pol2) polprod= [1 2 1]

Introduzione Matlab/Simulink -- 6

Simulink

Simulink è un ambiente grafico per la simulazione di sistemi complessi

• Interfaccia grafica dalla quale si risolve il problema numerico di simulazione desiderato • Blocchi elementari predefiniti (pronti per l’interconnessione) resi disponibili dalla libreria di Simulink • Elevata flessibilità nella variazione del progetto • Permette di simulare sistemi complessi, composti da numerosi blocchi interconnessi tra loro. I singoli blocchi possono essere anche nonlineari o tempo-varianti • Permette l’integrazione di sottosistemi continui e sottosistemi funzionanti a tempo discreti (come nei controlli digitali)

Per accedere a Simulink basta digitare simulink dal prompt di matlab

Introduzione Matlab/Simulink -- 7

Simulink

All'avvio si possono distinguere due parti: le Librerie e il Foglio di lavoro

Nelle librerie sono presenti i blocchi elementari che vengono utilizzati nel Foglio di lavoro.

Nel Foglio di lavoro si costruisce il progetto interconnettendo i blocchi presi dalla librerie.

Ci sono diverse librerie, noi useremo principalmente:

• Sources: Moduli che generano segnali di vario genere • Sinks: Moduli per la visualizzazione grafica dei segnali • Math: Moduli per l’elaborazione matematica dei segnali • Continuous: Moduli per l’inserimento di funzioni di trasferimento • Discontinuities: blocchi non lineari (saturation, switch, dead-zone)

Introduzione Matlab/Simulink -- 8

Simulink – Libreria Sources

Contiene blocchi che producono particolari segnali utilizzati come ingresso per un opportuno sistema.

Le librerie sono Read-only. Per poter variare i parametri di un blocco occorre

prima trascinarlo nel workspace.

I vari elementi si portano nel Foglio di lavoro semplicemente trascinandoli dentro come se fossero icone.

Facendo doppio click sull’icona trascinata nel foglio di lavoro si apre una maschera che ci consente di impostare i parametri che la caratterizzano

Insieme ai parametri che caratterizzano il blocco è presente il

pulsante HELP che spiega il comportamento del blocco.

Introduzione Matlab/Simulink -- 9

Simulink – Libreria Sources

I blocchi più utilizzati sono:

• Constant: genera un valore costante. • Step: genera un gradino. • Ramp: genera una rampa. • Sine wave: genera una sinusoide. • Signal generator: può generare vari tipi di segnali periodici • Repeating sequence: permette di creare segnali che si ripetono nel tempo

• out1: blocco che permette l’interconnessione di segnali in ingresso per un sottoblocco creato dall’utente.

Introduzione Matlab/Simulink -- 10

Simulink – Libreria Sinks

I blocchi più importanti sono:

• Scope: visualizza il segnale di ingresso in funzione del tempo. Un parametro importante è il massimo numero di punti che memorizza, parametro modificabile dall’utente. • XYGraph: Genera un grafico del segnale connesso all'ingresso y (il secondo) in funzione di quello connesso all'ingresso x (il primo).

• To Workspace: Memorizza nel workspace i valori del segnale connesso in una variabile matlab. • out1: blocco che permette l’interconnessione di segnali di uscita da un sottoblocco creato dall’utente.

Un insieme di strumenti che consente di visualizzare l'andamento di un segnale.

Introduzione Matlab/Simulink -- 11

Simulink – Libreria Sinks

Si consiglia di utilizzare To Workspace in quanto dopo la simulazione si dispone non solo di un grafico ma di una variabile in cui sono contenuti tutti i valori assunti da un segnale. Si può elaborare poi tale variabile con gli strumenti messi a disposizione da Matlab. Il blocco To Workspace permette di salvare i dati nel workspace di Matlab in 3 formati: structure, structure with time, array. Array: è un semplice vettore Structure: è una struttura con sottocampi. Esempio il vettore dei dati di uscita si trova in nomevariabile.signals.values Structure with Time: è memorizzata anche la variabile del tempo di simulazione

Per visualizzare la variabile solo del tempo di simulazione è possibile usare il blocco clock collegato a un blocco To Workspace.

Introduzione Matlab/Simulink -- 12

Simulik – Libreria Math

Nella libreria Math sono presenti vari blocchi per l'elaborazione matematica dei segnali. Due tra i blocchi più importanti sono Gain e Sum

Il blocco Gain riceve in ingresso un segnale e restituisce in uscita l'ingresso moltiplicato per la costante di guadagno che può essere impostato dall’utente.

Il blocco Sum riceve in ingresso tanti segnali quante sono le somme o differenze che si settano. Restituisce in uscita il segnale somma/differenza degli

ingressi.

Ci sono i blocchi Product, Divide , abs (valore assoluto), Math function (permette di scegliere tra una vasta serie di funzioni), ecc…

Introduzione Matlab/Simulink -- 13

Simulink – Lanciare una simulazione

Una volta costruito il sistema da simulare occorre far partire la simulazione.

Per lanciare la simulazione si può fare in uno dei seguenti modi:

• Premere il tasto a forma di P lay sulla toolbar • Selezionare Start dal menu Simulation . Impostare prima il tempo di fine simulazione, in ogni caso è possibile interrompere o mettere in pausa la simulazione in ogni momento.

Per cambiare i parametri della simulazione (tra cui il tempo di simulazione e i metodi di integrazione numerica) selezionare Configuration parameters dal menu Simulation. La simulazione potrebbe dare dei risultati sbagliati con alcuni Simulation parameters. Consiglio: non tenere «Max step size» in AUTO: massimo intervallo di tempo ogni quanto vengono effettuati i calcoli (ovviamente questa opzione modifica i tempi di calcolo necessari alla simulazione).

Introduzione Matlab/Simulink -- 14

Esercizio circuito RLC 1/4

)()()()( tvdt

tdiLtiRtv c++⋅=

Determinare l’andamento di vc(t) per una data variazione del segnale di tensione in ingresso (per esempio variazione a gradino).

dttdvCti c )()( =

Condizioni iniziali nulle vc(0)=0, dvc(0)/dt=0

)()()()( 2

2

tvdt

tvdLCdt

tdvCRtv ccc ++⋅=

Introduzione Matlab/Simulink -- 15

LCtv

dttdv

LR

LCtv

dttvd cc )()()()(

2

2

−−=

File Parametri.m clear all close all % circuito LCR L=100e-3; R=6; C=220e-6;

Step da 0 a 10V

Esercizio circuito RLC 2/4

Scrittura dell’equazione comoda per l’implementazione in Simulink

Introduzione Matlab/Simulink -- 16

Evoluzione di vc(t)

Esercizio circuito RLC 3/4

Esportare ora i dati della tensione di uscita nel workspace con il blocco To Workspace e graficare vc(t) con il comando plot

Introduzione Matlab/Simulink -- 17

Esercizio circuito RLC 4/4

Le condizioni iniziali diverse da zero possono essere inserite all’interno del blocco Integrator come parametro

Create subsystem

Visualizzare l’andamento di vc(t) con differenti forme d’onda di v(t)