Introduzione e strumenti -...

45
Controlli automatici Matlab e Simulink per i sistemi di controllo © 2007 Politecnico di Torino 1 Introduzione e strumenti 2 Matlab e Simulink per i sistemi di controllo Introduzione Analisi e simulazione in ambiente Matlab Introduzione all’utilizzo di Simulink Simulazione in ambiente Simulink

Transcript of Introduzione e strumenti -...

Page 1: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 1

Introduzione e strumenti

2

Matlab e Simulink per i sistemi di controllo

IntroduzioneAnalisi e simulazione in ambiente MatlabIntroduzione all’utilizzo di SimulinkSimulazione in ambiente Simulink

Page 2: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 2

Matlab e Simulink per i sistemi di controllo

4

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 fdtSimulazione della risposta di un sistema ad un ingresso assegnato

Page 3: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 3

5

Introduzione (2/2)

L’utilizzo del toolbox SIMULINK© di Matlabfacilita la simulazione di sistemi interconnessi, consentendo la loro rappresentazionedirettamente per mezzo del corrispondenteschema a blocchiL’utilizzo congiunto di Matlab e Simulink permettedi sviluppare interamente il progetto di un sistema di controllo, verificando agevolmente ilsoddisfacimento delle specifiche di progetto, nonché la valutazione delle prestazioni di interesse

6

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 operazionimatematiche, tracciamento di grafici)Alcuni comandi già introdotti ed utilizzati nelcorso di “Fondamenti di Automatica”, relativi alladefinizione e simulazione di sistemi dinamici, saranno ripresi in considerazione per essereutilizzati in caso di sistemi interconnessi

Page 4: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 4

7

Note

Nella trattazione verrà utilizzata la versione 6.5 di Matlab, a cui è associata la versione 5 di SimulinkPossono 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 SimulinkI principali comandi Matlab introdotti ed utilizzati durante il corso sono riassunti nel file pdf allegato, insieme alle loro modalità di impiego

8

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 blocchiequivalente sviluppato nella Lezione “Schema tecnologico di un sistema di controllo”

Vr,Ia

