PID per tutti

Se siete entrati nel mondo dei droni vi sarete scontrati con i PID e con la loro regolazione, ma scopriamo oggi cosa sono davvero

  1. COS’E’ IL PID?

Il PID è un tipo di regolatore utilizzato per far eseguire ad un sistema (nel nostro caso il drone) ciò che gli viene richiesto (rispettare i movimenti che gli vengono chiesti attraverso il radiocomando).

Come suggerisce il nome, il PID è l’unione di 3 parti ( Proporzionale, Integrativo, Derivativo ) e ora vedremo in maniera molto semplice cosa fa ognuna di esse.

Il PID può sembrare tremendamente complesso, ma invece pensa che semplicemente esegue su un computer (flight controller) ciò che il nostro cervello fa ogni volta che guidiamo un’auto.
Utilizzerò spesso in questo articolo l’analogia dell’automobile in quanto permette di capire in maniera molto intuitiva cosa fanno le 3 parti (P, I, D).

Sistema Drone

Nel nostro caso il sistema è il drone, che può ruotare su 3 assi (roll, pitch e yaw).
I 3 assi sono indipendenti e quindi esisterà un regolatore per ogni asse. Ogni regolatore è totalmente indipendente dagli altri, quindi per semplicità andiamo ad analizzare un solo asse.

E’ utile notare che in realtà quando pilotiamo in acro (rate) con la posizione dello stick richiediamo al drone una velocità angolare, e non una posizione, ma per il controllore questo è totalmente indifferente.

Il nostro sottosistema (asse del drone) avrà un ingresso (il comando che arriva dalla posizione dello stick) che rappresenta il valore desiderato dal pilota di velocità angolare, e uno “stato”, ovvero la velocità a cui sta realmente ruotando il drone (misurato dal giroscopio).

Per ora assumiamo che il valore letto dal giroscopio sia esatto, ma in realtà non sarà così, ci sono infatti vibrazioni e rumore elettrico e di misura…  ma questa è un’altra storia e ne parleremo in un altro articolo.

Bisogna però notare che il flight controller conosce solo i valori passati e presenti, ma non quelli futuri, ovvero non sa quale sarà la richiesta del pilota nel futuro e non sa quale sarà la vera velocità del drone nel futuro, quindi dovrà controllare il drone conoscendo solo presente e passato.

Nell’analogia con l’automobile, immagina che devi guidare seguendo una linea tracciata per terra in mezzo alla tua corsia, ma non puoi guardare avanti, ma solo dietro di te e sotto di te.

Ora immaginiamo di dover ottenere questo comportamento per piccoli passi successivi.

Innanzi tutto, se ci troviamo su una strada dritta e non siamo sulla linea, qual è la cosa più semplice da fare per raggiungere la linea?

Sterzare in maniera proporzionale all’errore, ovvero alla differenza tra l’ingresso e lo stato (quindi ad esempio se sono distante 1 metro dalla linea, sterzo di 10° il volante, se sono distante 2m dalla linea, sterzo il volante di 20° e così via).

 

IL PID

PROPORZIONALE

Quindi come abbiamo appena detto, possiamo sterzare il volante in maniera proporzionale all’errore per seguire un ingresso costante. Ma qual è il valore ottimale di gradi da sterzare per raggiungere la linea velocemente? Dipende… se ho un camion, sicuramente sarà diverso da una ferrari! Ecco che ci troviamo ad aver a che fare con la regolazione del valore della P.

Se la P troppo bassa, l’auto ci metterà tanto tempo a raggiungere la linea, se il valore è troppo alto ci saranno oscillazioni, perché mi avvicinerò alla linea troppo velocemente e passerò dalla parte opposta della linea. Se impostassimo un valore ancora più elevato le oscillazioni diventerebbero sempre più grandi, probabilmente portando la vettura a ribaltarsi

Ok, abbiamo visto che abbiamo ottenuto il risultato desiderato.
Abbiamo finito?

Purtroppo no, immaginiamo infatti ora di essere in una curva

Per effettuare la curva dobbiamo sterzare, ma abbiamo visto che il termine proporzionale permette di sterzare solo se sono distante dalla linea, quindi avrò sempre errore nelle curve (quindi quando muovo lo stick per tornare al mondo dei droni). Quindi nasce la necessità di introdurre qualcos’altro:

 

INTEGRALE

Il termine integrale è aggiunto per non avere errore quando dobbiamo inseguire un riferimento che varia in maniera continua e costante (curva per la macchina, stick per il flight controller).

