Kann eine PWM mit einer Auflösung von 1% in einem PID-Heizkreis eine Temperaturgenauigkeit von mehr als 1% erreichen?

8

Ich muss eine Temperatur zwischen 20 ° C und 300 ° C einstellen. Ich verwende einen PWM-Ausgang mit einer Auflösung von 1% Einschaltdauer. Kann die gesamte PWM-Periode und der PID-Regelkreis besser als 1% der Temperaturspanne in der Last sein?

Dirk Bruere
quelle
10
Sie sollten Ihre Definition der Temperaturgenauigkeit von 1% verfeinern. Angenommen, ich schreibe Ihre 20 ° C auf 300 ° C auf 293 Kelvin auf 573 K um, dann ist 1% eine andere Zahl. Wenn in Ihrem Gerät eine (lange) Zeitkonstante (thermische Masse) vorhanden ist, würde ich sagen, dass Sie eine bessere Genauigkeit erzielen können, da dies den von Ihnen angewendeten Wert mittelt, sodass bei ausreichender Zeit eine Genauigkeit erreicht werden kann.
Bimpelrekkie
Arbeiten Sie speziell mit einem Halbleiterrelais mit Nullstromabschaltung und 50/60 Hz Netzstrom, der die Heizung mit Strom versorgt?
DeusXMachina
Abhängig von den thermischen Massen ist die Ein / Aus-Steuerung wahrscheinlich gut genug
Scott Seidman
Ich weiß nichts über PID-Regler, aber ich habe eine Anwendung zur Steuerung eines Vergussofens für meine Arbeit geschrieben, die die Verwendung einer 30-Sekunden-PWM-Periode mit einer Auflösung von 1 Sekunde regelt, die es ermöglicht, die Temperaturen innerhalb von 1 bis 2 ° C der Zieltemperatur zu halten (im Allgemeinen ungefähr) 80 ° C) Dies wird mit einem SSR geregelt, hat ein 2KW Heizelement und einen Lüfter zur Luftzirkulation. Code ist bei Interesse unter bitbucket.org/snippets/gds-uk/qj9yE/oven-controller verfügbar .
RobbG
Beachten Sie auch, dass die Wärmeleitfähigkeit Ihrer Last variiert: Wenn es sich nicht um eine gerührte Flüssigkeit oder etwas sehr Winziges handelt, wird die Temperatur über die Last wahrscheinlich um mehr als 1% schwanken.
pjc50

Antworten:

21

Dies hängt von der Zeitkonstante der Last ab. Eine erhitzte Last reagiert oft in 10 Sekunden.

Wenn Sie 30% PWM für eine Sekunde und 31% PWM für die nächste Sekunde generieren, entspricht dies einem Durchschnitt von 30,5% über mehrere Sekunden.

Ofenthermostate arbeiten in der Regel eine Minute ein und eine Minute aus und erreichen dennoch Ofentemperaturen, die auf einstellige C-Werte stabil sind. Eine einmal pro Sekunde eingestellte PWM von 1% kann mehrere Größenordnungen besser sein.

Neil_UK
quelle
8
Ich würde dies "Dithering" nennen, nach der entsprechenden Technik, um die Farbtiefe in der Computergrafik zu erhöhen, aber ich weiß nicht, wie häufig es so heißt.
Pete Kirkham
1
Ich habe genau dieselbe Terminologie verwendet, daher denke ich, dass es nicht so weit vom Ziel entfernt sein kann.
DeusXMachina
1
@ PeteKirkham Ich nenne es normalerweise Dithering.
Winny
9

Ja.

Angesichts der Tatsache, dass die Temperaturregelung im Vergleich zu anderen Vorschriften (Spannung, Strom usw.) recht langsam ist, können Sie einen Mikrocontroller verwenden (ich vermute, Sie tun dies bereits), aber eine zyklische Variation der PWM-Signale hinzufügen Breite.

Stellen Sie sich vor, dass Ihr System eine Impulsbreite von 3,8% haben muss, damit es stabil ist. Sie müssen lediglich in 20% der Fälle einen Arbeitszyklus von 3% und in den verbleibenden 80% einen Arbeitszyklus von 4% anwenden. Wenn Sie dies über eine Sekunde oder so tun, können Sie die Präzision erreichen, die Sie benötigen.

Sclrx
quelle
7

Seltsam formulierte Frage, aber ich denke, Sie stellen die Temperatur der Last um 1% Schritte mit einer PWM von 1% Schrittauflösung. dh 2,828 ° C pro Schritt.

