I regolatori PID digitali
Controllare un sistema vuol dire quindi effettuare una regolazione su di esso, regolazione che può essere effettuata con tecniche diverse.
Infatti i sistemi possono essere controllati adottando i seguenti metodi di regolazione:
Dal momento che il regolatore impiegato per controllare la velocità del motore in c.c., nell'applicazione proposta, è ad azione PID, occupiamoci più da vicino di questa tecnica.
L’azione effettuata da un regolatore PID avviene in tre tempi: prima si attiva una regolazione di tipo derivativa, pio subentra la regolazione proporzionale ed infine la regolazione integrativa.
La legge che identifica tale schema è la seguente:
a(t) = Kp e(t) + Ki ò e(t) dt + Kd de(t)/dt
dove troviamo Kp che indica il guadagno del regolatore proporzionale, e(t) rappresenta il segnale errore, Ki indica il guadagno del regolatore integrativo, Kd indica il guadagno del regolatore derivativo.
L’azione operata dal regolatore PID analizzandola nella risposta in frequenza e quella di inserire nel sistema un polo nell’origine (aumentando quindi il tipo) e due zeri (che contribuiscono a migliorare la stabilità), i quali sono normalmente reali e distinti.
Questo effetto prodotto è ben visibile nel diagramma di bode riportato nella pagina seguente:
Questo appena analizzato si tratta di un controllo PID di tipo analogico ma se il controllo del motore avviene tramite elaboratore si necessita riportare l’equazione prima descritta dal dominio delle frequenze al dominio discreto del tempo.
Questo procedimento fa si che i regolatori PID passino da analogici a digitali.
Per effettuare la “conversione” si devono eseguire l’integrazione numerica e la derivazione numerica.
Per eseguire l’integrazione numerica si ricorre al metodo di integrazione di Eulero o rettangolare dove il segnale analogico e(t) viene approssimato ad una serie di rettangoli con base pari al periodo di campionamento T.
Partendo quindi da questa approssimazione possiamo calcolare l’area del rettangolo dell’istante successivo come la somma del valore precedente più l’area del nuovo rettangolo; chiamando con i [(n+1)T] l’integrale dell’istante successivo e con i [nT] il valore precedente abbiamo:
i [(n+1)T] = i [nT] + T * e [(n+1)T]
Per quanto riguarda invece la derivazione numerica si assume come derivata la pendenza della retta che unisce i due punti dell’intervallo di tempo considerato; quindi tramite Laplace avremo:
L [(n+1)T] = (e [(n+1)T] - e (nT) ) / T
Per valutare la derivata si utilizza sia il campione attuale (istante [(n+1)T] ) sia quello precedente (questo metodo è chiamato delle differenze all’indietro).
Nell'applicazione didattica proposta, utilizziamo, del regolatore PID, solo l'azione proporzionale implementando il sistema con il seguente algoritmo in linguaggio di progetto:
INIZIO
(Acquisizione dei valori e delle costanti di controllo) LEGGI Kp, Ki, Kd, Tc, Ai (Inizializzazione veriabili) Ei = 0 (Valore iniziali dell'errore) I = 0 (Valore iniziale componente integrale) A = Ai (Valore iniziale dell'uscita: set-point) (Ciclo di controllo) RIPETI COMUNICA A LEGGI E I = I + Ki*Tc*E PD = Kp*E + Kp(E-EI)/Tc Ei = E A = Ai + PD + I FINCHE' CONDIZIONE DI STOP FINE |
L'algoritmo appena descritto si riferisce essenzialmente alla 1^ modalità di implementazione digitale, come vedremo in seguito.
Per la implementazione di un regolatore PID in tecnica digitale si ricorre a due modalità:
Nell’utilizzo dei controllori PID digitali bisogna stare attenti a due problemi che potrebbero presentarsi annullando l’effetto voluto dal controllore. In particolare nella fase iniziale le variazioni di e(t) possono provocare fenomeni di saturazione (RESET WINDUP). E’ opportuno perciò fissare un minimo e un massimo per la variabile di controllo A.
Un altro problema più generale riguarda l’intervallo di campionamento Tc. In un sistema il tempo Tc è determinato dal tempo di esecuzione delle istruzioni che implementano l’algoritmo di controllo e di I/O, cioè dipende dalla macchina. Questo parametro non è in genere modificabile ed è anche difficilmente misurabile.
La conoscenza di Tc è invece necessaria per determinare i parametri del controllo PID; se i tempi sono lunghi (fenomeni lenti) il problema è limitato altrimenti è da risolvere. Una possibile soluzione consiste nel gestire l’I/O e la elaborazione su interrupt scandito periodicamente da un opportuno clock (nel caso di programmi PID per computer MS DOS a scandire i tempi è il timer di sistema 8253).