Corso di
Informatica Industriale
Prof. Giorgio Buttazzo
Dipartimento di Informatica e Sistemistica
Università di Pavia
E-mail: [email protected]
Informazioni varie
• Telefono:
0382 - 505.755
• Email:
[email protected]
• Dispense:
on line
• Esame:
2 prove scritte
2
1
Scopo del corso
• Uso del calcolatore nei sistemi di controllo
• Interfacciamento con sensori e attuatori
• Condizionamento dei segnali
• Periferiche di comunicazione
• Elaborazione sensoriale
3
Definizioni generali
In ogni applicazione di controllo si possono
distinguere 3 componenti:
• il sistema da controllare
– può includere sensori e attuatori
• il controllore
– invia gli ingressi al sistema in funzione di un
obiettivo di controllo prefissato
• l’ambiente in cui il sistema opera
4
2
Schema a blocchi
Controllore
Sistema
Ambiente
A seconda delle interazioni tra ambiente e
sistema controllato, possiamo distingurere tre
tipi di sistemi di controllo.
5
Schema a blocchi dettagliato
attuatore
CPU
sensore
attuatore
µC
sensore
6
3
Parte trattata dal corso
attuatore
CPU
sensore
attuatore
µC
sensore
7
Attuatori
• Idraulici
• Pneumatici
• Motori elettrici
Elevata potenza, ma
Fortemente non lineari
difficoltà di controllo fine
Minor potenza, ma
maggiore controllo
⇒ A passo, a cc, servomotori
• A memoria di forma (SMA)
Bassa potenza
Bassa velocità
Piccolo ingombro
8
4
Motori cc
• Convertono energia elettrica in energia meccanica
• A parità di tensione, un motore assorbe corrente in
proporzione alla coppia resistente.
⇒ Corrente di stallo: corrente massima che un motore
può assorbire alla tensione nominale.
⇒ Coppia di stallo: coppia fornita ad albero bloccato,
con tensione nominale e corrente massima.
θ = posizione angolare
ω = velocità angolare
Va
Cm = coppia motrice
9
Riduttori
• I motori cc sviluppano alte velocità a bassa
coppia
• Coppie elevate possono essere ottenute
attraverso opportuni riduttori.
θ2
R2
=
θ1
R1
R1
R2
R2
ω1
=
R1
ω2
10
5
Riduttori serie
• Mettendo due riduttori in serie i rapporti si
moltiplicano:
output gear
input
gear
R2
=3
R1
θ2
=
θ1
R2 2
R1
ω1
=
ω2
R2 2
R1
riduzione 3:1 riduzione 9:1
11
Motori cc: circuito equivalente
Ra
La
+
Va
Ia
E
−
Va
Ia
Ra
La
E
=
=
=
=
=
tensione di alimentazione
corrente di alimentazione
resistenza di armatura
induttanza di armatura
forza contro elettromotrice
12
6
Motori cc: equazioni
Ra
La
+
Va
Ia
E
−
E = Kt ω
Kt = costante di coppia
Va = E + Ra Ia
Cm = Kt Ia
13
Motori cc: potenza assorbita
Ra
Va
La
+
Ia
E
−
Potenza assorbita:
Pa = Va Ia = E Ia + Ra Ia2
Potenza
meccanica
Potenza
persa nel rame
14
7
Motori cc: potenza meccanica
Ra
La
+
Va
Ia
E
−
Potenza meccanica: Pm = E Ia = Cm ω
Cm = Kt Ia
Ia =
Va − E
Ra
E = Kt ω
Cm = Kt
Va − Kt ω
Ra
15
Motori cc: caratteristiche
Pm = Cm ω
100%
Cm
Pm
Cm = Kt
Va − Kt ω
Ra
100%
ω
16
8
Motori cc: pilotaggio
• I motori assorbono molta corrente, rispetto ai
normali circuiti elettronici, pertanto richiedono
speciali circuiti di pilotaggio (driver di potenza).
⇒ Assorbimento del processore M68HC11: 5 mA
⇒ Assorbimento di un piccolo motore cc:
0.5 ÷ 1 A
• Si possono avere due tipi di pilotaggio:
⇒ lineare
⇒ On/Off
17
Motori cc: pilotaggio lineare
• Il motore è collegato ad un circuito elettronico che
genera una tensione continua di controllo:
Per avere rotazioni nei due sensi
occorre un’alimentazione doppia
che fornisca +Vcc e −Vcc
V
in
Se la coppia resistente è piccola,
la velocità angolare ω risulta
proporzionale a Vin
+Vcc
−
+
-Vcc
M
ω
Vin
18
9
Motori cc: pilotaggio lineare
• Se non si dispone di due alimentazioni ad elevata potenza
si può utilizzare un circuito a ponte:
Inseguitore (V1 = Vin)
−
Vin
V1
+
Differenziale (V2 = Vcc – Vin)
M
R2
V2
R2
R3
=
R1
R4
V2 =
R2
(Vcc – Vin)
R1
Per cui, se R1 = R2 = R3 = R4 si ha:
Vm = V1 – V2 = 2Vin – Vcc
Vin
R4
+
Vcc
R3
Vm = V1 –V2
se
R1
−
Vin
V1
V2
Vm
0
0
Vcc
-Vcc
Vcc/2 Vcc/2 Vcc/2
Vcc
Vcc
0
0
Vcc
19
Motori cc: pilotaggio on/off
• Il pilotaggio lineare fa dissipare troppa potenza e
può essere usato solo per motori di pochi watt.
• Per ridurre la potenza dissipata, si usano transistor
che lavorano solo in saturazione/interdizione:
Vcc
R
Potenza dissipata: Pd = Vce I
• Se il transistor non conduce, I = 0 e Pd = 0
Vin
• Se il transistor è in saturazione, Vce ≅ 0,
(tutta la caduta avviene su R) e Pd ≅ 0.
20
10
Motori cc: pilotaggio on/off
• Per carichi induttivi, occorre mettere in parallelo
un diodo per consentire alla corrente di defluire
quando il transistor si interdice:
Vcc
Vcc
Vin
Vin
ON
OFF
21
Motori cc: pilotaggio on/off
• Con questa tecnica, però, il motore o è fermo o
gira alla massima velocità (solo in un verso):
Vcc
ω = ωmax
Vin
ON
Vcc
M
ω=0
M
Vin
OFF
22
11
Motori cc: pilotaggio PWM
(Pulse Width Modulation)
• Per controllare la velocità con la tecnica on/off, si
può pilotare il transistor con un’onda quadra.
• Se la frequenza è abbastanza elevata (qualche
KHz), la corrente media nell’induttore diventa
costante e proporzionale al duty cycle del segnale:
Im
23
Motori cc: H-bridge driver
• Per consentire il controllo PWM bi-direzionale con
singola alimentazione si usa il seguente circuito:
Vcc
Q1
Q3
M
Q2
Q4
24
12
Motori cc: H-bridge driver
• E’ necessaria un’apposita elettronica per pilotare i
transistor in modo da ottenere le rotazioni giuste:
Modi di funzionamento
Vcc
Q1
Q3
M
Q2
Q4
Q1 e Q4
rotazione oraria
Q2 e Q3
rotazione antioraria
Q1 e Q2
Q1 e Q2 si bruciano
Q1 o Q3
azione frenante per E
tutti
spenti
lento rallentamento
25
Motori cc: H-bridge driver
• E’ necessaria un’apposita elettronica per pilotare i
transistor in modo da ottenere le rotazioni giuste:
−
Vin
+
−
M
+
26
13
Convertitore
tensione - duty cycle
t
Vin
27
Servomotori
• Sono motori in corrente continua che integrano:
⇒ Motore
⇒ Riduttore
⇒ Elettronica di controllo
⇒ Controllo di posizione
Input
Vcc ≅ 5 ÷ 6 V
GND
Range angolare:
Coppia massima:
[-90, +90]
3 ÷ 20 Kg ·cm
28
14
Servomotori: funzionamento
• Sono controllati mediante impulsi modulati in durata
Pulse Width Modulation (PWM):
• La posizione dell’albero è proporzionale alla durata
del duty cycle δ/T
δ
t
T
δ = 1 ÷2 ms
T = 20 ÷30 ms
29
Servomotori: funzionamento
1 ms
α = -90
1.5 ms
α=0
2.0 ms
α = +90
30
15
Motori cc: funzione di trasferimento
nel tempo
in frequenza
Coppia di inerzia
Ci = Jt dω/dt
Ci = Jt ω s
Coppia attrito dinamico
Ca = Bω
Ca = B ω
Jt = inerzia sull’albero
B = coeff. attrito dinamico
Cm = Kt Ia
C m = Jt ω s + B ω
Cm = Ci + Ca
Kt Ia = (Jt s + B) ω
Kt
Ia
Jt s + B
ω =
31
Motori cc: funzione di trasferimento
ω =
Ia
Kt
Ia
Jt s + B
Kt
Cm
ω = dθ/dt
1
B + Jt s
ω
ω = θs
1
s
θ
Kt
θ(s)
=
G(s) =
s(Jt s + B)
Ia(s)
32
16
Motori cc: funzione di trasferimento
Se Cr è una coppia resistente esterna si ha:
Ia
Kt
Cm
Cu
+
1
B + Jt s
–
ω
1
s
θ
Cr
Kt Ia − Cr
θ =
s(Jt s + B)
33
Motori cc: funzione di trasferimento
Considerando:
Va
+
–
1
Ra
Ia
Va − E
Va − Ktω
=
Ra
Ra
(carico elastico)
Cr = Ke θ
Ia =
Kt
Cm
+
Cr
E
Cu
–
ω 1
1
B + Jt s
s
θ
Ke
Kt
34
17
Motori cc: funzione di trasferimento
Va
+
–
1
Ra
Ia
Kt
Cm
+
Cu
–
Cr
E
ω 1
1
B + Jt s
s
θ
Ke
Kt
H(s) =
Kt /Ra
θ(s)
=
Jt s2 + (B + Kt2 /Ra)s + Ke
Va(s)
35
Motori cc: discretizzazione
Ia
θa
G(s)
?
Ia
θa
G(z)
?
θa(k) = f[θa(k-1), Ia(k-1), Ia(k-2), …]
36
18
Esempio: filtro passa basso
R
Vi
Vo =
C
Vo
I=
1
RC
Vo =
Vi − Vo
R
Vi − Vo
RCs
Vo
1
=
Vi RCs + 1
Vo (RCs + 1) = Vi
ponendo α =
1
I
Cs
si ha:
G(s) =
α
s +α
37
Calcolo della Z-trasformata
L’espressione discreta di G(s) si calcola utilizzando
un circuito di sampling and hold:
X
H(s)
 1 − e − st
