Sei sulla pagina 1di 54
FONDAMENTI DI AUTOMATICA
FONDAMENTI DI AUTOMATICA
FONDAMENTI DI AUTOMATICA

FONDAMENTI DI AUTOMATICA

A c osa serve questa presentazione

A c osa serve questa presentazione Scopi di questo materiale: fornire le informazioni necessarie per l’uso
A c osa serve questa presentazione Scopi di questo materiale: fornire le informazioni necessarie per l’uso

Scopi di questo materiale:

fornire le informazioni necessarie per l’uso di Matlab e Simulink in relazione ai Laboratori di Fondamenti di Automatica;A c osa serve questa presentazione Scopi di questo materiale: dare una panoramica generale (tutt’altro che

dare una panoramica generale (tutt’altro che esauriente) delle potenzialita’ di Matlab per la formulazione e la soluzione di problemi numerici nell’Ingegneria.le informazioni necessarie per l’uso di Matlab e Simulink in relazione ai Laboratori di Fondamenti di

Dove t rovare alt re inform azioni?

Dove t rovare alt re inform azioni? Sito web di Mathworks: www.mathworks.com seguendo i link alla

Sito web di Mathworks:Dove t rovare alt re inform azioni? www.mathworks.com seguendo i link alla voce “support” e’ possibile

www.mathworks.com seguendo i link alla voce “support” e’ possibile trovare i manuali di Matlab in formato pdf.

Un testo in italiano di introduzione a matlab e Simulink:) Guida Operativa a MATLAB, SIMULINK e Control Toolbox Alberto

Guida Operativa a MATLAB, SIMULINK e Control Toolbox Alberto Cavallo, Roberto Setola, & Francesco Vasca Liguori Editore, 1994

Descrizione generale di Matlab (v. 5.3) Quadro delle funzioni predefinite Definizione di matrici e vettori
Descrizione generale di Matlab (v. 5.3) Quadro delle funzioni predefinite Definizione di matrici e vettori

Descrizione generale di Matlab (v. 5.3)Quadro delle funzioni predefinite Definizione di matrici e vettori Definizione di polinomi Rappresentazione di sistemi

Quadro delle funzioni predefiniteDescrizione generale di Matlab (v. 5.3) Definizione di matrici e vettori Definizione di polinomi Rappresentazione di

Definizione di matrici e vettoridi Matlab (v. 5.3) Quadro delle funzioni predefinite Definizione di polinomi Rappresentazione di sistemi dinamici

Definizione di polinomidelle funzioni predefinite Definizione di matrici e vettori Rappresentazione di sistemi dinamici lineari Analisi di

Rappresentazione di sistemi dinamici lineariDefinizione di matrici e vettori Definizione di polinomi Analisi di sistemi di controllo Rappresentazione grafica dei

Analisi di sistemi di controllodi polinomi Rappresentazione di sistemi dinamici lineari Rappresentazione grafica dei dati L’ambiente di

Rappresentazione grafica dei datipolinomi Rappresentazione di sistemi dinamici lineari Analisi di sistemi di controllo L’ambiente di simulazione Simulink

L’ambiente di simulazione Simulinkdi polinomi Rappresentazione di sistemi dinamici lineari Analisi di sistemi di controllo Rappresentazione grafica dei dati

MATLAB ( = MATrix LABoratory): un linguaggio di programmazione per applicazioni scientifiche e numeriche vasto
MATLAB ( = MATrix LABoratory): un linguaggio di programmazione per applicazioni scientifiche e numeriche vasto
MATLAB ( = MATrix LABoratory): un linguaggio di programmazione per applicazioni scientifiche e numeriche vasto

MATLAB ( = MATrix LABoratory):

un linguaggio di programmazioneMATLAB ( = MATrix LABoratory): per applicazioni scientifiche e numeriche vasto set di funzioni predefinite interprete

per

applicazioni scientifiche e numeriche

vasto set di funzioni predefinitedi programmazione per applicazioni scientifiche e numeriche interprete di comandi possibilita' di scrivere nuove

interprete di comandi di comandi

possibilita' di scrivere nuove funzionivasto set di funzioni predefinite interprete di comandi libreria di TOOLBOX per svariate applicazioni; ad es.

libreria di TOOLBOX per svariate applicazioni; ad es. (Signal Processing, Analisi e sintesi di controllori,…).e numeriche vasto set di funzioni predefinite interprete di comandi possibilita' di scrivere nuove funzioni

