Matlab e Simulink per i sistemi di controllo - Corsi di Laurea a Distanza

147 downloads 144 Views 1MB Size Report
Matlab e Simulink per i sistemi di controllo. Introduzione. Analisi e simulazione in ambiente Matlab. Introduzione all'utilizzo di Simulink. Simulazione in ambiente ...
Controlli automatici

Matlab e Simulink per i sistemi di controllo

Introduzione e strumenti

Matlab e Simulink per i sistemi di controllo Introduzione Analisi e simulazione in ambiente Matlab Introduzione all’utilizzo di Simulink Simulazione in ambiente Simulink

2

© 2007 Politecnico di Torino

1

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Matlab e Simulink per i sistemi di controllo

Introduzione (1/2) L’utilizzo del linguaggio MATLAB© permette di realizzare facilmente i principali passi necessari per l’analisi ed il progetto di sistemi di controllo: Manipolazione di funzioni di trasferimento e calcolo delle loro principali caratteristiche (singolarità, guadagno, ecc.) Analisi del comportamento in frequenza di un sistema mediante il tracciamento di diagrammi di Bode, di Nyquist e di Nichols della sua fdt Simulazione della risposta di un sistema ad un ingresso assegnato 4

© 2007 Politecnico di Torino

2

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Introduzione (2/2) L’utilizzo del toolbox SIMULINK© di Matlab facilita la simulazione di sistemi interconnessi, consentendo la loro rappresentazione direttamente per mezzo del corrispondente schema a blocchi L’utilizzo congiunto di Matlab e Simulink permette di sviluppare interamente il progetto di un sistema di controllo, verificando agevolmente il soddisfacimento delle specifiche di progetto, nonché la valutazione delle prestazioni di interesse 5

Prerequisiti Nella trattazione verranno considerate già note le nozioni basilari del linguaggio Matlab (preparazione, salvataggio ed esecuzione di file, definizione di variabili, vettori e matrici, svolgimento delle principali operazioni matematiche, tracciamento di grafici) Alcuni comandi già introdotti ed utilizzati nel corso di “Fondamenti di Automatica”, relativi alla definizione e simulazione di sistemi dinamici, saranno ripresi in considerazione per essere utilizzati in caso di sistemi interconnessi 6

© 2007 Politecnico di Torino

3

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Note Nella trattazione verrà utilizzata la versione 6.5 di Matlab, a cui è associata la versione 5 di Simulink Possono essere impiegate versioni successive di Matlab e Simulink, fatte salve eventuali piccole differenze nella sintassi di alcuni comandi e/o nella definizione di particolari blocchi in Simulink I principali comandi Matlab introdotti ed utilizzati durante il corso sono riassunti nel file pdf allegato, insieme alle loro modalità di impiego

7

Un esempio applicativo L’utilizzo di Matlab e Simulink per l’analisi e la simulazione di un sistema di controllo sarà illustrato nel caso di un servomotore in c.c. rappresentabile per mezzo dello schema a blocchi equivalente sviluppato nella Lezione “Schema tecnologico di un sistema di controllo” Ia

Rs Vr,Ia

Vr,Ω +

CΩ(s)

+

Va

Vc



Tc

CIa(s)



Ia

Tm Km

+



1 Js+β



VD

VΩ

Kcond

© 2007 Politecnico di Torino

1 Ls + Ra

A

KD

8

4

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Matlab e Simulink per i sistemi di controllo

Calcolo della fdt del motore Primo obiettivo: calcolo della fdt del motore (incluso anello di corrente) per Tc = 0 F(s) =

Ia

Rs Vr,Ia

Vr,Ω +

CΩ(s)

+

Tc Va

Vc



1 Ls + Ra

A

CIa(s)



Ia

Tm Km

+



1 Js+β



VD

VΩ

Kcond

© 2007 Politecnico di Torino

VΩ (s) Vr,Ia (s)

KD

10

