Un PWM con una risoluzione dell'1% in un circuito di riscaldamento PID può raggiungere una precisione della temperatura migliore dell'1%?


8

Devo impostare una temperatura tra 20 ° C e 300 ° C. Sto usando un'uscita PWM con una risoluzione del duty cycle dell'1%. Il periodo PWM complessivo e la temporizzazione del loop PID possono ottenere una precisione migliore dell'1% dell'intervallo di temperatura nel carico?


10
È necessario perfezionare la definizione della precisione della temperatura dell'1%. Supponiamo di riscrivere da 20 C a 300 C a 293 Kelvin a 573 K, quindi l'1% è un numero diverso. Se nel dispositivo è presente una (lunga) costante di tempo (massa termica), direi di sì che puoi ottenere una migliore precisione poiché ciò farebbe la media del valore che applichi, quindi dato un tempo sufficiente qualsiasi precisione può essere raggiunta.
Bimpelrekkie,

In particolare, stai lavorando con un relè a stato solido con zero-current-turn-of e 50/60 Hz di rete CA che alimenta il riscaldatore?
DeusXMachina,

A seconda delle masse termiche, il controllo on / off è probabilmente abbastanza buono
Scott Seidman,

Non conosco i controller PID ma ho scritto un'applicazione per controllare un forno di invasatura per il mio lavoro che regola usando il periodo PWM di 30s con una risoluzione di 1s che è in grado di mantenere le temperature entro 1-2 ° C dalla temperatura target (generalmente intorno 80 ° C) questo è controllato tramite un SSR, ha un elemento riscaldante da 2 kW e un ventilatore per far circolare l'aria. Il codice è disponibile su bitbucket.org/snippets/gds-uk/qj9yE/oven-controller se sei interessato.
RobbG,

Si noti inoltre che la conduttività termica del carico varia: a meno che non si tratti di un liquido agitato o di qualcosa di molto piccolo, probabilmente ci sarà una variazione di temperatura superiore all'1% attraverso il carico.
pjc50,

Risposte:


21

Dipende dalla costante di tempo del carico. Un carico riscaldato risponderà spesso in 10 secondi.

Se generi il 30% di PWM per un secondo, quindi il 31% di PWM per il secondo successivo, sembrerà il 30,5% in media su diversi secondi.

I termostati del forno tendono a funzionare un minuto in meno, un minuto in meno e continuano a raggiungere temperature del forno stabili a singole cifre di C. Un PWM dell'1% regolato una volta al secondo potrebbe fare diversi ordini di grandezza meglio di così.


8
Definirei questo "dithering", dopo la tecnica equivalente per aumentare la profondità del colore nella computer grafica, ma non so quanto sia comune chiamarlo così.
Pete Kirkham,

1
Mi sono ritrovato ad usare la stessa identica terminologia, quindi penso che non possa essere così lontano dal segno.
DeusXMachina,

1
@PeteKirkham Di solito lo chiamo dithering.
Winny il

9

Sì.

Dato che rispetto ad altre normative (tensione, corrente, ecc.), La regolazione della temperatura è piuttosto lenta, quello che puoi fare è usare un microcontrollore (immagino che tu lo faccia già), ma aggiungere una variazione ciclica del segnale PWM larghezza.

immagina che affinché il tuo sistema sia stabile, devi avere una larghezza di impulso del 3,8%. devi semplicemente applicare un ciclo di lavoro del 3% durante il 20% delle volte e del 4% durante il restante 80%. farlo per circa un secondo dovrebbe consentire di ottenere la precisione di cui hai bisogno.


7

Domanda stranamente formulata, ma quello che penso che stai ponendo è la temperatura dell'incremento del carico di incrementi dell'1% con una risoluzione PWM dell'1%. cioè 2.828C per passo.

Anche se sembra che dovrebbe, la risposta è probabilmente no.

Il motivo è che, affinché ciò accada, deve esserci una relazione 1 a 1 tra alimentazione e aumento della temperatura nel carico. Tuttavia, a seconda della geometria e dell'ambiente del carico, è improbabile che ciò sia vero.

Per riscaldare qualcosa a una temperatura specifica è necessario aggiungere abbastanza energia per bilanciare la potenza che l'oggetto perde a ciò che la circonda a quella temperatura. Il problema è che all'aumentare della temperatura, anche l'efficienza del trasferimento di calore dalla superficie di ciò che si sta riscaldando normalmente cambia.

inserisci qui la descrizione dell'immagine

Per un intervallo di temperatura ridotto, la potenza alla temperatura può essere considerata quasi lineare, ma 300 ° C non è un intervallo di temperatura ridotto.