Interfaccia utente: la Command Window da’ accesso diretto all’interprete (scrittura diretta di comandi.
Interfaccia utente: la Command Window da’ accesso diretto all’interprete (scrittura diretta di comandi.
Interfaccia utente: la Command Window da’ accesso diretto all’interprete (scrittura diretta di comandi.

Interfaccia utente: la Command Window da’ accesso diretto all’interprete (scrittura diretta di comandi.

Interfaccia utente: la Command Window da’ accesso diretto all’interprete (scrittura diretta di comandi.
La modalita’ di impiego piu’ “semplice”: per valutare espressioni numeriche. Esempio: per calcolare 4 +
La modalita’ di impiego piu’ “semplice”: per valutare espressioni numeriche. Esempio: per calcolare 4 +

La modalita’ di impiego piu’ “semplice”:per valutare espressioni numeriche. Esempio: per calcolare 4 + 2 sin( 0 2 . )

per valutare espressioni numeriche.

Esempio: per calcolarepiu’ “semplice”: per valutare espressioni numeriche. 4 + 2 sin( 0 2 . ) 2 +

4

+

2
2

sin(

0 2

.

)

2

+ e

2

e’ sufficiente digitare al prompt »

»4 + sqrt(2) - sin(0.2*pi)^2 + exp(2)

ans =

12.4578

Il risultato viene scritto nella variabile ans.4 + 2 sin( 0 2 . ) 2 + e 2 e’ sufficiente digitare al

E’ possibile definire variabili e espressioni non numeriche piu’ complesse. Esempio: » a=4; b=2; »
E’ possibile definire variabili e espressioni non numeriche piu’ complesse. Esempio: » a=4; b=2; »

E’ possibile definire variabili e espressioni non numeriche piu’ complesse.Esempio: » a=4; b=2; » a*b ans = 8 Per cancellare una variabile (es. a):

Esempio:variabili e espressioni non numeriche piu’ complesse. » a=4; b=2; » a*b ans = 8 Per

» a=4; b=2;

» a*b ans =

8

Per cancellare una variabile (es. a):possibile definire variabili e espressioni non numeriche piu’ complesse. Esempio: » a=4; b=2; » a*b ans

» clear a

Ogni variabile definita in questo modo viene conservata in memoria, nel Workspace. Il comando whos
Ogni variabile definita in questo modo viene conservata in memoria, nel Workspace. Il comando whos

Ogni variabile definita in questo modo viene conservata in memoria, nel Workspace.Il comando whos mostra una lista delle variabili definite: » whos Name Size Bytes Class

Il comando whos mostra una lista delle variabili definite:in questo modo viene conservata in memoria, nel Workspace. » whos Name Size Bytes Class a

» whos

Name

Size

Bytes Class

a

1x1

8 double array

ans

1x1

8 double array

b

1x1

8 double array

Grand total is 3 elements using 24 bytes

Mediante i comandi load e save e’ possibile salvare su file le variabili del workspace.
Mediante i comandi load e save e’ possibile salvare su file le variabili del workspace.

Mediante i comandi load e save e’ possibile salvare su file le variabili del workspace.

load nomefile variabile1 variabile2 carica dal file nomefile.mat le variabili elencate.e’ possibile salvare su file le variabili del workspace. save nomefile variabile1 variabile2 scrive nel file

save nomefile variabile1 variabile2 scrive nel file nomefile.mat le variabili elencate.carica dal file nomefile.mat le variabili elencate. load nomefile carica tutte le variabili in nomefile. Save

load nomefile carica tutte le variabili in nomefile.variabile2 scrive nel file nomefile.mat le variabili elencate. Save nomefile salva tutto il workspace in nomefile.

Save nomefile salva tutto il workspace in nomefile.variabile2 scrive nel file nomefile.mat le variabili elencate. load nomefile carica tutte le variabili in nomefile.

Esiste un insieme (molto vasto) di funzioni predefinite (come sin e sqrt nell’esempio precedente). A
Esiste un insieme (molto vasto) di funzioni predefinite (come sin e sqrt nell’esempio precedente). A

Esiste un insieme (molto vasto) di funzioni predefinite (come sin e sqrt nell’esempio precedente).A differenza dei normali linguaggi (C, Pascal…) non occorre dichiarare le variabili. L’assegnazione coincide con

A differenza dei normali linguaggi (C, Pascal…) non occorre dichiarare le variabili. L’assegnazione coincide con la dichiarazione.Esiste un insieme (molto vasto) di funzioni predefinite (come sin e sqrt nell’esempio precedente).

(di uso piu’ com une) Funzioni trigonometriche (sin, cos, tan, acos, asin, atan…); Esponenziale e

(di uso piu’ com une)

(di uso piu’ com une) Funzioni trigonometriche (sin, cos, tan, acos, asin, atan…); Esponenziale e logaritmo

Funzioni trigonometriche (sin, cos, tan, acos, asin, atan…);(di uso piu’ com une) Esponenziale e logaritmo (exp, log, log10, sqrt…); Numeri complessi (abs ->

Esponenziale e logaritmo (exp, log, log10, sqrt…);trigonometriche (sin, cos, tan, acos, asin, atan…); Numeri complessi (abs -> modulo, angle - > fase,

Numeri complessi (abs -> modulo, angle - > fase, real -> parte reale, imag -> parte immaginaria…);une) Funzioni trigonometriche (sin, cos, tan, acos, asin, atan…); Esponenziale e logaritmo (exp, log, log10, sqrt…);

Calcolare il modulo di 2+3i: » abs(2+3*i) ans = 3.6056 Calcolare 20 log 10 2
Calcolare il modulo di 2+3i: » abs(2+3*i) ans = 3.6056 Calcolare 20 log 10 2

Calcolare il modulo di 2+3i:» abs(2+3*i) ans = 3.6056 Calcolare 20 log 10 2 + 3 i ( )

» abs(2+3*i) ans =

3.6056

CalcolareCalcolare il modulo di 2+3i: » abs(2+3*i) ans = 3.6056 20 log 10 2 + 3

20 log

10

2 + 3 i ( ) 4 + 6 i
2
+ 3 i
(
)
4
+ 6 i

» 20*log10(abs((2+3*i)/(4+6*i))) ans =

-6.0206

Alcune operazioni numeriche possono dare luogo a problemi, che vengono segnalati da Matlab scrivendo come
Alcune operazioni numeriche possono dare luogo a problemi, che vengono segnalati da Matlab scrivendo come

Alcune operazioni numeriche possono dare luogo a problemi, che vengono segnalati da Matlab scrivendo come risultato le variabili Inf e NaN.Esempi: » 5/0 Warning: Divide by zero. ans = Inf » 0/0 Warning: Divide by

Esempi:da Matlab scrivendo come risultato le variabili Inf e NaN. » 5/0 Warning: Divide by zero.

» 5/0 Warning: Divide by zero. ans = Inf

» 0/0 Warning: Divide by zero. ans = NaN

help help seguito dal nome di una funzione restituisce una descrizione e la sintassi d’uso
help help seguito dal nome di una funzione restituisce una descrizione e la sintassi d’uso

help

help seguito dal nome di una funzione restituisce una descrizione e la sintassi d’uso della medesima;help help “da solo” restituisce l’elenco di TUTTE le funzioni di Matlab, ordinate per categorie.

help “da solo” restituisce l’elenco di TUTTE le funzioni di Matlab, ordinate per categorie.help help seguito dal nome di una funzione restituisce una descrizione e la sintassi d’uso della

Come si definisce una matrice in Matlab? Esempio: definire la matrice 2x2 » A=[1,2;3,4] A
Come si definisce una matrice in Matlab? Esempio: definire la matrice 2x2 » A=[1,2;3,4] A

Come si definisce una matrice in Matlab?Esempio: definire la matrice 2x2 » A=[1,2;3,4] A = 1 2 3 4   1

Esempio: definire la matrice 2x2

» A=[1,2;3,4]

A =

1

2

3

4

 

1

2

A

=

.

 

3

4

Come si accede agli elementi di una matrice:3 4   1 2 A = .   3 4 » A(1,2) ans = 2

» A(1,2) ans =
»
A(1,2)
ans =

2

Indici (riga e colonna) dell’elemento di interesse

Per accedere a intere righe o colonne di una matrice, si usa la wildcard :
Per accedere a intere righe o colonne di una matrice, si usa la wildcard :
Per accedere a intere righe o colonne di una matrice, si usa la wildcard :

Per accedere a intere righe o colonne di una matrice, si usa la wildcard :Es.: selezionare la prima riga di A » A(1,:) ans = 1 2 Es.: selezionare

Es.: selezionare la prima riga di Aintere righe o colonne di una matrice, si usa la wildcard : » A(1,:) ans =

» A(1,:)

ans =

1

2

Es.: selezionare la seconda colonna di Ao colonne di una matrice, si usa la wildcard : Es.: selezionare la prima riga di

» A(:,2)

ans =

2

4

Se definiamo » B=[1,2,3;4,5,6] B = 1 2 3 4 5 6 Abbiamo che 3
Se definiamo » B=[1,2,3;4,5,6] B = 1 2 3 4 5 6 Abbiamo che 3

Se definiamo» B=[1,2,3;4,5,6] B = 1 2 3 4 5 6 Abbiamo che 3 5 6

» B=[1,2,3;4,5,6]

B =

1

2

3

4

5

6

Abbiamo chedefiniamo » B=[1,2,3;4,5,6] B = 1 2 3 4 5 6 3 5 6 2 »

B=[1,2,3;4,5,6] B = 1 2 3 4 5 6 Abbiamo che 3 5 6 2 »

3

5 6

2

»

B(1:2,2:3)

ans =

Indici della sottomatrice di interesse

Sono definiti gli operatori +,-,* e ^ . Matrice trasposta: » A' ans = 1
Sono definiti gli operatori +,-,* e ^ . Matrice trasposta: » A' ans = 1
Sono definiti gli operatori +,-,* e ^ . Matrice trasposta: » A' ans = 1

Sono definiti gli operatori +,-,* e ^ .Matrice trasposta: » A' ans = 1 3 2 4 Matrice inversa: » inv(A) ans

Matrice trasposta:Sono definiti gli operatori +,-,* e ^ . » A' ans = 1 3 2 4

» A'

ans =

1 3

2 4

Matrice inversa:operatori +,-,* e ^ . Matrice trasposta: » A' ans = 1 3 2 4 »

» inv(A)

ans =

-2.0000

1.0000

1.5000

-0.5000

Determinante: » det(A) ans = -2 Autovalori: » eig(A) ans = -0.3723 5.3723
Determinante: » det(A) ans = -2 Autovalori: » eig(A) ans = -0.3723 5.3723
Determinante: » det(A) ans = -2 Autovalori: » eig(A) ans = -0.3723 5.3723

Determinante:» det(A) ans = -2 Autovalori: » eig(A) ans = -0.3723 5.3723

» det(A) ans =

-2

Autovalori:Determinante: » det(A) ans = -2 » eig(A) ans = -0.3723 5.3723

» eig(A) ans =

-0.3723

5.3723

Osservazione importante: NON occorre definire le dimensioni in modo esplicito! Per conoscere le dimensioni di
Osservazione importante: NON occorre definire le dimensioni in modo esplicito! Per conoscere le dimensioni di

Osservazione importante: NON occorre definire le dimensioni in modo esplicito! Per conoscere le dimensioni di una matrice: size.Altre operazioni: rank -> calcolo del rango di una matrice trace -> calcolo della traccia

Altre operazioni:esplicito! Per conoscere le dimensioni di una matrice: size. rank -> calcolo del rango di una

rank -> calcolo del rango di una matricele dimensioni di una matrice: size. Altre operazioni: trace -> calcolo della traccia di una matrice

trace -> calcolo della traccia di una matricesize. Altre operazioni: rank -> calcolo del rango di una matrice norm -> calcolo della norma

norm -> calcolo della norma di una matricesize. Altre operazioni: rank -> calcolo del rango di una matrice trace -> calcolo della traccia

eye(n,n) -> matrice identita’ nxn; zeros(n,m) -> matrice di zeri nxm; ones(n,m) -> matrice di
eye(n,n) -> matrice identita’ nxn; zeros(n,m) -> matrice di zeri nxm; ones(n,m) -> matrice di

eye(n,n) -> matrice identita’ nxn;zeros(n,m) -> matrice di zeri nxm; ones(n,m) -> matrice di uni nxm; rand(n,m) -> matrice

zeros(n,m) -> matrice di zeri nxm;eye(n,n) -> matrice identita’ nxn; ones(n,m) -> matrice di uni nxm; rand(n,m) -> matrice nxm con

ones(n,m) -> matrice di uni nxm;identita’ nxn; zeros(n,m) -> matrice di zeri nxm; rand(n,m) -> matrice nxm con elementi distribuiti

rand(n,m) -> matrice nxm con elementi distribuiti uniformemente tra 0 e 1.eye(n,n) -> matrice identita’ nxn; zeros(n,m) -> matrice di zeri nxm; ones(n,m) -> matrice di uni

I vettori hanno due funzioni fondamentali in Matlab: rappresentazione dei polinomi (un polinomio e’ descritto
I vettori hanno due funzioni fondamentali in Matlab: rappresentazione dei polinomi (un polinomio e’ descritto
I vettori hanno due funzioni fondamentali in Matlab: rappresentazione dei polinomi (un polinomio e’ descritto

I vettori hanno due funzioni fondamentali in Matlab:

rappresentazione dei polinomi (un polinomio e’ descritto dal vettore dei suoi coefficienti);I vettori hanno due funzioni fondamentali in Matlab: rappresentazione di segnali (un segnale e’ rappresentato mediante

rappresentazione di segnali (un segnale e’ rappresentato mediante la sequenza dei valori che assume in un insieme di istanti di tempo, quindi mediante un vettore).fondamentali in Matlab: rappresentazione dei polinomi (un polinomio e’ descritto dal vettore dei suoi coefficienti);

v=(0:10) » v = 0 1 2 3 4 5 6 7 8 9 10
v=(0:10)
»
v
=
0
1
2
3
4
5
6
7
8
9
10
»
v=(1:0.5:3)
v
=
1.0000
1.5000
2.0000
2.5000
3.0000
Passo
Valore iniziale
Valore finale
Come matrici riga o colonna: » v=[3 6 1 7] v = 3 6 1
Come matrici riga o colonna: » v=[3 6 1 7] v = 3 6 1

Come matrici riga o colonna:» v=[3 6 1 7] v = 3 6 1 7 Polinomi: sono rappresentati come

» v=[3 6 1 7] v =

3 6

1

7

Polinomi: sono rappresentati come vettori.Come matrici riga o colonna: » v=[3 6 1 7] v = 3 6 1 7

Es.:

3

s

2 +

2

s +

1

» pol=[3 2 1] pol =

3 2

1

Calcolo delle radici -> roots » roots(pol) ans = -0.3333 + 0.4714i -0.3333 - 0.4714i
Calcolo delle radici -> roots » roots(pol) ans = -0.3333 + 0.4714i -0.3333 - 0.4714i

Calcolo delle radici -> roots» roots(pol) ans = -0.3333 + 0.4714i -0.3333 - 0.4714i Valutazione in un punto ->

» roots(pol)

ans = -0.3333 + 0.4714i -0.3333 - 0.4714i

Valutazione in un punto -> polyvalCalcolo delle radici -> roots » roots(pol) ans = -0.3333 + 0.4714i -0.3333 - 0.4714i »

» polyval(pol,0)

ans =

1

Prodotto di polinomi -> conv Esempio: 2 + ( s + 1)( s + 1)
Prodotto di polinomi -> conv Esempio: 2 + ( s + 1)( s + 1)
Prodotto di polinomi -> conv Esempio: 2 + ( s + 1)( s + 1)

Prodotto di polinomi -> conv

Esempio:

2 +

(

s +

1)(

s +

1)

2

= s

s +

1

» pol1=[1 1];pol2=[1 1];

» polprod=conv(pol1,pol2)

polprod =

1

2

1

Un sistema dinamico lineare invariante puo’ essere descritto: In forma di variabili di stato mediante
Un sistema dinamico lineare invariante puo’ essere descritto: In forma di variabili di stato mediante

Un sistema dinamico lineare invariante puo’ essere descritto:In forma di variabili di stato mediante quattro matrici A,B,C,D; In forma di funzione di

In forma di variabili di stato mediante quattro matrici A,B,C,D;sistema dinamico lineare invariante puo’ essere descritto: In forma di funzione di trasferimento, mediante i due

In forma di funzione di trasferimento, mediante i due polinomi N(s) e D(s).di variabili di stato mediante quattro matrici A,B,C,D; Quindi in Matlab e’ possibile definire i sistemi

Quindi in Matlab e’ possibile definire i sistemi lineari come oggetti a partire da entrambe le descrizioni.di stato mediante quattro matrici A,B,C,D; In forma di funzione di trasferimento, mediante i due polinomi

(a t em po continuo) Dalla forma di stato Definire le matrici A,B,C,D nel workspace;

(a t em po continuo)

(a t em po continuo) Dalla forma di stato Definire le matrici A,B,C,D nel workspace; Definire

Dalla forma di stato(a t em po continuo) Definire le matrici A,B,C,D nel workspace; Definire il sistema mediante il

Definire le matrici A,B,C,D nel workspace;(a t em po continuo) Dalla forma di stato Definire il sistema mediante il comando ss.

Definire il sistema mediante il comando ss.forma di stato Definire le matrici A,B,C,D nel workspace; Dalla funzione di trasferimento Definire i polinomi

Dalla funzione di trasferimentonel workspace; Definire il sistema mediante il comando ss. Definire i polinomi num e den (numeratore

Definire i polinomi num e den (numeratore e denominatore della f. di t.) nel workspace;Definire il sistema mediante il comando ss. Dalla funzione di trasferimento Definire il sistema mediante il

Definire il sistema mediante il comando tf.Dalla funzione di trasferimento Definire i polinomi num e den (numeratore e denominatore della f. di

Definizione del sistema: 3   x = x + u = y 4 x +
Definizione del sistema: 3   x = x + u = y 4 x +
Definizione del sistema: 3   x = x + u = y 4 x +

Definizione del sistema:

3  

3

 

x =

x

+

u

=

y 4

x

+

2

u

» A=-1;B=3;C=4;D=2;

» sistema=ss(A,B,C,D)

a =

x1

 

x1

-1

b =

 

u1

 

x1

3

c =

 

x1

 

y1

4

d =

 

u1

 

y1

2

Continuous-time model.

Definizione del sistema ( G s ) s + 1 » num=[1 1]; den=[1 3
Definizione del sistema ( G s ) s + 1 » num=[1 1]; den=[1 3
Definizione del sistema ( G s ) s + 1 » num=[1 1]; den=[1 3

Definizione del sistema

(

G s

)

s

+ 1

» num=[1 1]; den=[1 3 16]; » sistema=tf(num,den)

Transfer function:

s + 1

--------------

s^2 + 3 s + 16

= s

2 +

= s 2 + 3 s + 16

3

s

+

16

Agli oggetti sistemi lineari si applicano i normali operatori +,*,/ con il seguente significato: +
Agli oggetti sistemi lineari si applicano i normali operatori +,*,/ con il seguente significato: +
Agli oggetti sistemi lineari si applicano i normali operatori +,*,/ con il seguente significato: +

Agli oggetti sistemi lineari si applicano i normali operatori +,*,/ con il seguente significato:

+ connessione in parallelo;i normali operatori +,*,/ con il seguente significato: * connessione in serie; / usato per definire

* connessione in serie;+,*,/ con il seguente significato: + connessione in parallelo; / usato per definire l’interconnessione in retroazione.

/ usato per definire l’interconnessione in retroazione.si applicano i normali operatori +,*,/ con il seguente significato: + connessione in parallelo; * connessione

u G G 1 2 - G 3 andata=g1*g2; y retroazione =andata/(1+andata*g3)
u G G 1 2 - G 3 andata=g1*g2; y retroazione =andata/(1+andata*g3)
u G G 1 2 - G 3 andata=g1*g2;
u
G
G
1
2
-
G
3
andata=g1*g2;

y

retroazione=andata/(1+andata*g3)

Funzioni disponibili per la simulazione: impulse -> simulazione risposta all’impulso; step -> simulazione
Funzioni disponibili per la simulazione: impulse -> simulazione risposta all’impulso; step -> simulazione

Funzioni disponibili per la simulazione:impulse -> simulazione risposta all’impulso; step -> simulazione risposta a scalino; initial -> simulazione

impulse -> simulazione risposta all’impulso;Funzioni disponibili per la simulazione: step -> simulazione risposta a scalino; initial -> simulazione movimento

step -> simulazione risposta a scalino;impulse -> simulazione risposta all’impulso; initial -> simulazione movimento libero; lsim ->

initial -> simulazione movimento libero;all’impulso; step -> simulazione risposta a scalino; lsim -> simulazione con ingresso qualsiasi e stato

lsim -> simulazione con ingresso qualsiasi e stato iniziale qualsiasi.a scalino; initial -> simulazione movimento libero; Sintassi: Vettore sequenza ingresso Vettore dei tempi »

Sintassi:con ingresso qualsiasi e stato iniziale qualsiasi. Vettore sequenza ingresso Vettore dei tempi »

Vettore sequenza ingresso

Vettore dei tempi

qualsiasi. Sintassi: Vettore sequenza ingresso Vettore dei tempi » [y,t]=step(sistema); » [y,x]=lsim(sistema,u,t);

» [y,t]=step(sistema);

» [y,x]=lsim(sistema,u,t);

qualsiasi. Sintassi: Vettore sequenza ingresso Vettore dei tempi » [y,t]=step(sistema); » [y,x]=lsim(sistema,u,t);
» sistema=tf(1,[1 1]); » t=(0:0.01:5); » u=sin(2*pi*2*t); » y=lsim(sistema,u,t); » plot(t,y) Chiamando le funzioni
» sistema=tf(1,[1 1]); » t=(0:0.01:5); » u=sin(2*pi*2*t); » y=lsim(sistema,u,t); » plot(t,y) Chiamando le funzioni

» sistema=tf(1,[1 1]);

» t=(0:0.01:5);

» u=sin(2*pi*2*t);

» y=lsim(sistema,u,t);

» plot(t,y)

» u=sin(2*pi*2*t); » y=lsim(sistema,u,t); » plot(t,y) Chiamando le funzioni senza output si ottiene direttamente
» u=sin(2*pi*2*t); » y=lsim(sistema,u,t); » plot(t,y) Chiamando le funzioni senza output si ottiene direttamente

Chiamando le funzioni senza output si ottiene direttamente il plot.

Per i problemi di controllo lineari invarianti SISO esistono le seguenti funzioni: bode(sistema) -> tracciamento
Per i problemi di controllo lineari invarianti SISO esistono le seguenti funzioni: bode(sistema) -> tracciamento
Per i problemi di controllo lineari invarianti SISO esistono le seguenti funzioni: bode(sistema) -> tracciamento

Per i problemi di controllo lineari invarianti SISO esistono le seguenti funzioni:

bode(sistema) -> tracciamento diagrammi di Bode della risposta in frequenza;lineari invarianti SISO esistono le seguenti funzioni: margin(sistema) -> come bode ma in piu’ calcola

margin(sistema) -> come bode ma in piu’ calcola pulsazione critica, margine di fase e margine di guadagno;tracciamento diagrammi di Bode della risposta in frequenza; nyquist(sistema) -> tracciamento diagramma di Nyquist

nyquist(sistema) -> tracciamento diagramma di Nyquist della risposta in frequenza;calcola pulsazione critica, margine di fase e margine di guadagno; rlocus(sistema) -> tracciamento luogo delle radici;

rlocus(sistema) -> tracciamento luogo delle radici;di fase e margine di guadagno; nyquist(sistema) -> tracciamento diagramma di Nyquist della risposta in frequenza;

L(s) - y u » L=tf(5,[1 1]); » margin(L)
L(s) - y u » L=tf(5,[1 1]); » margin(L)
L(s) - y
L(s)
-
y
u
u

» L=tf(5,[1 1]);

» margin(L)

L(s) - y u » L=tf([1 1],[1 2 16]); » rlocus(L)
L(s) - y u » L=tf([1 1],[1 2 16]); » rlocus(L)
L(s) - y
L(s)
-
y
u
u

» L=tf([1 1],[1 2 16]);

» rlocus(L)

Grafici 2D: In scala lineare -> plot plot(x,y) traccia il grafico dei punti che hanno
Grafici 2D: In scala lineare -> plot plot(x,y) traccia il grafico dei punti che hanno
Grafici 2D: In scala lineare -> plot plot(x,y) traccia il grafico dei punti che hanno

Grafici 2D:

In scala lineare -> plot plot(x,y) traccia il grafico dei punti che hanno come ascisse (ordinate) gli elementi del vettore x (y).Grafici 2D: In scala semilogaritmica o logaritmica -> semilogx, semilogy, loglog stessa sintassi di plot Diagrammi

In scala semilogaritmica o logaritmica -> semilogx, semilogy, loglog stessa sintassi di plotil grafico dei punti che hanno come ascisse (ordinate) gli elementi del vettore x (y). Diagrammi

Diagrammi polari -> polardel vettore x (y). In scala semilogaritmica o logaritmica -> semilogx, semilogy, loglog stessa sintassi di

Altre funzioni utili: cambiamenti di scala -> axis([xmin,xmax,ymin,ymax]) sovrapposizione di piu’ plot -> hold
Altre funzioni utili: cambiamenti di scala -> axis([xmin,xmax,ymin,ymax]) sovrapposizione di piu’ plot -> hold
Altre funzioni utili: cambiamenti di scala -> axis([xmin,xmax,ymin,ymax]) sovrapposizione di piu’ plot -> hold

Altre funzioni utili:

cambiamenti di scala -> axis([xmin,xmax,ymin,ymax])Altre funzioni utili: sovrapposizione di piu’ plot -> hold aggiunta di grigliatura al plot -> grid

sovrapposizione di piu’ plot -> holdcambiamenti di scala -> axis([xmin,xmax,ymin,ymax]) aggiunta di grigliatura al plot -> grid titolo e

aggiunta di grigliatura al plot -> gridsovrapposizione di piu’ plot -> hold titolo e etichette agli assi -> title(‘ ’),

titolo e etichette agli assi -> title(‘ ’),plot -> hold aggiunta di grigliatura al plot -> grid xlabel(‘ ’), ylabel(‘ ’) piu’ grafici

xlabel(‘

’),

ylabel(‘

’)

piu’ grafici in una finestra -> subplote etichette agli assi -> title(‘ ’), xlabel(‘ ’), ylabel(‘ ’) inserimento testo in una figura

inserimento testo in una figura -> gtextetichette agli assi -> title(‘ ’), xlabel(‘ ’), ylabel(‘ ’) piu’ grafici in una finestra ->

Grafici 3D, animazioni, rendering: vedere i manuali di Matlab!
Grafici 3D, animazioni, rendering: vedere i manuali di Matlab!
Grafici 3D, animazioni, rendering: vedere i manuali di Matlab!

Grafici 3D, animazioni, rendering:

vedere i manuali di Matlab!

Simulink: un ambiente grafico per la simulazione di sistemi complessi. Perche’ non basta Matlab? E’
Simulink: un ambiente grafico per la simulazione di sistemi complessi. Perche’ non basta Matlab? E’

Simulink: un ambiente grafico per la simulazione di sistemi complessi.Perche’ non basta Matlab? E’ spesso necessario simulare sistemi complessi, composti da numerosi blocchi interconnessi

Perche’ non basta Matlab?un ambiente grafico per la simulazione di sistemi complessi. E’ spesso necessario simulare sistemi complessi, composti

E’ spesso necessario simulare sistemi complessi, composti da numerosi blocchi interconnessi tra loro;di sistemi complessi. Perche’ non basta Matlab? Spesso i singoli blocchi sono nonlineari o tempo-varianti;

Spesso i singoli blocchi sono nonlineari o tempo-varianti;composti da numerosi blocchi interconnessi tra loro; Puo’ essere necessario integrare blocchi continui e

Puo’ essere necessario integrare blocchi continui e discreti.complessi, composti da numerosi blocchi interconnessi tra loro; Spesso i singoli blocchi sono nonlineari o tempo-varianti;

Simulink contiene una libreria di blocchi che descrivono elementi statici e dinamici elementari; L’utente compone
Simulink contiene una libreria di blocchi che descrivono elementi statici e dinamici elementari; L’utente compone

Simulink contiene una libreria di blocchi che descrivono elementi statici e dinamici elementari;L’utente compone lo schema a blocchi del sistema da simulare mediante l’interconnessione dei blocchetti elementari;

L’utente compone lo schema a blocchi del sistema da simulare mediante l’interconnessione dei blocchetti elementari;che descrivono elementi statici e dinamici elementari; Simulink genera automaticamente le equazioni e risolve il

Simulink genera automaticamente le equazioni e risolve il problema numerico di simulazione desiderato.L’utente compone lo schema a blocchi del sistema da simulare mediante l’interconnessione dei blocchetti elementari;

Simulink interagisce con Matlab attraverso il Workspace contenere variabili del Workspace; i modelli Simulink possono
Simulink interagisce con Matlab attraverso il Workspace contenere variabili del Workspace; i modelli Simulink possono

Simulink interagisce con Matlab attraverso ilWorkspace contenere variabili del Workspace; i modelli Simulink possono Allo stesso modo il risultato delle

Workspace

contenere variabili del Workspace;

i modelli Simulink possono

Allo stesso modo il risultato delle simulazioni puo’ essere esportato nel Workspace e analizzato con Matlab.Simulink interagisce con Matlab attraverso il Workspace contenere variabili del Workspace; i modelli Simulink possono

Digitando ‘simulink’ al Matlab prompt si apre la libreria dei modelli. Da qui e’ possibile
Digitando ‘simulink’ al Matlab prompt si apre la libreria dei modelli. Da qui e’ possibile
Digitando ‘simulink’ al Matlab prompt si apre la libreria dei modelli. Da qui e’ possibile
Digitando ‘simulink’ al Matlab prompt si apre la libreria dei modelli. Da qui e’ possibile

Digitando ‘simulink’ al Matlab prompt si apre la libreria dei modelli.

Da qui e’ possibile creare un nuovo modello (foglio bianco) e comporre il sistema da simulare mediante i diversi blocchi.

Il menu’ ‘Simulink’ contiene la maggior parte dei blocchi che useremo.
Il menu’ ‘Simulink’ contiene la maggior parte dei blocchi che useremo.
Il menu’ ‘Simulink’ contiene la maggior parte dei blocchi che useremo.
Il menu’ ‘Simulink’ contiene la maggior parte dei blocchi che useremo.
Il menu’ ‘Simulink’ contiene la maggior parte dei blocchi che useremo.

Il menu’ ‘Simulink’ contiene la maggior parte dei blocchi che useremo.

Blocchi dinamici a tempo continuo (Continuous) Blocchi dinamici a tempo discreto (Discrete)
Blocchi dinamici a tempo continuo (Continuous) Blocchi dinamici a tempo discreto (Discrete)

Blocchi dinamici a tempo continuo (Continuous)

Blocchi dinamici a tempo continuo (Continuous) Blocchi dinamici a tempo discreto (Discrete)

Blocchi dinamici a tempo discreto (Discrete)

Blocchi dinamici a tempo continuo (Continuous) Blocchi dinamici a tempo discreto (Discrete)
Blocchi dinamici a tempo continuo (Continuous) Blocchi dinamici a tempo discreto (Discrete)
Output dati (Sinks) Segnali di ingresso (Sources) Blocchi non lineari (Nonlinear)
Output dati (Sinks) Segnali di ingresso (Sources) Blocchi non lineari (Nonlinear)
Output dati (Sinks) Segnali di ingresso (Sources) Blocchi non lineari (Nonlinear)

Output dati (Sinks)

Output dati (Sinks) Segnali di ingresso (Sources) Blocchi non lineari (Nonlinear)

Segnali di ingresso (Sources)

Output dati (Sinks) Segnali di ingresso (Sources) Blocchi non lineari (Nonlinear)

Blocchi non lineari (Nonlinear)

u Vogliamo simulare con Simulink il seguente sistema di controllo che contiene una non linearita’:
u Vogliamo simulare con Simulink il seguente sistema di controllo che contiene una non linearita’:
u Vogliamo simulare con Simulink il seguente sistema di controllo che contiene una non linearita’:

u

Vogliamo simulare con Simulink il seguente sistema di controllo che contiene una non linearita’:

G 1 (s) G 2 (s) -
G
1 (s)
G
2 (s)
-
il seguente sistema di controllo che contiene una non linearita’: G 1 (s) G 2 (s)
il seguente sistema di controllo che contiene una non linearita’: G 1 (s) G 2 (s)

y

nel caso in cui u(t)=sca(t).

Blocco ‘Transfer Function’, menu’ ‘Continuous’; Blocco ‘Saturation’, menu’ ‘Nonlinear’; Blocco
Blocco ‘Transfer Function’, menu’ ‘Continuous’; Blocco ‘Saturation’, menu’ ‘Nonlinear’; Blocco

Blocco ‘Transfer Function’, menu’ ‘Continuous’;Blocco ‘Saturation’, menu’ ‘Nonlinear’; Blocco ‘Sum’, menu’ ‘Continuous’; Blocco ‘Step’, menu’

Blocco ‘Saturation’, menu’ ‘Nonlinear’;Blocco ‘Transfer Function’, menu’ ‘Continuous’; Blocco ‘Sum’, menu’ ‘Continuous’; Blocco ‘Step’,

Blocco ‘Sum’, menu’ ‘Continuous’;Blocco ‘Saturation’, menu’ ‘Nonlinear’; Blocco ‘Step’, menu’ ‘Sources’; Blocco ‘To

Blocco ‘Step’, menu’ ‘Sources’;‘Nonlinear’; Blocco ‘Sum’, menu’ ‘Continuous’; Blocco ‘To Workspace’, menu’ ‘Sinks’; Le

Blocco ‘To Workspace’, menu’ ‘Sinks’;‘Continuous’; Blocco ‘Step’, menu’ ‘Sources’; Le operazioni da eseguire sono: Trascinare ciascuno dei

Le operazioni da eseguire sono:Blocco ‘To Workspace’, menu’ ‘Sinks’; Trascinare ciascuno dei blocchi nella finestra del modello;

Trascinare ciascuno dei blocchi nella finestra del modello;menu’ ‘Sinks’; Le operazioni da eseguire sono: Connetterli come nello schema a blocchi di partenza; Occorre

Connetterli come nello schema a blocchi di partenza;Trascinare ciascuno dei blocchi nella finestra del modello; Occorre infine definire i valori dei parametri di

Occorre infine definire i valori dei parametri di ciascun blocco.sono: Trascinare ciascuno dei blocchi nella finestra del modello; Connetterli come nello schema a blocchi di

Ampiezza saturaz. Ampiezza e inizio scalino Polinomi f. di t.
Ampiezza saturaz. Ampiezza e inizio scalino Polinomi f. di t.
Ampiezza saturaz. Ampiezza e inizio scalino Polinomi f. di t.

Ampiezza

saturaz.

Ampiezza saturaz. Ampiezza e inizio scalino Polinomi f. di t.
Ampiezza saturaz. Ampiezza e inizio scalino Polinomi f. di t.

Ampiezza e inizio scalino

Polinomi f. di t.

L’utente deve definire: Istanti di inizio e fine della simulazione; Tipo di solutore numerico (se
L’utente deve definire: Istanti di inizio e fine della simulazione; Tipo di solutore numerico (se
L’utente deve definire: Istanti di inizio e fine della simulazione; Tipo di solutore numerico (se
L’utente deve definire: Istanti di inizio e fine della simulazione; Tipo di solutore numerico (se

L’utente deve definire:

Istanti di inizio e fine della simulazione;L’utente deve definire: Tipo di solutore numerico (se il problema richiede metodi particolari); Parametri del solutore

Tipo di solutore numerico (se il problema richiede metodi particolari);deve definire: Istanti di inizio e fine della simulazione; Parametri del solutore (in genere i default

Parametri del solutore (in genere i default vanno bene…).Istanti di inizio e fine della simulazione; Tipo di solutore numerico (se il problema richiede metodi

Avvio sim ulazione e analisi risultati

Avvio sim ulazione e analisi risultati plot(y) al prompt di Matlab consente di visualizzare il risultato
Avvio sim ulazione e analisi risultati plot(y) al prompt di Matlab consente di visualizzare il risultato
Avvio sim ulazione e analisi risultati plot(y) al prompt di Matlab consente di visualizzare il risultato
Avvio sim ulazione e analisi risultati plot(y) al prompt di Matlab consente di visualizzare il risultato

plot(y) al prompt di Matlab consente di visualizzare il risultato della simulazione.