Obwohl es so klingt, wie es sollte, ist die Antwort darauf wahrscheinlich nein.

Der Grund dafür ist, dass dafür eine 1: 1-Beziehung zwischen Einschaltleistung und Temperaturanstieg in der Last bestehen muss. Abhängig von der Geometrie und Umgebung der Last ist dies jedoch unwahrscheinlich.

Um etwas auf eine bestimmte Temperatur zu erwärmen, müssen Sie genügend Leistung hinzufügen, um die Leistung auszugleichen, die das Objekt bei dieser Temperatur an seine Umgebung verliert. Das Problem ist, dass sich mit steigender Temperatur auch die Wärmeübertragungseffizienz von der Oberfläche des Heizgeräts ändert.

Geben Sie hier die Bildbeschreibung ein

Für einen kleinen Temperaturbereich kann Leistung zu Temperatur als nahezu linear angesehen werden, 300 ° C ist jedoch kein kleiner Temperaturbereich.

Wie linear alles ist, was Sie für die Heizung planen, und wie genau 1% sein muss (dh 1% plus oder minus was?), Übersteigt natürlich den Rahmen dieser Frage und Antwort. Aber ich würde vermuten, dass Sie viel mehr inkrementelle Leistung einsetzen müssen, um es auf die letzten 50 ° C zu bringen, als Sie es getan haben, um es auf 70 ° C zu bringen.

ZUSATZ

Aus Ihrer Frage geht nicht hervor, ob Sie die Temperaturerfassung in Ihren Regelkreis aufgenommen haben. Ich vermute, seit Sie die Frage gestellt haben, dass die Antwort darauf Nein ist, daher der Fokus in dieser Antwort.

Wenn Sie die Temperatur unter allen Bedingungen genau einstellen müssen, müssen Sie diese Messung wirklich wieder in den Systemregelkreis einbinden. Zu diesem Zeitpunkt können Sie die PWM-Modulation zeitlich variieren, um die Temperatur so genau wie möglich zu halten, sei es mit einer gewissen thermischen Verzögerung und Hysterese.

Aber natürlich kann die genaue Messung der Temperatur an einem großen Objekt eine Herausforderung für sich sein.

Trevor_G
quelle
1
Vielen Dank. Aber um fair zu sein, werde ich ein paar Informationen hinzufügen, die ich weggelassen habe, nämlich dass 100% PWM 300 ° C ergibt. Natürlich gilt Ihre Antwort dann wirklich für das untere Ende der Skala
Dirk Bruere
@ KirkBruere es ist einfach genug zu testen.
Stellen
Es wird definitiv nicht linear sein
Dirk Bruere
NEIN als klare Antwort ist wahrscheinlich falsch. Siehe Neil_UKs Antwort, die als "Ja, unter präzisen, aber ziemlich häufigen Umständen" zusammengefasst werden kann. Heimofen ist perfektes Beispiel.
Caterpillaraoz
@Caterpillaraoz Ya ich denke .. obwohl ich es bereits im nächsten Satz qualifiziere. Jedenfalls muss es nicht da sein .. Gonzo. Danke für die Rückmeldung.
Trevor_G
6

Es hängt davon ab, ob.

Wenn Ihre Steuerung oder Ihr Steueralgorithmuscode die Lasttemperatur messen und die gewünschte Ausgabe mit einer Auflösung von mehr als '1%' verfolgen kann (wobei zu beachten ist, dass das Verhältnis von Ausgabe zu Temperatur nicht linear ist), ist es möglich, eine viel bessere Leistung als zu erzielen 1% effektive Ausgabeauflösung durch Dithering, wie die Antwort von Neil_UK nahe legt. Die tatsächliche Verbesserung, die Sie erzielen können, hängt davon ab, wie lange die Zeitkonstante der Last relativ zur Zykluszeit Ihres Ausgangs ist.

Wenn Ihr Controller oder Code dies nicht kann, kommt es zu Schwankungen der Lasttemperatur. Wenn beispielsweise der Sollwert und die Umgebungsbedingungen so sind, dass die „richtige“ Leistung für die erforderliche Lasttemperatur 30,5% beträgt, beträgt die nächstgelegene Leistung entweder 30%. In diesem Fall kühlt die Last leicht unter den Sollwert ab oder 31%. In diesem Fall erwärmt es sich leicht über den Sollwert. Nur wenn diese Abweichung der tatsächlichen Lasttemperatur „bemerkt“ wird, kann der Regler seine Leistung ändern, um die Abweichung zu korrigieren.

