Capitolo 13

La sfida del drone

Riesci tu a tenere il drone a 2 m qualunque cosa succeda?

Capitolo 13: La sfida del drone ↗

Briefing della missione

June: Ok. Drone vero, consegna vera. Decolla con un pacco, resiste a una raffica, sgancia il pacco e tiene i 2 m per tutto il tempo. Venti secondi.

Mika: E non possiamo toccare niente mentre vola?

Theo: È proprio questo il punto. Il controllore deve farcela da solo. Noi scegliamo solo tre numeri. Anzi, quattro: anche il filtro.

La missione, secondo per secondo:

  • 0 s: decollo da terra con un pacco da 0,2 kg (0,7 kg in tutto).
  • 6–9 s: una raffica verso il basso spinge con 1,5 N.
  • 12 s: il pacco si sgancia. All'improvviso il drone è 0,2 kg più leggero.
  • 20 s: missione finita.

Per il gran finale il nostro modello di drone diventa un po' più onesto. Ognuna di queste è una cosa con cui i droni veri devono convivere, e ognuna è una vecchia amica di un capitolo precedente:

  • Ritardo dei motori (τ ≈ 0,05 s): un'elica non può cambiare velocità all'istante. La sua spinta segue il comando come il caffè che si raffredda del Capitolo 3, un ritardo del primo ordine: al 63% dopo 0,05 s. Una spinta in ritardo è lo sfasamento del Capitolo 12 travestito.
  • **Un sensore rumoroso (σn\sigma_n ≈ 2 cm, la n sta per l'inglese noise, rumore; non è la σ di un polo):** ogni lettura dell'altezza sbaglia di circa 2 cm, a caso, mille volte al secondo. Il Capitolo 11 ci aveva avvisati: la D trasforma quel tremolio in grossi picchi di spinta.
  • Motori limitati (da 0 a 20 N): il limite del Capitolo 10 resta attivo. Con il pacco il drone pesa 6,9 N, quindi 20 N sono solo circa tre volte il suo peso, e i motori non possono mai tirare verso il basso. Mentre sono al limite, la pila si ferma (l'anti-windup del Capitolo 11).
  • La D è filtrata: la soluzione del Capitolo 11. La D prende la pendenza di una lettura del sensore smussata, un ritardo del primo ordine con la costante di tempo τf\tau_f che scegli tu. Un τf\tau_f più lungo vuol dire più calma, ma più tardi.

Capitolo 13: La sfida del drone ↗

Il Capitolo 12 disegnerebbe proprio questo. Ecco l'anello del drone, un giro della taratura a sei stelle: controllore, motori, drone. Fai scorrere il ritardo dei motori e guarda la fase piegarsi verso il basso.

Capitolo 13: La sfida del drone ↗

Theo: Senza il ritardo la fase non arriva mai a −180°, quindi non c'è nessun precipizio: per quanto alzassi il guadagno, l'anello non potrebbe mai raggiungere il −1 del Capitolo 10. È il minuscolo ritardo dei motori a costruire il precipizio.

Prima indovina! Quando il pacco si sgancia a 12 s, quale termine fa il grosso del lavoro per riportare il drone esattamente a 2 m?

Capitolo 13: La sfida del drone ↗

Mika: Aspetta. Quindi dopo lo sgancio il drone deve stare un po' troppo in alto per un po'? È da quell'errore che la pila disimpara!

Fai volare la missione

Ogni modifica a un cursore fa ripartire la missione, e il volo precedente resta come fantasma. Il piccolo piano s mostra i poli nominali: il ritardo dei motori e il filtro ci sono, restano fuori solo il rumore, il pacco e i limiti. Così puoi vedere il quadro lineare mentre accanto succede il volo vero, disordinato. Conquista tutte e sei le stelle per l'oro.

I limiti sono quello che noterebbe un cliente della consegna: assestato entro 3 s, mai più del 10% troppo in alto, spostato dalla raffica non più di una spanna (20 cm), di nuovo a posto 2 s dopo lo sgancio, mai a strisciare per terra, e motori che non ronzano (meno di 0,5 N di vibrazione).

Per la stella dell’arrivo, l’altezza reale deve restare entro ±5 cm dall’arrivo fino alla raffica a 6 s; attraversare 2 m una sola volta non basta. La stella dei motori calmi usa la deviazione standard della spinta tra 3 e 6 s, dopo il decollo e prima della raffica: la variazione tipica rispetto alla media, compresi l’assestamento tardivo e il rumore del sensore. Punta una riga della checklist (o raggiungila con Tab) per evidenziare i secondi che giudica.

Capitolo 13: La sfida del drone ↗

June: Ho tarato il controllore perfetto nella mia testa: KdK_d enorme, il filtro più piccolo possibile così la D reagisce all'istante. Con l'aria ferma è impeccabile! Guardate…

June: …perché i motori urlano? La linea arancione è tutta pelosa, e ora va pure oltre!

Theo: Capitolo 11, avvertimento 2. Un KdK_d grande per un filtro minuscolo trasforma ogni 2 cm di tremolio del sensore in un picco di spinta. E i picchi vengono tagliati a 0 N molto più spesso che a 20 N (la linea arancione chiara mostra cosa ha chiesto il controllore: guarda quante volte tocca 0 N), quindi aggiungono una spinta extra sbilanciata. Ecco la sovraelongazione, la stessa deriva verso l'alto scoperta nel Capitolo 11. Era impeccabile solo perché la tua aria ferma immaginaria veniva con un sensore perfetto.

Capitolo 13: La sfida del drone ↗

Prova la taratura ad aria ferma di June e guarda la stella "motori calmi" che fallisce. Poi allunga il filtro a 0,04 s e abbassa KdK_d a circa 7. Con KdK_d = 7 arriva in circa 1,9 s invece dell'1,3 s sognato da June: è il prezzo dei motori calmi. Quel compromesso, velocità contro rumore e contro robustezza, è l'ingegneria del controllo.

June: Un po' più lento, e i motori smettono di urlare. Affare fatto. Nella mia testa l'aria era ferma e il sensore perfetto.

Guardandoci indietro

Mika: All'inizio pensavo che "spingere di più" sistemasse tutto. È il contrario, vero? La maggior parte dei guai veniva dallo spingere troppo su informazioni vecchie o rumorose. Sono contento di aver fatto tutte le domande stupide. Nessuna lo era.

Theo: Finalmente credo nella trasformata di Laplace. Non è una tabella da consultare: è una sonda che chiede a un segnale "quanto este^{st} c'è in te?" E siccome le pendenze diventano moltiplicazioni per ss, l'analisi diventa algebra. I poli sono dove la risposta esplode: gli este^{st} di cui è fatto il sistema.

June: E io ho imparato che "di più" non vuol dire "meglio": più guadagno, più smorzamento, più KiK_i, più velocità. C'è sempre un precipizio, e i progetti buoni ne restano a distanza di sicurezza. E poi: provalo sempre sul drone.

Ecco tutto quello che abbiamo costruito, dalla doccia al gran finale. Ogni bolla riporta al punto in cui è nata.

Cosa abbiamo capito

  • Retroazione: misura cosa è successo, confrontalo con l'obiettivo, agisci sull'errore (Cap. 0–1).
  • Il controllo P spinge in proporzione all'errore, ma lascia un abbassamento e oscilla quando è forte (Cap. 2).
  • Derivate, esponenziali e numeri che girano descrivono come cambiano le cose: este^{st} con s=σ+iωs = \sigma + i\omega cresce o cala e oscilla (Cap. 3–7).
  • La trasformata di Laplace trasforma le pendenze in moltiplicazioni per ss, così l'analisi diventa algebra (Cap. 9).
  • I poli non cancellati di una funzione di trasferimento indicano i moti naturali visibili tra ingresso e uscita scelti: quelli a sinistra si smorzano, quelli a destra crescono (cap. 10).
  • PID: la I elimina l'abbassamento, la D aggiunge smorzamento, e ognuna sposta i poli (Cap. 11).
  • Il ritardo aggiunge ritardo di fase; i margini ti dicono quanto sei lontano dal bordo del precipizio (Cap. 12).
  • L'hardware vero aggiunge limiti (Cap. 10), un ritardo che costa margine di fase (Cap. 3 + Cap. 12) e rumore che la D amplifica (Cap. 11), quindi i buoni controllori sono calmi oltre che rapidi (Cap. 13).

Spiegalo a un amico

Prima, la tua missione: quante stelle hai conquistato, e quale è stata la più difficile? Di' ad alta voce perché prima di andare avanti.

Mika: La mia era la stella della calma. Continuavo ad aggiungere D per calmare i motori, e loro urlavano sempre di più.

La prova migliore di aver capito è saper spiegare. Prima di ogni risposta, prova a dire ad alta voce la tua versione. Poi scegli la spiegazione che le somiglia di più.

Un'ultima immagine: il piano di stato

Theo: Ogni grafico di questo corso mostrava l'altezza nel tempo. Ma l'altezza da sola non ti dice cosa succede dopo: a 2 m e in salita non è come a 2 m e in discesa.

Due numeri fissano il futuro: l'altezza misurata dall'obiettivo, Δh\Delta h, e la velocità vv. Insieme sono lo stato del drone. Mettili su un piano, l'altezza in orizzontale e la velocità in verticale, e tutto il volo diventa il percorso di un solo punto in movimento.

Le sue regole sono le pendenze del Capitolo 3, una per ogni numero: la pendenza dell'altezza è la velocità, e la pendenza della velocità è l'accelerazione dell'equazione del Capitolo 1. Messa da parte la spinta di hovering e aggiunto sopra il controllo PD T=−Kp Δh−Kd vT = -K_p\,\Delta h - K_d\,v, le due regole stanno in una sola tabella:

ddt(Δhv)=(01−Kpm−c+Kdm)⏟A(Δhv)\frac{d}{dt}\begin{pmatrix}\Delta h\\ v\end{pmatrix} = \underbrace{\begin{pmatrix}0 & 1\\ -\frac{K_p}{m} & -\frac{c+K_d}{m}\end{pmatrix}}_{A}\begin{pmatrix}\Delta h\\ v\end{pmatrix}

Quella tabella AA è una matrice: moltiplicala per lo stato e ne esce la velocità dello stato. La riga in alto dice che l'altezza cambia con la velocità; la riga in basso è la legge di Newton.

Prima indovina! Con KpK_p = 20 N/m e niente D, il drone parte fermo, 1 m più in basso. Che percorso traccia il suo stato?

Capitolo 13: La sfida del drone ↗

June: È la spirale del Capitolo 6! E quando spingo KdK_d oltre circa 5,3, la spirale si raddrizza e scivola dentro lungo due linee tratteggiate.

Quelle rette sono i modi: parti esattamente su una di esse e lo stato scivola dritto verso il centro, al ritmo proprio di quel modo. Quei ritmi sono i numeri speciali della matrice, i suoi autovalori, e si trovano dove det⁡(sI−A)=0\det(sI - A) = 0:

det⁡(sI−A)=s2+c+Kdm s+Kpm=0\det(sI - A) = s^2 + \frac{c + K_d}{m}\,s + \frac{K_p}{m} = 0

Mika: È l'equazione del Capitolo 7! Gli autovalori sono i poli. Stesso drone, immagine nuova.

E il parco giochi dei poli del Capitolo 10 faceva di nascosto retroazione dello stato fin dall'inizio: T=−Kp Δh−Kd vT = -K_p\,\Delta h - K_d\,v spinge su entrambi i numeri dello stato, e scegliere i due guadagni piazzava entrambi i poli. Dai allo stato più numeri (inclinazione, rotazione, posizione laterale) e la matrice cresce, ma l'idea resta: gli autovalori sono i poli, e riportare indietro tutto lo stato permette di piazzarli tutti.

Un'ultima confessione. Ogni regola di questo corso è lineare, una linea retta, ma le cose vere sono curve. La spinta di un'elica cresce con il quadrato della sua rotazione, T=k w2T = k\,w^2. Vicino all'hovering la curva è quasi dritta, quindi la sostituiamo con la sua tangente nel punto di hovering, il righello del Capitolo 3:

T≈T0+2k w0 ΔwT \approx T_0 + 2k\,w_0\,\Delta w

Capitolo 13: La sfida del drone ↗

Theo: Quindi le rette non sono mai state una bugia. Sono un'immagine ingrandita: onesta vicino all'hovering, sempre peggio più ti allontani. Ecco perché la nostra matematica voleva il drone vicino ai 2 m.

Parole nuove

Stato
I numeri che fissano il futuro: per il nostro drone, altezza e velocità. Un punto sul piano di stato.
Matrice AA
Una tabella di numeri che trasforma lo stato nella sua velocità.
Autovalori
I ritmi speciali di una matrice, dove det⁡(sI−A)=0\det(sI - A) = 0. Per la AA di un drone sono i suoi poli.
Linearizzazione
Sostituire una regola curva con la sua tangente vicino al punto che ti interessa (qui, l'hovering).

Dove andare adesso

Ora sai più teoria del controllo di quanta ne incontri la maggior parte delle persone in tutta la vita. Ecco dove prosegue la strada, ognuna un quaderno nuovo:

  • Luogo delle radici: invece di trascinare i poli, trascina il guadagno e guarda i poli tracciare percorsi. Vedresti a colpo d'occhio quale KpK_p è troppo.
  • Controllo nello spazio degli stati: qui sopra ne hai avuto un primo assaggio. Tanti sensori e motori insieme: un drone vero deve tenere inclinazione, rotazione e posizione tutte assieme, e tarare una manopola alla volta smette di funzionare.
  • Controllo digitale: i controllori veri girano su computer che campionano ogni pochi millisecondi. Anche il campionamento è un piccolo ritardo, e il piano s ha un cugino, il piano z.
  • Filtri di Kalman: mescolano quello che prevede un modello con quello che dice il sensore, così puoi usare un sensore rumoroso senza un filtro lento.
  • Predittori di Smith e controllo predittivo basato su modello: controllori che si portano dentro una piccola simulazione per vedere oltre i ritardi, la vera cura della doccia.
  • Controllo non lineare e robusto: cosa fare quando l'attrito dell'aria non è lineare o il drone vola in 3D, e come dimostrare di avere ancora margine.

Theo: Prima il luogo delle radici. Voglio vedere i poli muoversi mentre giro una sola manopola.

La prossima volta che una doccia ti fa ballare tra l'ustione e il gelo, saprai esattamente cosa sta succedendo. E saprai che non è colpa tua. È il margine di fase.

Capitolo 13: La sfida del drone ↗