5

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Calcolo della fdt del motore Primo obiettivo: calcolo della fdt del motore (incluso anello di corrente) per Tc = 0 CIa (s) =

K s

F(s) =

Ia

Rs Vr,Ia

Vr,Ω +

CΩ(s)

+

Tc = 0 Va

Vc



VΩ (s) Vr,Ia (s)

1 Ls + Ra

A

CIa(s)



Ia

Tm Km



+

1 Js+β



VD

VΩ

Kcond

KD

11

Preparazione del file Matlab: 1a parte (1/3) Si consiglia di porre all’inizio di un nuovo file, aperto con l’editor di Matlab, i comandi di “pulizia” dello spazio di lavoro e di chiusura delle finestre grafiche eventualmente già aperte

clear all close all

12

© 2007 Politecnico di Torino

6

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Preparazione del file Matlab: 1a parte (1/3) Si consiglia di porre all’inizio di un nuovo file, aperto con l’editor di Matlab, i comandi di “pulizia” dello spazio di lavoro e di chiusura delle finestre grafiche eventualmente già aperte

clear all close all

Questi comandi permettono di “ripartire da zero” ogni volta in cui il file viene eseguito

13

Preparazione del file Matlab: 1a parte (1/3) Si consiglia di porre all’inizio di un nuovo file, aperto con l’editor di Matlab, i comandi di “pulizia” dello spazio di lavoro e di chiusura delle finestre grafiche eventualmente già aperte Si definisce la variabile complessa s per un’agevole definizione delle fdt di sistemi o sottosistemi

clear all close all s=tf(’s’);

14

© 2007 Politecnico di Torino

7

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Preparazione del file Matlab: 1a parte (1/3) Si consiglia di porre all’inizio di un nuovo file, aperto con l’editor di Matlab, i comandi di “pulizia” dello spazio di lavoro e di chiusura delle finestre grafiche eventualmente già aperte Si definisce la variabile complessa s per un’agevole definizione delle fdt di sistemi o sottosistemi

clear all close all s=tf(’s’);

Il comando tf permette di definire e/o di calcolare la fdt di un sistema LTI secondo diverse modalità

15

Preparazione del file Matlab: 1a parte (2/3) Si assegnano ai parametri del sistema i corrispettivi valori numerici (nelle appropriate unità di misura) e si definisce CIa(s)

clear all close all s=tf(’s’); Ra=6; L=3.24e-3; Km=0.0535; J=20e-6; beta=14e-6; KD=0.0285; Kcond=0.67; Rs=7.525; A=2.925; K=1000; CIa=K/s; 16

© 2007 Politecnico di Torino

8

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Preparazione del file Matlab: 1a parte (3/3) Si calcola la fdt fra Vr,Ia(s) e Ia(s) (indicata come Fr,Ia(s)) con il comando feedback FrIa=feedback(CIa*A/(L*s+Ra),Rs); Ia

Rs Vr,Ia

Vr,Ω +

CΩ(s)

Va

Vc



1 Ls + Ra

A

CIa(s)

+

Tc = 0



Ia

Tm Km



+

1 Js+β



VD

VΩ

KD

Kcond

17

Preparazione del file Matlab: 1a parte (3/3) Si calcola la fdt fra Vr,Ia(s) e Ia(s) (indicata come Fr,Ia(s)) con il comando feedback

1° argomento: fdt del ramo diretto

FrIa=feedback(CIa*A/(L*s+Ra),Rs); Ia

Rs Vr,Ia

Vr,Ω +

CΩ(s)

+

Va

Vc



Tc = 0

A

CIa(s)



Ia

Tm Km

+



1 Js+β



VD

VΩ

Kcond

© 2007 Politecnico di Torino

1 Ls + Ra

KD

18

9

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Preparazione del file Matlab: 1a parte (3/3) Si calcola la fdt fra Vr,Ia(s) e Ia(s) (indicata come Fr,Ia(s)) con il comando feedback

