Indice |
Premessa
Recenti richieste nel Forum, mi inducono a richiamare i metodi di trasformazione dei tradizionali regolatori di tipo analogico (ad es. PI) in equivalenti soluzioni digitali.
Le basi concettuali di tali trasformazioni sono già illustrate nel Corso "Elaborazione Numerica dei Segnali" da tempo presente nel sito di ElectroiPortal, ma è forse opportuno sottolinearne qui i principali passaggi per una più rapida comprensione.
Il cap.21 introduce il principio del controllo in anello chiuso, che è appunto la base della regolazione automatica e a questo punto si dà per scontata la conoscenza della rappresentazione dei blocchi costituenti l'intero sistema in forma di funzioni di trasferimento.
Ovviamente queste sono state introdotte in precedenza nel Corso (in particolare nei cap.6 e 7).
L'uso di queste funzioni descrittive del comportamento di un blocco, è stato anche approfondito in recenti articoli, in particolare Laplace... in pratica che illustra come si passa dal circuito alla funzione, e Da Laplace a Bode, che illustra la conversione in risposta alla frequenza (Fourier).
Tutto questo rappresenta lo "stato dell'arte" nel campo della regolazione analogica, ma quello che vogliamo qui vedere è il passaggio da questa tecnica ormai consolidata al meno conosciuto mondo della regolazione numerica (o "digitale").
La chiave di tale conversione è la trasformata z.
La trasformata z
Nessuno si spaventi: non ho alcuna intenzione di fare un trattato matematico, ma mi limiterò a mostrare le conclusioni pratiche che derivano dalla teoria.
Bisogna innanzitutto chiarire la differenza fondamentale fra il mondo analogico e quello digitale: mentre nel primo un segnale è "continuo nel tempo", nel secondo è visto come una "sequenza di valori" in intervalli di tempo regolari (ΔT).
Questa figura (la prima del corso citato) può chiarire il concetto:
Consideriamo ora la più semplice delle funzioni di trasferimento: quella relativa ad una costante di tempo T (semplice, ma già sufficiente nella maggioranza delle applicazioni pratiche della regolazione automatica).
Nelle pubblicazioni precedentemente citate, si è visto come utilizzare questa funzione (in s di Laplace) per determinare l'effetto che il blocco così rappresentato esercita sul segnale d'uscita, rispetto al segnale d'ingresso. Quindi metodo diretto (antitrasformazione di Laplace per passare da s al tempo), oppure attraverso Fourier (jω, e successiva antitrasformazione da spettro di frequenza a tempo).
Introduciamo ora un terzo metodo, che si basa appunto sulla trasformata "z".
Un'approssimazione che permette una rapida conversione partendo da una H(s) è quella di sostituire
( per la spiegazione di come si arriva a questa formula , vedi il cap.17 delCorso).
Poichè la struttura normalizzata della funzione H(z) è (fig 16.2 del Corso):
per trasformare la H(s) in H(z) occorre trovare i coefficienti an e bn ricavati costituendo ad s il valore approssimato della formula precedente.
Nel caso considerato di semplice costante di tempo, la struttura della funzione in z si riduce quindi a:
con : , e :
Questo ci consente di ricavare immediatamente la risposta nel tempo (y) a qualsiasi forma d'onda (x) applicata allingresso.
Osservando la struttura rappresentata nell'immagtine prededente, è immediata la comprensione del significato di z − 1 : è il "ritardo" di un intervallo unitario (ΔT) rispetto all'istante attuale.
(Naturalmente z − 2 indica un ritardo di 2 intervalli, e così via).
In termini di campionamenti nel tempo, possiamo quindi scrivere:
Ed eccone un'applicazione immediata il MathCad: la classica risposta al gradino (x=100, con T=100ms e ΔT=1ms ):
oppure la risposta ad una sinusoide di 5Hz:
Il regolatore PI digitale
Supponiamo che la costante di tempo ora vista sia rappresentativa di un sistema da regolare e che si scelga come regolatore un tipo PI (proporzionale - integrale), ma digitale anzichè analogico.
Si tratta allora di trovare l'algoritmo da implementare nel dispositivo digitale preposto al controllo automatico.
Dalla teoria della regolazione sappiamo che un regolatore PI serve a "compensare" una costante di tempo per ottenere come blocco di trasferimento totale (regolatore + sistema, a ciclo aperto) un integratore puro.
Se manteniamo poi la stessa costante di tempo naturale del sistema (cioè non vogliamo ridurla, mediante "forzamenti"), la funzione del blocco regolatore si riduce a:
dove e è l'errore (differenza fra riferimento e retroazione, inviato all'ingresso del regolatore), ed u il segnale d'uscita del regolatore, che "comanda" il sistema regolato.
Passando per sostituzione, come prima detto, da s a z e trovando i coefficienti della forma normalizzata, otteniamo:
in cui : , ar1 = − 1 , br1 = 1
In conclusione, l'elaborazione sui campioni nel tempo, si riduce a:
Un esempio di applicazione, in MathCad, puo' essere questo.
Si ipotizza quindi di avere un sistema con una costante di tempo T e con un guadagno K, che debba seguire il riferimento R, variabile a gradini nel tempo. Il grafico mostra in ascissa il tempo (in ms) ed in ordinata rispettivamente il riferimento (in verde), il segnale di comando in uscita dal regolatore (in blu x10) e l'andamento della grandezza controllata (in rosso).
Si tiene conto anche delle conversioni A/D e D/A (rispettivamente su y e su u) adattandole al guadagno K.
Come si vede, il regolatore è costituito dalle prime 2 righe della matrice (la terza è la simulazione del sistema controllato).
Considerazioni
Qualcuno potrebbe osservare che si sarebbero potute ottenere le stesse strutture di calcolo senza tirare in ballo le trasformate z, ma semplicemente applicando i criteri delle differenze finite alla struttura PI. (Vedi a tal proposito : Chi ha paura delle equazioni differenziali?).
E' vero, ma questo permette di continuare ad utilizzare le conoscenze e le esperienze della regolazione analogica (criteri di stabilita' con Bode e Nyquist), convertendo solo alla fine in digitale.
(E' anche tuttavia vero che in digitale si possono realizzare controlli molto più sofisticati, che non hanno equivalenti in analogica)
Ma l'osservazione più importante è forse l'avvertimento di non ritenere che la semplicità formale delle soluzioni renda "facili" le soluzioni digitali.
Molte sono infatti le insidie che possono compromettere le prestazioni effettive di questi controlli. Finchè la simulazione viene fatta con un calcolatore, generalmente non vi sono problemi, ma le cose possono cambiare con soluzioni reali e dedicate.
Attenzione va posta nella "precisione" dei calcoli (un troncamento di questi, o l'uso di numeri interi, può compromettere il controllo stesso).
D'altra parte la discretizzazione dei campionamenti richiede intervalli costanti e, soprattutto, che il ciclo di calcolo si esaurisca entro l'intervallo stabilito (ΔT).
E' questa una delle maggiori differenze con la simulazione (in cui non è necessario il "real time").
Ma un campionamento scarso (frequenza troppo bassa rispetto alla dinamica del segnale), comporta rischi di "aliasing".
Questo si verifica spesso nell'utilizzo di PLC (quelli ovviamente con capacita' di calcolo) utilizzati anche come regolatori, in cui però i tempi di calcolo allungano i tempi di ciclo
Il minimo è in questi casi prevedere appositi filtri antialiasing sul riferimento e sulla retroazione (ovviamente la dinamica del controllo ne paga le conseguenze).
Non è evidentemente possibile esaurire qui le problematiche dei controlli digitali. Si è solo voluto segnalare i pericoli di una troppo superficiale applicazione di quanto esposto.