Croce e delizia di ogni progetto di self balancing è il PID.
Il PID è acronimo di Proporzionale/Integrale/Derivativo, ed è un sistema che prendendo come parametro di ingresso un valore di errore, restituisce un valore di uscita che dovrebbe servire a riportare il sistema controllato a un valore di errore pari a zero.
L'argomento è decisamente interessante e anche la sua trattazione matematica, ma se anche voi come me volete capire e fare senza avere una laurea in matematica, allora seguite i miei ragionamenti che forse saranno bestemmie per i colti matematici, ma vi assicuro che permetteranno di capire e di far funzionare le cose, la prova è che io sono riuscito a bilanciare il robot senza nessuna simulazione o calcoli tavolino.
La cosa interessante è che una volta capito cos'è un pid vi renderete conto che tantissime cose che vi circondano sono gestite con un pid, che può essere di volta in volta meccanico, elettronico o software. Vi faccio un esempio: il cruise control dell'automobile, il termostato elettronico della caldaia di casa, ecc.
Vediamo di capire il funzionamento del PID.
Immaginiamo un serbatoio di acqua che deve essere mantenuto il più possibile a livello costante. Un omino guarda ogni 10 minuti nel serbatoio e vigila su di esso. Quando il serbatoio aumenta di livello e supera il livello prestabilito, l'omino deve svuotarlo fino al raggiungimento del livello, se invece il livello cala perchè l'acqua viene usata da qualcuno, allora l'omino deve accendere una pompa e ripristinare il livello attingendo dal ruscello affianco.
L'omino ragiona in base al livello dell'acqua in quel momento e il livello ottimale. La differenza costituisce il nostro valore di ERRORE.
Se l'acqua sale, l'errore sarà positivo, se l'acqua scende l'errore sarà negativo.
Immaginiamo ora alcune dinamiche:
piove molto e l'acqua sale. L'omino si rende conto del livello accresciuto e scarica l'acqua. Ma quando raggiunge il livello ottimale si accinge a chiudere lo scarico, ma nel farlo il livello ottimale viene raggiunto e sorpassato verso il basso a causa di un ritardo nel chiudere lo scarico. A questo punto l'omino apre la pompa per aggiungere altra acqua ma quando raggiunge il livello, nonostante chiuda la pompa nel più breve tempo possibile, il livello ottimale viene superato verso l'alto, seppur di poco. Di nuovo l'omino scarica ritrovandosi di nuovo sotto livello e poi carica fino ad ottenere un nuovo livello molto più vicino rispetto a prima al valore ottimale.