Curvo Studio

Controllo PID di posizione del servomotore: retroazione encoder, termini P, I e D e taratura

Un servomotore è un motore abbinato a un sensore di posizione e a un controllore che confronta la posizione comandata con quella misurata e pilota il motore per eliminare la differenza. Il controllore più comune è il PID: il termine proporzionale reagisce all'errore presente, il termine integrale elimina l'errore persistente e il termine derivativo smorza il moto per limitare la sovraelongazione.

Che cosa significa controllo ad anello chiuso

In un sistema ad anello aperto, come un motore passo-passo, il controllore invia un comando e presume che sia stato eseguito. In un sistema ad anello chiuso, il controllore misura il risultato e lo corregge.

Un anello di servo ha quattro parti:

  • Il comando (riferimento): dove si vuole l'albero, o a che velocità.
  • Il sensore: un encoder, un resolver o un potenziometro che misura la posizione effettiva dell'albero.
  • Il controllore: calcola l'errore, e = riferimento − posizione misurata, e produce un'uscita di controllo.
  • L'azionamento e il motore: trasformano l'uscita del controllore in corrente, e la corrente in coppia.

Ogni volta che un carico disturba l'albero, l'errore diventa diverso da zero, il controllore reagisce e la posizione ritorna. Il prezzo è che un anello mal tarato può oscillare o diventare instabile, cosa che i sistemi ad anello aperto non possono fare.

Retroazione encoder e risoluzione

Un encoder incrementale produce impulsi al ruotare dell'albero, con una coppia di canali in quadratura così da conoscere il verso. Un encoder assoluto indica l'angolo effettivo, anche dopo l'accensione. La risoluzione si indica in conteggi per giro, spesso come numero di bit: un encoder a n bit ha 2^n conteggi per giro.

Un encoder a 17 bit ha 131 072 conteggi per giro, quindi un conteggio vale 360° / 131 072 ≈ 0,0027°. L'anello non può posizionare meglio di quanto il suo sensore risolva, e una risoluzione grossolana rende rumoroso anche il termine derivativo, perché la velocità è calcolata dalle differenze di posizione.

I termini P, I e D

L'uscita del controllore PID è

u = Kp × e + Ki × ∫e dt + Kd × de/dt

Ciascun termine ha un ruolo distinto.

  • Proporzionale (Kp): l'uscita è proporzionale all'errore presente. Un Kp più alto rende la risposta più rapida e il sistema più rigido contro i disturbi, ma un valore troppo alto causa sovraelongazione e oscillazione. Con la sola P c'è di solito un errore a regime quando agisce una coppia di carico costante.
  • Integrale (Ki): accumula l'errore nel tempo, così anche un piccolo errore residuo alla fine spinge l'uscita abbastanza da eliminarlo. Elimina l'errore a regime ma aggiunge ritardo di fase, che aumenta la sovraelongazione, e può saturare (wind-up) quando l'attuatore va in saturazione, per cui l'integrale viene normalmente limitato.
  • Derivativo (Kd): reagisce alla velocità di variazione dell'errore. Agisce come uno smorzatore, riducendo sovraelongazione e oscillazioni, ma amplifica il rumore del sensore e la quantizzazione, quindi di solito è filtrato.

Gli effetti dell'aumento di ciascun guadagno preso da solo, in termini approssimativi: Kp riduce il tempo di salita e aumenta la sovraelongazione; Ki elimina l'errore a regime e aumenta la sovraelongazione; Kd riduce la sovraelongazione e il tempo di assestamento, ma può aggiungere rumore.

Intuizione di taratura e un quadro numerico

Una procedura manuale comune è:

1. Porta Ki e Kd a zero. Aumenta Kp finché l'asse reagisce rapidamente ma inizia a sovraelongare o a oscillare, poi torna a circa metà di quel valore. 2. Aggiungi Kd finché la sovraelongazione è accettabile e la risposta al gradino è ben smorzata. 3. Aggiungi un piccolo Ki per eliminare l'errore a regime residuo, e fermati appena ci riesci senza far oscillare la risposta. 4. Prova con il carico reale, un gradino reale e un disturbo reale, e verifica che resti stabile con margine quando il carico cambia.

Pensa a Kp come a una molla, a Kd come a uno smorzatore e a Ki come a una mano lenta che continua a girare finché l'errore sparisce. In un anello puramente P, l'errore di inseguimento a velocità costante è la velocità divisa per il guadagno. Un anello con guadagno di posizione Kv = 50 1/s che insegue 600 giri/min (10 giri al secondo, cioè 3600°/s) resta indietro rispetto al comando di 3600 / 50 = 72°. È molto, ed è per questo che gli azionamenti ad alte prestazioni usano guadagni elevati e azione in avanti sulla velocità (feedforward).

Gli azionamenti industriali annidano di solito tre anelli: un anello di posizione esterno (P), un anello di velocità intermedio (PI) e un anello di corrente interno (PI) che imposta direttamente la coppia. Gli anelli interni sono veloci e quelli esterni più lenti, il che rende ciascuno più facile da tarare.

Servo hobby e servo industriale

