Spiegare in parole povere come un PID tiene conto dell'inerzia nel controllo della temperatura


9

Sto costruendo il mio forno di riflusso a microprocessore per hobby. Sto usando relè (meccanici) per accendere o spegnere i riscaldatori (ad es. Tubi al quarzo). Ho notato che il riscaldamento è in ritardo di un paio di secondi prima che la temperatura inizi a salire.

Per ora gestisco manualmente il profilo di temperatura con l'assistenza di un Arduino, che spegne i riscaldatori quando viene raggiunta la temperatura impostata. Ad esempio, quando imposto la temperatura su, ad esempio 120 ° Celsius e i riscaldatori si fermano, la temperatura sale ancora di 10-20 gradi, quindi c'è un po 'di superamento quindi un certo squillo, che diminuisce lentamente.

Ho letto e visto molti esempi che fanno uso di un PID per un migliore controllo della temperatura. Senza quello, fermerei semplicemente i riscaldatori, come 10-20 gradi al di sotto del valore impostato e li accendere / spegnere in breve tempo dopo fino a quando la temperatura si stabilizza attorno al valore impostato. So solo che il delta varia con la temperatura, quindi potrebbe non essere così semplice: conosco la natura esponenziale dell'aumento della temperatura con un valore impostato fisso.

Qualcuno può spiegare in parole povere come un PID spieghi l'inerzia, ad esempio quale ruolo la parte integrale e quale parte derivata gioca in termini semplici, nonché come / se riesco a capire in modo piuttosto intuitivo una stima della derivata e integrale quantità senza ricorrere a calcoli complessi.


La sfida sono i ritardi, come hai visto. Quindi la chiave per il controllo sta nell'esaminare gli slewrates e i derivati ​​degli slewrates
analogsystemsrf

@analogsystemsrf Penso di averlo effettivamente. Come puoi leggere, ho solo qualche difficoltà a cercare di stabilire un collegamento tra questa (teoria) e quella (pratica). In breve: qual è la parte che compensa il ritardo e come ?

1
I ritardi sono orribili da affrontare. Forse causato da un sensore troppo lontano dal riscaldatore. O una stufa troppo grande, con troppa massa termica. I fattori di ridimensionamento PID possono cambiare notevolmente quando si modifica la disposizione fisica. La riduzione dei ritardi aiuta a raggiungere i fattori di controllo PID che producono errori minori.
glen_geek,

Non è possibile implementare realmente un PID se l'unico controllo che hai è l'accensione e lo spegnimento del riscaldatore con un relè.
mkeith,

2
Uso i termoregolatori industriali per lavoro. Quelli con uscita a relè generalmente limitano il tempo di ciclo al minimo di 5 s. Quelli con un'uscita DC a stato solido per pilotare un SSR non hanno questa limitazione. Se pensi ad un'applicazione con una costante costante nel tempo - una fornace di vetro o una tonnellata di cioccolato, per esempio - puoi immaginare che un ciclo di lavoro di 30 anni potrebbe essere adeguato per controllarlo bene.
Transistor,

Risposte:


12

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+1Tio0teτdτ+Tddetdt]

