Contents — find the section you need

Il controllo PID (proporzionale-integrale-derivativo) modifica un ingresso dopo aver confrontato un valore di riferimento con una misurazione. Viene utilizzato in riscaldatori, azionamenti, circuiti di flusso, giunti robotici e aeromobili perché può funzionare bene anche senza un modello perfetto del sistema. La sua apparente semplicità è ingannevole: un controllore privo di unità di misura, limiti di uscita, politica di temporizzazione, validazione dei sensori o percorso di arresto sicuro non è un controllore utilizzabile. È un'equazione destinata a fallire.

Questo articolo inizia con la conclusione pratica, per poi sviluppare l'intuizione, il flusso del segnale e le equazioni, la sintonizzazione di Ziegler-Nichols, i vincoli e la sicurezza, ed esempi software attuali. Per i nodi, la temporizzazione e i limiti hardware di un controllore robotico, vedere ROS 2 Primer. Per capire perché il ritardo di localizzazione e i salti rappresentano anch'essi problemi di controllo, vedere Visual SLAM Primer.

L'ingresso PID è l'errore e=r-y e la sua uscita è il comando u. P reagisce all'errore presente, I rimuove l'offset persistente e D aggiunge smorzamento dalla velocità di variazione.

Conclusione

  • P reagisce all'errore presente; I rimuove l'errore persistente; D fornisce smorzamento dalla velocità di variazione. Iniziare con P, definire i limiti, aggiungere I solo quando rimane un offset stabile e aggiungere D filtrato solo quando ha uno scopo ben preciso.

  • L'implementazione deve limitare sia il comando che la velocità di comando. La saturazione senza anti-windup fa sì che un integratore memorizzi una richiesta che l'attuatore non è in grado di soddisfare.

  • Nella maggior parte dei sistemi fisici, è preferibile derivare una misurazione filtrata piuttosto che un errore di riferimento a gradino. Ciò evita l'effetto di derivazione e riduce la sensibilità alle variazioni del riferimento.

  • Il PID è spesso la soluzione migliore per un singolo anello di controllo veloce con un ritardo moderato. Un'ottimizzazione più avanzata non elimina la necessità di un anello di controllo interno veloce, osservabile e sicuro. ## Intuizione: tre operatori che monitorano un singolo errore

Supponiamo che la temperatura ambiente sia inferiore al valore di riferimento. L'operatore P dice: "Ora è inferiore di cinque gradi, quindi riscaldiamo subito". L'operatore I dice: "È rimasta bassa per molto tempo, quindi il riscaldamento di base è insufficiente". L'operatore D dice: "La temperatura sta già aumentando rapidamente; riduciamo il riscaldamento prima che superi il valore di riferimento". La loro somma può fornire una risposta rapida, eliminare una perdita di calore costante e ridurre il superamento del valore di riferimento.

L'analogia omette i fattori che determinano la sicurezza del circuito: la potenza del riscaldatore è finita, un termometro è rumoroso e il calore impiega tempo a propagarsi. Un derivato può scambiare il rumore per movimento; un integratore può continuare ad accumulare mentre il riscaldatore è già saturo. La progettazione del PID, quindi, inizia da ciò che viene misurato e da ciò che può essere comandato in sicurezza, non dai valori di guadagno.

Flusso del segnale: il controllore è costituito da un unico blocco

Diagram 1 · Use the button to switch views
PID closed-loop signal flowReference, summing junction, PID, saturation, plant, sensor feedback and disturbance are connected in a closed loop.reference rΣPIDP + I + Dlimitssaturationplant Gmotor / thermal / robotsensor H, sampling, delay and noise are part of feedbackdisturbance d

Diagramma: Duskcoil, schema concettuale piuttosto che misurato. Calibrazione, ritardo di trasporto, comunicazioni e circuiti interni dell'attuatore appartengono al percorso del segnale reale.

Se l'impianto è G e il sensore o lo stimatore è H, rendendo solo il controllore C più performante, non elimina ritardi, saturazione o guasti in G e H. Ad esempio, quando un robot mobile utilizza la localizzazione SLAM per il tracciamento, salti e latenza nella stima appaiono al PID come rumore e disturbi di misura. I sistemi di coordinate, la sincronizzazione temporale e la rilocalizzazione discussi in Visual SLAM Primer fanno parte del problema di controllo relativo al controllore.

Equazioni e unità di base

Sia r il riferimento, y la misura, e=r-y e u_{ff} il comando feedforward. Il PID continuo parallelo è

u(t)=u_{ff}(t)+K_Pe(t)+K_I\int_0^t e(\tau)d\tau+K_D\frac{d e(t)}{dt}