Ich denke, dass die Größe der Fluktuation im letzteren Fall von den proportionalen und abgeleiteten Koeffizienten in Ihrem Steueralgorithmus abhängt und Ihre Aufgabe (wie immer) darin besteht, den Regler auf die beste Genauigkeit abzustimmen, ohne Instabilität oder übermäßiges Überschwingen zu riskieren.

Denken Sie auch darüber nach, was genau Sie unter Genauigkeit verstehen . Benötigen Sie absolute Genauigkeit (ein Sollwert von 100 ° C ergibt einen kontrollierten Wert, der tatsächlich 100 ± 0,1 ° C beträgt) oder nur Stabilität (der kontrollierte Wert kann sich zwischen 98 und 102 ° C stabilisieren, bleibt dann aber innerhalb von ± 0,1 ° stabil C)? Die absolute Genauigkeit der Temperaturmessung ist schwieriger zu erreichen als angenommen, aber es gibt viele Anwendungen, bei denen die absolute Genauigkeit nicht so kritisch ist, solange die Stabilität gut ist.

nekomatisch
quelle
+1 Ich stimme dem und allen Antworten hier zu, aber nirgends in der Frage des OP weist er darauf hin, dass es sich um ein System mit geschlossenem Regelkreis handelt, dh mit Temperaturrückmeldung. Das ist nur etwas, was jeder angenommen hat, denn so hätten SIE es getan.
Trevor_G
@Trevor der Titel sagt in einer PID- Heizschleife .
nekomatisch
Ja, aber das könnte alles oder nichts bedeuten. Ich vermute, dass das OP keine Temperaturmessung durchführt oder es nicht genau ausführen kann, oder diese Frage wäre ein Nichtstarter. Aber ohne Überprüfung ... wer weiß.
Trevor_G
6

Sehr wahrscheinlich ja. Ich habe genau das getan, wonach Sie in einem kommerziellen Produkt fragen.

Der Grund, warum ich "höchstwahrscheinlich" statt nur "ja" sage, ist, dass für eine höhere Temperaturauflösung als die PWM-Auflösung die PWM-Periode erheblich kleiner sein muss als die dominante thermische Zeitkonstante. Sofern Sie keine sehr ungewöhnliche Heizung haben (das Filament einer Glühlampe könnte ein Beispiel sein), wird diese Anforderung erfüllt.

Echtes Beispiel

Ich schrieb die Firmware, die den Strom und die Spannung durch eine Röntgenröhre kontrollierte. Eine übergeordnete Logik würde angeben, wie die Spannung und der Strom sein sollen, und die Aufgabe meiner Firmware bestand darin, dies zu erreichen.

In diesem Fall war die Röhre nur eine Kathode und eine Anode ohne Gitter. Der Strahlstrom wurde durch Ändern des Antriebspegels der Kathodenheizung gesteuert. Das ist ungefähr so ​​klein und flink wie es nur geht, aber seine Zeitkonstante betrug immer noch viele Millisekunden.

Die PWM zum Heizgerät lief mit mehreren kHz, viel schneller als jede sinnvolle Antwortfrequenz des Heizgeräts. Leider war die PWM-Auflösung zu niedrig, um einige der gewünschten Ströme innerhalb der gewünschten Fehlertoleranz zu erreichen. Dies wurde nicht durch die Funktion der Kathodentemperatur unterstützt, bei der der Strahlstrom stark nichtlinear ist.

Wenn dies die einzige Einschränkung für die PWM wäre, hätte ich einfach die PWM-Periode verlängern können, um eine höhere Auflösung zu erhalten. Dieser Prozessor hat jedoch eine Reihe von Aufgaben ausgeführt, und aufgrund von Hardwareeinschränkungen wurde dieselbe Uhr für andere Aufgaben verwendet und konnte nicht geändert werden.

Die Lösung bestand darin, ein Dithering des PWM-Arbeitszyklus zu implementieren. Wenn ich mich recht erinnere, habe ich 8 verschiedene Arbeitszykluswerte verwendet. In diesem Fall könnte ich eine DMA-Engine im Mikrocontroller verwenden, um die 8 Werte automatisch zu durchlaufen. Die Routine zur Einstellung des Arbeitszyklus führte die Berechnung durch und stellte 0 bis 7 der Werte ein, die eine Zählung höher als die erste waren.

