Corso di Informatica Industriale Prof. Giorgio Buttazzo Dipartimento di Informatica e Sistemistica Università di Pavia E-mail: buttazzo@unipv.it Informazioni varie Telefono: 0382-505.755 Email: Dispense: Esame: buttazzo@unipv.it on line 2 prove scritte 2
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
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 CPU attuatore sensore µc attuatore sensore 6
Parte trattata dal corso CPU attuatore sensore µc attuatore sensore 7 Attuatori Idraulici Pneumatici Elevata potenza, ma Fortemente non lineari difficoltà di controllo fine Minor potenza, ma maggiore controllo A passo, a cc, servomotori Motori elettrici A memoria di forma (SMA) Bassa potenza Bassa velocità Piccolo ingombro 8
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. V a θ posizione angolare ω velocità angolare C m coppia motrice 9 Riduttori I motori cc sviluppano alte velocità a bassa coppia Coppie elevate possono essere ottenute attraverso opportuni riduttori. R R2 θ2 θ R2 R ω ω2 R2 R 0
Riduttori serie Mettendo due riduttori in serie i rapporti si moltiplicano: output gear input gear θ2 θ R2 R 2 R2 R 3 riduzione 3: riduzione 9: ω ω2 R2 R 2 Motori cc: circuito equivalente R a L a V a E Ia V a tensione di alimentazione I a corrente di alimentazione R a resistenza di armatura L a induttanza di armatura E forza contro elettromotrice 2
Motori cc: equazioni R a L a V a E Ia E K t ω V a E R a I a C m K t I a K t costante di coppia 3 Motori cc: potenza assorbita R a L a V a E Ia Potenza assorbita: P a V a I a E I a R a I a 2 Potenza meccanica Potenza persa nel rame 4
Motori cc: potenza meccanica R a L a V a E Ia Potenza meccanica: P m E I a C m ω C m K t I a V a E I a R a E K t ω V a K t ω C m K t R a 5 Motori cc: caratteristiche P m C m ω 00% C m P m V a K t ω C m K t R a 00% ω 6
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 M68HC: Assorbimento di un piccolo motore cc: Si possono avere due tipi di pilotaggio: lineare On/Off 5 ma 0.5 A 7 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 V cc e V cc V in V cc -V cc M Se la coppia resistente è piccola, la velocità angolare ω risulta proporzionale a V in ω V in 8
Motori cc: pilotaggio lineare Se non si dispone di due alimentazioni ad elevata potenza si può utilizzare un circuito a ponte: Inseguitore (V V in ) Differenziale (V 2 V cc V in ) V in V M V 2 R R 2 V cc R 4 V in R se 2 R 3 R 2 V R R 2 (V cc V in ) 4 R Per cui, se R R 2 R 3 R 4 si ha: V m V V 2 V m V V 2 2V in V cc R 3 V in V V 2 V m 0 0 V cc -V cc V cc /2 V cc /2 V cc /2 V cc V cc 0 0 V cc 9 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: R V cc Potenza dissipata: P d V ce I V in Se il transistor non conduce, I 0 e P d 0 Se il transistor è in saturazione, V ce 0, (tutta la caduta avviene su R) e P d 0. 20
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: V cc V cc V in ON V in OFF 2 Motori cc: pilotaggio on/off Con questa tecnica, però, il motore o è fermo o gira alla massima velocità (solo in un verso): V cc V cc ω ω max M ω 0 M V in ON V in OFF 22
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: I m 23 Motori cc: H-bridge driver Per consentire il controllo PWM bi-direzionale con singola alimentazione si usa il seguente circuito: V cc Q Q3 M Q2 Q4 24
Motori cc: H-bridge driver E necessaria un apposita elettronica per pilotare i transistor in modo da ottenere le rotazioni giuste: V cc Modi di funzionamento Q e Q 4 rotazione oraria Q Q3 Q 2 e Q 3 rotazione antioraria M Q e Q 2 Q e Q 2 si bruciano Q2 Q4 Q o Q 3 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: V in M 26
Convertitore tensione - duty cycle t V in 27 Servomotori Sono motori in corrente continua che integrano: Motore Riduttore Elettronica di controllo Controllo di posizione Input V cc 5 6 V GND Range angolare: [-90, 90] Coppia massima: 3 20 Kg cm 28
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 δ 2 ms T 20 30 ms t 29 Servomotori: funzionamento ms α -90.5 ms α 0 2.0 ms α 90 30
Motori cc: funzione di trasferimento Coppia di inerzia Coppia attrito dinamico nel tempo C i J t dω/dt C a Bω in frequenza C i J t ω s C a B ω J t inerzia sull albero B coeff. attrito dinamico C m C i C a C m K t I a C m J t ω s B ω K t I a (J t s B) ω ω K t J t s B I a 3 Motori cc: funzione di trasferimento K ω t I a ω dθ/dt ω θs J t s B I a K t C m B J t s ω s θ G(s) θ(s) I a (s) K t s(j t s B) 32
Motori cc: funzione di trasferimento Se C r è una coppia resistente esterna si ha: C m I a K t C u B J t s ω s θ C r θ K t I a C r s(j t s B) 33 Motori cc: funzione di trasferimento Considerando: V a E I a V a K t ω R a R a C r K e θ (carico elastico) V a R a I a C m C u K t B J t s ω s θ E C r K e K t 34
Motori cc: funzione di trasferimento V a R a I a C m C u K t B J t s ω s θ E C r K e K t H(s) θ(s) V a (s) K t /R a J t s 2 (B K t 2 /R a )s K e 35 Motori cc: discretizzazione I a G(s) θ a? I a G(z) θ a? θ a (k) f[θ a (k-), I a (k-), I a (k-2), ] 36
Esempio: filtro passa basso R V o I Cs V i C V o V (RCs ) o V i I Vi Vo R V V o i V o Vi Vo RCs RCs ponendo α RC 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) G(s) Y G(z) e Z s G(s) st ( z) Y X ( z) ( z G( s) ) Z s 38
Calcolo della Z-trasformata Per il filtro passa basso si ha: G(z) ( z α ) Z s( s α) G(z) ( z ) z ( p) z ( z )( z p) dove αt ( p e ) G(z) p z p ( p) z pz 39 Espressione a tempo discreto Quindi si ha: Y ( z) X ( z) ( p) z pz Y ( z) py ( z) z ( p) X ( z) z y( k) py( k ) ( p) x( k ) 40
Espressione a tempo discreto y( k) py( k ) ( p) x( k ) y(k) x(k) x x x x x x x x x x x k 4 Motore cc: espressione discreta α I a s(s α) θ a posto p e αt si ha: y( k) ( p) x( k ) ( p) y( k ) py( k 2) 42
Motori cc: controllo di posizione θ d Controllore I a Motore θ a 43 Motori cc: controllo di posizione Controllo Proporzionale θ d ε K p I a Motore θ a 44
Controllo di posizione con reazione tachimetrica 0 x d x M θ d K p y Motor driver ω d K d ω θ 45 Regolatore PD TASK pos_control() { int xd, vd, x, v; float y, Kp, Kd; while () { get_gains(&kp, &Kd); get_setpoint(&xd, &vd); read_sensors(&x, &v); y Kp*(xd - x) Kd*(vd - v); output(y); task_endcycle(); } } 46
Vantaggi del controllo PD y(t) Al crescere di K p cresce: la frequenza lo smorzamento La reazione tachimetrica migliora la prontezza di risposta e il margine di stabilità 47 t Controllo di forza force sensor F F d K y (corrente) 48
Force feedback loop TASK force_control() { float Fd, F; float y, K; while () { K read_gain(); Fd desired force(); F read_force(); y K*(Fd - F); output(y); task_endcycle(); } } 49 Controllo multi-livello F force sensor F d K f v d K v y Motor driver v 50