2° argomento: fdt della retroazione

FrIa=feedback(CIa*A/(L*s+Ra),Rs); Ia

Rs Vr,Ia

Vr,Ω +

CΩ(s)

Va

Vc



1 Ls + Ra

A

CIa(s)

+

Tc = 0



Ia

Tm Km



+

1 Js+β



VD

VΩ

KD

Kcond

19

Preparazione del file Matlab: 1a parte (3/3) Si calcola la fdt fra Vr,Ia(s) e La retroazione è assunta Ia(s) (indicata come Fr,Ia(s)) automaticamente negativa con il comando feedback FrIa=feedback(CIa*A/(L*s+Ra),Rs); Ia

Rs Vr,Ia

Vr,Ω +

CΩ(s)

+

Va

Vc



Tc = 0

A

CIa(s)



Ia

Tm Km

+



1 Js+β



VD

VΩ

Kcond

© 2007 Politecnico di Torino

1 Ls + Ra

KD

20

10

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Preparazione del file Matlab: 1a parte (3/3) Si calcola la fdt fra Vr,Ia(s) e Per visualizzare il Ia(s) (indicata come Fr,Ia(s)) risultato non si mette il ; con il comando feedback Si calcola la F(s) cercata (cascata di blocchi)

FrIa=feedback(CIa*A/(L*s+Ra),Rs); F=FrIa*Km/(J*s+beta)*KD*Kcond Ia

Rs Vr,Ia

Vr,Ω +

CΩ(s)

+

Va

Vc



Tc = 0

1 Ls + Ra

A

CIa(s)



Ia

Tm Km

+



1 Js+β



VD

VΩ

Kcond

KD

21

Fdt del motore e schema a blocchi risultante L’esecuzione della prima parte del file Matlab così preparata dà come risultato: Transfer function:

2.988 ------------------------------------------------------------------6.48e-008 s^3 + 0.00012 s^2 + 0.4403 s + 0.3081

22

© 2007 Politecnico di Torino

11

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Fdt del motore e schema a blocchi risultante L’esecuzione della prima parte del file Matlab così preparata dà come risultato: Transfer function:

2.988 ------------------------------------------------------------------6.48e-008 s^3 + 0.00012 s^2 + 0.4403 s + 0.3081

Per Tc = 0 lo schema a blocchi diventa pertanto: r

Kr

ydes +

e –

CΩ(s)

u

F(s)

y

23

Fdt del motore e schema a blocchi risultante L’esecuzione della prima parte del file Matlab così preparata dà come risultato: Transfer function:

2.988 ------------------------------------------------------------------6.48e-008 s^3 + 0.00012 s^2 + 0.4403 s + 0.3081

Per Tc = 0 lo schema a blocchi diventa pertanto: r

Kr

ydes

ydes = Vr,Ω

© 2007 Politecnico di Torino

+

e –

CΩ(s)

u

F(s)

y y = VΩ

u = Vr,Ia

24

12

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Simulazione del sistema ad anello chiuso Secondo obiettivo: simulazione della risposta del sistema ad anello chiuso ad un riferimento a gradino unitario, per diversi controllori CΩ(s) r

Kr

ydes +

e –

CΩ(s)

u

F(s)

y

25

Simulazione del sistema ad anello chiuso Secondo obiettivo: simulazione della risposta del sistema ad anello chiuso ad un riferimento a gradino unitario, per diversi controllori CΩ(s) Kr = 1

r

Kr

ydes +

e –

CΩ(s)

u

F(s)

y

r = gradino unitario

26

© 2007 Politecnico di Torino

13

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Simulazione del sistema ad anello chiuso Secondo obiettivo: simulazione della risposta del sistema ad anello chiuso ad un riferimento a gradino unitario, per diversi controllori CΩ(s) Kr = 1

r

Kr

ydes +

e –

CΩ(s)

r = gradino unitario

u

F(s)

y