Dies lieferte effektiv eine 8x höhere PWM-Auflösung. Die PWM-Periode x8 war relativ zur Heizzeitkonstante immer noch kurz, so dass die Heizung die Werte für mehrere Arbeitszyklen immer noch leicht mittelte.

Nichtlinearität

Ich sehe, Trevor hat dies bereits angesprochen. Die Temperatur von Heizgeräten kann oft nicht linear mit der Eingangsleistung sein. Dies ist normalerweise darauf zurückzuführen, dass die Konvektion nicht linear mit der Temperatur reagiert und daher ein heißes Objekt überproportional stark abkühlt als ein kühleres. Bei viel höheren Temperaturen wird die Schwarzkörperstrahlung signifikant. Die Strahlungsleistung ist auch mit der Temperatur nicht linear.

In meinem Fall wurde die Kathode nicht nur überwiegend durch Schwarzkörperstrahlung gekühlt (sie befand sich im Vakuum), sondern auch die Funktion der Temperatur zum Strahlstrom war stark nichtlinear.

Nichtlineare Systeme sind schwer zu steuern. Einfache Mittel wie PID oder alles, was aus der S-Domänen-Analyse abgeleitet wurde, funktionieren mit nichtlinearen Systemen nicht gut. Wenn Sie es versuchen, werden Teile des Bereichs überdämpft, um die Stabilität in anderen Teilen des Bereichs zu gewährleisten. Dies kann zu unannehmbar langen Einschwingzeiten in den überdämpften Teilen des Bereichs führen.

Die Lösung, die ich in diesem Fall verwendet habe und die ich auch bei einigen anderen Projekten verwendet habe, bestand darin, das System aus Sicht des Regelkreises zu linearisieren.

Dazu habe ich eine stückweise lineare Suche zwischen dem Controller-Ausgang und dem System-Eingang eingefügt. Während der Herstellung wurde das System an einer Reihe von Sollwerten im offenen Regelkreis betrieben. Die Ergebnisse wurden verwendet, um die Nachschlagetabelle zu füllen, die in einem nichtflüchtigen Speicher gespeichert ist, der für jede Einheit eindeutig ist.

Das System ist in jedem Segment der Nachschlagetabelle immer noch nicht linear. Diese Segmente machen jedoch nur einen kleinen Teil des Systembereichs aus, sodass sich die Systemeigenschaften in einem Segment nicht wesentlich ändern. Wenn dies der Fall ist, verwenden Sie mehr Segmente.

Das Ergebnis hat sehr gut funktioniert. Ja, all dies läuft in einem kommerziellen Produkt, das Sie heute von der Stange kaufen können.

Olin Lathrop
quelle
2

Einige Leute haben dies bereits erwähnt, aber ich möchte es lieber klarstellen.

Hinweis: Wenn Ihre Heizung über eine integrierte elektronische Temperaturregelung verfügt, fahren Sie bitte mit dem letzten Abschnitt meiner Antwort fort.

PWM regelt nicht die Temperatur eines herkömmlichen Heizgeräts

Stattdessen wird gesteuert, wie viel Energie von der Heizung ausgestoßen wird. Wenn die Raumheizung ideal isoliert ist, steuert ein konstantes PWM-Signal, wie schnell die Temperatur ansteigt - bis die Heizung selbst oder ihr Gehäuse schmilzt.

In der Realität geht Wärme unweigerlich durch Konvektion, Strahlung oder andere Prozesse verloren, so dass sich ein stabiles Gleichgewicht bilden kann: Wenn eine Heizung auf einen Zyklus von 100% erwärmt wird, kann sie unter bestimmten vordefinierten Umständen auf 300 ° C erwärmt werden.

Diese Umstände können jedoch niemals zuverlässig sein: Wind, Luftdruck, Luftfeuchtigkeit und Umgebungstemperatur können die Einschaltdauer Ihres Heizgeräts von Arbeitszyklus zu Temperatur verzerren.

Wenn Ihre Temperaturen sehr hoch sind (höher als etwa 200 ° C), können Sie möglicherweise mit Schwankungen davonkommen, da die äußeren Faktoren etwas vernachlässigbar sind. In diesem Fall ist die genaue Temperatur jedoch ohnehin nicht sehr genau, sodass Anpassungen unter 1% erforderlich sind keinen Sinn machen.