Con i parametri del controller che rappresentano il guadagno proporzionale K, tempo integrale Tioe tempo derivativo Td.

  1. Controllo proporzionale : l'azione di controllo qui è semplicemente proporzionale all'errore di controllo. (L'equazione precedente si riduce aut=Ket+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.
  2. 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.
  3. 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.


1
Grazie mille, jonk, è stata una spiegazione abbastanza approfondita (per me). Il ritardo di cui ho parlato bene, temo di non poterlo ridurre poiché credo sia intrinsecamente come è fatto il forno - ho modificato un forno per uso generale in un forno a riflusso come si trova comunemente su Internet. Tuttavia, nonostante l'uso di tubi al quarzo, l'aumento di temperatura è la metà della velocità richiesta (non più di 1 ° C al secondo anziché 2-3). Per quanto riguarda il sensore, sto usando una coppia di termocoppie K e ho verificato che ha poca o nessuna inerzia. L'unica cosa che ho notato è che il ritardo di temperatura diminuisce se preriscaldo il forno, cioè intorno ai 50 ° C.

Hai provato Smith Predictor Controller per mitigare il ritardo?
Chu,

@Chu Non ancora, l'ho imparato solo qui MrGreen. Inoltre il mio forno è parzialmente smontato al momento e non ho le mani su di esso.

Ho accettato prima la tua risposta per quanto sia elaborata e dettagliata. Anche perché ero aperto all'uso di qualsiasi misura, anche se non implicava un PID. La tua risposta e Transistor mi hanno dato abbastanza suggerimenti su cosa fare dopo. Tuttavia, può esserci solo una [risposta accettata]. Grazie mille a tutti comunque .

4

Questo non risponde direttamente alla tua domanda ma ti dà alcuni strumenti con cui giocare per migliorare la tua comprensione.

C'è un semplice simulatore di Excel su Engineers-Excel che potresti trovare utile.

inserisci qui la descrizione dell'immagine

Figura 1. Modello di simulatore PID.

La parte difficile è modellare il processo - il forno - per stabilire K - guadagno del processo, Ts - la costante del tempo di risposta e Ls - il ritardo della risposta. Suggerisco:

  • Accendi il forno a, diciamo 40% di potenza (P1) e vedere a che temperatura si stabilizza. Ripeti, diciamo, al 70% di potenza (P2) e registra la temperatura. Il guadagno del processo è dato (per questa gamma di impostazioni) come
    K=T2-T1P2-P1
    e la risposta avrà le unità piuttosto dispari di gradi /%.
  • Traccia la risposta della temperatura nel tempo mentre commuti tra P1 e P2. LS, il tempo di ritardo, è il tempo che intercorre tra la commutazione e il momento in cui la temperatura inizia a salire.
  • TS è il tempo (dall'inizio della risposta) fino a quando la temperatura raggiunge il 63% (costante di una volta) del percorso dal T1 per T2.

Dopodiché puoi giocare con i parametri PID per vedere se riesci ad ottenere la risposta che desideri.

Prendendo alcune ipotesi selvagge:

  • P1=40% e T1=92°C.
  • P1=70% e T2=176°C.
  • K=176-9270-40=2.8°C/%.
  • LS=3S.
  • Ci vogliono 50 s per ottenere il 63% del percorso da 92 ° C a 176 ° C TS=50S.

inserisci qui la descrizione dell'immagine

Figura 2. Uscita del simulatore PID di Excel.

In genere si ottiene un termine D pari a zero se il processo non è suscettibile di ottenere disturbi come improvvisi cambiamenti nel setpoint o improvvisi cambiamenti nel carico termico. Ciò semplifica le cose fino a una configurazione di controllo PI.

Per il riscaldamento è possibile ottenere una potenza proporzionale accendendo e spegnendo completamente sufficientemente velocemente rispetto al tempo di risposta termica.inserisci qui la descrizione dell'immagine

Figura 3. Ciclo di lavoro variabile per il controllo CA di un riscaldatore.


Grazie per le informazioni tecniche comprensibili. Solo una nota a margine: dal momento che utilizzo i relè, che ho scoperto sono più economici degli SSR (fonte: Digi-Key), posso solo accendere o spegnere completamente i riscaldatori, non è possibile regolare tra 0% e 100%. Inoltre, non posso usare lo zero crossing per spegnere i riscaldatori, ma immagino che sia meno importante. Comunque grazie mille per le tue intuizioni.

2
La mia figura 3 mostra il controllo on-off ed è quello che farai e va bene. In media, ovunque tu voglia tra 0 e 100%. In effetti è una modulazione ad ampiezza di impulsi lenta (PWM) con AC. Farai un compromesso mantenendo il tempo di ciclo ragionevolmente breve con la durata del relè. Lo zero crossing è bello in quanto riduce il rumore elettrico. Se non è un problema, non è un problema!
Transistor,

2

In PID ci sono 3 parti: proporzionale, integrale e derivata.

Proporzionale è il controller più semplice. Amplifica l'errore tra il segnale desiderato e quello effettivo. Ad esempio, se la temperatura desiderata è 100 ° C, l'effettiva è 80 ° C, quindi l'uscita = 20 * Kp. La quantità di output fornita è ottimizzata da Kp.

Se la regolazione di Kp è troppo bassa, il riscaldamento non è sufficiente e potrebbe non raggiungere mai la temperatura desiderata.

Se si sintonizza Kp troppo in alto, potrebbe accelerare troppo velocemente. L'inerzia può portare a superamenti e squilli. Questo perché c'è un ritardo tra dare una certa potenza in uscita e misurarne l'effetto.

La parte integrale è necessaria se si desiderano scostamenti statici bassi. Si noti che affinché un controller P fornisca un output, deve presentare un errore per generare qualsiasi valore di output. Se si desidera che l'errore sia molto vicino allo zero, è necessario che l'I-part prenda il posto di P. Questo potrebbe richiedere del tempo.

La parte derivata è probabilmente più interessante per il tuo problema di inerzia. La derivata esamina il tasso di variazione dell'errore. Se c'è un grande tasso di cambiamento nell'errore, significa che c'è un'inerzia elevata. Usando un fattore sintonizzato Kd puoi assicurarti che l'uscita rallenti indietro nel tempo. Questo in modo che l'inerzia rallenta prima di raggiungere il valore finale di uscita.

Ciò consente di utilizzare un fattore P (er) elevato per una risposta adeguatamente aggressiva, mentre si utilizza D per evitare il superamento. La parte I viene utilizzata per rendere l'errore statico alla fine si stabilizzerà su 0.


In realtà, a lungo termine è il termine P che scende a zero, poiché il termine I si integra esattamente con il setpoint, lasciando la differenza di uscita a zero e P volte zero è zero.
WhatRoughBeast,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.