Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione...
Transcript of Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione...
Controlli automatici
1
Ing. Alessandro [email protected]
Esercitazione n. 1
Introduzione alla simulazione di sistemi di controlloin ambiente Matlab-Simulink
Caso di studio: cruise control
ESERCITAZIONE DI CONTROLLI AUTOMATICI
CRUISE CONTROL
)(tF
2
Il cruise control costituisce un semplice ma importante esempio di sistema di controllo diampia diffusione in molti veicoli moderni.
L’obiettivo di controllo è mantenere una velocita di avanzamento costante a fronte didisturbi esterni quali ad es. il vento e la pendenza della carreggiata.
Ciò viene realizzato misurando la velocita del veicolo, confrontandola con il valoredesiderato Vdes (set-point) e variando automaticamente la spinta F(t) secondo un certoalgoritmo di controllo.
CRUISE CONTROL
)(tF
3
Consideriamo un modello semplificato, illustrato in Figura.
Il veicolo, di massa m, è attuato dalla spinta F(t). F(t) rappresenta la forza applicataal veicolo nell’interfaccia tra il pneumatico e la carreggiata. Ipotizziamo di poterimporre un profilo arbitrario di forza applicata F(t) (attuatore ideale)La forza resistente b v, dovuta all’effetto combinato di attriti e fenomeniaerodinamici, è assunta direttamente proporzionale alla velocita del veicolo, attraverso il coeff. di attrito viscono b, ed agente in direzione opposta al moto.La forza peso viene proiettata sulla direzione del moto.
( ) ( ) ( )*sin)( mgtFtbvtvm −=+
Legame I/O
Ingresso : Spinta applicata F(t)
Uscita: velocità del veicolo v(t)
)(tF
mg
*
4
Realizziamo il modello Simulink del sistema
5
Andiamo ad impiegare un blocco ad-hoc che In ambiente Simulink riproduce un sistema dinamico caratterizzato da una certa FdT
Utilizzando tale blocco, ed in aggiunta altri blocchi standard (ad es. guadagni, nodi sommatori, un blocco che genera un segnale costante, e un blocco chefunge da oscilloscopio e consente la visualizzazione delle forme d’ondagenerate) andremo a “disegnare” nella pagina di lavoro simulink unarappresentazione grafica in tutto e per tutto analoga agli schemi a blocchi cheabbiamo disegnato piu volte a lezione.
La realizzazione di un modello Simulink avviene attraverso tre fasi:- si importano in una pagina bianca di lavoro I blocchi elementari necessari per la realizzazione dello schema di simulaizone
-si parametrizzano I blocchi in modo che implementino le funzionalitadesiderate
-Si interconnnettono tra loro I blocchi per realizzare lo schema desiderato
Fatto cio, si puo avviare la simulazione e se ne visualizzano I risultati
6
Avvio SIMULINK
Dalla finestra di avvio di Matlab, avviamo Simulink.Si apre la relativa finestra di avvio Simulink :
Finestra di avvio SIMULINK
7
New Model
Elenco delle “librerie”
Le librerie sono gruppi diblocchetti elementariSimulink aventi funzionalitacomuni.
Contenuto della libreria corrente
Alcune Librerie (ad es. “Simulink”, “Aerospace blockset”, etc.) contengonoal proprio interno altresotto-librerie (strutturagerarchica)
Finestra di avvio SIMULINK (Simulink Library browser)
8
Premendo “New model” apriamo una nuova pagina di lavoro
9
Affrontiamo come problema inroduttivo il task di visualizzare la risposta al gradinodel sistema dnamico descritto dalla funzione di trasferimento
( )72
142 ++
=ss
sF
72
142 ++ ss
5
y
In termini di schema a blocchi, rappresenteremmo qusto sistema (a ciclo aperto) nella maniera seguente
Nella pagina di lavoro Simulink, andremo a “disegnare” una rappresentazione analoga
ESEMPIO 1
10
Importiamo nella pagina di lavoro il blocco “Transfer Fcn” (funzione di trasferimento), che si trova nella sotto-libreria “Continuous” della libreria principale “Simulink”
L’importiazione dei blocchi nella pagina di lavoro si effettua con il mouse mediantedrag-and-drop
Poi importiamo il blocco “Constant” che sta nella sotto-libreria “Sources” dellalibreria principale “Simulink”
pagina di lavoro Simulink
11
Disponiamo I blocchi come in figura
Interconnettiamo I due blocchi. Il tracciamento di una connessione sieffettua portandosi con il mouse nel puntodi inzio della linea di connessione (quindinel terminale di uscita del blocco Constant), premendo il tasto destro, e successivamenteportandosi con il mouse - mantenendopremuto il tasto - verso il punto didestinazione, in questo caso il terminale diingresso del blocco Transfer Fcn.
12
Di default, il blocco Constant è parametrizzato con ilvalore unitario per l’ampiezza del segnale, mentre ilblocco Transfer Fcn è parametrizzato con la FdT1/(s+1)
Facendo doppio click su un blocco, si accede alla sua finestra di parametrizzaione. Il blocco Constant, che genera il segnale di ingresso al sistema, è gia configuratocorrettamente per il presente esempio.
Dobbiamo invece configurare il blocco Transfer Fcn.Apriamone la finestra di parametrizzazione
13
Parametrizzazione del blocco Transfer Function
Si devono specificare i coefficienti dei polinomi anumeratore e denominatore della FdT utilizzando lanotazione Matlab per la rappresentazione dei polinomi(un vettore che contiene i coefficienti del polinomio inordine decrescente rispetto alle potenze di s)
Il blocco deve rappresentare la Funz. di Trasf.
]7 2 1[ 722 ++ ss
( )72
142 ++
=ss
sF
Altri esempi:
]4 0 0 1[ 43 +s
]14[ 14
]2 3 0 2 1[ 232 34 −++− sss
14
Il blocco deve essere parametrizzato nella seguente maniera.
Dopo aver premuto i tasto OK, l’aspetto del blocco Transfer Fcn nella pagina di lavoro cambia, e mostra al proprio interno la FdT avente i parametri scelti
15
Ora inseriamo il blocco “Scope”, che consente la visualizzazione di un segnale.
Il blocco sta nella sotto-libreria “Sinks” della libreria principale “Simulink”.Ora colleghiamone il terminale di ingresso al terminale di uscita del blocco Transfer Fcn. In modo da visualizzare il segnale di uscita y e avviamo la simulazione (Pulsante Run Simulation)
Pulsante Run Simulation
16
Prima di visualizzare la risposta , se ne calcolino i parametri caratteristici mediante le formule viste a lezione
( )72
142 ++
=ss
sF
( )( )22
2
2 nn
n
sssF
++=
Forma generale
14
7
2
2
=
=
n
n
22 =n
27/14/14
sec/ 645.27
2 ===
=
n
n rad
37.0/1 = n
17
21
% 100
−−
= eS
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
10
20
30
40
50
60
70
80
90
100
Smorzamento []
Sovra
elo
ngazio
ne p
erc
entu
ale
S%
Sovraelongazione percentuale vs. smorzamento
28% S
18
sn
eq 02.11
=
%5aT %2aT %1aT
( )( )22
2
2 nn
n
sssF
++=
eq3eq4 eq5
( )72
142 ++
=ss
sF s 06.3 s 08.4 s 10.5
19
Il primo punto di massimo, in corrispondenza del quale si ha la massima sovraelongazione, si verifica approsimativante quando
5.3tn 32.1/5.3max == nTt
20
Ora dopo avere eseguito il modello, fare dopio click sul blocco “Scope”. La risposta possiede le caratteristiche attese
FILE: Esempio1.slx
21
Ritorniamo al problema del cruise control
( ) ( ) ( )*sin)( mgtFtbvtvm −=+
Legame I/O
Ingresso : forza applicata F(t)
Uscita: velocità del veicolo v(t)
)(tF
mg
*
% Parametri
m=1000; % massa del veicolo [kg]
b=50; % coefficiente di attrito viscoso [N s / m]
teta=5; % angolo di inclinazione del piano [gradi]
g=9.81; % accelerazione di gravita [m/s^2]
Realizziamo il modello Simulink del sistema a ciclo aperto
22
bms +
1)(tF)(tv
)(tF
( )*sin mg−
+
+
A lezione era stato ricavato il seguente Schema a blocchi
( )sP)(tF
)(tv)(tF
( )*sin mg−
+
+( )
bmssP
+=
1
23
Processo P(s) con guadagno =1/b pari a 0.02, e costante di tempo m/b pari a 20 secondi.
( )1120
02.0
501000
11
+=
+=
+=
+=
TsssbmssP
02.0= sT 20= 05.01
−=−=T
p
Rivaviamo I parametri caratteristici della FdT P(s) del sistema
Il valore costante della forza di ingresso che garantisce il raggiungimento asintotico del valore di regime pari a Vdes è pari a:
( ) desbVmgtF += *sin)(
24
120
02.0
+s
desbV)(tv
La prima componente della spinta F(t) “cancella” (compensa) la forza peso. Il modelloequivalente è
Perfetta conoscenza dei parametri del sistema
Tempi di assestamento al 5%, 2%, ed 1% pari a circa 60, 80, e 100 secondi rispettivamente
sec20=T
Transitorio lunghissimo e non modificabile
25
Lo schema viene realizzato in simulink nella maniera seguente .
Si inseriscano all’interno dei blocchi anziche i valori numerici delle grandezze le relative costanti simboliche m, b, g, teta.
Il nodo sommatore si trova nella libreria “Commonly used blocks”, e lo si deve successivamente parametrizzare con la stringa “-+”, che da luogo a due terminali di ingresso il primo dei quali avente segno negativo ed il secondo avente segno positivo
Lo schema è ridondante, in quanto non sono state rimosse le due componenti uguali e contrarie associate alla forza peso. Si opera questa scelta per semplificare le successive estensioni dell modello a schemi in retroazione. Per generare l’ingresso servono due blocchi “Constant” ed un nodo sommatore,
FILE: CruiseContr_cicloaperto.slx
26
% Parametri
m=1000; % massa del veicolo [kg]
b=50; % coefficiente di attrito viscoso [N s / m]
teta=5; % angolo di inclinazione del piano [gradi]
g=9.81; % accelerazione di gravita [m/s^2]
Vdes=10; %set-point di velocità [m/s]
Scegliamo per il set point di velocita il valore Vdes=10 m/s (pari a 36 km/h)
SI devono memorizzare nel workspace di Matlab le variabili simboliche impiegate nel modello, affinche il modello Simulink le possa interpretare.
Si apra l’editor di testo dei files script (pulsante “New Script” nella finestra principale di Matlab) e si inseriscano le seguenti righe di codice (comprendenti commenti)
27
Pulsante Run (esegue lo script)
28
Variabili memorizzate nel workspace
Si verifichi la corretta esecuzione dello script ispezionando direttamente il contenuto del workspace di Matlab dalla finestra principale del programma, e verificando la presenza delle costanti simboliche impiegate nel modello simulink.
29
Bisogna impostare una durata sufficiente della simulazione per garantire l’esaurimento del transitorio. Scegliamo 200 secondi, pari al doppio del Tempo di assestamento all’1% dellarisposta.
Durata della simulazione in secondi
30
Ora si puo eseguire il modello con il pulsante RUN.
Ora si puo eseguire la simulazione (Pulsante Run Simulation)
Pulsante Run Simulation
31
L’evoluzione ottenuta è in linea con quanto predetto sulla carta..
%Parametri veicolo e piano inclinato
m=1000; % massa del veicolo [kg]
b=50; % copefficiente di attrito viscoso [N s / m]
teta=20; % angolo di inclinazione del piano [gradi]
g=9.81; % accelerazione di gravita [m/s^2]
Vdes=10 % set-point di velocità [m/s]
P=tf(1,[m b]);
step(10*b*P)
hold on
step(20*b*P)
step(30*b*P)
legend('Vdes=10','Vdes=20','Vdes=30')
La durata del transitorio non dipende dalvalore del set-point
320 20 40 60 80 100 120 140 160 1800
5
10
15
20
25
30
Step Response
Time (seconds)
Am
plit
ude
Vdes=10
Vdes=20
Vdes=30
Prove con diverso valore del set-point (10, 20, 30)
La rapidita di risposta è completamentedeterminata dalla costante di tempo del processo (T=20 s)
Studiamo le soluzioni basate sul feedback, iniziando dal semplice controlloreproporzionale (controllore di tipo “P”)
33
Trascuriamo temporaneamente la pendenza della carreggiata (teta = 0)
Qual’è il valore di regime della velocita ?
34
FdT a ciclo chiuso
( )( )( ) P
P
P
P
P
P
des
v
Vks
k
kbms
k
bmsk
bmsk
sV
sVsW
des ++=
++=
++
+
==5010001
1
1
La FdT a ciclo chiuso è asintoticamente stabile se kp positivo.
Il valore di regime in corrispondenza di un set-point costante è pari al valore del guadagno per il valore del set-point
( )p
p
p
p
desdestk
k
kb
kVVtv
+=
+==→
5010lim
Guadagno: ( )P
Pv
Vkb
kW
des +== 0 Guadagno non unitario
Si ha
s 501000
pkT
+=Costante di tempo: Diminuisce al crescere del guadagno
kp del controllore
( )p
p
destkb
kVtv
+=→lim
Effettuiamo un test di verifica
Vdes=10 b=50kp=1
( ) 196.0lim ==→ dest Vtv
0196.0=+
=P
P
kb
k
( )p
p
destkb
kVtv
+=→lim Il guadagno diventa via via più vicino all’unita al
crescere di kp (migliore precisione)
Poiche la costante di tempo T si riduce al crescere di kp, la risposta diventa progressivamente piu rapida al crescere di kp (migliore prontezza)
0 50 100 150 200 250 300 350 400 4500
1
2
3
4
5
6
7
8
9
10
Step Response
Time (seconds)
Am
plit
ude
Kp=5
Kp=50
Kp=200
P=tf(1,[m b]);
R=5;
W5=feedback(P*R,1)
R=50;
W50=feedback(P*R,1)
R=200;
W200=feedback(P*R,1)
step(Vdes*W5)
hold on
step(Vdes*W50)
step(Vdes*W200)
legend('Kp=5','Kp=50','Kp=200')
37
Scegliendo Kp sufficientemente grande si riesce ad ottenere un valore di regime della risposta arbitrariamente prossimo al valore del set point ed una durata del transitorio arbitrariamente rapida.
Dove si “paga” ?
Elevati valori della spinta applicata al veicolo, che possono diventare non realistici
38
Kp = 3000
Polo a ciclo chiuso p=-3.05
0501000 =++ Pkp
Costante di tempo a ciclo chiuso T =0.32 sec
( )P
Pv
Vks
ksW
des ++=
501000FdT a ciclo chiuso
05.3 001.005.01000
50−=−−=
−−= P
P kk
p
32.005.3
11==−=
pT
Guadagno della FdT a ciclo chiuso =0.983
( ) 983.0300050
3000
500 =
+=
+==
P
Pv
Vk
kW
des
( )1+
=Ts
sW v
Vdes
Forma standard FO
39
Velocita del veicolo
40
Picco iniziale della spinta applicata F(t)