+–

)s(CΩ

Vr,Ω

Kcond

VΩKD

+

– Vc

)s(CIa

Rs

Ia

A

Va

a

1Ls R+

Ia Tm

+

– Ω

Km

Tc

VD

β+Js1

Page 5: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 5

Matlab e Simulink per i sistemi di controllo

10

Vr,Ia

+–

)s(CΩ

Vr,Ω

Kcond

VΩKD

+

– Vc

)s(CIa

Rs

Ia

A

Va

a

1Ls R+

Ia Tm

+

– Ω

Km

Tc

VD

β+Js1

Calcolo della fdt del motore

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

r,Ia

V (s)F(s)V (s)

Ω=

Page 6: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 6

11

Calcolo della fdt del motore

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

Ia

KC (s)

s=

r,Ia

V (s)F(s)V (s)

Ω=

Tc= 0

Vr,Ia

+–

)s(CΩ

Vr,Ω

Kcond

VΩKD

+

– Vc

)s(CIa

Rs

Ia

A

Va

a

1Ls R+

Ia Tm

+

– Ω

Km

VD

β+Js1

12

Preparazione del file Matlab: 1a parte (1/3)

clear allclose all

Si consiglia di porre all’iniziodi un nuovo file, aperto con l’editor di Matlab, i comandi di “pulizia”dello spazio di lavoro e di chiusura delle finestregrafiche eventualmente giàaperte

Page 7: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 7

13

Preparazione del file Matlab: 1a parte (1/3)

Questi comandipermettono di “ripartire da zero”ogni volta in cui ilfile viene eseguito

clear allclose all

Si consiglia di porre all’iniziodi un nuovo file, aperto con l’editor di Matlab, i comandi di “pulizia”dello spazio di lavoro e di chiusura delle finestregrafiche eventualmente giàaperte

14

Preparazione del file Matlab: 1a parte (1/3)

clear allclose alls=tf(’s’);

Si consiglia di porre all’iniziodi un nuovo file, aperto con l’editor di Matlab, i comandi di “pulizia”dello spazio di lavoro e di chiusura delle finestregrafiche eventualmente giàaperteSi definisce la variabilecomplessa s per un’agevole definizione dellefdt di sistemi o sottosistemi

Page 8: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 8

15

Preparazione del file Matlab: 1a parte (1/3)

Il comando tfpermette di definiree/o di calcolare la fdt di un sistema LTI secondo diverse modalità

clear allclose alls=tf(’s’);

Si consiglia di porre all’iniziodi un nuovo file, aperto con l’editor di Matlab, i comandi di “pulizia”dello spazio di lavoro e di chiusura delle finestregrafiche eventualmente giàaperteSi definisce la variabilecomplessa s per un’agevole definizione dellefdt di sistemi o sottosistemi

16

Preparazione del file Matlab: 1a parte (2/3)

clear allclose alls=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;

Si assegnano ai parametridel sistema i corrispettivivalori numerici (nelleappropriate unità di misura) e si definisce CIa(s)

Page 9: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 9

17

Si calcola la fdt fra Vr,Ia(s) e Ia(s) (indicata come Fr,Ia(s)) con il comando feedback

Preparazione del file Matlab: 1a parte (3/3)

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

Tc= 0

Vr,Ia

+–

)s(CΩ

Vr,Ω

Kcond

VΩKD

+

– Vc

)s(CIa

Rs

Ia

A

Va

a

1Ls R+

Ia Tm

+

– Ω

Km

VD

β+Js1

18

Si calcola la fdt fra Vr,Ia(s) e Ia(s) (indicata come Fr,Ia(s)) con il comando feedback

Preparazione del file Matlab: 1a parte (3/3)

1° argomento: fdtdel ramo diretto

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

Tc= 0

Vr,Ia

+–

)s(CΩ

Vr,Ω

Kcond

VΩKD

+

– Vc

)s(CIa

Rs

Ia

A

Va

a

1Ls R+

Ia Tm

+

– Ω

Km

VD

β+Js1

Page 10: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 10

19

Si calcola la fdt fra Vr,Ia(s) e Ia(s) (indicata come Fr,Ia(s)) con il comando feedback

Preparazione del file Matlab: 1a parte (3/3)

2° argomento: fdt dellaretroazione

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

Tc= 0

Vr,Ia

+–

)s(CΩ

Vr,Ω

Kcond

VΩKD

+

– Vc

)s(CIa

Rs

Ia

A

Va

a

1Ls R+

Ia Tm

+

– Ω

Km

VD

β+Js1

20

Preparazione del file Matlab: 1a parte (3/3)

La retroazione è assuntaautomaticamente negativa

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);

Tc= 0

Vr,Ia

+–

)s(CΩ

Vr,Ω

Kcond

VΩKD

+

– Vc

)s(CIa

Rs

Ia

A

Va

a

1Ls R+

Ia Tm

+

– Ω

Km

VD

β+Js1

Page 11: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 11

21

Preparazione del file Matlab: 1a parte (3/3)

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

Si calcola la F(s) cercata (cascatadi blocchi)

Per visualizzare ilrisultato non si mette il ;

Si calcola la fdt fra Vr,Ia(s) e Ia(s) (indicata come Fr,Ia(s)) con il comando feedback

Tc= 0

Vr,Ia

+–

)s(CΩ

Vr,Ω

Kcond

VΩKD

+

– Vc

)s(CIa

Rs

Ia

A

Va

a

1Ls R+

Ia Tm

+

– Ω

Km

VD

β+Js1

22

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

Page 12: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 12

23

e u yF(s)CΩ(s)

ydes

+

rKr

L’esecuzione della prima parte del file Matlab cosìpreparata dà come risultato:

Per Tc = 0 lo schema a blocchi diventa pertanto:

Fdt del motore e schema a blocchi risultante

Transfer function:2.988

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

24

e u yF(s)CΩ(s)

ydes

+

rKr

ydes = Vr,Ω

u = Vr,Ia

y = VΩ

L’esecuzione della prima parte del file Matlab cosìpreparata dà come risultato:

Per Tc = 0 lo schema a blocchi diventa pertanto:

Fdt del motore e schema a blocchi risultante

Transfer function:2.988

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

Page 13: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 13

25

Simulazione del sistema ad anello chiuso

e u yF(s)CΩ(s)

ydes

+Kr

r

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

26

Simulazione del sistema ad anello chiuso

e u yF(s)CΩ(s)

ydes

+

rKr

r = gradino unitario

Kr = 1

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

Page 14: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 14

27

Simulazione del sistema ad anello chiuso

Da progettare: ad esempioP (proporzionale) o PI(proporzionale-integrativo)

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

e u yF(s)CΩ(s)

ydes

+

rKr

r = gradino unitario

Kr = 1

28

Preparazione del file Matlab: 2a parte (1/2)

Si assegna a Kr il valore 1 Kr=1;

Page 15: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 15

29

Preparazione del file Matlab: 2a parte (1/2)

Si assegna a Kr il valore 1Si definisce la fdt del controllore: Kp(proporzionale)

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

30

Si assegna a Kr il valore 1Si definisce la fdt del controllore: Kp(proporzionale)Kp+Ki/s (proporzionale-integrativa)

Preparazione del file Matlab: 2a parte (1/2)

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

Page 16: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 16

31

Si assegna a Kr il valore 1Si definisce la fdt del controllore: Kp(proporzionale)Kp+Ki/s (proporzionale-integrativa)Si calcola la fdt ad anello chiuso nei due casi

Preparazione del file Matlab: 2a parte (1/2)

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);