K_P ha unità di u/e, K_I ha unità di u/(e\cdot s) e K_D ha unità di u\cdot s/e. Non sono intrinsecamente adimensionali. Convertire i gradi in radianti, invertire un encoder o combinare un timestamp in millisecondi con un guadagno basato sui secondi modifica il ciclo. Registrare unità, segni, frame e politica di aggiornamento di riferimento prima della regolazione.

Con un periodo di campionamento T_s, un'implementazione discreta di base mantiene lo stato integrale I_k e la derivata differenziale D_k:

I_k=I_{k-1}+T_s e_k,\qquad D_k=\frac{e_k-e_{k-1}}{T_s}

Il controllore calcola quindi u_k=K_Pe_k+K_II_k+K_DD_k . Questa forma mette già in luce questioni ingegneristiche critiche: T_s è misurato o ipotizzato? Cosa succede quando un messaggio è in ritardo? Cosa si fa con un campione obsoleto? E il controllore funziona a una frequenza deterministica? Una derivata filtrata comune sulla misurazione utilizza

il coefficiente \alpha=\tau_f/(\tau_f+T_s) e

D_k=\alpha D_{k-1}+(1-\alpha)\frac{y_{k-1}-y_k}{T_s}

Evita il picco della derivata causato da uno scalino di riferimento. Il suo filtro aggiunge anche un ritardo di fase, quindi il filtraggio non può compensare un sistema campionato male o meccanicamente allentato.

Comprensione di P, I e D uno alla volta

Aumentare P di solito migliora la risposta immediata e il rifiuto dei disturbi, finché il ritardo e le dinamiche dell'impianto non lo trasformano in overshoot o oscillazione. I rimuove un offset costante come la gravità, l'attrito o la perdita di calore, ma un valore eccessivo di I integra la richiesta prima che l'impianto abbia risposto. D può fornire smorzamento ma amplifica la quantizzazione dell'encoder, le vibrazioni e l'estimatore jitter. In una cascata posizione-velocità, sintonizzare prima il ciclo di velocità veloce e stabile, poi il ciclo di posizione. Non concentrare tutti gli errori in un unico PID lento.

Saturazione e anti-windup

I comandi fisici obbediscono a u_{min}\leq u\leq u_{max}. Sia u^* il comando non saturo calcolato e u=\operatorname{sat}(u^*) il comando inviato. Se I continua ad accumularsi mentre un attuatore è bloccato a un limite, il ciclo può rimanere bloccato anche dopo che l'errore si è invertito. Questo è il windup dell'integratore: l'integratore continua ad accumulare e anche se u non può seguirlo, e lo stato integrale I_k successivamente ritarda il recupero.

L'integrazione condizionale blocca l'integratore quando l'uscita è satura e l'integrale porterebbe ulteriormente alla saturazione. Il calcolo inverso è un metodo più fluido Alternativa:

I_k=I_{k-1}+T_se_k+K_{aw}(u_k-u_k^*)