Quanto è lineare qualunque cosa tu stia pianificando per il riscaldamento e quanto deve essere accurato l'1% (ovvero 1% più o meno cosa?), È ovviamente oltre lo scopo di questa domanda e risposta. Ma sospetto che avrai bisogno di MOLTO più potenza incrementale per alzare gli ultimi 50 ° C di quanto hai fatto per portarlo fino a 70 ° C.

AGGIUNTA

Non è chiaro dalla tua domanda se hai incluso il rilevamento della temperatura nel tuo circuito di controllo. Ho il sospetto, dal momento che hai posto la domanda, che la risposta a questa domanda è no, quindi il focus in questa risposta.

Se è necessario impostare la temperatura con precisione in tutte le condizioni, è necessario ricollegare tale misurazione nel circuito di controllo del sistema. A quel punto puoi variare nel tempo la modulazione PWM per mantenere la temperatura con la precisione che puoi misurarla, il tutto con un po 'di ritardo termico e isteresi.

Ma, naturalmente, misurare accuratamente la temperatura su un oggetto di grandi dimensioni può essere una sfida tutta per sé.


1
Grazie. Ma per essere onesti aggiungerò un po 'di informazioni che ho omesso, che è che il 100% PWM produce 300 ° C. Naturalmente, la tua risposta si applica davvero all'estremità inferiore della scala
Dirk Bruere,

@DirkBruere è abbastanza facile da testare. Impostalo al 50% e misura la temperatura :)
Trevor_G

Sarà sicuramente non lineare
Dirk Bruere il

NO come risposta diretta è probabilmente errata. Vedi la risposta di Neil_UK, che può essere sintetizzata come "sì, in circostanze precise ma piuttosto comuni". Il forno domestico è un esempio perfetto.
Caterpillaraoz,

@Caterpillaraoz Ya Immagino .. anche se già lo qualifico nella frase successiva. Comunque, non ha bisogno di essere lì .. bizzarri. Grazie per il feedback.
Trevor_G,

6

Dipende.

Se il controller o il codice dell'algoritmo di controllo è in grado di misurare la temperatura del carico e tenere traccia dell'output desiderato con una risoluzione migliore dell'1% (rilevando che la relazione tra output e temperatura non è lineare), è possibile ottenere risultati molto migliori di Risoluzione dell'output effettivo dell'1% mediante dithering, come suggerisce la risposta di Neil_UK . L'effettivo miglioramento che è possibile gestire dipenderà dalla durata della costante di tempo del carico rispetto al tempo di ciclo dell'output.

Se il tuo controller o codice non può farlo, otterrai una fluttuazione della temperatura di carico. Ad esempio, se il setpoint e le condizioni ambientali sono tali che l'uscita "corretta" per la temperatura di carico richiesta sarebbe del 30,5%, il più vicino possibile all'uscita è del 30%, nel qual caso il carico si raffredda leggermente al di sotto del setpoint , ovvero il 31%, nel qual caso si riscalda leggermente al di sopra del setpoint e solo notando questa deviazione nella temperatura di carico effettiva, il controller può modificare la sua uscita per correggere la deviazione.

Immagino che la dimensione della fluttuazione in quest'ultimo caso dipenderà dai coefficienti proporzionali e derivati ​​nel tuo algoritmo di controllo e il tuo compito sarà (come sempre) ottimizzare il controller per la massima precisione senza rischiare instabilità o eccessivo superamento.

Inoltre, pensa a cosa intendi esattamente per precisione . Hai bisogno di precisione assoluta (un setpoint di 100 ° C fornisce un valore controllato che è in realtà 100 ± 0,1 ° C) o solo stabilità (il valore controllato può stabilizzarsi ovunque da 98 a 102 ° C ma rimane stabile entro ± 0,1 ° C)? L'accuratezza assoluta della misurazione della temperatura è più difficile da ottenere di quanto si pensi, ma ci sono molte applicazioni in cui l'accuratezza assoluta non è così critica finché la stabilità è buona.


+1 Sono d'accordo con questo e tutte le risposte qui, ma da nessuna parte nella domanda dell'OP indica che si tratta di un sistema a circuito chiuso, cioè con feedback di temperatura. Questo è solo qualcosa che tutti presumevano perché era così che loro l'avrebbero fatto.
Trevor_G,

@Trevor, dice il titolo in un circuito di riscaldamento PID .
Nekomatic

Sì, ma ciò potrebbe significare qualsiasi cosa o niente. Ho il sospetto che l'OP non stia rilevando la temperatura, o non riesca a farlo in modo accurato, o questa domanda non sarebbe un inizio. Compra senza verifica ... chissà.
Trevor_G,

6

Molto probabilmente sì. Ho fatto esattamente quello che stai chiedendo in un prodotto commerciale.

