Ich baue meinen eigenen mikroprozessorgesteuerten Reflow-Ofen für Bastler. Ich benutze (mechanische) Relais, um die Heizungen (dh Quarzrohre) ein- oder auszuschalten. Ich habe festgestellt, dass die Erwärmung einige Sekunden nach dem Temperaturanstieg nachlässt.
Im Moment verwalte ich das Temperaturprofil manuell mit Hilfe eines Arduino, der die Heizungen nur ausschaltet, wenn die eingestellte Temperatur erreicht ist. Wenn ich zum Beispiel die Temperatur auf beispielsweise 120 ° Celsius einstelle und die Heizungen anhalten, steigt die Temperatur immer noch um 10 bis 20 Grad, so dass es zu einem gewissen Überschwingen kommt, dann zu einem gewissen Klingeln, das langsam abnimmt.
Ich habe viele Beispiele gelesen und gesehen, die eine PID für eine bessere Temperaturregelung verwenden. Ohne das würde ich einfach die Heizungen anhalten, etwa 10 bis 20 Grad unter dem eingestellten Wert, und sie kurz danach ein- und ausschalten, bis sich die Temperatur um den eingestellten Wert stabilisiert. Ich weiß nur, dass das Delta mit der Temperatur variiert, daher ist es möglicherweise nicht so einfach - ich kenne die exponentielle Natur des Temperaturanstiegs mit einem festen Sollwert.
Kann also jemand in Laienbegriffen erklären, wie eine PID die Trägheit erklärt, z. B. welche Rolle der integrale Teil und was der abgeleitete Teil in einfachen Worten spielen, und wie / ob ich eine Schätzung der Ableitung und des Integrals ziemlich intuitiv herausfinden kann Mengen ohne auf komplexe Berechnungen zurückzugreifen.
Antworten:
Der kanonische Ausdruck für die PID-Regelung lautet:
Die obige Beschreibung, die zu Ihrer eigenen Beschreibung Ihres Verzögerungsproblems hinzugefügt wurde, würde darauf hinweisen, dass ein abgeleiteter Begriff Ihnen helfen würde. Aber wie immer ist nichts unbedingt so einfach.
Eine Proportional-Integral-Steuerung ist ausreichend, wenn die Prozessdynamik 1. Ordnung ist. Dies lässt sich leicht durch Messen der Sprungantwort herausfinden. (Wenn die Nyquist-Kurve nur im 1. und 4. Quadranten liegt.) Sie kann auch in Fällen angewendet werden, in denen der Prozess keine strenge Kontrolle erfordert, auch wenn er nicht von 1. Ordnung ist.
Die PID-Regelung ist ausreichend für Prozesse, bei denen die dominante Dynamik 2. Ordnung ist. Hier ist häufig eine Temperaturregelung der Fall. Dies spricht vielleicht erneut dafür, dass in Ihrer Situation eine Ableitungskontrolle hinzugefügt wird.
Jedoch. All dies sollte erst berücksichtigt werden, nachdem Sie alles getan haben, um einige Dinge zu verbessern:
Ich möchte auf diesen letzten Punkt etwas näher eingehen. Stellen Sie sich Prozesssteuerung so vor, als würden Sie irgendwo stehen und versuchen, eine dünne, sehr flexible und wackelige Bambusstange in ein entferntes Vogelhausloch zu stecken, das in einem Baum über und von Ihnen entfernt sitzt. Wenn Sie in der Nähe sind und die Bambusstange kurz ist, ist es einfach. Sie können es jedes Mal schnell und einfach tun. Aber wenn die Bambusstange lang und das Vogelhaus weit von Ihnen entfernt ist, ist es sehr, sehr schwer zu tun. Die Stange wandert weiter herum und macht Ihre Vorhersage und Kontrolle sehr schwierig.
(Wenn es noch nicht klar ist, entspricht die Länge der Bambusstange der Schleifenverzögerungszeit.)
Verzögerung ist also wahrscheinlich der schlimmste Albtraum von Steuerungssystemen. Mehr Verzögerung ist sehr schlecht. Daher ist es sehr wichtig, dass Sie alles in Ihrer Macht stehende tun, um diese Verzögerung zu verringern. Aber es gibt noch einen wichtigen Punkt.
Stellen Sie sich jetzt die gleiche Situation vor. Aber jetzt ändert sich auch die Länge der Bambusstange. Manchmal ist es kürzer, manchmal länger und es variiert ständig, ohne dass Sie dies vorhersagen müssen. Sie müssen jetzt Ihre Haltung ständig ändern und wissen nie, wann sich die Verzögerung ändern wird. Dies ist die Situation, die besteht, wenn Ihre SOFTWARE die Zeitverzögerung bei der Verarbeitung Ihres ADC-Werts und der Erzeugung eines DAC-Steuerausgangs nicht sehr sorgfältig und mit eiserner Faust steuert.
Während also die Verzögerung für ein PID-Regelsystem schlimm genug ist. Die variable Verzögerung ist noch schlimmer. Sie müssen also genau auf Ihr Software-Design achten - sehr genau -, damit Sie keine IF-Anweisungen und keinen bedingten Berechnungscode oder keine schlampige Verwendung von Timern usw. haben, was zu erheblichen Abweichungen in der Software führen kann Verzögerung zwischen Abtast- und Steuerausgang.
Sie müssen das oben Genannte in das Management einbringen, bevor Sie sich dann Gedanken darüber machen, ob Sie eine derivative Kontrolle benötigen oder nicht. Das wichtigste zuerst. Räumen Sie Ihre Handlung auf. Untersuchen Sie dann das System, um festzustellen, was noch zu tun ist (z. B. mithilfe von PI vs PID).
Ich arbeitete an PID-Regelsystemen mit einem äußerst genauen Pyrometersystem (auch für Kunden sehr teuer). Ich erhielt einen Anruf von einem kanadischen Forscher, der mit unserem Pyrometer arbeitete, aber einen separaten PID-Regler von einem sehr großen Handelsunternehmen (dem größten in) verwendete die Welt tat diese Dinge.) Der Forscher kämpfte mit Wellen an der Seite einer Kugel Galliumarsenid, die er aus einer Schmelze zog. Und wollte meine Hilfe bei der Ermittlung der richtigen PID-Regelgrößen. (Beim Boule-Ziehen möchten Sie sehr gleichmäßige Durchmesser.)
Der Controller, den er benutzte, war in jeder Hinsicht recht gut. Aber es wurden Verzögerungen hinzugefügt - und diese Verzögerungen variierten auch, da die darin enthaltene Software die Verzögerung, die sie in den gesamten Regelkreis einführte, nicht streng kontrollierte.
Das erste, was ich ihm sagte, war, dass ich der Software in unserem Pyrometer eine PID-Regelung hinzufügen würde und dass er einfach den externen Regler aus dem von ihm verwendeten System ziehen sollte. Ich habe diese Software in weniger als einer Woche hinzugefügt und ihm das modifizierte Pyro-System geliefert. Ich habe mit der PID-Software nichts Besonderes gemacht. Ich habe jedoch meine Variabilität von ADC zu DAC auf weniger als ein paar Mikrosekunden gehalten und die Gesamtverzögerung ebenfalls auf etwa 100 Mikrosekunden erhöht. Das habe ich ihm geschickt.
Ich habe am Montag der nächsten Woche einen Anruf erhalten. Die Kugeln zogen sich fast perfekt heraus, ohne Wellen.
Es war so einfach wie nur die Verzögerungen zu verringern und auch die Variabilität dieser Verzögerungen zu verringern. Überhaupt nichts Besonderes an der PID-Regelung. Es war eine einfache Vanille-Implementierung, die jeder zum ersten Mal produzieren würde, wenn er etwas darüber lernte.
Dies zeigt, wie wichtig es ist, Verzögerung und Verzögerungsvariabilität herauszudrücken. Sicher, die Ableitungskontrolle kann eine Art "Sekanten- / Tangens" -Idee der Vorhersage liefern. Aber nichts ersetzt es, die Verzögerungen zu verringern und die Variabilität auf ein absolutes Minimum zu beschränken.
Denken Sie einfach weiter an die Bambusstange und das Lochproblem im Vogelhaus.
Fazit?
Die Steuerung von Systemen mit einer dominanten Zeitverzögerung ist bekanntermaßen schwierig. Ich habe einige Gründe vorgeschlagen, die Sie vielleichtglauben, dass ein abgeleiteter Begriff bei Zeitverzögerungen helfen wird. Es besteht jedoch allgemeine Übereinstimmung darüber, dass abgeleitete Maßnahmen bei Prozessen mit dominanten Zeitverzögerungen nicht viel helfen. Aus diesem Grund hatte ich sofort vorgeschlagen, diesem Forscher zu helfen, indem ich alle Verzögerungen beseitigte, die ich leicht beseitigen konnte (wie zum Beispiel eine externe PID-Box). Ich stellte mir nicht vor, dass meine Implementierung besser war als das kommerzielle Produkt. Ich wusste, dass meine Implementierung nicht annähernd so gut überprüft werden würde. Cripes, ich musste es von Grund auf neu schreiben, testen und installieren und ein Gerät mit neu hinzugefügter Software ausliefern, die es noch nie zuvor gegeben hatte, und das alles in einer Woche erledigen. Aber ich wusste auch, dass die Verzögerung alle Chancen tötete, die dieser Forscher hatte, um die gewünschten Ergebnisse zu erzielen. Ich wusste also sofort, dass der beste Ansatz darin bestand, die Verzögerungen zu beseitigen und keinen "brillant" implementierten magischen PID-Code zu erfinden, dem nur ein Genie folgen konnte. Es geht in erster Linie um die Verzögerungen und wie diese Verzögerungen variieren. Der Rest hat eine viel niedrigere Priorität.
Es gibt einige Dinge, die als "Totzeitkompensatoren" bezeichnet werden. Letztendlich müssen Sie jedoch alles tun, um Verzögerungen zu beseitigen und die Variabilität dieser Verzögerungen zu verringern. Und dann, nachdem Sie alles getan haben, was Sie können, benötigen Sie wahrscheinlich immer noch komplexere Steuerungen, als es eine PID zulässt, wenn es immer noch ein Problem gibt. Hier würde ich vielleicht nach Fourier-Transformationen greifen (und eine inverse Transformation verwenden, um die Sprungantworten zu analysieren und eine Beschreibung der Systemantworten zu entwickeln). Mit diesen können Sie viel anfangen, was mit PID nicht berührt werden kann. Fast wundersame Ergebnisse, wenn Sie die Antwortfunktion gut genug modellieren können.
Aber in Ihrem Fall würde ich mich darauf konzentrieren, Verzögerungen und deren Variabilität herauszufiltern. Ich denke, Sie sollten nach Möglichkeit auch die Verwendung einer vereinfachten Ein- / Ausschaltlampensteuerung vermeiden. Es wäre schön, wenn Sie die Lampenintensität steuern könnten. Aber ich weiß nicht, ob Sie das in Betracht ziehen können.
quelle
Dies beantwortet Ihre Frage nicht direkt, bietet Ihnen jedoch einige Tools, mit denen Sie spielen können, um Ihr Verständnis zu verbessern.
Bei Engineers-Excel gibt es einen einfachen Excel-Simulator, den Sie möglicherweise hilfreich finden.
Abbildung 1. PID-Simulatormodell.
Der schwierige Teil besteht darin, Ihren Prozess - den Ofen - zu modellieren, um die K - Prozessverstärkung, Ts - die Reaktionszeitkonstante und Ls - die Reaktionsverzögerung zu ermitteln. Ich schlage vor:
Danach können Sie mit den PID-Parametern spielen, um zu sehen, ob Sie die gewünschte Antwort erhalten.
Einige wilde Vermutungen anstellen:
Abbildung 2. Ausgabe des Excel PID-Simulators.
Sie kommen im Allgemeinen mit einem Null-D-Term davon, wenn bei Ihrem Prozess keine Störungen wie plötzliche Änderungen des Sollwerts oder plötzliche Änderungen der thermischen Belastung auftreten können. Das vereinfacht die Einrichtung bis hin zur Einrichtung einer PI-Steuerung.
Zum Heizen können Sie eine proportionale Leistung erhalten, indem Sie die Leistung relativ zur thermischen Reaktionszeit ausreichend schnell vollständig ein- und ausschalten.
Abbildung 3. Variabler Arbeitszyklus für die Wechselstromregelung eines Heizgeräts.
quelle
In PID gibt es 3 Teile: Proportional, Integral und Derivativ.
Proportional ist der einfachste Controller. Es verstärkt den Fehler zwischen gewünschtem und tatsächlichem Signal. Wenn beispielsweise die gewünschte Temperatur 100 ° C beträgt, die tatsächliche Temperatur 80 ° C beträgt, ist der Ausgang = 20 * Kp. Wie viel Ausgabe gegeben wird, wird durch Kp eingestellt.
Wenn Sie Kp zu niedrig einstellen, ist die Heizung nicht ausreichend und die gewünschte Temperatur wird möglicherweise nie erreicht.
Wenn Sie Kp zu hoch einstellen, kann es zu schnell ansteigen. Trägheit kann zu Überschwingen und Klingeln führen. Das liegt daran, dass es eine Verzögerung zwischen der Angabe einer bestimmten Ausgangsleistung und der Messung ihrer Wirkung gibt.
Der integrale Teil ist erforderlich, wenn Sie niedrige statische Offsets wünschen. Beachten Sie, dass ein P-Regler, um eine Ausgabe zu liefern, einen Fehler aufweisen muss, um einen Ausgabewert zu generieren. Wenn der Fehler sehr nahe bei Null liegen soll, muss der I-Teil von P übernommen werden. Dies kann jedoch einige Zeit dauern.
Der abgeleitete Teil ist wahrscheinlich am interessantesten für Ihr Trägheitsproblem. Die Ableitung betrachtet die Änderungsrate des Fehlers. Wenn sich der Fehler stark ändert, bedeutet dies, dass eine hohe Trägheit vorliegt. Mit einem eingestellten Faktor Kd können Sie sicherstellen, dass der Ausgang in der Zeit zurückdrosselt. Dies ist so, dass die Trägheit langsamer wird, bevor sie den endgültigen Ausgangswert erreicht.
Dies ermöglicht es Ihnen, einen hohen (er) P-Faktor für eine ausreichend aggressive Reaktion zu verwenden, während Sie D verwenden, um ein Überschwingen zu verhindern. Der I-Teil wird verwendet, um einen statischen Fehler zu machen, der sich schließlich auf 0 setzt.
quelle