32

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

Preparazione del file Matlab: 2a parte (2/2)

Si applica il gradino unitariocon il comando step

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

Page 17: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 17

33

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

Preparazione del file Matlab: 2a parte (2/2)

2° argomento: istantefinale della simulazionea partire da t = 0

Si applica il gradino unitariocon il comando step

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

34

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

Preparazione del file Matlab: 2a parte (2/2)

Tutti i grafici vengono riportatinella medesima finestra per un più agevole confronto

Si applica il gradino unitariocon il comando step

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

Page 18: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 18

35

Risultato della simulazione

Risposta al gradinounitario con CΩ(s) = Kp

Risposta al gradino unitariocon CΩ(s) = Kp + Ki/s

L’esecuzione della seconda parte del file Matlabcosì preparata effettua la simulazione desiderata:

36

Analisi della risposta del sistema (1/3)

e 0∞ =

e 0.205∞ =

Valutazione del valore della risposta in regime permanente e calcolo dell’errore di inseguimento finale

Page 19: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 19

37

Analisi della risposta del sistema (2/3)

s

ta(calcolato al 2%)

Valutazione della sovraelongazione massima e del tempo di assestamento

38

Analisi della risposta del sistema (3/3)

tr

ts

Valutazione del tempo di salita (secondo le definizioni date per tr e ts)

Page 20: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 20

39

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:

damp(W1)damp(W2)

Il comando damp determinai poli della fdt nella forma “parte reale + parte immaginaria” e ne fornisceanche pulsazione naturale e fattore di smorzamento

40

Poli del sistema ad anello chiuso (2/2)

2.61e+0033.55e-001-9.25e+002 – 2.44e+003i

2.61e+0033.55e-001-9.25e+002 + 2.44e+003i

3.42e+0001.00e+000-3.42e+000

Freq. (rad/s)DampingEigenvalue

damp(W1)damp(W2)

Page 21: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 21

41

Poli del sistema ad anello chiuso (2/2)

2.61e+0033.55e-001-9.25e+002 – 2.44e+003i

2.61e+0033.55e-001-9.25e+002 + 2.44e+003i

3.42e+0001.00e+000-3.42e+000

Freq. (rad/s)DampingEigenvalue

3.69e+0004.63e-001-1.71e+000 + 3.27e+000i

2.61e+0033.55e-001-9.25e+002 - 2.44e+003i

2.61e+0033.55e-001-9.25e+002 + 2.44e+003i

3.69e+0004.63e-001-1.71e+000 - 3.27e+000i

Freq. (rad/s)DampingEigenvalue

damp(W1)damp(W2)

42

Riconoscimento dei poli dominanti

2.61e+0033.55e-001-9.25e+002 – 2.44e+003i

2.61e+0033.55e-001-9.25e+002 + 2.44e+003i