Da progettare: ad esempio P (proporzionale) o PI (proporzionale-integrativo) 27

Preparazione del file Matlab: 2a parte (1/2) Si assegna a Kr il valore 1

Kr=1;

28

© 2007 Politecnico di Torino

14

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Preparazione del file Matlab: 2a parte (1/2) Si assegna a Kr il valore 1 Si definisce la fdt del controllore: Kp (proporzionale)

Kr=1; Kp=0.4; C_omega1=Kp;

29

Preparazione del file Matlab: 2a parte (1/2) Si assegna a Kr il valore 1 Si definisce la fdt del controllore: Kp (proporzionale) Kp+Ki/s (proporzionaleintegrativa)

Kr=1; Kp=0.4; C_omega1=Kp; Ki=2; C_omega2=Kp+Ki/s;

30

© 2007 Politecnico di Torino

15

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Preparazione del file Matlab: 2a parte (1/2) Kr=1; Si assegna a Kr il valore 1 Kp=0.4; Si definisce la fdt del C_omega1=Kp; Ki=2; controllore: Kp C_omega2=Kp+Ki/s; (proporzionale) Kp+Ki/s (proporzionaleW1=Kr*feedback(C_omega1*F,1); integrativa) W2=Kr*feedback(C_omega2*F,1); Si calcola la fdt ad anello chiuso nei due casi

31

Preparazione del file Matlab: 2a parte (2/2) Si applica il gradino unitario con il comando step

Kr=1; Kp=0.4; C_omega1=Kp; Ki=2; C_omega2=Kp+Ki/s;

W1=Kr*feedback(C_omega1*F,1); W2=Kr*feedback(C_omega2*F,1); step(W1,5) hold on step(W2,5) hold off

32

© 2007 Politecnico di Torino

16

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Preparazione del file Matlab: 2a parte (2/2) Si applica il gradino unitario con il comando step

Kr=1; Kp=0.4; C_omega1=Kp; Ki=2; C_omega2=Kp+Ki/s;

W1=Kr*feedback(C_omega1*F,1); W2=Kr*feedback(C_omega2*F,1); step(W1,5) hold on step(W2,5) hold off

2° argomento: istante finale della simulazione a partire da t = 0 33

Preparazione del file Matlab: 2a parte (2/2) Si applica il gradino unitario con il comando step

Kr=1; Kp=0.4; C_omega1=Kp; Ki=2; C_omega2=Kp+Ki/s;

W1=Kr*feedback(C_omega1*F,1); W2=Kr*feedback(C_omega2*F,1); step(W1,5) hold on step(W2,5) hold off

Tutti i grafici vengono riportati nella medesima finestra per un più agevole confronto 34

© 2007 Politecnico di Torino

17

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Risultato della simulazione L’esecuzione della seconda parte del file Matlab così preparata effettua la simulazione desiderata: Risposta al gradino unitario con CΩ(s) = Kp + Ki/s Risposta al gradino unitario con CΩ(s) = Kp

35

Analisi della risposta del sistema (1/3) Valutazione del valore della risposta in regime permanente e calcolo dell’errore di inseguimento finale e∞ = 0

e ∞ = 0.205

36

© 2007 Politecnico di Torino

18

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Analisi della risposta del sistema (2/3) Valutazione della sovraelongazione massima e del tempo di assestamento ˆ s

ta (calcolato al 2%)

37

Analisi della risposta del sistema (3/3) Valutazione del tempo di salita (secondo le definizioni date per tr e ts)

ts tr

38

© 2007 Politecnico di Torino

19

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Poli del sistema ad anello chiuso (1/2) Il diverso comportamento del sistema ad anello chiuso con i due controllori adottati può essere giustificato calcolando il valore dei poli della funzione W(s) nei due casi: Il comando damp determina i poli della fdt nella forma “parte reale + parte immaginaria” e ne fornisce anche pulsazione naturale e fattore di smorzamento

damp(W1) damp(W2)

39