Il motivo per cui dico "molto probabilmente" anziché semplicemente "sì" è che per ottenere una risoluzione della temperatura più elevata della risoluzione PWM è necessario che il periodo PWM sia significativamente più piccolo della costante di tempo termica dominante. A meno che tu non abbia un riscaldatore molto insolito (il filamento di una lampadina a incandescenza potrebbe essere un esempio), questo requisito sarà soddisfatto.

Vero esempio

Stavo scrivendo il firmware che controllava la corrente e la tensione attraverso un tubo Xray. La logica di livello superiore avrebbe specificato quali fossero la tensione e la corrente, e il compito del mio firmware era di renderlo tale.

In questo caso, il tubo era solo un catodo e un anodo, senza griglia. La corrente di fascio è stata controllata modificando il livello di azionamento del riscaldatore del catodo. Questo è il più piccolo e agile di un riscaldatore, ma la sua costante di tempo era ancora molti millisecondi.

Il PWM per il riscaldatore funzionava a più kHz, molte volte più veloce di qualsiasi frequenza di risposta del riscaldatore significativa. Sfortunatamente, la risoluzione PWM era troppo bassa per raggiungere alcune delle correnti desiderate entro la tolleranza d'errore desiderata. Ciò non è stato aiutato dalla funzione della temperatura del catodo per la corrente del fascio altamente non lineare.

Se questo fosse l'unico vincolo sul PWM, avrei potuto semplicemente aumentare il periodo PWM per ottenere una risoluzione più elevata. Tuttavia, questo processore ha fatto un sacco di cose e, a causa delle restrizioni hardware, lo stesso orologio è stato usato per altre cose e non poteva essere modificato.

La soluzione era implementare il dithering del ciclo di lavoro PWM. Se ricordo bene, ho usato 8 diversi valori del duty cycle. In questo caso potrei usare un motore DMA nel microcontrollore per eseguire automaticamente la sequenza degli 8 valori. La routine di impostazione del duty cycle ha fatto i conti con la matematica e ha regolato da 0 a 7 dei valori di un conteggio superiore al primo.

Ciò ha fornito una risoluzione PWM 8 volte maggiore. Il periodo PWM x8 era ancora breve rispetto alla costante di tempo del riscaldatore, quindi il riscaldatore faceva ancora facilmente la media dei valori del ciclo di lavoro multiplo.

Non linearità

Vedo che Trevor l'ha già toccato. La temperatura dei riscaldatori può essere spesso non lineare con la potenza in ingresso. Questo di solito è dovuto alla convezione che non reagisce linearmente con la temperatura, e quindi a raffreddare un oggetto caldo in modo sproporzionato più di uno più freddo. A temperature molto più elevate, la radiazione del corpo nero diventa significativa. La potenza irradiata è anche abbastanza non lineare con la temperatura.

Nel mio caso, non solo il catodo era principalmente raffreddato dalla radiazione del corpo nero (era nel vuoto), ma anche la funzione della temperatura dalla corrente del fascio era altamente non lineare.

I sistemi non lineari sono difficili da controllare. Mezzi semplici come PID o qualsiasi cosa derivata dall'analisi del dominio S non funzionano bene con i sistemi non lineari. Se ci provi, finisci per sovra-smorzare le parti della gamma solo per mantenere la stabilità in altre parti della gamma. Ciò può portare a tempi di assestamento inaccettabilmente lunghi nelle parti dell'intervallo sovra-smorzati.

La soluzione che ho usato in questo caso, e che ho usato anche in alcuni altri progetti, è stata quella di linearizzare il sistema dal punto di vista del circuito di controllo.

L'ho fatto inserendo una ricerca lineare a tratti tra l'uscita del controller e l'ingresso del sistema. Durante la produzione, il sistema è stato eseguito a circuito aperto in una serie di set point. I risultati sono stati utilizzati per popolare la tabella di ricerca memorizzata in una memoria non volatile unica per ogni unità.

Il sistema è ancora non lineare all'interno di qualsiasi segmento della tabella di ricerca. Tuttavia, questi segmenti sono una piccola parte della gamma del sistema, quindi le caratteristiche del sistema non cambiano molto su un segmento. In tal caso, utilizzare più segmenti.

Il risultato ha funzionato molto bene. Sì, tutto questo è in esecuzione in un prodotto commerciale che puoi comprare oggi.


2

Diverse persone lo hanno già menzionato, ma preferirei chiarire.

Nota: se il tuo riscaldatore ha un controllo elettronico della temperatura incorporato, passa all'ultima sezione della mia risposta.

PWM non controlla la temperatura di un riscaldatore convenzionale

Invece controlla quanta energia viene espulsa dal riscaldatore. Se il riscaldatore di spazio interno è idealmente isolato, un segnale PWM costante controllerebbe la velocità con cui aumenta la temperatura, fino a quando il riscaldatore non si scioglie da solo o nel suo involucro.

