CONTROLLI AUTOMATICI e SISTEMI ELETTRICI LINEARI
Ingegneria Meccatronica
INTRODUZIONE Matlab (seconda
parte) e SIMULINK
Emilio Lorenzani
Tel. 0522 522443
e-mail: [email protected]
http://www.ingre.unimore.it
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 -- 2
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 -- 3
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 =
512
>> roots(pol) % Calcolo radici di un polinomio rappresentato da
% un vettore
ans=
-0.1000 + 0.6245i
-0.1000 - 0.6245i
Introduzione Matlab/Simulink -- 4
Uso dei vettori in Matlab come polinomi 2/2
COMANDO polyval
>>pol=[5 1 2]
>>polyval=(pol, 0)
ans= 2
% polinomio 5s2+s+2
% determina il valore del polinomio per un
%valore dell’incognita
>>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 -- 5
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 sim ulink dal prompt di matlab
Introduzione Matlab/Simulink -- 6
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 -- 7
Simulink – Libreria Sources
Contiene blocchi che producono particolari segnali utilizzati come ingresso per
un opportuno sistema.
I vari elementi si portano nel Foglio di lavoro semplicemente
trascinandoli dentro come se fossero icone.
Le librerie sono Read-only. Per poter variare i parametri di un blocco occorre
prima trascinarlo nel workspace.
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 -- 8
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 -- 9
Simulink – Libreria Sinks
Un insieme di strumenti che consente di visualizzare
l'andamento di un segnale.
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.
Introduzione Matlab/Simulink -- 10
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 -- 11
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 -- 12
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 Sim ulation .
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 param eters dal
menu Sim ulation .
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 -- 13
Esercizio circuito RLC 1/4
Determinare l’andamento di vc(t) per una data variazione del
segnale di tensione in ingresso (per esempio variazione a gradino).
Condizioni
iniziali nulle
vc(0)=0,
dvc(0)/dt=0
di (t )
v (t ) = R ⋅ i (t ) + L
+ vc ( t )
dt
dvc (t )
i (t ) = C
dt
dvc (t )
d 2 vc ( t )
+ LC
+ vc ( t )
v (t ) = R ⋅ C
2
dt
dt
Introduzione Matlab/Simulink -- 14
Esercizio circuito RLC 2/4
2
d v (t ) v (t ) R dvc (t ) vc (t )
=
−
−
2
dt
LC L dt
LC
Scrittura dell’equazione
comoda per
l’implementazione in
Simulink
Step da 0 a 10V
File P aram etri.m
clear all
close all
% circuito LCR
L=100e-3;
R=6;
C=220e-6;
Introduzione Matlab/Simulink -- 15
Esercizio circuito RLC 3/4
Evoluzione di vc(t)
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 -- 16
Esercizio circuito RLC 4/4
Le condizioni iniziali diverse da
zero possono essere inserite
all’interno del blocco
Integrator come parametro
Visualizzare
l’andamento di vc(t)
con differenti forme
d’onda di v(t)
Create
subsystem
Introduzione Matlab/Simulink -- 17