Introduzione e strumenti -...
Transcript of Introduzione e strumenti -...
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
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
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
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
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)
Ω=
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
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
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)
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
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
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
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
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)
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;
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;
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
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
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
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)
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)
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
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
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
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)
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
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
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
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
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
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)
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”)
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”
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”
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
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)
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
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)
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
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
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
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)
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
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
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
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