Qui I_k rappresenta lo stato di errore integrato, quindi K_{aw} ha unità di errore per comando. Alcune implementazioni memorizzano K_I I_k come uscita integrale e utilizzano invece 1/T_t (l'inverso del tempo di tracciamento); documentare le unità e l'equazione scelte. La discrepanza di saturazione viene retroazionata all'integratore. K_{aw} imposta la velocità di tale correzione. I blocchi dell'integratore, le rampe di riferimento e il trasferimento manuale/automatico senza interruzioni sono misure complementari. L'anti-windup non è un abbellimento prestazionale; rende prevedibile il recupero dopo un limite inevitabile.

Sintomo Meccanismo probabile Ispezionare per primo Risposta tipica
Risposta lenta o offset P troppo basso, disturbo costante segni, unità, limite di uscita aumentare gradualmente P; aggiungere un leggero I se necessario

Oscillazione o overshoot | P/I troppo alto, ritardo | periodo di loop, ritardo, traccia del sensore | ridurre P/I; utilizzare una rampa di riferimento |

Non recupera da un limite | windup dell'integratore | registri di comando e integrale | I condizionale, clamp, backcalcolo |

Sovraccarico su un gradino del setpoint | derivata dell'errore | percorso di ingresso D | derivata della misura |

Vibrazioni a bassa velocità | attrito, quantizzazione, backlash | encoder e meccanica | anello di velocità interno, compensazione, filtro |

Sintonizzazione, incluso Ziegler-Nichols

La procedura Ziegler-Nichols a circuito chiuso imposta I e D a zero, aumenta P a un guadagno di oscillazione sostenuta K_u , misura il periodo T_u , quindi utilizza un punto di partenza PID classico

K_P=0.6K_u,\quad T_i=0.5T_u,\quad T_d=0.125T_u,

dove K_I=K_P/T_i e K_D=K_PT_d . Avvicinarsi deliberatamente a oscillazioni sostenute può essere inaccettabile in un processo termico, veicolo, sistema a pressione o robot in prossimità di persone. Si tratta di un'euristica storica, non di un'autorizzazione a testare al limite di stabilità.

Un flusso di lavoro più sicuro utilizza simulazioni o test a gradino a bassa ampiezza per stimare il guadagno statico, il ritardo e la costante di tempo; abilita prima i limiti e la logica di arresto; regola P; aggiunge I solo per correggere uno scostamento osservato; quindi aggiunge D filtrato solo per soddisfare un'esigenza di smorzamento misurata. Testare separatamente il tracciamento del riferimento e la reiezione dei disturbi. Registrare la corrente di picco, la temperatura, la velocità, la distanza di arresto, il tempo di saturazione e lo stato integrale per ogni modifica.

Vincoli e sicurezza sono esterni all'equazione PID

Non utilizzare l'uscita PID come funzione di sicurezza. Utilizzare arresto di emergenza indipendente, protezione da sovracorrente/sovratemperatura/sovrapressione, limiti di corsa, watchdog e un comando di sicurezza definito in caso di interruzione dei dati o della comunicazione. Un controllore cerca di raggiungere un riferimento; una funzione di sicurezza impedisce l'ingresso in uno stato non sicuro in caso di guasto. Presupposti che possono includere guasti al controllore.

Come minimo, convalidare intervalli di campionamento, timestamp e aggiornamento; limitare riferimenti, accelerazione, uscita e slew rate di uscita; specificare il comportamento di reset/hold dell'integratore; testare l'acquisizione manuale senza interruzioni; e simulare la perdita del sensore, il ritardo dei campioni, il riavvio del processore e la variazione del carico. Il fatto che ROS 2 sia attivo non è una prova di temporizzazione deterministica o di sicurezza funzionale.

Esempi di implementazione e ricerca attuali

Il framework ros2_control separa le interfacce hardware, la gestione del controllore e i controllori stessi, e documenta il concatenamento dei controllori e i controllori PID. La sua documentazione ufficiale e la pagina del controllore PID espongono guadagni, limiti, opzioni anti-windup, riferimenti, stati misurati e stato del controllore pubblicato. Ciò rende osservabili le interfacce e lo stato; non sintonizza automaticamente un robot fisico.

I controllori industriali presentano le stesse problematiche. Siemens documenta la funzionalità PID per SIMATIC. PLC S7-1200/S7-1500 nel relativo manuale di sistema S7-1200. La ricerca estende il PID con adattamento di attrito e ritardo, sintonizzazione basata sui dati e generazione di riferimenti di alto livello appresi, mantenendo al contempo un piccolo anello di controllo di basso livello ispezionabile laddove questa sia l'architettura più sicura.

Lista di controllo per l'implementazione

  1. Definire la variabile controllata, il comando, le unità, le direzioni positive, gli intervalli validi e la frequenza di ciclo.

  2. Convalidare la calibrazione, i timestamp, l'obsolescenza e gli outlier prima del calcolo di controllo.

  3. Limitare u e la sua velocità di variazione; testare il comportamento indipendente di arresto di emergenza, watchdog e perdita di comunicazione.

  4. Sintonizzare e registrare P-only, PI, quindi PID; testare comandi e disturbi separatamente.

  5. Registrare riferimento, misura, comando reale, comando saturo, stato integrale e flag di guasto su un singolo clock.

  6. Testare jitter, carico Modificare, riavviare, perdere il sensore e saturare l'attuatore intenzionalmente.

  7. Verificare la topologia di ROS 2 con la Guida introduttiva a ROS 2 e la temporizzazione dell'estimatore con la Guida introduttiva a Visual SLAM.

Verifica la tua comprensione
Cosa succede se l'integrazione continua mentre l'uscita è satura?

L'azione integrale memorizzata può causare un overshoot successivo. Verificare il comportamento anti-windup anziché regolare solo il guadagno integrale.

Riferimenti

Related reading

Explore another aspect of this fieldLab MPC — ririsolvi una sequenza di curvatura entro un orizzonte e vincoli di sterzataExplore another aspect of this fieldLab di confronto tra inseguitori di percorso — esegui PP, APP, RPP, Stanley e MPC nelle stesse condizioniExplore another aspect of this fieldLab Pure Pursuit — confrontare l'inseguimento del percorso a lookahead fisso