Y ( z)
= Z 
G(z) =
X ( z)
 s
G(s)
Y


G(s) 
G(s) = (1 − z −1 ) Z 
 s 





38
19
Calcolo della Z-trasformata
Per il filtro passa basso si ha:
 α 
G(z) = (1 − z −1 ) Z 

 s(s + α ) 
( z − 1) (1 − p) z
G(z) =
z ( z − 1)( z − p )
dove
(p =
e −αT
)
1− p
(1 − p ) z −1
=
G(z) =
z− p
1 − pz −1
39
Espressione a tempo discreto
Quindi si ha:
(1 − p ) z −1
Y ( z)
=
X ( z)
1 − pz −1
Y ( z ) = pY ( z ) z −1 + (1 − p ) X ( z ) z −1
y ( k ) = py (k − 1) + (1 − p ) x(k − 1)
40
20
Espressione a tempo discreto
y ( k ) = py (k − 1) + (1 − p ) x(k − 1)
y(k)
x(k)
x
x
x
•
x
•
x
•
x
•
x
•
•
x
x
x
x
k
•
41
Motore cc: espressione discreta
Ia
posto
α
s(s + α )
p = e −αT
θa
si ha:
y ( k ) = (1 − p ) x( k − 1) + (1 + p ) y (k − 1) − py ( k − 2)
42
21
Motori cc: controllo di posizione
θd
Controllore
Ia
Motore
θa
43
Motori cc: controllo di posizione
Controllo Proporzionale
θd
ε
+
–
Kp
Ia
Motore
θa
44
22
Controllo di posizione con
reazione tachimetrica
x
xd
0
M
θd
ωd
+
+
Kp
−
+
−
Kd
y
Motor
driver
ω
θ
45
Regolatore PD
TASK
{
int
float
pos_control()
xd, vd, x, v;
y, Kp, Kd;
while (1) {
get_gains(&Kp, &Kd);
get_setpoint(&xd, &vd);
read_sensors(&x, &v);
y = Kp*(xd - x) + Kd*(vd - v);
output(y);
task_endcycle();
}
}
46
23
Vantaggi del controllo PD
Al crescere di Kp cresce:
⇒ la frequenza
⇒ lo smorzamento
y(t)
La reazione tachimetrica migliora
la prontezza di risposta e il margine di stabilità
t
47
Controllo di forza
force
sensor
F
−
Fd
+
K
y (corrente)
48
24
Force feedback loop
TASK
{
float
float
force_control()
Fd, F;
y, K;
while (1) {
K = read_gain();
Fd = desired force();
F = read_force();
y = K*(Fd - F);
output(y);
task_endcycle();
}
}
49
Controllo multi-livello
force
sensor
F
Fd
−
+
vd
Kf
+
−
Kv
y
Motor
driver
v
50
25