Sei sulla pagina 1di 92

Controlli automatici

per la meccatronica

Controllo del moto

Prof. Paolo Rocco (paolo.rocco@polimi.it)


Controllo del moto

Parte I

Pianificazione della traiettoria

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [2]


Pianificazione della traiettoria
Nelle macchine automatiche la movimentazione delle parti meccaniche avviene
sempre più spesso mediante attuatori elettrici (cosiddette camme elettriche) che
stanno via via soppiantando le movimentazioni meccaniche (camme meccaniche).
eseguite mediante cinematismi

Ciascuno di questi attuatori dovrà compiere un movimento, passando da un punto


iniziale ad un punto finale.

Pianificare la traiettoria significa stabilire la modalità con cui il movimento dal


punto iniziale al punto finale deve avvenire, ovvero con quali profili di posizione,
velocità ed accelerazione. Questo ha estrema importanza, in termini di
inseguibilità della traiettoria da parte del sistema di controllo del moto in anello
chiuso, raggiungimento delle saturazioni, sollecitazioni alla struttura.

N.B.: La presente trattazione è basata sul testo:


“Traiettorie per azionamenti elettrici”
di Claudio Melchiorri, Progetto Leonardo, Bologna
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [3]
Spazio operativo e spazio di giunto
Traiettorie nello spazio operativo: si tratta di movimenti definiti nel comune
spazio cartesiano, comprensivi di moti di traslazione e di rotazione. E’ il contesto
comune alla robotica e a macchine di lavorazione pezzi. Si possono trattare
problemi legati alla geometria del percorso, alla presenza dei vincoli, ecc.
Evidentemente occorre poi un passaggio per tradurre la traiettoria nello spazio dei
giunti (o di attuazione).

Traiettorie nello spazio di giunto: si specifica direttamente l’andamento


desiderato per la posizione, la velocità e l’accelerazione dei singoli giunti.
Consente quindi di risolvere direttamente problemi relativi a singolarità
cinematiche. E’ una modalità di interesse quando i giunti non danno luogo ad un
moto coordinato (come invece avviene nella robotica industriale) oppure quando
interessa solo che gli assi si portino da una posizione iniziale ad una finale (e non
ha interesse il movimento risultante nello spazio operativo).

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [4]


Cammino geometrico e legge oraria
Cammino geometrico: può essere definito nello spazio operativo o in quello di
giunto, ed impone dei vincoli di tipo solamente geometrico sul percorso
desiderato (segmenti di retta, archi di circonferenza o di parabola, ecc..)

Legge oraria: specifica come il cammino geometrico debba essere percorso, in


quanto tempo, con quali velocità, accelerazioni, se fermandosi in qualche punto,
ecc..
Il cammino geometrico può essere espresso nella forma:

p=p(s) spazio operativo 0 t t


q=q(s) spazio dei giunti
0 s s
con s=s(t) (legge oraria).
px=px(s)
py=py(s)
pz=pz(s)
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [5]
Traiettorie polinomiali
Il caso più semplice di pianificazione della traiettoria si ha quando sono
specificate alcune condizioni iniziali e finali sui tempi di percorrenza, sulla
posizione, velocità, accelerazione ed eventualmente anche jerk (derivata
dell’accelerazione).
Si possono prendere in considerazione funzioni polinomiali del tipo:

q(t ) = a0 + a1t + a 2 t 2 + K + a n t n

Più alto è il grado n del polinomio, più condizioni al contorno si possono


soddisfare e più smooth (dolce) sarà la traiettoria.
Più in generale, possono essere specificate condizioni sul valore delle derivate
anche in istanti intermedi tra quello iniziale e finale.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [6]


Traiettorie cubiche
Si supponga che siano specificate le seguenti condizioni al contorno:
• un istante iniziale ed un istante finale ti e tf
• posizione e velocità iniziale qi e qi
• posizione e velocità finale qf e qf

Si hanno quindi quattro condizioni al contorno, per poter rispettare le quali


occorre utilizzare un polinomio di grado almeno pari a tre (cubica):
q(t ) = a0 + a1t + a 2 t 2 + a3t 3
Imponiamo le condizioni al contorno:
q(ti ) = a0 + a1t i + a 2 t i2 + a3ti3 = qi
q& (ti ) = a1 + 2a 2 ti + 3a3ti2 = q& i
( )
q t f = a0 + a1t f + a 2 t 2f + a3t 3f = q f
q& (t f ) = a1 + 2a 2 t f + 3a3t 2f = q& f

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [7]


Traiettorie cubiche: ti = 0
Se ti=0, la soluzione del problema delle condizioni al contorno è semplice:
a 0 = qi
a1 = q& i

a2 =
( ) (
− 3 qi − q f − 2q& i + q& f t f)
t 2f

a3 =
( ) ( )
2 qi − q f + q& i + q& f t f
t 3f

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [8]


Traiettorie cubiche: esempio
ti = 0, t f = 1s, qi = 10°, q f = 30°, q& i = q& f = 0° / s
Posizione Velocità
40 40

30
30

20

gradi/s
gradi
20
10

10
0

0 -10
-0.2 0 0.2 0.4 0.6 0.8 1 -0.2 0 0.2 0.4 0.6 0.8 1
t(s)

Accelerazione
150

100

50
gradi/s2

-50

-100