Poli del sistema ad anello chiuso (2/2) Eigenvalue -3.42e+000

Damping

Freq. (rad/s)

1.00e+000

3.42e+000

-9.25e+002 + 2.44e+003i 3.55e-001

2.61e+003

-9.25e+002 – 2.44e+003i

2.61e+003

3.55e-001

damp(W1) damp(W2)

40

© 2007 Politecnico di Torino

20

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Poli del sistema ad anello chiuso (2/2) Eigenvalue -3.42e+000

Damping

Freq. (rad/s)

1.00e+000

3.42e+000

-9.25e+002 + 2.44e+003i 3.55e-001

2.61e+003

-9.25e+002 – 2.44e+003i

3.55e-001

2.61e+003

Eigenvalue

Damping

Freq. (rad/s)

damp(W1) damp(W2) -1.71e+000 + 3.27e+000i 4.63e-001

3.69e+000

-1.71e+000 - 3.27e+000i

4.63e-001

3.69e+000

-9.25e+002 + 2.44e+003i 3.55e-001

2.61e+003

-9.25e+002 - 2.44e+003i

2.61e+003

3.55e-001

41

Riconoscimento dei poli dominanti Eigenvalue -3.42e+000

Damping

Freq. (rad/s)

1.00e+000

3.42e+000

-9.25e+002 + 2.44e+003i 3.55e-001

2.61e+003

-9.25e+002 – 2.44e+003i

3.55e-001

2.61e+003

Eigenvalue

Damping

Freq. (rad/s)

Poli dominanti -1.71e+000 + 3.27e+000i 4.63e-001

3.69e+000

-1.71e+000 - 3.27e+000i

4.63e-001

3.69e+000

-9.25e+002 + 2.44e+003i 3.55e-001

2.61e+003

-9.25e+002 - 2.44e+003i

2.61e+003

3.55e-001

42

© 2007 Politecnico di Torino

21

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Riconoscimento dei poli dominanti W1(s) ha un polo dominante reale

Eigenvalue -3.42e+000

Damping

Freq. (rad/s)

1.00e+000

3.42e+000

-9.25e+002 + 2.44e+003i 3.55e-001

2.61e+003

-9.25e+002 – 2.44e+003i

3.55e-001

2.61e+003

Eigenvalue

Damping

Freq. (rad/s)

Poli dominanti -1.71e+000 + 3.27e+000i 4.63e-001

3.69e+000

-1.71e+000 - 3.27e+000i

4.63e-001

3.69e+000

-9.25e+002 + 2.44e+003i 3.55e-001

2.61e+003

-9.25e+002 - 2.44e+003i

2.61e+003

3.55e-001

43

Riconoscimento dei poli dominanti W1(s) ha un polo dominante reale

Eigenvalue -3.42e+000

Damping

Freq. (rad/s)

1.00e+000

3.42e+000

-9.25e+002 + 2.44e+003i 3.55e-001

2.61e+003

-9.25e+002 – 2.44e+003i

2.61e+003

3.55e-001

Poli dominanti

ζ = 0.463 Eigenvalue

W2(s) ha una coppia di poli dominanti complessi coniugati

Damping

Freq. (rad/s)

-1.71e+000 + 3.27e+000i 4.63e-001

3.69e+000

-1.71e+000 - 3.27e+000i

4.63e-001

3.69e+000

-9.25e+002 + 2.44e+003i 3.55e-001

2.61e+003

-9.25e+002 - 2.44e+003i

2.61e+003

3.55e-001

44

© 2007 Politecnico di Torino

22

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Matlab e Simulink per i sistemi di controllo

Il toolbox Simulink (1/2) Il toolbox SIMULINK© permette di rappresentare il sistema direttamente per mezzo del corrispondente schema a blocchi e di simularne il comportamento

46

© 2007 Politecnico di Torino

23

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Il toolbox Simulink (2/2) In particolare è possibile: Assegnare agevolmente differenti segnali di riferimento Considerare la contemporanea presenza di disturbi lungo l’anello Visualizzare direttamente l’andamento di più variabili di interesse (ad es. l’uscita, l’errore di inseguimento, il comando) Salvare in un file il risultato della simulazione e/o renderlo disponibile nello spazio di lavoro di Matlab

47

Apertura di Simulink (1/2) Per aprire Simulink, è sufficiente digitare la parola “simulink” nella finestra di comando di Matlab oppure cliccare sulla corrispondente icona

48

© 2007 Politecnico di Torino

24

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Apertura di Simulink (2/2) Dalla finestra del “Simulink Library Browser” è possibile: Creare un nuovo modello o aprirne uno già esistente (file .mdl) dal menu “File” Individuare gli elementi di interesse nella libreria principale di Simulink o fra i toolbox disponibili Modificare alcune proprietà generali (ad esempio le caratteristiche dei font utilizzati) 49

Creazione di un modello Simulink (1/4) Per inserire un blocco nel modello (o più in generale qualunque elemento disponibile nelle librerie), è sufficiente selezionarlo e trascinarlo nella finestra del modello, mantenendo premuto il tasto sinistro del mouse

50

© 2007 Politecnico di Torino

25

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Creazione di un modello Simulink (2/4) Per collegare due blocchi mediante un ramo, è sufficiente cliccare sul morsetto di uscita del primo e trascinare il cursore (tenendo premuto il tasto sinistro del mouse) fino a raggiungere l’ingresso del secondo oppure selezionare i due blocchi (nella sequenza desiderata) tenendo premuto il tasto CTRL

51

Creazione di un modello Simulink (2/4) Per collegare due blocchi mediante un ramo, è sufficiente cliccare sul morsetto di uscita del primo e trascinare il cursore (tenendo premuto il tasto sinistro del mouse) fino a raggiungere l’ingresso del secondo oppure selezionare i due blocchi (nella sequenza desiderata) tenendo premuto il tasto CTRL

52

© 2007 Politecnico di Torino

26

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Creazione di un modello Simulink (3/4) È possibile modificare i parametri di un blocco facendo un doppio click sul blocco stesso: si apre in questo modo una finestra di interfaccia, contenente appositi campi per l’assegnazione dei parametri del blocco modificabili dall’utente

53

Creazione di un modello Simulink (3/4) È possibile modificare i parametri di un blocco facendo un doppio click sul blocco stesso: si apre in questo modo una finestra di interfaccia, contenente appositi campi per l’assegnazione dei parametri del blocco modificabili dall’utente Per rinominare un blocco è sufficiente cliccare sul nome assegnato automaticamente e modificarlo secondo quanto desiderato

54

© 2007 Politecnico di Torino

27

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Creazione di un modello Simulink (4/4) Premendo il tasto destro del mouse in corrispondenza di un blocco selezionato, si apre un menu a tendina che consente di agire su tutte le caratteristiche del blocco, sia di contenuto (parametri) sia grafiche (font, rotazioni del blocco, colori, ecc.)

55

Blocchi ed elementi principali (1/9) Nella cartella “Continuous” sono disponibili i principali blocchi associati alla rappresentazione di sistemi dinamici a tempo continuo, mentre nella cartella “Discrete” si possono trovare quelli associati alla rappresentazione di sistemi dinamici a tempo discreto

56

© 2007 Politecnico di Torino

28

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Blocchi ed elementi principali (2/9) È possibile definire direttamente un sistema Lineare Tempo-Invariante, sia a tempo continuo sia a tempo discreto, secondo tutte le modalità ammesse dal “Control System Toolbox” (fdt o rappresentazione in variabili di stato) usando il blocco “LTI System” disponibile nella libreria di tale toolbox

57

Blocchi ed elementi principali (3/9)

La definizione della fdt viene automaticamente proposta per mezzo del comando tf

58

© 2007 Politecnico di Torino

29

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Blocchi ed elementi principali (3/9)

Se il sistema è già stato definito nello spazio di lavoro di MATLAB, è sufficiente associare al blocco la sua fdt già calcolata 59

Blocchi ed elementi principali (4/9) Nella cartella “Math Operations” si trovano tutti gli elementi che realizzano le operazioni matematiche, tra cui i blocchi “Gain” (guadagno) e “Sum” (sommatore)

60

© 2007 Politecnico di Torino

30

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Blocchi ed elementi principali (5/9) Nella cartella “Sources” si trovano i blocchi che permettono di applicare un segnale generato a piacere, tra cui “Step”, “Ramp”, “Sine Wave” e “Signal generator”, oppure salvato in un file .mat o predefinito nello spazio di lavoro di MATLAB

61

Blocchi ed elementi principali (6/9) Nella cartella “Signal Routing” si trovano blocchi utili per la gestione dei segnali, tra cui “Mux” e “Demux” (per le funzioni di multiplexer e demultiplexer) e gli interruttori manuale (“Manual Switch” ) ed automatico (“Switch”)

62

© 2007 Politecnico di Torino

31

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Blocchi ed elementi principali (7/9) Nella cartella “Sinks” sono disponibili i blocchi per visualizzare immediatamente una variabile (“Scope” ), per renderla disponibile nello spazio di lavoro di Matlab (“To Workspace”) o per salvarla in un file .mat (“To File”)

63

Blocchi ed elementi principali (8/9) È possibile raggruppare una parte di un sistema complesso in un unico blocco di sottosistema (“Subsystem” ), mantenendo inalterati i suoi collegamenti per mezzo di porte di ingresso e di uscita (“In” e “Out” ), utilizzando gli elementi disponibili nella cartella “Ports & Subsystems”

64

© 2007 Politecnico di Torino

32

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Blocchi ed elementi principali (9/9)

Con un doppio click sul blocco di sottosistema, si apre la finestra in cui dovrà essere costruito il suo modello. È possibile inserire ulteriori ingressi e/o uscite aggiungendo ulteriori elementi di “In” e “Out” 65

Esecuzione della simulazione (1/2) I parametri di simulazione (istante iniziale ed istante finale, algoritmo di integrazione numerica, passo di integrazione e tolleranze sull’errore) possono essere modificati selezionando “Simulation parameters” dal menu “Simulation”

66

© 2007 Politecnico di Torino

33

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Esecuzione della simulazione (2/2) Per eseguire la simulazione, è sufficiente selezionare “Start” dal menu “Simulation” (oppure utilizzare il tasto rapido di “Start simulation” sulla barra degli strumenti)

67

Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino

34

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Applicazione ad un servomotore in c.c. (1/3) Il modello del servomotore in c.c. (rappresentato dal suo schema a blocchi equivalente) può essere facilmente realizzato in Simulink, dopo aver definito nello spazio di lavoro in Matlab tutti i parametri e le fdt che in esso compaiono Ia

Rs Vr,Ia

Vr,Ω

CΩ(s)

+

+

Va

Vc



Tc

1 Ls + Ra

A

CIa(s)



Ia

Tm Km

+



1 Js+β



VD

VΩ

Kcond

KD

69

Applicazione ad un servomotore in c.c. (2/3) Il modello del servomotore in c.c. (rappresentato dal suo schema a blocchi equivalente) può essere facilmente realizzato in Simulink, dopo aver definito nello spazio di lavoro in Matlab tutti i parametri e le fdt che in esso compaiono A tale scopo è sufficiente eseguire la prima parte del file Matlab prima creato, completata dalla definizione della fdt dei controllori che si vogliono applicare (ad esempio i controllori P e PI precedentemente considerati)

70

© 2007 Politecnico di Torino

35

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Applicazione ad un servomotore in c.c. (3/3) Per simulare il comportamento del sistema controllato non sarà necessario calcolare preventivamente la fdt del servomotore F(s), così come sarà possibile includere anche la contemporanea presenza di una coppia di disturbo Tc

