Ho dovuto + il commento di Glen. Ha costantemente il cervello nel posto giusto, IMHO. Non c'è nulla di più difficile da gestire in un PID di unΔ tritardo. Mi occupo da anni di controlli di temperatura a lampada riscaldata per FAB wafer IC, in un modo o nell'altro. Vorrei iniziare con una panoramica del PID e parlare un po 'di dove NON sarà utile come in altri casi. Ti suggerirò anche uno dei molti altri domini di metodi di controllo che potresti esplorare, ma con una priorità di passaggi che dovresti prendere prima di andare altrove.
L'espressione canonica per il controllo PID è:
ut= K⋅ [et+1Tio∫t0eτd τ+Tddetdt]
Con i parametri del controller che rappresentano il guadagno proporzionale K, tempo integrale Tioe tempo derivativo Td.
- Controllo proporzionale : l'azione di controllo qui è semplicemente proporzionale all'errore di controllo. (L'equazione precedente si riduce aut= K⋅et+uB, dove uB è un bias o un reset del controller. Un'analisi di un modello di processo statico mostra che il processo risultante ha un offset residuo o un bias del controller allo stato stazionario (sebbene un sistema possa essere regolato manualmente in modo che ci possa essere un errore di controllo pari a zero a un solo valore di setpoint mediante una scelta appropriata della polarizzazione del controller.) L'aumento del guadagno fornisce anche un guadagno al rumore di misurazione (cattivo), quindi il guadagno del loop non dovrebbe essere troppo alto e non c'è un guadagno "migliore" come dipende dagli obiettivi.
- Controllo proporzionale + integrale : la funzione principale dell'azione integrale è quella di assicurarsi che l'output del processo sia in accordo con il setpoint allo stato stazionario. Con l'azione integrale, un piccolo errore positivo comporterà sempre un segnale di controllo crescente e un piccolo errore negativo comporterà sempre un segnale di controllo decrescente. Questo è vero non importa quanto piccolo sia l'errore.
- Controllo PID : l'aggiunta del controllo derivato migliora la stabilità ad anello chiuso. (Ci vorrà del tempo prima che si noti un cambiamento nel controllo nell'output del processo. Quindi il sistema di controllo sarà in ritardo, correggendo l'errore. Il risultato del termine derivato è che si tratta di una sorta di previsione fatta estrapolando il errore utilizzando una tangente alla curva dell'errore, utilizzata per anticipare i risultati ritardati.
La descrizione di cui sopra, aggiunta alla tua descrizione del problema di un ritardo, suggerirebbe che un termine derivato potrebbe aiutarti. Ma come al solito, nulla è necessariamente così semplice.
Il controllo proporzionale integrale è sufficiente quando le dinamiche di processo sono di 1 ° ordine. È facile scoprirlo misurando la risposta al gradino. (Se la curva di Nyquist si trova solo nel 1 ° e nel 4 ° quadrante.) Può applicarsi anche nei casi in cui il processo non richiede uno stretto controllo, anche se non è del 1 ° ordine.
Il controllo PID è sufficiente per i processi in cui le dinamiche dominanti sono di 2 ° ordine. Il controllo della temperatura è spesso il caso qui. Quindi, ancora una volta, questo forse sostiene l'aggiunta di controllo dei derivati nella tua situazione.
Però. Tutto quanto sopra dovrebbe essere considerato solo dopo aver fatto tutto il possibile per migliorare alcune cose:
- Utilizza il sensore di temperatura con la risposta più rapida che puoi ragionevolmente applicare (piccola massa, pirometria, ecc.) E applicalo in una situazione con il minor ritardo di risposta possibile al processo che desideri controllare (vicino, non lontano).
- Ridurre la variazione del ritardo nell'effettuare misurazioni e attuare il controllo del processo.
Voglio approfondire un po 'su quest'ultimo punto. Immagina il controllo di processo come un po 'come te in piedi da qualche parte, cercando di infilzare un palo di bambù sottile, molto flessibile e traballante in un buco lontano nella casa degli uccelli che è seduto su un albero sopra e lontano da te. Se sei vicino e l'asta di bambù è corta, è facile. Puoi farlo ogni volta rapidamente e facilmente. Ma se il palo di bambù è lungo e la casa degli uccelli molto lontana da te, è molto, molto difficile da fare. Il palo continua a vagare e rende molto difficili le tue previsioni e il tuo controllo.
(Se non è già chiaro, la lunghezza del palo di bambù è come il tempo di ritardo dell'anello.)
Quindi il ritardo è probabilmente il PEGGIORE NOTTE dei sistemi di controllo. Più ritardo è molto brutto. Quindi è molto importante che tu faccia tutto il possibile per ridurre questo ritardo. Ma c'è un altro punto importante.
Ora immagina la stessa situazione. Ma ora anche l'asta di bambù cambia di lunghezza. A volte è più corto, a volte più lungo e varia continuamente senza previsioni da parte tua. Ora devi continuare a cambiare la tua posizione e non sai mai quando cambierà il ritardo. Questa è la situazione che si verifica se il SOFTWARE non controlla molto attentamente e con un pugno di ferro, il ritardo nell'elaborazione del valore ADC e la generazione di un output di controllo DAC.
Quindi, mentre il ritardo è abbastanza grave per un sistema di controllo PID. Il ritardo variabile è anche peggio. Quindi è necessario prestare molta attenzione alla progettazione del software - attenzione molto rigorosa - in modo da non avere istruzioni IF e codice di calcolo condizionale, o uso sciatto di timer, ecc., Che possono causare variazioni significative nella ritardo tra l'uscita del campione e quella di controllo.
È necessario ottenere quanto sopra in gestione prima di quindi preoccuparsi se è necessario o meno il controllo dei derivati. Cominciando dall'inizio. Pulisci il tuo atto. Quindi esaminare il sistema per determinare cosa resta da fare (utilizzando PI vs PID, ad esempio.)
Stavo lavorando su sistemi di controllo PID utilizzando un sistema pirometrico estremamente accurato (anche molto costoso per i clienti.) Ho ricevuto una chiamata da un ricercatore canadese che lavora con il nostro pirometro, ma utilizzando un controller PID separato da una società commerciale molto grande (la più grande in il mondo sta facendo queste cose.) Il ricercatore stava lottando con le increspature lungo il lato di una boule di arsenide di gallio che stava estraendo da una fusione. E volevo il mio aiuto per capire le giuste variabili di controllo PID. (In boule-pull, vuoi diametri molto uniformi.)
Il controller che stava usando era abbastanza buono da qualsiasi misura standard. Ma ha aggiunto ritardi --- e anche questi ritardi sono variati, poiché il software al suo interno non controllava rigorosamente il ritardo introdotto nel ciclo di controllo generale.
Quindi la prima cosa che gli ho detto è che avrei aggiunto il controllo PID al software nel nostro pirometro e che avrebbe semplicemente TIRATO il controller esterno dal sistema che stava usando. Ho aggiunto quel software in meno di una settimana e gli ho spedito il sistema pirotecnico modificato. Non ho fatto nulla di speciale con il software PID. Tuttavia, ho mantenuto la mia variabilità tra ADC e DAC a meno di un paio di microsecondi e ho ridotto il ritardo complessivo a circa 100 microsecondi. Gliel'ho spedito.
Ho ricevuto una chiamata lunedì la settimana successiva. I bocce si stavano estraendo quasi perfettamente, senza increspature.
Era semplice come ridurre i ritardi e anche ridurre la variabilità di tali ritardi. Niente di speciale sul controllo PID, affatto. Era una semplice implementazione alla vaniglia che chiunque avrebbe prodotto per la prima volta a conoscenza di uno.
Ciò illustra l'importanza di ridurre il ritardo e la variabilità del ritardo. Certo, il controllo dei derivati può fornire qualche tipo di idea "secante / tangente" di predizione. Ma nulla sostituisce la riduzione dei ritardi e il mantenimento della variabilità al minimo.
Continua a pensare al palo di bambù e al problema del foro nella casa degli uccelli.
Conclusione?
Il controllo di sistemi con un ritardo dominante è notoriamente difficile. Ho suggerito alcuni motivi per cui potresti farlocredere che un termine derivato possa aiutare con ritardi temporali. Ma c'è un consenso generale sul fatto che l'azione derivata non aiuta molto per i processi che hanno ritardi temporali dominanti. Questo è il motivo per cui ho immediatamente suggerito di aiutare quel ricercatore eliminando tutti i ritardi che potevo facilmente rimuovere (come una scatola PID esterna, per esempio.) Non immaginavo che la mia implementazione fosse migliore del prodotto commerciale. Sapevo che la mia implementazione non sarebbe stata così ben controllata, in effetti. Cripes, ho dovuto scriverlo da zero, testarlo e installarlo, e spedire un'unità con un software appena aggiunto che non aveva mai avuto prima, e fare tutto questo in una settimana. Ma sapevo anche che il ritardo stava uccidendo tutte le possibilità che questo ricercatore aveva di ottenere i risultati che voleva. Quindi ho subito capito che l'approccio migliore era quello di eliminare i ritardi e non inventare un codice PID magico implementato "brillantemente" che solo un genio poteva seguire. Riguarda i ritardi e il modo in cui tali ritardi variano, innanzitutto. Il resto è una priorità molto più bassa.
Ci sono alcune cose chiamate "compensatori dei tempi morti". Ma in ultima analisi, è necessario fare tutto il possibile per eliminare i ritardi ed eliminare la variabilità in tali ritardi. E poi, dopo aver fatto tutto il possibile, se c'è ancora un problema è probabile che tu abbia bisogno di controlli più sofisticati di quelli consentiti da un PID. Qui, raggiungerei trasformazioni di Fourier (e usando una trasformazione inversa per analizzare le risposte al passo e sviluppare una descrizione delle risposte del sistema), forse. Puoi fare molto con questi che non possono essere toccati con PID. Risultati quasi miracolosi, infatti, se riesci a modellare abbastanza bene la funzione di risposta.
Ma nel tuo caso mi concentrerei sulla riduzione dei ritardi e sulla loro variabilità. Penso che dovresti, se possibile, considerare di evitare anche l'uso del controllo della lampada on / off semplicistico. Sarebbe bello se si potesse controllare l'intensità della lampada. Ma non so se puoi considerarlo.