Vai al contenuto
Controllo dei Processi

Controllo digitale: campionamento, periodo e PID in forma di velocità

Mantenimento di ordine zero come ritardo di mezzo periodo con dimostrazione, scelta del periodo di campionamento, antialiasing, PID di posizione, forma in velocità dimostrata, anti-windup e passaggio senza scosse.

Oggi quasi nessun regolatore è analogico: il PID è un programma che gira in un PLC, in un sistema di controllo distribuito (DCS) o in un microcontrollore, e legge la misura a istanti regolari. Il passaggio dal continuo al discreto ha conseguenze precise: un ritardo in più nell’anello, una scelta da fare sul periodo di campionamento, e alcune forme dell’algoritmo più comode di altre. In questa lezione dimostriamo che il campionamento con mantenimento equivale a un ritardo di mezzo periodo, vediamo come scegliere il periodo, come si discretizza il PID e perché la forma in velocità risolve da sola due problemi pratici.

Campionare e mantenere

Il regolatore digitale legge la misura ogni T_s secondi, calcola il comando e lo mantiene costante fino al calcolo successivo: è il mantenimento di ordine zero (ZOH, zero-order hold), realizzato dal convertitore digitale-analogico o semplicemente dall’uscita che non cambia.

Segnale campionato e mantenuto confrontato con il segnale originale ritardato di mezzo periodo
Il segnale continuo, i campioni presi ogni T_s e il segnale a gradini che ne risulta. Il segnale a gradini segue in media il segnale originale ritardato di mezzo periodo di campionamento (curva tratteggiata).

Teorema. Alle frequenze basse rispetto alla frequenza di campionamento, il mantenimento di ordine zero equivale a un ritardo di T_s/2.

Dimostrazione. La funzione di trasferimento del mantenimento, normalizzata a guadagno statico unitario, è

    \[ H(s) = \frac{1 - e^{-sT_s}}{sT_s} \]

perché la sua risposta all’impulso è un rettangolo di durata T_s e altezza 1/T_s. Posto x = sT_s, si raccoglie e^{-x/2}:

    \[ H = e^{-x/2}\,\frac{e^{x/2} - e^{-x/2}}{x} = e^{-x/2}\,\frac{\sinh(x/2)}{x/2} \]

Per |x| piccolo, \sinh(x/2)/(x/2) \approx 1, e resta H \approx e^{-sT_s/2}: un ritardo puro di mezzo periodo. ∎

Al ritardo del mantenimento si aggiunge il tempo di calcolo, se il comando viene applicato al campione successivo. Tutto questo è tempo morto in più nell’anello, e la lezione sui processi con ritardo dice quanto costa.

La scelta del periodo di campionamento

Il ritardo aggiunto T_s/2 deve essere piccolo rispetto alle dinamiche dell’anello. Le regole pratiche sono:

  • T_s tra un decimo e un ventesimo della costante di tempo desiderata in anello chiuso;
  • T_s non più di un quarto del tempo morto del processo, se è questo a dominare;
  • per i processi industriali, i valori tipici sono 0,1-1 s per portate e pressioni, 1-10 s per temperature e livelli, minuti per le analisi di composizione.

Campionare troppo in fretta non è gratis: la derivata calcolata come differenza tra campioni vicini amplifica il rumore e la risoluzione del convertitore, e i calcoli occupano la CPU. Prima del convertitore serve sempre un filtro antialiasing (lezione sul campionamento di Teoria dei segnali): un disturbo a 50 Hz campionato a 1 s apparirebbe come una lenta oscillazione inesistente, e il regolatore cercherebbe di correggerla.

Discretizzare il PID

L’integrale si approssima con una somma e la derivata con una differenza. Con il metodo all’indietro (Eulero), all’istante k:

    \[ u_k = K_c\left(e_k + \frac{T_s}{\tau_i}\sum_{j=0}^{k} e_j + \frac{\tau_d}{T_s}(e_k - e_{k-1})\right) \]

È la forma di posizione: calcola direttamente il valore del comando. Il metodo di Tustin (regola dei trapezi) è più preciso a parità di periodo e conserva la stabilità dei sistemi continui; per i periodi brevi rispetto alle dinamiche, come si usano in pratica, le differenze sono piccole. La derivata va comunque filtrata, e calcolata sulla misura invece che sull’errore.

La forma in velocità

Teorema. Il PID discreto si può scrivere in forma incrementale (o in velocità):

    \[ \Delta u_k = K_c\left[(e_k - e_{k-1}) + \frac{T_s}{\tau_i}\,e_k + \frac{\tau_d}{T_s}(e_k - 2e_{k-1} + e_{k-2})\right],\qquad u_k = u_{k-1} + \Delta u_k \]

Dimostrazione. Si scrive la forma di posizione all’istante k e all’istante k - 1 e si sottrae. La parte proporzionale dà K_c(e_k - e_{k-1}). Nella somma dell’integrale tutti i termini fino a k - 1 si cancellano e resta K_c(T_s/\tau_i)\,e_k. La derivata dà K_c(\tau_d/T_s)[(e_k - e_{k-1}) - (e_{k-1} - e_{k-2})], che è il termine scritto. ∎

Le due forme sono equivalenti finché l’uscita non incontra limiti, ma quella in velocità ha due vantaggi pratici importanti:

  • niente integratore che si carica: lo stato è il comando stesso u_{k-1}. Se la valvola è tutta aperta e il comando viene limitato a 100 %, il passo successivo parte da 100 % e non da un valore interno che ha continuato a crescere. L’anti-windup è automatico, basta saturare u_k;
  • passaggio senza scosse da manuale ad automatico: in manuale l’operatore impone u; quando si passa in automatico l’algoritmo parte dall’ultimo valore e lo modifica solo degli incrementi, senza salti.

Per questo la forma in velocità è da decenni quella dei regolatori industriali e dei blocchi PID dei PLC.

Altri dettagli dell’implementazione

  • Ponderazione del riferimento: il termine proporzionale si calcola su b\,r - y con 0 \lt  b \le 1, per ridurre il colpo sulla valvola nei cambi di riferimento senza cambiare la risposta ai disturbi.
  • Risoluzione e zona morta: con un convertitore a 12 bit il passo è lo 0,025 % della scala; una zona morta piccola sull’errore evita che la valvola si muova di continuo per il rumore, consumando le guarnizioni.
  • Velocità di variazione: un limite sulla velocità di variazione del comando protegge attuatori e processo dalle variazioni brusche.
  • Gestione dei guasti: se la misura è fuori scala o il sensore guasto, il regolatore passa in manuale mantenendo l’ultimo comando valido, o porta l’uscita in una posizione di sicurezza.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x