Beziehen Sie sich auf einen Temperatursensor

Eine zuverlässige Methode zur Steuerung einer Temperatur wäre die Verwendung eines Temperatursensors: Wenn die gewünschte Temperatur höher ist als die gemessene, schalten Sie die Heizung mit 100% Leistung ein. Wenn es niedriger ist, schalten Sie den Strom vollständig aus.

Der Grund für die Verwendung von 100% oder ohne Strom ist, dass Heizungen immer reaktiv sind und Sie höchstwahrscheinlich möchten, dass die Temperatur so schnell wie möglich das gewünschte Niveau erreicht.

Nehmen wir an, Sie haben eine Heizung, die normalerweise 20 bis 300 ° C verträgt, und Sie benötigen sie, um sich von Raumtemperatur auf 100 ° zu erwärmen.

Wenn Sie das Gerät mit einem PWM-Arbeitszyklus von 30% betreiben, steigt die Temperatur schnell an, verlangsamt sich jedoch allmählich. Je nach Heizungsart kann es Stunden dauern, bis die gewünschte Temperatur erreicht ist. Das liegt daran, dass der Wärmeverlust mit der Wärmedifferenz zunimmt, sodass die letzten Grad am längsten dauern.

Stattdessen sollten Sie die Heizung mit 100% der verfügbaren Leistung versorgen, damit sie die gewünschte Temperatur viel schneller erreicht.

Wenn die Temperatur den gewünschten Wert erreicht, müssen Sie immer noch schnell auf gelegentliche plötzliche Windböen auf Ihrem Heizgerät oder ähnliche Folgen reagieren.

Mögliche PWM-Anwendung

In einigen Fällen können eine Heizung, ihre Last und der Sensor alle sehr reaktiv sein, so dass die Schaltung möglicherweise Temperaturänderungen vorhersagen muss, die durch die Heizung in gewissem Maße verursacht werden.

Wenn dies nicht möglich ist, kann es tatsächlich nützlich sein, die Heizung mit Teilleistung zu versorgen, damit die Temperatur auf dem gewünschten Niveau bleibt.

In diesem Fall können die genauen Details (einschließlich der Antwort auf Ihre Frage) von den physikalischen Parametern des Heizgeräts, seiner Last und seiner Umgebung abhängen. Oder die Temperatur muss wirklich sehr stabil sein.

In diesen Fällen muss ein PWM-Signal nicht präzise sein, sondern sollte sich je nach Sondenmesswert nach oben und unten einstellen.

Bedenken hinsichtlich der elektrischen Schaltung

Eine elektrische Heizung ist möglicherweise nicht für den Betrieb mit PWM-Strom ausgelegt. Je nachdem, wie genau es gebaut ist, kann es vibrieren und sich schließlich selbst zerstören oder andere unvorhergesehene Probleme verursachen.

Fast alle Heizungen verbrauchen viel Strom. PWM-Steuerthyristoren oder -transistoren für solche Anwendungen können ziemlich ineffizient sein und erfordern eine erhebliche Kühlung, zusätzlich zu ihren Kosten.

Beim Thema phasenkorrekte Thyristoren (für Wechselstrom) ist eine Genauigkeit von unter 1% möglicherweise nicht zuverlässig mit ihnen erreichbar, da Wechselstrom möglicherweise kein perfekter Sinus ist.

Elektronisch gesteuerte Heizungen

Einige "Heizungen" können tatsächlich elektronische Geräte sein, die die Temperatur erfassen und die Leistung selbst steuern. Die gewünschte Temperatur kann über ein PWM-Signal eingestellt werden. Diese sind selten, aber es ist die einzige Theorie, die den direkten Zusammenhang zwischen Arbeitszyklus und Temperatur erklären könnte.

In diesem Fall hängt die Antwort auf Ihre Frage von der eingebauten Steuerelektronik des Heizgeräts ab. Genaue Anpassungen, die in der Frage beschrieben werden, würden wahrscheinlich funktionieren, vorausgesetzt, die Elektronik ist selbst präzise genug - diese Tatsache sollte in ihrer Dokumentation angegeben werden.

Da fast alle derartigen Heizungen intern wie zuvor beschrieben arbeiten, führen sie häufig ziemlich lange Ein-Aus-Ein-Aus-Zyklen durch, sodass die tatsächliche Temperatur mit der Zeit auf und ab schwanken kann, unabhängig davon, wie genau das PWM-Signal ist.

Jack White
quelle