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?
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?
Antworten:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.