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
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 è
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:
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
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:
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
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
-
Definire la variabile controllata, il comando, le unità, le direzioni positive, gli intervalli validi e la frequenza di ciclo.
-
Convalidare la calibrazione, i timestamp, l'obsolescenza e gli outlier prima del calcolo di controllo.
-
Limitare u e la sua velocità di variazione; testare il comportamento indipendente di arresto di emergenza, watchdog e perdita di comunicazione.
-
Sintonizzare e registrare P-only, PI, quindi PID; testare comandi e disturbi separatamente.
-
Registrare riferimento, misura, comando reale, comando saturo, stato integrale e flag di guasto su un singolo clock.
-
Testare jitter, carico Modificare, riavviare, perdere il sensore e saturare l'attuatore intenzionalmente.
-
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.
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.
Commenti
Accedi per continuare.
Nessun dato disponibile.