-150
-0.5 0 0.5 1 1.5
t(s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [9]


Traiettorie cubiche: ti≠0
Se ti≠0, i risultati precedenti si possono estendere. Posto:

q(t ) = a0 + a1 (t − ti ) + a 2 (t − ti )2 + a3 (t − ti )3
si ha:
a 0 = qi
a1 = q& i

a2 =
( ) ( )(
− 3 qi − q f − 2q& i + q& f t f − ti )
(t f − ti )2
2(qi − q f ) + (q& i + q& f )(t f − ti )
a3 =
(t f − ti )3
Queste formule sono utili per generare traiettorie che passano per una sequenza
di punti intermedi: si divide la traiettoria in n tratti, per ciascuno dei quali si
specificano istanti, posizioni e velocità iniziali e finali.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [10]


Cubiche per più punti: esempio

Posizione Velocità
50 20

40
10
30

gradi/s
gradi
20 0

10
-10
0

-10 -20
-2 0 2 4 6 8 10 12 -2 0 2 4 6 8 10 12
t(s)

Accelerazione
40

t0 = 0 t1 = 2 t2 = 4 t3 = 8 t 4 = 10
20
q0 = 10° q1 = 20° q 2 = 0° q3 = 30° q4 = 40°
gradi/s2

0 q& 0 = 0° / s q&1 = −10° / s q& 2 = 10° / s q& 3 = 3° / s q& 4 = 0° / s

-20

-40
-5 0 5 10 15
t(s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [11]


Cubiche per più punti con via points
Se vengono solo specificati i punti di passaggio (via point) senza specificare le
velocità intermedie, queste si possono calcolare approssimativamente con regole
del seguente tipo:
q&1 = 0
⎧ 0 sign (vk ) ≠ sign (vk +1 )

q& k = ⎨ vk + vk +1
⎪⎩ sign (vk ) = sign (vk +1 )
2
q& n = 0
essendo:
q k − q k −1
vk =
t k − t k −1
la pendenza nel tratto [tk-1, tk].

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [12]


Cubiche per più punti con via points

Posizione Velocità
50 20

40
10
30

gradi/s
gradi
20 0

10
-10
0

-10 -20
-2 0 2 4 6 8 10 12 -2 0 2 4 6 8 10 12
t(s)

Accelerazione
30
t0 = 0 t1 = 2 t2 = 4 t3 = 8 t 4 = 10
20

10
q0 = 10° q1 = 20° q 2 = 0° q3 = 30° q 4 = 40°
gradi/s2

-10

-20

-30
-2 0 2 4 6 8 10 12
t(s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [13]


Polinomi di grado cinque
Per imporre condizioni anche sulle accelerazioni, occorre passare a polinomi di
grado 5:
q(t ) = a0 + a1 (t − ti ) + a 2 (t − t i )2 + a3 (t − ti )3 + a 4 (t − t i )4 + a5 (t − ti )5
Imponendo le condizioni al contorno:
( )
q(ti ) = qi q t f = q f

q& (ti ) = q& i q& (t f ) = q& f


q&&(t f ) = q&& f
a 0 = qi
q&&(ti ) = q&&i a1 = q& i
1
si ottiene: a2 = q&&i
2

a3 =
( ) ( ) (
20 q f − qi − 8q& f + 12q& i T − 3q&& f − q&&i T 2 )
2T 3

a4 =
(
30 qi − q f ) ( ) (
+ 14q& f + 16q& i T + 3q&& f − 2q&&i T 2 )
2T 4

a5 =
( ) ( ) ( )
12 q f − qi − 6 q& f + q& i T − q&& f − q&&i T 2
T = t f − ti
2T 5
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [14]
Polinomio di grado cinque: esempio
ti = 0, t f = 1s, qi = 10°, q f = 30°, q& i = q& f = 0° / s, q&&i = q&& f = 0° / s 2
Posizione Velocità
40 40

30
30

20

gradi/s
gradi
20
10

10
0

0 -10
-0.2 0 0.2 0.4 0.6 0.8 1 -0.2 0 0.2 0.4 0.6 0.8 1
t(s)

Accelerazione
150

100

50
gradi/s2

-50

-100

-150
-0.5 0 0.5 1 1.5
t(s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [15]


Polinomio di grado 5 con via points
t0 = 0 t1 = 2 t2 = 4 t3 = 8 t 4 = 10 Si calcolano le velocità intermedie
q0 = 10° q1 = 20° q 2 = 0° q3 = 30° q 4 = 40° come visto, e si impongono nulle le
accelerazioni intermedie
Posizione Velocità
50 20

40
10
30

gradi/s
gradi

20 0

10
-10
0

-10 -20
-2 0 2 4 6 8 10 12 -2 0 2 4 6 8 10 12
t(s)

Accelerazione
30

20
La traiettoria è più “smooth” di quella
10
ottenuta con la cubica.
gradi/s2

-10

-20

-30
-2 0 2 4 6 8 10 12
t(s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [16]


Traiettoria armonica
La traiettoria armonica generalizza l’equazione di un moto armonico, nel quale
l’accelerazione è proporzionale allo spostamento, ma di segno opposto. Una
traiettoria armonica presenta derivate continue in tutti i punti interni all’intervallo
temporale della traiettoria, per qualsiasi ordine di derivazione.
Le equazioni sono le seguenti:
q f − qi ⎛⎜ ⎛ π(t − t i ) ⎞ ⎞
q (t ) = 1 − cos⎜ ⎟ ⎟ + qi
2 ⎜ ⎜ t f − ti ⎟ ⎟
⎝ ⎝ ⎠⎠

q& (t ) =
(
π q f − qi ) ⎛ π(t − ti ) ⎞
sin ⎜ ⎟
2(t f − ti ) ⎜ t f − ti ⎟
⎝ ⎠
π 2 (q f − qi ) ⎛ π(t − ti ) ⎞
q&&(t ) = cos⎜ ⎟
2(t f − ti )2 ⎜ t f − ti ⎟
⎝ ⎠
π 3 (q f − qi ) ⎛ π(t − ti ) ⎞
j (t ) = − sin ⎜ ⎟
2(t f − ti )3 ⎜ t f − ti ⎟
⎝ ⎠ (jerk)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [17]


Traiettoria armonica (esempio)
ti = 0, t f = 8s, qi = 0°, q f = 10°
Posizione Velocità
2
10

8 1.5

gradi/s
1
gradi

4
0.5
2

0 0

-2 0 2 4 6 8 10 -2 0 2 4 6 8 10

Accelerazione Jerk
1 0.05
0

0.5 -0.05
-0.1
gradi/s2

gradi/s3
0 -0.15
-0.2

-0.5 -0.25
-0.3

-1
-2 0 2 4 6 8 10 -2 0 2 4 6 8 10
t(s) t(s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [18]


Traiettoria cicloidale
La traiettoria armonica presenta discontinuità nell’accelerazione negli istanti
iniziale e finale, e quindi valori non definiti (o infiniti) di jerk. Un’alternativa è la
traiettoria cicloidale, che presenta continuità anche nell’accelerazione. Le formule
sono:

⎛ t −t ⎛ 2π(t − ti ) ⎞ ⎞
(
q(t ) = q f − qi ⎜) i

1
sin ⎜
⎜ t f − t i 2π ⎜ t f − t i ⎟ ⎟
⎟ ⎟ + qi
⎝ ⎝ ⎠⎠
q f − qi ⎛⎜ ⎛ 2π(t − ti ) ⎞ ⎞
q& (t ) = 1 − cos⎜ ⎟⎟
t f − ti ⎜ ⎜ t f − ti ⎟ ⎟
⎝ ⎝ ⎠⎠

q&&(t ) =
(
2 π q f − qi ) sin⎛⎜ 2π(t − ti ) ⎞⎟
(t f − ti )2 ⎜⎝ t f − ti ⎟⎠
4π 2 (q f − qi ) ⎛ 2π(t − ti ) ⎞
j (t ) = cos⎜ ⎟
(t f − ti )3 ⎜ t f − ti ⎟
⎝ ⎠

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [19]


Traiettoria cicloidale (esempio)
ti = 0, t f = 8s, qi = 0°, q f = 10°
Posizione Velocità

10 2.5

8 2

6 1.5

gradi/s
gradi

4 1

2 0.5

0 0
-2 0 2 4 6 8 10 -2 0 2 4 6 8 10
t(s)

Accelerazione Jerk
1 1

0.5 0.5
gradi/s2

gradi/s3
0 0

-0.5 -0.5

-1 -1
-2 0 2 4 6 8 10 -2 0 2 4 6 8 10
t(s) t(s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [20]


Profilo di velocità trapezoidale (P.v.t.)
Un modo molto usato, in particolare nella robotica, per generare la traiettoria
consiste nel generare un profilo di posizione lineare raccordato all’inizio e alla
fine della traiettoria con tratti parabolici. Il profilo di velocità che ne risulta ha il
tipico andamento trapezoidale. .
q
.
qv

La traiettoria è quindi divisa in tre parti: ti ti+ta tf−ta tf t


1. Accelerazione costante, velocità a rampa, posizione a parabola;
2. Accelerazione nulla, velocità costante, posizione lineare;
3. Decelerazione costante, velocità a rampa, posizione a parabola.

Spesso la durata ta della fase di accelerazione (fase 1) è posta uguale alla durata
della fase di decelerazione (fase 3): si ottiene in questo modo una traiettoria
simmetrica rispetto all’istante medio tra quelli iniziale e finale. Naturalmente deve
essere ta≤(tf – ti) /2.
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [21]
P.v.t.: equazioni traiettoria
Fase di accelerazione Fase di velocità costante
t ∈ [ti , ti + t a ]
[
t ∈ ti + t a , t f − t a ]
⎧ q&v
⎪ &
q&(t ) = ⎧
⎪ ta ⎪q&&(t ) = 0
⎪ q&v ⎪
⎨ &
q (t ) = (t − ti ) ⎨q& (t ) = q&v
⎪ t a
⎪ ⎛ ta ⎞

q (t ) = q +
q&v
(t − t )2 ⎪ q (t ) = q + &
q v⎜ t − t − ⎟
⎪ i i

i

i
2 ⎠
⎩ 2t a
Fase di decelerazione
[
t ∈ t f − ta , t f ]
⎧ q&v
⎪ &
q&(t ) = −
⎪ ta

⎨ &
q (t ) =
q&v
ta
(tf −t )


⎪ q (t ) = q f −
q&v
(
tf −t )2
⎩ 2t a
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [22]
P.v.t.: esempio
ti = 0, t f = 4 s, t a = 1s, qi = 0°, q f = 30°, q& v = 10° / s
Posizione Velocità
12
30
10
25
8
20
6

gradi/s
gradi
15
4
10
2
5
0
0
-2
-1 0 1 2 3 4 5 -1 0 1 2 3 4 5
t(s)

Accelerazione

10

5
gradi/s2

-5

-10

-1 0 1 2 3 4 5
t(s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [23]


P.v.t.: vincoli
Nella scelta dei parametri della traiettoria devono essere soddisfatti dei vincoli,
che assicurano il posizionamento corretto nel tempo prestabilito. Si osservi che la
velocità all’istante ti+ta si può ottenere come:
⎧ q a = q(ti + t a )
q&&t a =
qm − qa
tm − ta

(
dove ⎨q m = qi + q f 2 )
⎪ t = t −t 2
⎩ m f (i )
Inoltre risulta:
1
q a = qi + q&&t a2
2
Eliminando dalle precedenti equazioni le variabili qm, qa, tm, si ricava il vincolo:
( ) ( )
q&&t a2 − q&& t f − ti t a + q f − qi = 0

Un vincolo sulla velocità si ottiene dalla formula:


q f − qi
&qv =
t f − ti − t a
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [24]
P.v.t.: possibili specifiche
Dati:
• la distanza da percorrere h=qf−qi
• il tempo di percorrenza T= tf−ti
Se imponiamo ta≤T/2: Se imponiamo la velocità:
⎧ h ⎧ Tq& v − h
& =
⎪⎪t a = q&
q
⎪⎪ v T − t
ta ⇒ ⎨ a
q& v ⇒ ⎨ v
q& q&
⎪q&& = v ⎪ q&& = v
⎪⎩ ta ⎪⎩ ta
Se imponiamo l’accelerazione:
⎧ q&&T − q&&2T 2 − 4q&&h

q&& ⇒ ⎨ t a = 2q&&
⎪q& = q&&t
⎩ v a

4h
(deve essere: q&& ≥ )
2
T
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [25]
P.v.t.: accelerazione e velocità max
Se si vogliono imporre i valori massimi di velocità ed accelerazione consentiti
dall’attuatore, si pone:
⎧ q& max
⎪t a = tempo di accelerazione
⎨ &&
q max
⎪⎩h = q& max (T − t a ) distanza percorsa

La durata del moto (che non è imposta) vale quindi: h q& max
T= +
&q max q&&max
da cui:

⎪ q i +
1
&
q&max (t − t i )2
ti ≤ t < ti + t a
2

⎪ ⎛ t ⎞
q (t ) = ⎨qi + q&&max t a ⎜ t − ti − a ⎟ ti + t a ≤ t < t f − t a
⎪ ⎝ 2⎠

⎪⎩ q f −
1
2
q ( )
&&max t f − t 2 t f − ta ≤ t ≤ t f
2
q& max
Attenzione: il tratto lineare esiste se e solo se: h ≥
q&&max
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [26]
P.v.t.: velocità max non raggiunta
2
q& max
Se: h<
q&&max

⎧ h
si impone: ⎪t a =
⎨ q&&max
⎪ T = 2t
⎩ a

da cui:

q +
1
⎪ i 2 max&
q& (t − t )2
ti ≤ t < ti + t a
q (t ) = ⎨
i

1
(
⎪q f − q&&max t f − t 2
⎩ 2
) t f − ta ≤ t ≤ t f

La velocità massima raggiunta in questo caso è quindi:


h h
q&v = q&&max t a = = 2
ta T
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [27]
P.v.t.: tempo di posizionamento

Imponendo la massima accelerazione e/o la massima velocità, nella pianificazione


della traiettoria non si impone la durata del posizionamento. Esso risulta dalle
seguenti formule.
1) Se non si raggiunge la velocità massima:

h
T = 2t a = 2
q&&max

2) Se si raggiunge la velocità massima:

h q& max
T= +
q& max q&&max

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [28]


Limitazione del jerk (“doppia S”)
Nella traiettoria a profilo di velocità trapezoidale l’accelerazione ha un andamento
discontinuo. Ne consegue che il jerk (derivata dell’accelerazione) assume valori
infiniti. Questo provoca forti sollecitazioni sul sistema meccanico, che possono
indurre vibrazioni.
Per ovviare a questo problema, si può modificare la pianificazione della traiettoria,
dando continuità al profilo di accelerazione, che assume andamento trapezoidale
nelle due fasi di accelerazione iniziale e decelerazione finale.

La traiettoria è quindi divisa in tre parti principali:

1. Fase di accelerazione (l’accelerazione viene portata linearmente al valore


massimo, mantenuta al valore massimo e riportata linearmente a zero);
2. Fase di crociera (velocità costante);
3. Fase di decelerazione (si decelera in modo speculare rispetto alla fase 1.).

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [29]


“Doppia S”: vincoli
Definiamo le seguenti quantità:
Jmax: Jerk massimo; Amax: accelerazione massima; Vmax: velocità massima;

Tj: durata dell’intervallo a jerk massimo;


T1: durata della fase di accelerazione = durata della fase di decelerazione ;
T2: durata dell’intervallo a velocità costante;
..
T: durata complessiva della traiettoria. q
Amax

Calcoliamo Tj e T1 come segue: T1+T2 t


A V Tj T1−Tj T1
T j = max , T1 = T j + max
J max Amax −Amax
Consideriamo solo il caso in cui i valori massimi di accelerazione e velocità
possano essere raggiunti. Questo è verificato se sono rispettati i vincoli:
⎧ q f − qi ≥ VmaxT1 q f − VmaxT1
⎪⎪ Risulta inoltre: T2 =
⎨ 2Vmax Amax Vmax
⎪ ≥
⎪⎩ J max J max Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [30]
“Doppia S”: equazioni traiettoria
Fase di accelerazione
[
t ∈ 0, T j ] [ ]
t ∈ T j , T1 − T j [ ]
t ∈ T1 − T j , T1
⎧ j (t ) = J max ⎧ j (t ) = 0 ⎧ j (t ) = − J max
⎪ ⎪ ⎪
⎪q&&(t ) = J max t ⎪q&&(t ) = J maxT j ⎪q&&(t ) = J max (T1 − t )
⎪ ⎪⎪ ⎪
⎨q& (t ) = J t2 ⎛ T ⎞
⎨q& (t ) = J maxT j ⎜ t − j ⎟ ⎨q& (t ) = V (T1 − t )2
⎜ max − J max
⎪ max
2 ⎪ ⎝ 2 ⎟⎠ ⎪ 2
⎪ t3 ⎪ ⎪ (T1 − t )3
⎪q (t ) = J max T j3
( ) ⎪q (t ) = Vmax − Vmax (T1 − t ) + J max
Tj 2 T1
⎪q (t ) = J + J t − T jt
⎩ 6 ⎪⎩ max
6
max
2 ⎩ 2 6

Fase di velocità costante


..
t ∈ [T1 , T1 + T2 ] q
⎧ j (t ) = 0
⎪ Amax
⎪q&&(t ) = 0

⎨&
⎪q(t ) = Vmax T1+T2 t

⎪q(t ) = Vmax + Vmax (t − T1 )
T1
Tj T1−Tj T1
⎩ 2

Fase di decelerazione −Amax

Andamenti di jerk, accelerazione, velocità e posizione simmetrici rispetto alla fase


di accelerazione
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [31]
“Doppia S”: esempio
qi = 0°, q f = 130°, J max = 500, Amax = 100, Vmax = 60.
Posizione Velocità
140
60
120
50
100
40
80

gradi/s
gradi

30
60

40 20

20 10

0 0
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3

Accelerazione Jerk
100 500

50
gradi/s2

gradi/s3
0 0

-50

-100 -500
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
t(s) t(s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [32]


“Doppia S”: tempo di posizionamento

Con questa modalità di pianificazione della traiettoria non si impone la durata del
posizionamento. Esso risulta dalla seguente formula (valida nel caso si raggiungano
i valori massimi di velocità ed accelerazione):
T = 2T1 + T2
con:
Vmax ⎛ A ⎞
T1 = T j + ⎜ T j = max ⎟
⎜ ⎟
Amax ⎝ J max ⎠
q f − VmaxT1
T2 =
Vmax

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [33]


Messa in scala di traiettorie

Una volta pianificata una traiettoria è spesso necessario scalarla per soddisfare i
vincoli del sistema di attuazione, che si manifestano in termini di saturazioni.
Si parla in particolare di:

1) Messa in scala cinematica: si deve fare in modo che la traiettoria rispetti vincoli
sulla massima velocità e sulla massima accelerazione;
2) Messa in scala dinamica: si deve fare in modo che agli attuatori del sistema
meccanico non vengano richieste coppie superiori alle coppie massime erogabili.

Di seguito faremo qualche cenno alla messa in scala cinematica, con riferimento
naturalmente a quei profili di traiettoria (cubica, armonica, ecc.) per i quali tali
valori non sono imposti nella pianificazione.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [34]


Normalizzazione della traiettoria
Al fine di scalare la traiettoria, è opportuno esprimerla in forma parametrica in
funzione di un parametro σ=σ(t), opportunamente normalizzato.

Data la traiettoria q(t), definita tra i punti qi e qf e di durata T=tf−ti, la sua


espressione in forma normalizzata è la seguente:
q (t ) = qi + hσ(τ )
con h = qf − qi e:
t − ti
0 ≤ σ(τ ) ≤ 1, τ= , 0 ≤ τ ≤1
T
⎧ dq (t ) h
⎪ = σ′(τ ) I valori massimi di velocità, accelerazione,
Ne consegue: dt T
⎪ 2 ecc., si ottengono in corrispondenza dei
⎪⎪ d q (t ) = h σ′′(τ ) valori massimi delle funzioni σ(i)(τ):
⎨ dt 2 T2 modificando la durata T della traiettoria è
⎪ M possibile soddisfare i vincoli sulle
⎪ d n q (t ) h
⎪ = σ (n ) (τ ) saturazioni cinematiche.
⎪⎩ dt n Tn
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [35]
Traiettoria polinomiale di grado 3
La traiettoria può essere parametrizzata con il polinomio:

σ(τ ) = a0 + a1τ + a 2 τ 2 + a3 τ 3
Imponendo le condizioni al contorno σ'(0)=0, σ'(1)=0 (oltre a σ (0)=0, σ (1)=1):
a0 = 0, a1 = 0, a 2 = 3, a3 = −2

da cui:
σ(τ ) = 3τ 2 − 2τ 3 σ′′(τ ) = 6 − 12τ
σ′(τ ) = 6τ − 6τ 2 σ′′′(τ ) = −12
I valori massimi di velocità ed accelerazione sono quindi:

σ′max = σ′(0.5) =
3 3h
⇒ q& max = Operando sulla durata T della traiettoria
2 2T possiamo rispettare i vincoli su velocità ed
′ = σ′′(0 ) = 6
6h
σ′max ⇒ q&&max = accelerazione.
T2

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [36]


Traiettoria polinomiale di grado 5
La traiettoria può essere parametrizzata con il polinomio:

σ(τ ) = a0 + a1τ + a 2 τ 2 + a3 τ 3 + a 4 τ 4 + a5 τ 5
Imponendo le condizioni al contorno σ (0)=0, σ (1)=1, σ'(0)=0, σ'(1)=0, σ''(0)=0,
σ'' (1)=0 :
a0 = 0, a1 = 0, a 2 = 0, a3 = 10, a 4 = −15, a5 = 6
da cui:
σ(τ ) = 10τ 3 − 15τ 4 + 6τ 5 σ′′(τ ) = 60τ − 180τ 2 + 120τ 3
σ′(τ ) = 30τ 2 − 60τ 3 + 30τ 4 σ′′′(τ ) = 60 − 360τ + 360τ 2
I valori massimi di velocità, accelerazione e jerk sono quindi:
σ′max = σ′(0.5) =
15 15h
⇒ q& max =
8 8T
′ = σ′′(0.2123) =
10 3 10 3h
σ′max ⇒ q&&max =
3 3T 2
′′ = σ′′′(0 ) = 60
h
σ′max ⇒ jmax = 60 3
T
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [37]
Traiettoria armonica
La traiettoria può essere parametrizzata con la funzione:

σ(τ ) = (1 − cos πτ)


1
2
da cui: σ′(τ ) = π sin πτ
2
π2
σ′′(τ ) = cos πτ
2
π3
σ′′′(τ ) = sin πτ
2
I valori massimi di velocità, accelerazione e jerk sono quindi:
π πh
σ′max = σ′(0.5) = ⇒ q& max =
2 2T
π 2
π2h
′ = σ′′(0 ) =
σ′max ⇒ q&&max =
2 2T 2
π3 π3 h
′′ = σ′′′(0.5) =
σ′max ⇒ j max =
2 2T 3
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [38]
Traiettoria cicloidale
La traiettoria può essere parametrizzata con la funzione:

σ(τ ) = τ −
1
sin 2πτ

da cui:
σ′(τ ) = 1 − cos 2πτ
σ′′(τ ) = 2π sin 2πτ
σ′′′(τ ) = 4π 2 cos 2πτ

I valori massimi di velocità, accelerazione e jerk sono quindi:


σ′max = σ′(0.5) = 2
h
⇒ q& max = 2
T
′ = σ′′(0.25) = 2π ⇒ q&&max = 2π 2
h
σ′max
T
′′ = σ′′′(0 ) = 4π 2
h
σ′max ⇒ jmax = 4π 2 3
T

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [39]


Messa in scala cinematica: esempio
Si vuole realizzare una traiettoria con qi=10°, qf=50°, per un attuatore caratterizzato
da: q& max = 30, q&&max = 80
Si hanno i seguenti risultati (h=40°):
Traiettoria Formule Vincoli Tmin
⎧ 3h ⎧ 3h
&
q = ⎪⎪ T = =2
⎪⎪ max 2T 60
Polin. grado 3 ⎨ ⎨ 2
6h
⎪q&&max = 2 ⎪T = 6h = 1.732
⎪⎩ T ⎪⎩ 80
⎧ 15h ⎧ 15h
&
q
⎪⎪ max 8T = ⎪⎪ T = = 2.5
240
Polin. grado 5 ⎨ ⎨ 2.5
⎪q&&max = 10 3h ⎪T = 10 3h = 1.699
⎪⎩ 3T 2 ⎪⎩ 240
⎧ πh ⎧ πh
q& = ⎪⎪ T = = 2.094
⎪⎪ max 2T 60
Armonica ⎨ ⎨ 2.094
⎪q&&max = π h
2
⎪T = π h = 1.571
2

⎪⎩ 2T 2 ⎪⎩ 160
⎧ h ⎧ 2h
⎪⎪ q& max = 2 ⎪⎪T = 30 = 2.667
T
Cicloidale ⎨ ⎨ 2.667
⎪T = 2πh = 1.772
h
⎪q&&max = 2π 2
⎪⎩ T ⎪⎩ 80

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [40]


Controllo del moto

Parte II

Progetto del controllore

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [41]


Il problema di controllo
carico Come è noto, nei suoi tratti essenziali
un servomeccanismo di posizione è
riduttore costituito da un motore, un riduttore ed
un carico.
motore

Il problema di controllo si pone nei termini di


governare il moto del carico, modulando
opportunamente la coppia erogata dal motore.
Possono presentarsi diversi scenari per quanto riguarda
la sensorizzazione del sistema: si può infatti disporre,
per la soluzione del problema di controllo, di misure di
posizione o velocità del motore e/o di misure della
posizione del carico.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [42]


La dinamica elettrica
spazzola
Supponiamo di adottare un motore a corrente rotore (armatura)
commutatore
continua, il cui circuito elettrico è, come è noto, il
seguente: spazzola

R L
I

V E alloggiamento
statore
1

(magnete)

Il motore, caratterizzato meccanicamente da un momento


d’inerzia Jm, eroga una coppia τm proporzionale alla corrente I
nel circuito d’armatura, conseguente all’imposizione di una
tensione V. Su questo circuito, avente resistenza R ed induttanza
L, agisce anche la forza controelettromotrice E, proporzionale
alla velocità angolare ωm del motore.
N.B. Le considerazioni che faremo saranno in realtà valide anche per un motore
brushless a magneti permanenti, il cui modello elettrico è assimilabile, per mezzo di
opportune trasformazioni di variabili, a quello del motore a corrente continua.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [43]


La dinamica elettrica
R L
Il sistema è retto dalle seguenti equazioni: I

V
V (t ) = RI (t ) + LI&(t ) + E (t )
E

E (t ) = Kωm (t )
1

τ(t ) = KI (t )
τ(t ) = J m ω
& m (t )
q& m (t ) = ωm (t ) K
E
V+ − 1 I τm 1 ωm 1 qm
Traducibili nello schema a blocchi: sL+R
K Jms s

Si osservi che la forza controelettromotrice accoppia la dinamica elettrica con la


dinamica meccanica.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [44]


Il controllo di corrente
Disponendo della misura di corrente, si può chiudere un anello di controllo sulla
corrente stessa:
K
E
o
I+ V+ − 1 I τm 1 ωm 1 qm
RI(s) K
− sL+R Jms s

Vista la dinamica veloce legata ai transitori elettrici si potrà progettare RI(s) per
ottenere una banda passante molto ampia, dell’ordine delle migliaia di rad/s.
Nel progetto del regolatore di corrente si potrà inoltre assumere la forza
controelettromotrice come un disturbo di bassa frequenza.
Una volta chiuso l’anello di controllo della corrente, questo potrà ritenersi
praticamente istantaneo ai fini del progetto del controllore di posizione esterno:
τ m (t ) = KI (t ) ≈ KI o (t )
Potremo quindi assumere come variabile di controllo per il controllo
posizione/velocità direttamente la coppia motrice τm

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [45]


L’approssimazione rigida (1/2)
Un primo modo di affrontare il problema di controllo del moto consiste
nell’assumere l’insieme motore, riduttore e carico come un sistema
complessivamente rigido. In questo caso le equazioni del sistema sono le seguenti:
Jm Jl
motore J m q&&m + Dm q& m = τ m − τ lm qm ql
carico J l q&&l = nτ lm − τ l τm τl
trasmissione q m = nql

(Dm: coefficiente di attrito viscoso motore, Jl: momento di inerzia carico,


n: rapporto di trasmissione, τlm: coppia trasmessa lato motore, τl: coppia esterna
lato carico).
Possiamo eliminare ql e τlm dalle equazioni, ottenendo:
(J m + J lr )q&&m + Dm q& m = τ m − τlr
con:
Jl τl
J lr = , τ lr =
n2 n
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [46]
L’approssimazione rigida (2/2)
Il sistema rigido si può quindi descrivere in termini di funzione di trasferimento:

τlr .
τm + qm 1 qm
Gv(s) s
con:

Gv (s ) =
1
Dm + s (J m + J lr )

Se il coefficiente di attrito Dm è trascurabile (caso più sfavorevole, perché l’attrito


dà un contributo stabilizzante), si ha:
µ
Gv (s ) =
s
1
µ=
J m + J lr

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [47]


Il controllo P/PI
Chiudiamo un controllore PI sulla velocità, ed un controllore proporzionale sulla
posizione:
τlr .
q m+
o
+ τm + qm qm
Kpp RPI(s) Gv(s) 1/s
− −

Lo schema prevede di disporre di due misure, di posizione e velocità,


indipendenti. Tipicamente la misura di velocità è fornita da una dinamo
tachimetrica.

Si tratta di uno schema di controllo in cascata: si progetta dapprima l’anello


interno di velocità su banda ampia, in modo da fornire anche una buona reiezione
dei disturbi.
L’anello esterno, di posizione, si progetta su una banda più ristretta.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [48]


Progetto del regolatore PI di velocità
. τlr .
qom + τm + qm
RPI(s) Gv(s)

⎛ ⎞ 1 + sTiv
RPI (s ) = K pv ⎜⎜1 +
1
⎟ = K pv 70


⎝ sTiv ⎠ sTiv 60

50
Funzione d’anello: 40

K pv µ 1 + sTiv
Lv (s ) = RPI (s )Gv (s ) =
30

dB
20
s sTiv 10

Se Tiv è sufficientemente grande, ossia se lo 0

zero del PI è sufficientemente in bassa -10


1 Tiv ωcv
-20
frequenza, la pulsazione critica è ben 10 10
0 1

w (rad/s)
10
2
10
3

approssimata prendendo l’approssimazione ωcv


di alta frequenza di L: Lv (s ) ≈ , ωcv = K pv µ
s
= (0.1 ÷ 0.3)ωcv
1
Posizionamento dello zero del PI.
Tiv
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [49]
Progetto del regolatore P di posizione
. .
qom + qom qm qm
Kpp Fv(s) 1/s

Il regolatore dell’anello di posizione
“vede” l’anello chiuso di velocità, di
funzione di trasferimento: 20

10 ωcp ωcv
Fv (s ) ≈
1 0

1 + s ωcv -10

-20
La funzione d’anello è quindi:

dB
-30

K pp
L p (s ) = K pp Fv (s ) =
1 -40

s s (1 + s ωcv )
-50

-60

-70

E’ sufficiente prendere Kpp << ωcv per


0 1 2 3
10 10 10 10
w (rad/s)

garantire una banda sull’anello di posizione ωcp≈ Kpp. L’integratore tra velocità
e posizione assicura inoltre la precisione statica a fronte di riferimenti costanti
a regime.
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [50]
Anticipo di velocità
s
τlr .
qom +
Kpp + + R (s) τm +
Gv(s)
qm
1/s
qm
− −
PI

Per rendere la risposta al riferimento di posizione più pronta, è possibile inserire


un contributo di feedforward, noto come “anticipo di velocità”: si deriva il
riferimento e si somma questo contributo nel nodo sommatore dell’anello di
velocità.
Spesso il contributo di feedforward viene pesato da un coefficiente kff compreso
tra 0 e 1:
kffs
τlr .
q m+ + + R (s) τm + qm
o
qm
Kpp Gv(s) 1/s
− −
PI

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [51]


Anticipo di velocità e PID
Se si usa un solo sensore sulla posizione motore e la velocità si ottiene
differenziando la misura di posizione, si ottiene uno schema di controllo del tutto
equivalente ad un regolatore PID:
s
τlr .
q m+ + + R (s) τm + qm
o
qm
Kpp Gv(s) 1/s
− −
PI

τlr .
q m+
o
τm + qm qm
RPID(s) Gv(s) 1/s

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [52]


Anticipo di velocità e PID
s

qom +
Kpp + + R (s) τm
− −
PI

s
qm

PI m ( m pp m (
Risulta: τ (s ) = R (s ) sq o (s ) − sq (s ) + K q o (s ) − q (s ) =
m m ))

= K pv ⎜⎜1 +
1 ⎞
( )( ) (
⎟⎟ s + K pp qmo (s ) − qm (s ) = RPID (s ) qmo (s ) − qm (s ) )
⎝ sTiv ⎠

⎛ ⎞ ⎧ ⎛ 1 ⎞
RPID (s ) = K P ⎜⎜1 +
1
+ sTD ⎟⎟ ⎪ K P = K pv ⎜⎜ K pp + ⎟ (formule per il
⎝ sTI ⎠ ⎪ ⎝ Tiv ⎟⎠
⎪⎪ passaggio dal P/PI al
K pv
⎨ DT = PID)
⎪ Kp
⎪ K pTiv
⎪ IT =
⎪⎩ K pp K pv

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [53]


Limitazioni del modello rigido
Il modello rigido non mette in evidenza nessun significativo limite di banda. In
linea di principio si potrebbe quindi rendere il sistema in anello chiuso
arbitrariamente veloce.

All’atto pratico tuttavia emergono chiaramente limitazioni, sotto forma di


vibrazioni, rumore, saturazioni, ecc..

Evidentemente il modello rigido non è in grado di spiegare bene come si


comporta un servomeccanismo.

Occorre complicare il modello….

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [54]


L’approssimazione a due masse
Un secondo modo di affrontare il problema di controllo consiste nell’assumere
l’insieme motore, riduttore e carico come un accoppiamento elastico tra due corpi
rigidi. In questo caso le equazioni del sistema sono le seguenti:
motore J m q&&m + Dm q& m = τ m − τlm qm , τ m Jm J l ql ,τ l
Del
carico J l q&&l = nτlm − τl
trasmissione τlm = K el (qm − nql ) + Del (q& m − nq&l ) K el

Schema a blocchi: .
1 ql 1 τl
s Jls + − È un sistema di
ql ordine 4 (ci sono 4
n
n variabili di stato)
.
τm + qm qm + τ lm
1 1 −
Dels+Kel
− Jms + Dm s

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [55]


Un sistema “SITO”
Concentriamoci sulla risposta del sistema al comando di coppia τm (poniamo τl =0)
Il sistema è interpretabile come sistema ad un ingresso e due uscite (SITO:
Single Input Two Outputs).
.
qm qm
Gvm(s) 1/s
τm
.
nql nql
Gvl(s) 1/s
i numeratori sono diversi

Risolvendo lo schema a blocchi si ottiene:


J lr s 2 + Del s + K el
Gvm ( s ) =
J lr J m s 3 + (JDel + J lr Dm )s 2 + (JK el + Dm Del )s + Dm K el

Del s + K el
Gvl ( s ) =
J lr J m s 3 + (JDel + J lr Dm )s 2 + (JK el + Dm Del )s + Dm K el
⎡ Jl ⎤
⎢ J lr = , J = J lr + J m ⎥
⎣ n2 ⎦ Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [56]
Parametri notevoli
Poniamo Dm=0 ed introduciamo i seguenti parametri:
J
ρ = lr (rapporto di inerzia)
Jm

K el D 1
ωz = , ζ z = el (puls. naturale e smorzamento degli zeri)
J lr 2 J lr K el

ω p = 1 + ρ ωz , ζ p = 1 + ρ ζ z (puls. naturale e smorzamento dei poli)

Si ottiene:
ζ zs s2 ζzs
1+ 2 + 2 1+ 2
µ ωz ωz µ ωz
Gvm ( s ) = Gvl ( s ) =
s ζ ps s2 s ζ ps s2
⎡ 1⎤ 1+ 2 + 2 1+ 2 + 2
⎢µ = J ⎥ ωp ωp ωp ωp
⎣ ⎦

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [57]


Natural frequency e locked frequency
Si può anche rappresentare sinteticamente il sistema con il seguente schema a
blocchi:
.
τm qm qm nql
Gvm(s) 1/s Glm(s)

ζzs
1+ 2
ωz
dove: Glm ( s ) =
ζ zs s2
1+ 2 + 2
ωz ωz
Jm Jl
Il sistema libero oscilla alla pulsazione Del
dei poli di Gvm, ossia ωp: questa
pulsazione è detta natural frequency.
K el

Se invece si blocca meccanicamente il Jm Jl


motore, il sistema oscilla alla D el
pulsazione dei poli di Glm, ossia ωz:
questa pulsazione è detta locked K el
frequency.
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [58]
Disposizione di poli e zeri
Come sono messi nel piano complesso poli e zeri di Gvm?

ζ zs s2
1+ 2 + 2
µ ωz ωz
Gvm ( s ) =
s ζ ps s2
1+ 2 + 2
ωp ωp

Im ωp ζp
= = 1+ ρ > 1
ωz ζz
ωp ωz
−ζpω p −ζ zω z Re
I poli sono a
più alta
frequenza e più
smorzati

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [59]


Risposta in frequenza
Cha aspetto assume la risposta in frequenza di Gvm?
ζ zs s2
1+ 2 + 2
µ ωz ωz
Gvm ( s ) =
s ζ ps s2
1+ 2 + 2
ωp ωp
ρ=1 40

ζz=0.1 30

20

risonanza
|G vm|

10

-10

-20
10
-2 -1
10 10
0
10
1 antirisonanza
w/wz

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [60]


Controllo P/PI sul motore
Nella robotica industriale i sensori sono di norma disposti solo dal lato motore.
Concentrandoci sulla risposta al riferimento (τl=0) si ha:
s
.
qom +
Kpp + + R (s) τm
Gvm(s)
qm
1/s
qm
Glm(s)
nql
− −
PI

Nel caso di velocità ottenuta per derivazione della posizione:

s
.
qom +
Kpp + + R (s) τm
Gvm(s)
qm
1/s
qm
Glm(s)
nql
− −
PI

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [61]


Controllo PI di velocità motore
.
+ τm qm
RPI(s) Gvm(s)

⎛ ⎞ 1 + sTiv
RPI (s ) = K pv ⎜⎜1 +
1
⎟ = K pv

⎝ sTiv ⎠ sTiv
Funzione d’anello: ζ zs s2
1+ 2 + 2
K pv µ 1 + sTiv ωz ωz
Lv (s ) = RPI (s )Gvm (s ) =
s sTiv ζ ps s2
1+ 2 + 2
ωp ωp

Introduciamo il seguente parametro di progetto adimensionale:

~ K pv µ È la pulsazione critica di progetto, valutata sul modello rigido


ωcv =
ωz (Kpvµ), normalizzata alla pulsazione ωz.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [62]


Criterio di Bode
Posizioniamo lo zero del PI una decade prima della pulsazione ωz.
Introduciamo un altro parametro adimensionale:
Tiv = τ iv ω z , τ iv = 10 [adim.]
Tracciamo il diagramma di Bode della f.d.t. d’anello:
~ = 0.5
ω ~ = 1.5
ω
cv cv

100 150

100
50
dB

dB
50
0
0
Il margine di
-50 -3 -50 -3
10 10
-2
10
-1
10
0
10
1
10 10
-2
10
-1
10
0
10
1
fase è
100 100
elevato
0 0
deg

deg

-100 -100

-200 -3 -2 -1 0 1
-200 -3 -2 -1 0 1
10 10 10 10 10 10 10 10 10 10

ω ωz ω ωz
ρ=1
ζz=0.1 Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [63]
Criterio di Bode
Dal criterio di Bode risulta sempre margine di fase molto elevato. Non emergono
limiti significativi…
Guardiamo però la risposta in frequenza in anello chiuso lato motore e carico:
~ = 1.5
ω 10
cv motore
0 carico

-10

-20

-30

-40

-50

-60

-70

-80

-90 -2 -1 0 1 2
10 10 10 10 10
ωω
rad
z

C’è una risonanza lato carico che il criterio di Bode non coglie.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [64]


Anello di velocità: luogo delle radici
~
Tracciamo il luogo delle radici al variare di ωcv:
1.5

Ci sono dei poli complessi il cui


1
smorzamento prima aumenta e
0.5 poi diminuisce.
Imag Axis

0
Lo smorzamento massimo si
-0.5 ottiene per:
~ ≈ 0.7
ω
-1 cv

-1.5
-1 -0.5 0 0.5 1
(ωcv ≈ 0.7ω z )
Real Axis

N.B. In questo e nei successivi luoghi, per maggiore generalità, gli


assi sono normalizzati rispetto a ωz

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [65]


Controllo P di posizione
s
.
qom +
Kpp + + Fv(s)
qm
1/s
qm
Glm(s)
nql

Lv (s )
Fv (s ) = Anello chiuso di velocità
1 + Lv (s )
Fv (s )
La funzione d’anello per il controllo di posizione è: L p (s ) = K pp
s
Introduciamo anche in questo caso un parametro di progetto
normalizzato:
K pp È la pulsazione critica di progetto, valutata sul modello
γ pp =
ωz rigido (Kpp), normalizzata alla pulsazione ωz.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [66]


Anello di posizione: luogo delle radici
Fv (s )
L p (s ) = K pp
s
~
Tracciamo il luogo delle radici al variare di γpp, per diversi valori di ωcv:
~ = 0. 5
ω ~ =1
ω ~ = 1.5
ω
cv cv cv

3 3 3

2 2 2

1 1 1
Imag Axis

Imag Axis

Imag Axis
0 0 0

-1 -1 -1

-2 -2 -2

-3 -3 -3
-1 -0.5 0 0.5 1 -2 -1 0 1 2 -3 -2 -1 0 1 2
Real Axis Real Axis Real Axis

All’aumentare della banda dell’anello di velocità si generano dei poli in anello


chiuso poco smorzati.
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [67]
Simulazioni
Simuliamo in Simulink il sistema completo:

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [68]


Simulazioni
Sistema: ωz=200, ρ=1, ζz=0.1

PI di velocità: τiv=10 P di posizione: γpp=0.1

~ = 0.5
ω ~ = 2.5
ω
cv cv

1.6 1.8
motore motore
carico 1.6
1.4 carico
1.4
1.2
1.2
1
1
0.8
0.8
0.6 0.6

0.4 0.4

0.2 0.2
disturbo di coppia
0
0 0 0.2 0.4 0.6 0.8 1
0 0.2 0.4 0.6 0.8 1 t (s)
t (s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [69]


Limiti di prestazione
Abbiamo visto che all’aumentare della banda dell’anello di velocità degradano le
prestazioni del sistema di controllo, lato carico. E’ possibile quantificare questo
degrado di prestazioni?
Consideriamo la funzione di trasferimento dal riferimento alla posizione lato
carico:
20
nql ( s )
o
= Flm ( s ) 0 Il picco di
q m (s)
-20 risonanza aumenta
~
ρ=1 -40 all’aumentare di ωcv
ζz=0.03 -60

τiv=10 -80
γpp=0.1 -100

-120 -1 0 1 2
10 10 10 10
wc/wz

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [70]


Limiti di prestazione
Studiando l’andamento del picco di risonanza della risposta in frequenza
(cosiddetta norma H∞) si trova un andamento approssimabile dalla seguente
funzione: 20
QL inf esatta
QL inf approx.
1
QL∞ ≡ Fl (s ) ∞
≈ 15
2ζˆ
ˆζ = ζ + 1 ρ 10

z ~ 1+ ρ
2ω cv 5

La norma dipende da: 0


parametri dimensionali del servo
e un parametro di progetto del -5 -1 0 1
10 10 10
controllo wc/wz

La relazione approssimata supporta il


progetto congiunto (progetto
meccatronico) di servo e controllo

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [71]


Controllo P sul carico e PI sul motore
In molte altre applicazioni, come nelle macchine utensili, l’anello di posizione è
chiuso lato carico:
s
.
nqol +
Kpp + + R (s) τm
Gvm(s)
qm
1/s
qm
Glm(s)
nql
− −
PI

Nel caso di velocità motore ottenuta per derivazione della posizione:


s
.
nqol +
Kpp + + R (s) τm
Gvm(s)
qm
1/s
qm
Glm(s)
nql
− −
PI

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [72]


Controllo P di posizione
s
.
nqol + Kpp + + Fv(s)
qm
1/s
qm
Glm(s)
nql

Lv (s )
Fv (s ) = Anello chiuso di velocità: nulla cambia nel suo progetto
1 + Lv (s )

La funzione d’anello per il controllo di posizione è ora:

Fv (s )
L p (s ) = K pp Glm (s )
s
ζ s
1+ 2 z
ωz
Glm ( s ) =
ζ zs s2
1+ 2 + 2
ωz ωz
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [73]
Luogo delle radici
Fv (s )
L p (s ) = K pp Glm (s )
s
~
Tracciamo il luogo delle radici al variare di γpp, per diversi valori di ωcv:
~ = 0. 5
ω ~ =1
ω ~ = 1.5
ω
cv cv cv

3 3 3

2
γ pp max ≈ 1.07 2
γ pp max ≈ 0.63 2 γ pp max ≈ 0.5
1 1 1
Imag Axis

Imag Axis

Imag Axis
0 0 0

-1 -1 -1

-2 -2 -2

-3 -3 -3
-3 -2 -1 0 1 2 -3 -2 -1 0 1 2 -3 -2 -1 0 1 2
Real Axis Real Axis Real Axis

All’aumentare della banda dell’anello di velocità si complica il progetto dell’anello


di posizione. Anche per piccoli valori di Kpp il sistema può diventare instabile

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [74]


Simulazioni
Simuliamo in Simulink il sistema completo:

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [75]


Simulazioni
Sistema: ωz=200, ρ=1, ζz=0.1

PI di velocità: τiv=10 P di posizione: γpp=0.1

~ = 0.5
ω ~ = 2.5
ω
cv cv
1.4
motore 1.8
motore
1.2 carico 1.6 carico
1.4
1
1.2
0.8
1
0.6 0.8

0.4 0.6

0.4
0.2
0.2
0
disturbo di coppia
0 0.2 0.4 0.6 0.8 1 0
0 0.2 0.4 0.6 0.8 1
t (s)
t (s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [76]


Simulazioni
Sistema: ωz=200, ρ=1, ζz=0.1

PI di velocità: τiv=10 P di posizione: γpp=0.7


~ = 1.5
ω cv
6
x 10
3
motore
carico
2
Il sistema è
1
instabile
0

-1

-2

-3

-4
0 0.2 0.4 0.6 0.8 1
t (s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [77]


Limiti di prestazione
Anche in questo caso è possibile quantificare il degrado di prestazioni connesso
all’aumento della banda dell’anello di velocità.
Consideriamo la funzione di trasferimento dal riferimento alla posizione lato
carico:
60

nql ( s ) 40
= Flm ( s ) Il picco di
q mo ( s )
20

0 risonanza aumenta
~
ρ=1
-20
all’aumentare di ωcv
-40
ζz=0.03 -60

τiv=10 -80

γpp=0.1 -100

-120 -1 0 1 2
10 10 10 10
w/wz

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [78]


Limiti di prestazione
Studiando anche in questo caso l’andamento del picco di risonanza della risposta
in frequenza (la norma H∞) si trova un andamento approssimabile dalla seguente
funzione:
45
QL inf esatta
QL inf approx.
1 40
QL∞ ≡ Fl (s ) ∞
≈ 35
2ζˆ 30

1 ρ 25
ζz + ~ − 0.5γ pp
2ωcv 1 + ρ 20

ζˆ = 15
γ pp 1
1+ ~
10

ω 1+ ρ cv
5

-5 -1 0 1
10 10 10
wc/wz

Il degrado di prestazioni è molto più


evidente rispetto al caso di chiusura
dell’anello di posizione lato motore.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [79]


Controllo del moto

Parte III

Alcuni aspetti realizzativi

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [80]


Regolatori PID
Si è visto che nel controllo del moto si utilizzano in larga misura regolatori
PID (o P o PI). Il comportamento dinamico del regolatore PID è, come è
noto, rappresentato dall’equazione nel dominio del tempo:
⎛ t
de(t ) ⎞⎟

u (t ) = K P e(t ) + e(σ )dσ + TD

1
⎜ TI dt ⎟
⎝ 0 ⎠
In termini di funzioni di trasferimento:
⎛ ⎞
RPID (s ) = K P ⎜⎜1 +
1
+ sTD ⎟⎟
⎝ sTI ⎠
Questa espressione (talvolta detta “scolastica”) cattura il comportamento di
massima del regolatore ma non fa emergere una serie di problemi applicativi
connessi al suo utilizzo.
Alcuni di questi problemi saranno analizzati nel seguito.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [81]


Azione derivativa
L’azione derivativa ideale:
de(t )
u (t ) = K PTD RD (s ) = K PTD s
dt
corrisponde ad un sistema dinamico non fisicamente realizzabile. Per ottenerne
una versione realizzabile occorre filtrarla in alta frequenza, il che consente
anche di tagliare il rumore di misura di alta frequenza.
L’azione derivativa filtrata assume l’espressione:

RD (s ) = K P
sTD
1 + sTD N
dove N è un parametro che determina la costante di tempo del polo di alta
frequenza. Più elevato è N, più ampia sarà la banda in cui l’azione derivativa
ideale verrà approssimata, ma più alta sarà anche l’amplificazione di eventuali
rumori di misura. Tipicamente si sceglie N=5÷10.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [82]


Forma standard ISA
La realizzazione della legge di controllo PID nei regolatori commerciali si
differenzia da quella scolastica. Un’espressione che racchiude le diverse
versioni come casi particolari è la cosiddetta forma standard ISA:
⎛ ⎞
U (s ) = K P ⎜ bYsp (s ) − Y (s ) +

1
E (s ) +
sTD
1 + sTD N
(
cYsp (s ) − Y (s ) ⎟⎟ )
⎝ sTI ⎠
dove Ysp è il setpoint, mentre b e c sono due coefficienti che consentono di
pesare, rispettivamente nell’azione proporzionale e nell’azione derivativa, il
setpoint in maniera diversa dalla misura. Per b=c=1 si ricade nella forma
“scolastica”.
+ sTD
c − 1+sTD/N
+ ++ KP + U
b − +
Ysp + KP/TI
1
− s
Y

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [83]


Forma standard ISA
La forma standard ISA è un regolatore a “due vie”: il setpoint e la misura
vengono elaborati da due funzioni di trasferimento diverse:
Ysp + U
Gff(s)

⎛ ⎞ Y
G ff (s ) = K P ⎜⎜ b +
1 sTD
+c ⎟⎟ Gfb(s)
⎝ sTI 1 + sTD N ⎠

⎛ ⎞
G fb (s ) = K P ⎜⎜1 +
1 sTD
+ ⎟⎟
⎝ sTI 1 + sTD N ⎠
In questo modo si possono scegliere gli zeri della funzione di trasferimento dal
sepoint in modo opportuno. Se ad esempio il sistema sotto controllo è un
doppio integratore (G(s)=µ/s2), si ottiene:
Y (s ) G (s ) cs 2TDTI + bsTI + 1
= G ff (s ) =
Ysp (s ) 1 + G (s )G fb (s ) 3 TI
s + s 2TDTI + sTI + 1
µK P
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [84]
Il wind-up
Tutti gli attuatori presentano una saturazione, che può essere rappresentata
nel sistema di controllo come nel seguente schema :
yo + e u m y
R(s) Sat G(s)

m
Il blocco “Sat” costituisce una caratteristica di
uM
saturazione, che assumeremo simmetrica:
−uM u
uM
−uM

Se il regolatore presenta azione integrale, come il PID, la combinazione di


questa con la saturazione dell’attuatore può dar luogo ad un effetto
indesiderato, noto come carica integrale (o integral windup), che può
pregiudicare le prestazioni del sistema di controllo.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [85]


Il wind-up
yo + e u m y m
R(s) Sat G(s) uM
− −uM u
uM
−uM

Facciamo riferimento al caso in cui il regolatore sia puramente integrale (R(s) = kI/s).
Supponiamo che l’errore e resti a lungo dello stesso segno, ad esempio positivo. La
variabile di stato dell’integratore, e quindi la variabile u, cresce indefinitamente e può
superare, anche di molto, il valore di saturazione uM, facendo operare l’attuatore in regime
di saturazione (m ≡ uM).
Quando, per effetto di questa azione di controllo perdurante al valore massimo, la variabile
di controllo y avrà superato il valore del suo riferimento yo, rendendo quindi l’errore e
negativo, sarebbe auspicabile che la variabile m lasciasse il valore massimo uM ed
assumesse valori inferiori.
Affinché ciò avvenga, tuttavia, è necessario attendere che la variabile u rientri dai valori
elevati raggiunti nella fase precedente, fino ad assumere valori inferiori al limite di
saturazione uM: questa fase di scarica, o desaturazione, dell’azione integrale, può essere di
durata rilevante e dà luogo ad un comportamento anomalo del sistema di controllo.
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [86]
Regolatori anti wind-up
Un primo modo di ovviare al problema del wind-up consiste nel realizzare il
regolatore in modo alternativo. Si supponga di dover implementare un regolatore
PI:
⎛ 1 ⎞
R(s ) = K P ⎜⎜1 + ⎟⎟ e
KP
q+ u
Sat
m
⎝ sTI ⎠ +
e se ne consideri il seguente schema anti-windup: z 1
1+sTI
Si supponga nuovamente che l’errore e rimanga dello stesso segno, ad esempio
positivo, a lungo. Se KP è positivo, anche q assumerà valori positivi. Si supponga
quindi l’attuatore in saturazione con m=uM. Poiché il blocco in retroazione ha
guadagno unitario, anche la variabile z si assesterà sul valore uM. Quando, per
effetto della prolungata azione dell’attuatore, l’errore cambia segno, anche la
variabile q cambierà segno, istantaneamente. Il fatto che q assuma valori negativi,
unito al fatto sopra ricordato che z= uM, implica poi che u assuma immediatamente
valori inferiori a uM, facendo subito uscire l’attuatore dalla saturazione,
ripristinandone quindi il comportamento lineare.
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [87]
Regolatori anti wind-up
e q+ u m
KP Sat
+
z 1
1+sTI
Si osservi che quando la saturazione non è raggiunta, il blocco Sat equivale ad un
guadagno unitario, e la funzione di trasferimento da e a m diventa:
⎛ 1 ⎞ Il comportamento dinamico nominale è
R(s ) = K P
1

= K P ⎜1 + ⎟⎟
1 ⎝ sTI ⎠ quindi quello del regolatore PI.
1−
1 + sTI
Se la variabile manipolabile m non è disponibile, si può fare riferimento alla
saturazione propria dell’uscita del regolatore:
e + u m' m
KP Sat Sat
+
1
1+sTI
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [88]
Integrazione condizionata
Un modo alternativo, di largo utilizzo, per far fronte al problema del wind-up
dell’integratore consiste nell’interrompere l’integrazione quando l’attuatore si
trova in saturazione (integrazione condizionata):
+ sTD
c − 1+sTD/N
+ ++ KP + U M
b − +
Sat

Ysp + KP/TI
=0 1 |.| |.|
− <0 s

Y +
0

Il modo più sicuro di implementare questo schema di anti-windup consiste nel far
uso di un sensore che rilevi quando l’attuatore entra in saturazione (ad esempio un
fine corsa elettrico per un motore). In assenza di questo, si può fare riferimento
alla saturazione dell’uscita propria del regolatore.

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [89]


Commutazione automatico/manuale
Di norma in un regolatore PID è data la possibilità all’operatore di far funzionare
il regolatore in modalità manuale: l’operatore può comandare delle variazioni alla
variabile di controllo, che sono integrate per ottenere il valore effettivo da
attribuire alla variabile.
+ −

+ sTD I
c − 1+sTD/N
+ ++ KP + M U M
b − + A
Sat

Ysp + KP/TI
=0 1 |.| |.|
− <0 s

Y +
0

La commutazione dal funzionamento manuale a quello automatico e viceversa


deve essere senza scosse (bumpless): questo si ottiene mandando l’integratore
della modalità non attiva in inseguimento della variabile di controllo, cioè
calcolandone ad ogni istante il valore in modo che alla commutazione abbia un
valore coerente.
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [90]
Identificazione dei parametri
2

Per il progetto del controllore, o anche 1.5

1
sinusoidal
0.5

sweep
per valutare i limiti di prestazione, 0

-0.5

-1
frequency
occorre disporre di stime di ζz, ωz e ρ.
-1.5

-2
0 5 10 15 20 25 30
response
Per identificarne sperimentalmente i qm I ref qm
+ + + G (s)
R(s)
valori, si possono utilizzare gli −
m

strumenti di analisi forniti da alcuni


CN commerciali.
Utilizzando un controllore che 30
anello chiuso
conferisce banda passante molto 20 anello aperto

blanda, la funzione di trasferimento 10

d’anello si sovrappone a quella in 0

anello chiuso. Inoltre:

dB
-10

-20

Fm ( jω p ) 1 ρ 2

-30

Fm ( jω z ) 4ζ 2z (1 + ρ)2 -40

-50
-1 0 1 2 3
10 10 10 10 10
w (rad/s)

Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [91]


Procedura d’identificazione
Possiamo formalizzare una procedura di identificazione nei seguenti passi:

1. Progettare un controllore PID con ωc << ω^ dove ω ^ è una stima


z z
approssimata di ωz
2. Eseguire un esperimento in anello chiuso e riportare su grafico
l’andamento del modulo |Fm(jω)|
3. Dal diagramma ricavare ωz and ωp come le pulsazioni di minimo e
massimo e:
∆dB=|Fm(j ωp)|dB − |Fm(j ωz)|dB
4. Calcolare:
⎧ ⎛ ∆ dB ⎞
⎜ ⎟
⎪ ∆ = 10 ⎝ 20 ⎠

⎪ ω2p
⎨ ρ = 2 −1
⎪ ωz
⎪ 1 ρ
ζ
⎪ z =
⎩ 2 ∆ 1+ ρ
Controlli automatici per la meccatronica - Controllo del moto - P. Rocco [92]