In realtà il calore si perde inevitabilmente per convezione, radiazione o altri processi, quindi può formarsi un equilibrio stabile: se un riscaldatore viene riscaldato fino al 100% del ciclo, potrebbe essere valutato per riscaldarsi a 300 ° C in alcune circostanze predefinite.

Tuttavia, tali circostanze non possono mai essere affidabili: il vento, la pressione dell'aria, l'umidità e la temperatura ambiente potrebbero alterare le valutazioni del ciclo di funzionamento alla temperatura del riscaldatore.

Se le tue temperature sono molto alte (superiori a circa 200 ° C) potresti essere in grado di cavartela con variazioni dovute a fattori esterni un po 'trascurabili, ma in quel caso la temperatura esatta non è comunque molto precisa, quindi aggiustamenti inferiori all'1% non ha alcun senso.

Fare riferimento a un sensore di temperatura

Un modo affidabile per controllare una temperatura sarebbe usare un sensore di temperatura: se la temperatura desiderata è superiore a quella rilevata, alimentare il riscaldatore al 100% di potenza; se è inferiore, interrompere completamente la potenza.

Il motivo per utilizzare il 100% o nessuna potenza è che i riscaldatori sono sempre reattivi e molto probabilmente si desidera che la temperatura raggiunga il livello desiderato il più velocemente possibile.

Supponiamo che tu abbia un riscaldatore che può normalmente fare da 20 ° a 300 ° C e che ti serve per riscaldare da temperatura ambiente a 100 °.

Se lo si alimenta con un ciclo di lavoro PWM del 30%, inizierà a guadagnare rapidamente la temperatura, ma poi gradualmente rallenterà. A seconda del tipo di riscaldatore potrebbero essere necessarie alcune ore prima che raggiunga effettivamente la temperatura desiderata. Questo perché la perdita di calore aumenta con la differenza di calore, quindi gli ultimi gradi impiegano più tempo.

Invece dovresti alimentare il riscaldatore con il 100% di energia disponibile per farlo raggiungere la temperatura desiderata molto più velocemente.

Quando la temperatura raggiunge il valore desiderato, è comunque necessario reagire rapidamente a improvvise raffiche improvvise di vento soffiate sul riscaldamento o conseguenze simili.

Possibile applicazione PWM

In alcuni casi un riscaldatore, il suo carico e il sensore possono essere tutti abbastanza reattivi, quindi il circuito potrebbe dover prevedere in una certa misura i cambiamenti di temperatura causati dal riscaldatore.

Se ciò non è possibile, alimentare il riscaldatore con potenza frazionata potrebbe essere effettivamente utile per mantenere la temperatura al livello desiderato.

In tal caso i dettagli esatti (inclusa la risposta alla tua domanda) possono dipendere dai parametri fisici del riscaldatore, dal suo carico e dall'ambiente. O la temperatura deve essere veramente stabile.

In questi casi un segnale PWM non deve essere preciso, ma dovrebbe comunque sintonizzarsi su e giù a seconda della lettura della sonda.

Problemi di commutazione elettrica

Un riscaldatore elettrico potrebbe non essere progettato per funzionare con alimentazione PWM. A seconda di come è stato costruito, potrebbe iniziare a vibrare e alla fine distruggere se stesso o causare altri problemi imprevisti.

Quasi tutti i riscaldatori consumano molta energia. I tiristori o i transistor di controllo PWM per tali applicazioni possono essere abbastanza inefficienti e richiedere un sostanziale raffreddamento oltre ad essere costosi.

Per quanto riguarda i tiristori a correzione di fase (per CA), una precisione inferiore all'1% potrebbe non essere ottenibile in modo affidabile con essi poiché l'alimentazione CA potrebbe non essere un seno perfetto.

Riscaldatori a controllo elettronico

Alcuni "riscaldatori" possono in realtà essere dispositivi elettronici che rilevano la temperatura e controllano autonomamente l'alimentazione. La temperatura desiderata può essere impostata tramite un segnale PWM. Quelli sono rari ma è l'unica teoria che potrebbe spiegare la relazione diretta tra ciclo di lavoro e temperatura.

In questo caso, la risposta alla tua domanda dipende dall'elettronica di controllo integrata del riscaldatore. Le regolazioni precise descritte nella domanda probabilmente funzionerebbero assumendo che l'elettronica sia abbastanza precisa in sé - questo fatto dovrebbe essere indicato nella sua documentazione.

Poiché quasi tutti questi riscaldatori funzionano internamente come ho descritto in precedenza, spesso eseguono cicli on-off-on-off abbastanza lunghi, quindi la temperatura effettiva può oscillare su e giù nel tempo, indipendentemente dalla precisione del segnale PWM.

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.