3.42e+0001.00e+000-3.42e+000

Freq. (rad/s)DampingEigenvalue

3.69e+0004.63e-001-1.71e+000 + 3.27e+000i

2.61e+0033.55e-001-9.25e+002 - 2.44e+003i

2.61e+0033.55e-001-9.25e+002 + 2.44e+003i

3.69e+0004.63e-001-1.71e+000 - 3.27e+000i

Freq. (rad/s)DampingEigenvalue

Polidominanti

Page 22: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 22

43

Riconoscimento dei poli dominanti

2.61e+0033.55e-001-9.25e+002 – 2.44e+003i

2.61e+0033.55e-001-9.25e+002 + 2.44e+003i

3.42e+0001.00e+000-3.42e+000

Freq. (rad/s)DampingEigenvalue

3.69e+0004.63e-001-1.71e+000 + 3.27e+000i

2.61e+0033.55e-001-9.25e+002 - 2.44e+003i

2.61e+0033.55e-001-9.25e+002 + 2.44e+003i

3.69e+0004.63e-001-1.71e+000 - 3.27e+000i

Freq. (rad/s)DampingEigenvalue

W1(s) ha un polo dominantereale

Polidominanti

44

Riconoscimento dei poli dominanti

2.61e+0033.55e-001-9.25e+002 – 2.44e+003i

2.61e+0033.55e-001-9.25e+002 + 2.44e+003i

3.42e+0001.00e+000-3.42e+000

Freq. (rad/s)DampingEigenvalue

3.69e+0004.63e-001-1.71e+000 + 3.27e+000i

2.61e+0033.55e-001-9.25e+002 - 2.44e+003i

2.61e+0033.55e-001-9.25e+002 + 2.44e+003i

3.69e+0004.63e-001-1.71e+000 - 3.27e+000i

Freq. (rad/s)DampingEigenvalue

W2(s) ha unacoppia di polidominanticomplessiconiugati

W1(s) ha un polo dominantereale

ζ = 0.463Polidominanti

Page 23: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 23

Matlab e Simulink per i sistemi di controllo

46

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

Page 24: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 24

47

Il toolbox Simulink (2/2)

In particolare è possibile:Assegnare agevolmente differenti segnali di riferimento Considerare la contemporanea presenza di disturbi lungo l’anelloVisualizzare 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

48

Per aprire Simulink, è sufficiente digitare la parola “simulink” nella finestra di comando di Matlab oppure cliccare sulla corrispondente icona

Apertura di Simulink (1/2)

Page 25: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 25

49

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 disponibiliModificare alcune proprietà generali (ad esempio le caratteristiche dei font utilizzati)

Apertura di Simulink (2/2)

50

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

Page 26: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 26

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

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

Page 27: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 27

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

54

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’utentePer rinominare un blocco è sufficiente cliccare sul nome assegnato automaticamente e modificarlo secondo quanto desiderato

Page 28: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 28

55

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.)

56

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

Page 29: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 29

57

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

58

Blocchi ed elementi principali (3/9)

La definizione della fdtviene automaticamenteproposta per mezzo del comando tf

Page 30: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 30

59

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

60

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)

Page 31: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 31

61

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

62

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 multiplexere demultiplexer) e gli interruttori manuale (“Manual Switch” ) ed automatico (“Switch”)

Page 32: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 32

63

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”)

64

Blocchi ed elementi principali (8/9)

È possibile raggruppare una parte di un sistema complesso in un unico blocco disottosistema (“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”

Page 33: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 33

65

Blocchi ed elementi principali (9/9)

Con un doppio click sul blocco di sottosistema, siapre la finestra in cui dovrà essere costruito il suomodello. È possibile inserire ulteriori ingressi e/ouscite aggiungendo ulteriori elementi di “In” e “Out”

66

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 “Simulationparameters”dal menu “Simulation”

Page 34: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 34

67

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)

Matlab e Simulink per i sistemi di controllo

Page 35: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 35

69

Applicazione ad un servomotore in c.c. (1/3)

Il modello del servomotore in c.c.(rappresentato dal suo schema a blocchiequivalente) può essere facilmente realizzatoin Simulink, dopo aver definito nello spazio di lavoro in Matlab tutti i parametri e le fdt che in esso compaiono