Un servo hobby (RC) è un piccolo motore CC, un riduttore, un potenziometro e una scheda di controllo in un unico contenitore. Il comando è un impulso ogni 20 ms la cui larghezza, tipicamente da 1 a 2 ms con 1,5 ms al centro, fissa l'angolo obiettivo in un campo limitato, spesso circa 180°. Il potenziometro fornisce la retroazione e la scheda esegue una semplice legge di controllo, di solito proporzionale. È economico, con risoluzione grossolana e coppia limitata.

Un servo industriale è un motore separato, di solito di tipo PMSM o BLDC con encoder, più un azionamento servo con anelli di corrente, velocità e posizione. Viene comandato da impulsi passo-direzione, da una tensione analogica o da un bus di campo. Offre una coppia di picco elevata, spesso tre volte la coppia nominale per accelerazioni brevi, risposta rapida e strumenti di taratura nell'azionamento. Il costo è più alto ed è richiesta la taratura.

Come il simulatore modella un servomotore

Il simulatore del servomotore di Curvo Studio non include un controllore PID né un grafico della risposta al gradino. Modella il comportamento a regime di un asse servo tarato con un encoder, e usa un solo guadagno dell'anello di posizione, Kv, per mostrare l'effetto della rigidità dell'anello.

Si assume che l'azionamento abbia un anello di corrente che rende la corrente proporzionale alla coppia. Il motore segue la velocità comandata fino al tetto di velocità fissato dalla tensione di alimentazione. Il carico fa salire la corrente in proporzione alla coppia finché l'azionamento raggiunge il picco, assunto pari a tre volte la coppia nominale. Oltre quel punto l'asse non riesce a mantenere il comando e il simulatore segnala il limite di coppia, anziché rallentare silenziosamente.

L'errore di inseguimento è il ritardo dell'anello proporzionale, 6 × giri/min / Kv in gradi, che sparisce quando l'asse si ferma. La risposta all'avviamento è un'approssimazione del primo ordine il cui tempo di salita dipende dal guadagno dell'anello e dal carico. La risoluzione dell'encoder si imposta in bit e la targa mostra i conteggi per giro. Il modello non ha azione integrale, azione derivativa, sovraelongazione né oscillazione, quindi questi effetti sono descritti qui ma non simulati.

Provalo nel simulatore del servomotore

Nel simulatore del servomotore prova questi esperimenti.

  • Imposta la Velocità comandata e leggi la velocità del rotore e l'Errore di inseguimento. Verifica l'errore di inseguimento con 6 × giri/min / Kv.
  • Aumenta il Guadagno anello di posizione e osserva l'errore di inseguimento ridursi in proporzione.
  • Dai alla Velocità comandata un segno negativo per invertire il verso.
  • Aumenta il cursore Carico meccanico (fino al 350 %). Le letture Coppia e Corrente di fase salgono insieme, perché la corrente segue la coppia. Spingi il carico oltre il 300 % della coppia nominale e il simulatore segnala il Limite di coppia.
  • Abbassa la Tensione di alimentazione sotto il valore nominale e vedi che il tetto di velocità scende, mentre la coppia resta disponibile.
  • Cambia la Risoluzione encoder (da 8 a 24 bit) e leggi il suggerimento dei conteggi per giro.

Provalo nel simulatore

Domande frequenti

Che cos'è il controllo PID in un servomotore?
Il controllo PID calcola il comando al motore a partire dall'errore di posizione con tre termini: proporzionale all'errore, proporzionale al suo integrale nel tempo e proporzionale alla sua velocità di variazione. Insieme fanno raggiungere all'albero il bersaglio rapidamente, con poca sovraelongazione e senza errore persistente.
Che cosa fa il termine P in un servo?
Il termine proporzionale fissa la rigidità. Un guadagno più alto dà una risposta più rapida e un errore minore, ma anche più sovraelongazione e, se troppo alto, oscillazione. Con la sola P, un carico costante lascia di solito un errore a regime.
Perché aggiungere un termine integrale?
Il termine integrale accumula l'errore residuo e aumenta l'uscita finché l'errore sparisce, quindi elimina l'errore a regime dovuto a carichi costanti o all'attrito. Troppa azione integrale causa sovraelongazione e wind-up, quindi viene mantenuta piccola e limitata.
Che cosa fa il termine derivativo?
Il termine derivativo risponde alla rapidità con cui l'errore cambia e agisce come uno smorzamento. Riduce sovraelongazione e oscillazioni, ma amplifica il rumore del sensore, quindi di solito si combina con un filtro e si mantiene moderato.
Qual è la differenza tra un passo-passo e un servo?
Un passo-passo funziona ad anello aperto e mantiene la posizione contando i passi, ma può perderne sotto sovraccarico senza saperlo. Un servo misura la posizione con un encoder e corregge continuamente l'errore, dando velocità più alta, riserva di coppia e certezza della posizione, a un costo maggiore.
In che cosa i servo hobby differiscono da quelli industriali?
Un servo hobby è una piccola unità integrata con un potenziometro e un controllore semplice, comandata da impulsi da 1 a 2 ms. Un servo industriale usa un motore separato con encoder ad alta risoluzione e un azionamento con anelli di corrente, velocità e posizione annidati, per coppia e precisione maggiori.