Come funziona?
Viene aggiunto un termine (che si andrà a sommare al precedente) che impone di sterzare in maniera proporzionale a quanto tempo siamo da una delle 2 parti della linea. Ad esempio se come nell’immagine sopra ci troviamo a sinistra della linea, dopo un secondo sterziamo di un grado in più a destra, dopo 2 secondi sterziamo di 2 gradi, e così via.
Piano piano la macchina inizierà ad avvicinarsi alla linea e l’errore andrà a zero!

Anche in questo caso un valore basso di I renderà lenta la diminuzione dell’errore (con ingresso che varia in maniera costante), mentre un valore elevato genererà oscillazioni.

Ok, ora siamo riusciti ad eliminare l’errore sia con ingresso costante (stick fermo), sia con ingresso che varia in maniera costante (mentre muovo lo stick).

Possiamo fare altro?
Pensa mentre guidi, te guardi solo la linea sotto di te e dietro di te, e non puoi guardare avanti. Se però vedi la linea che inizia a curvare mentre te con la macchina stai ancora andando dritto, e quindi ti stai allontanando dalla linea molto velocemente curverai di di più. Mentre dopo che hai effettuato la curva, se vedi che ti stai avvicinando alla linea molto velocemente (perché te stai ancora sterzando, mentre la linea è tornata dritta), sterzerai meno, per non passare dalla parte opposta.

 

Questo comportamento può essere ottenuto con un altro termine:

IL DERIVATIVO

Il derivativo è l’ultimo dei 3 termini, si va a sommare ai precedenti 2, e introduce una “intuizione sul futuro”.
Proprio come noi sterziamo di più o di meno basandoci sulla velocità con cui ci stiamo allontanando o avvicinando al nostro obbiettivo, allo stesso modo agisce la D.

Quindi la D dipende dalla velocità con cui lo stato reale (posizione dell’auto, o rotazione letta dal giroscopio del drone) si sta avvicinando o allontanando dal valore desiderato. Questo comporta varie conseguenze, come potremo vedere nelle domande sotto.

La stabilizzazione:

Il PID in realtà, oltre a controllare il sistema (cioè a far eseguire al drone ciò che gli viene richiesto), si occupa anche di stabilizzare sistema (il drone nel nostro caso).

Cosa significa stabilizzare sistema?
Il drone è costantemente soggetto a disturbi esterni, cioè a forze sia statiche/costanti (come un motore con meno potenza degli altri, o un peso decentrato), sia dinamiche (folate di vento, inerzie, ecc.) che tenderebbero a far inclinare il drone da una parte.
Invece come tutti sappiamo il drone resta perfettamente orizzontale anche posizionando pesi fuori dal baricentro, grazie all’azione stabilizzante del PID.
L’effetto stabilizzante è così “potente” che è in grado di tenere dritto il drone anche con la batteria montata sopra (che equivale ad avere tutto il peso in alto, come voler appendere un quadro al muro al contrario. Senza qualcosa che lo stabilizza, ovviamente si ribalterebbe subito!)

Ma come fa a stabilizzare?

Come visto sopra il PID si occupa di annullare l’errore tra posizione attuale del drone misurata dal gyro e posizione desiderata.

Errore=posizione attuale – posizione desiderata

Risulta quindi intuitivo, che noi abbiamo visto come annullare l’errore se la posizione desiderata cambia (cioè se noi impartiamo un comando), ma gli stessi ragionamenti valgono anche se la posizione attuale cambia (per via di una folata di vento ad esempio).

Le domande pratiche:

Perché se alzi la D diminuiscono le oscillazioni del drone?

Perché come visto prima, il termine derivativo va a diminuire la sterzata mentre mi sto avvicinando al mio obiettivo, e quindi non oltrepasserò dall’altra parte, ma mi ci avvicinerò più dolcemente, senza innescare oscillazioni.

Il termine derivativo va quindi ad addolcire l’approccio alla posizione corretta del drone.
Non solo, diminuisce anche il propwash, perchè consente di sterzare maggiormente mentre mi sto allontanando dalla posizione desiderata.

Ad esempio nel caso del propwash, non appena le turbolenze tenderanno a far spostare il drone, il derivativo si opporrà con forza, e manterrà salda la posizione, evitando l’innesco di oscillazioni.

Ma quindi per risolvere le oscillazioni basta che alzi tantissimo la D?

No, anzi fai molta attenzione quando aumenti la D, perché aumentare il termine derivativo comporta un aumento della temperatura dei motori, e quindi rischi di bruciarli!

 

Perché i motori si scaldano se alzi la D?

Come visto la D dipende dalla velocità con cui il drone si allontana o avvicina alla posizione desiderata.
Bisogna considerare che il segnale letto dal giroscopio non è esatto, ma è affetto da rumore (dovuto a vibrazioni e rumore elettrico). 
Il valore letto dal giroscopio verrà filtrato (capiremo come in un altro articolo), ma comunque il termine derivativo si troverà ad analizzare un segnale che varia in continuazione, e quindi agirà continuamente per compensare questo effetto e stabilizzare il drone.