71

File Matlab di definizione del modello Dopo l’esecuzione del file, i parametri e le fdt presenti nello spazio di lavoro saranno automaticamente riconosciuti dai blocchi Simulink che li contengono ed a ciascuno di essi sarà associata la rispettiva espressione definita in Matlab

clear all close all s=tf(’s’); Ra=6; L=3.24e-3; Km=0.0535; J=20e-6; beta=14e-6; KD=0.0285; Kcond=0.67; Rs=7.525; A=2.925; K=1000; CIa=K/s;

Prima parte del file: definizione dei parametri del servomotore 72

© 2007 Politecnico di Torino

36

Controlli automatici

Matlab e Simulink per i sistemi di controllo

File Matlab di definizione del modello Dopo l’esecuzione del file, i parametri e le fdt presenti nello spazio di lavoro saranno automaticamente riconosciuti dai blocchi Simulink che li contengono ed a ciascuno di essi sarà associata la rispettiva espressione definita in Matlab

Kr=1; Kp=0.4; C_omega1=Kp; Ki=2; C_omega2=Kp+Ki/s;

Seconda parte del file: definizione dei controllori P e PI 73

Modello Simulink del servomotore (1/7)

74

© 2007 Politecnico di Torino

37

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Modello Simulink del servomotore (1/7)

Blocco Step da Sources

75

Modello Simulink del servomotore (1/7)

Blocco Step da Sources

76

© 2007 Politecnico di Torino

38

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Modello Simulink del servomotore (2/7)

Blocchi Gain e Sum da Math Operations

77

Modello Simulink del servomotore (3/7)

Blocco LTI System da Control System Toolbox

78

© 2007 Politecnico di Torino

39

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Modello Simulink del servomotore (4/7)

Blocco Constant da Sources

79

Modello Simulink del servomotore (4/7)

Blocco Constant da Sources Il disturbo è imposto nullo come nella simulazione in Matlab 80

© 2007 Politecnico di Torino

40

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Modello Simulink del servomotore (5/7)

Subsystem (da Ports & Subsystems)

81

Modello Simulink del servomotore (5/7)

Subsystem (da Ports & Subsystems)

Blocco In aggiuntivo rispetto agli In e Out preesistenti

© 2007 Politecnico di Torino

82

41

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Modello Simulink del servomotore (6/7)

Blocco Mux da Signal Routing

83

Modello Simulink del servomotore (7/7)

Blocchi Scope e To File da Sinks

84

© 2007 Politecnico di Torino

42

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Simulazione 1: controllore P, Tc = 0 (1/3)

Parametri di simulazione

85

Simulazione 1: controllore P, Tc = 0 (2/3) Risultato visibile sull’oscilloscopio

Conferma del risultato ottenuto con Matlab: elevato errore finale

86

© 2007 Politecnico di Torino

43

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Simulazione 1: controllore P, Tc = 0 (3/3) Creazione del file “simul.mat” contenente la variabile “simulazione”

La variabile “simulazione” generata ha tre righe: 1) campioni del tempo 2) campioni dell’uscita 3) campioni del riferimento 87

Simulazione 2: controllore P, Tc = 0.005 Risultato visibile sull’oscilloscopio

Si riscontra una significativa variazione dell’errore finale

88

© 2007 Politecnico di Torino

44

Controlli automatici

Matlab e Simulink per i sistemi di controllo

Simulazione 3: controllore PI, Tc = 0 Risultato visibile sull’oscilloscopio

Conferma del risultato ottenuto con Matlab: presenza di significativa sovraelongazione, errore finale nullo 89

Simulazione 4: controllore PI, Tc = 0.005 Risultato visibile sull’oscilloscopio

Si riscontra un elevato aumento della sovraelongazione, mentre l’errore finale rimane nullo 90

© 2007 Politecnico di Torino

45