Vr,Ia

+–

)s(CΩ

Vr,Ω

Kcond

VΩKD

+

– Vc

)s(CIa

Rs

Ia

A

Va

a

1Ls R+

Ia Tm

+

– Ω

Km

Tc

VD

β+Js1

70

Applicazione ad un servomotore in c.c. (2/3)

Il modello del servomotore in c.c.(rappresentato dal suo schema a blocchiequivalente) può essere facilmente realizzatoin 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 dalladefinizione della fdt dei controllori che si voglionoapplicare (ad esempio i controllori P e PI precedentemente considerati)

Page 36: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 36

71

Applicazione ad un servomotore in c.c. (3/3)

Per simulare il comportamento del sistemacontrollato non sarà necessario calcolarepreventivamente la fdt del servomotore F(s), così come sarà possibile includere anche la contemporanea presenza di una coppia di disturbo Tc

72

Dopo l’esecuzione del file, i parametri e le fdt presentinello spazio di lavorosaranno automaticamentericonosciuti dai blocchiSimulink che li contengonoed a ciascuno di essi saràassociata la rispettivaespressione definita in Matlab

File Matlab di definizione del modello

clear allclose alls=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 deiparametri del servomotore

Page 37: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 37

73

Dopo l’esecuzione del file, i parametri e le fdt presentinello spazio di lavorosaranno automaticamentericonosciuti dai blocchiSimulink che li contengonoed a ciascuno di essi saràassociata la rispettivaespressione definita in Matlab

File Matlab di definizione del modello

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

74

Modello Simulink del servomotore (1/7)

Page 38: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 38

75

Modello Simulink del servomotore (1/7)

Blocco Stepda Sources

76

Modello Simulink del servomotore (1/7)

Blocco Stepda Sources

Page 39: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 39

77

Modello Simulink del servomotore (2/7)

Blocchi Gain eSum da Math Operations

78

Modello Simulink del servomotore (3/7)

Blocco LTI System daControl System Toolbox

Page 40: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 40

79

Modello Simulink del servomotore (4/7)

BloccoConstant daSources

80

Modello Simulink del servomotore (4/7)

Il disturbo è impostonullo come nellasimulazione in Matlab

BloccoConstant daSources

Page 41: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 41

81

Modello Simulink del servomotore (5/7)

Subsystem (da Ports & Subsystems)

82

Modello Simulink del servomotore (5/7)

Blocco In aggiuntivo rispetto agli In e Outpreesistenti

Subsystem (da Ports & Subsystems)

Page 42: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 42

83

Modello Simulink del servomotore (6/7)

Blocco Mux daSignal Routing

84

Modello Simulink del servomotore (7/7)

Blocchi Scope e To File daSinks

Page 43: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 43

85

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

Parametri di simulazione

86

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

Risultato visibilesull’oscilloscopio

Conferma del risultatoottenuto con Matlab: elevato errorefinale

Page 44: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 44

87

Creazione del file “simul.mat” contenente

la variabile “simulazione”

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

La variabile “simulazione”generata ha tre righe:

1) campioni del tempo

2) campioni dell’uscita

3) campioni del riferimento

88

Simulazione 2: controllore P, Tc = 0.005

Si riscontra unasignificativavariazionedell’errore finale

Risultato visibilesull’oscilloscopio

Page 45: Introduzione e strumenti - corsiadistanza.polito.itcorsiadistanza.polito.it/on-line/Controlli_automatici/pdf/U1_5.pdf · Controlli automatici Matlab e Simulink per i sistemi di controllo

Controlli automatici Matlab e Simulink per i sistemi di controllo

© 2007 Politecnico di Torino 45

89

Simulazione 3: controllore PI, Tc = 0

Conferma del risultatoottenuto con Matlab: presenza di significativasovraelongazione, errore finale nullo

Risultato visibilesull’oscilloscopio

90

Simulazione 4: controllore PI, Tc = 0.005

Si riscontra un elevatoaumento dellasovraelongazione, mentre l’errore finale rimane nullo

Risultato visibilesull’oscilloscopio