Ma in realtà non c’è nulla da compensare visto che la velocità è solo frutto di errori e rumore!
Questo comporterà che i motori ricevano il comando di accelerare e rallentare migliaia di volte al secondo, creandone un surriscaldamento!

Perché il drone sembra più preciso se alzo la P?

Il termine proporzionale, come visto, è proporzionale all’errore (cioè alla distanza tra valore reale e valore richiesto), quindi aumentandolo, il drone cercherà di rimanere il più fedele possibile alle nostre richieste.

 

Perché se alzo la I il drone si muove meno nei colpi di gas?

Perché nei colpi di gas, i motori produrranno potenze leggermente diverse (visto che non sono esattamente identici), e quindi il drone tenderà ad inclinarsi dalla parte con meno potenza.
Come visto però il termine integrale si occupa di riportare il drone nella posizione corretta, quindi alzando la I, si alza questo effetto.

NOTA: oggi questo effetto è ottenuto senza utilizzare valori alti di I (che produrrebbe un comportamento robotico del drone), con “l’Anti Gravity”, che alza la I durante i colpi di gas (ma ne parleremo meglio in un altro articolo).

 

Conclusioni

Spero che questa guida vi abbia aiutato a capire un po’ della teoria che c’è dentro ad un regolatore PID, fondamentale in tutti i nostri droni.
Se hai altri dubbi chiedi pure nei commenti!

Articolo di: Devis Palmi

Commenti

  • Santofpv

    Interessante! Spiegazione molto chiara, ottimo lavoro! Ma credo che solo la teoria, anche se necessaria per fare un buon tuning dei pid, è molto più complicata farla su un drone, quindi ci vuole a mio parere anche molta esperienza oltre alla teoria! Comunque ottimo lavoro, serviva proprio una spiegazione così chiara in lingua italiana!!!!

  • MbertuFPV

    Grazie Santofpv! Faremo del nostro meglio per produrre altri contenuti di valore, e magari approfondiremo anche qualche consiglio pratico su come regolare i pid!

  • Devis Palmi

    Grazie mille SantoFPV!
    Purtroppo sono ben consapevole, che la pratica sia molto distante dalla teoria, ma credo comunque che un’idea di come funzioni la teoria sia sempre utile, e una spiegazione semplice in italiano mancava. Ho fatto del mio meglio per produrre un articolo comprensibile a tutti e visti gli apprezzamenti, penso abbia centrato l’obiettivo! Sono davvero contento.

    Per quanto riguarda la pratica, ci sono già diversi video su youtube ben fatti (da piloti più esperti di me con la pratica).
    Magari potrei riunire in un articolo un paio di video che ritengo più utili, aggiungendo qualcosa di mio!

  • Marco (streethawk)

    Volo da circa tre anni, e la costante più dura è propio il setting, grazie davvero x la chiara introduzione , spero di averne molte altre da te MbertuFPV, passo a passo…ciao

  • MbertuFPV

    Ciao Marco! Grazie dei complimenti e del commento! Ci tengo a precisare che l’articolo è stato scritto da Devis Palmi, è lui il nostro esperto di PID e controlli automatici! Il nostro persorso è appena iniziato, sicuramente avremo altro di cui parlare! A presto!

  • Devis Palmi

    Grazie mille Marco (streethawk), sicuramente avrai modo di trovare tanti altri contenuti interessanti ed esclusivi! Continua a seguirci!

  • Marco (streethawk)

    Si ho commesso un errore…ho letto che ha messo l esperienza e lo ringrazio molto…a presto

  • Crid

    Grazie! È stato davvero utile leggere questo articolo! Non vedo l’ora di leggerne altri! Complimenti!

  • Renzo

    Non ci sono dei valori dei pid per un volo stabile. Alzare i valori di D quale valore? dipende dal tipo dei motori da che cosa? Io vorrei un fpv stabile che quando non muovo gli stick rimanga fermo quali valori dei PID dovrei avere?

  • MbertuFPV

    Ciao Renzo, ti posso dire che quello che vuoi fare tu non è correlato direttamente ai PID. Il sistema di controllo PID permette al drone di rispondere in maniera coerente ai comandi impartiti ma non partecipa in nessuna maniera a modificarne la tipologia di controlli da impartire.
    Quello che vuoi ottenere tu lo ottieni variando la modalità di volo. Ovvero devi passare da Acro a Stabilizzato.
    Per avere poi una stabilizzazione perfetta avresti bisogno anche di un sistema GPS che mantiene fissa la posizione del drone. Per approfondire la cosa ti consiglierei di documentarti online o di frequentare qualche corso di pilotaggio droni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *