Ich baue meinen eigenen mikroprozessorgesteuerten Reflow-Ofen für Bastler. Ich verwende (mechanische) Relais, um die Heizungen (dh Quarzröhren) ein- oder auszuschalten. Ich habe festgestellt, dass die Erwärmung einige Sekunden verzögert, bevor die Temperatur zu steigen beginnt.
Im Moment verwalte ich das Temperaturprofil manuell mit Hilfe eines Arduino, der die Heizungen einfach ausschaltet, wenn die eingestellte Temperatur erreicht ist. Wenn ich zum Beispiel die Temperatur auf, sagen wir, 120° Celsius einstelle und die Heizungen stoppen, steigt die Temperatur immer noch um 10-20 Grad, so dass es ziemlich viel Überschwingen gibt, dann ein 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 die Heizungen einfach stoppen, etwa 10-20 Grad unter dem eingestellten Wert, und sie danach in kurzen Zeiträumen 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 weiß um die exponentielle Natur des Temperaturanstiegs mit einem festen Sollwert.
Kann also jemand in Laiensprache erklären, wie ein PID die Trägheit berücksichtigt, zB welche Rolle der integrale Teil und was der abgeleitete Teil in einfachen Worten spielt, sowie wie / ob ich ziemlich intuitiv eine Schätzung der Ableitung und des Integrals herausfinden kann Mengen ohne komplizierte Berechnungen.
Ich musste + Glens Kommentar. Er hat sein Gehirn immer am richtigen Ort, IMHO. Nichts ist schwieriger in einer PID zu handhaben als a Verzögerung. Ich beschäftige mich seit Jahren auf die eine oder andere Weise mit lampenbeheizten Temperaturregelungen für IC-Wafer-FABs. Lassen Sie mich mit einem Überblick über PID beginnen und ein wenig darüber sprechen, wo es NICHT so nützlich sein wird wie in anderen Fällen. Ich werde auch einen von vielen anderen Bereichen von Kontrollmethoden vorschlagen, die Sie ebenfalls erkunden könnten, aber mit einer Priorität von Schritten, die Sie zuerst unternehmen sollten, bevor Sie woanders hingehen.
Der kanonische Ausdruck für die PID-Regelung lautet:
Bei den Reglerparametern handelt es sich um die Proportionalverstärkung , integrale Zeit , und Ableitungszeit .
Die obige Beschreibung, hinzugefügt zu Ihrer eigenen Beschreibung Ihres Problems einer Verzögerung, würde darauf hindeuten, dass Ihnen ein abgeleiteter Begriff helfen würde. Aber wie immer ist nichts unbedingt so einfach.
Eine Proportional-Integral-Regelung 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 Steuerung erfordert, selbst wenn er nicht von 1. Ordnung ist.
Für Prozesse, bei denen die Dynamik 2. Ordnung vorherrscht, reicht die PID-Regelung aus. Hier ist häufig eine Temperierung der Fall. Also noch einmal, dies spricht vielleicht dafür, in Ihrer Situation eine derivative Kontrolle hinzuzufügen.
Jedoch. Alle oben genannten Punkte sollten erst berücksichtigt werden, nachdem Sie alles andere getan haben, um einige Dinge zu verbessern:
Auf diesen letzten Punkt möchte ich etwas näher eingehen. Stellen Sie sich die 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 jederzeit schnell und einfach tun. Aber wenn die Bambusstange lang und das Vogelhaus weit von Ihnen entfernt ist, ist es sehr, sehr schwer. Die Stange wandert ständig herum und macht Ihre Vorhersage und Kontrolle sehr schwierig.
(Wenn es nicht schon klar ist, die Länge der Bambusstange ist wie die Loop-Verzögerungszeit.)
Verzögerung ist also wahrscheinlich der SCHLECHTESTE ALBTRAUM von Kontrollsystemen. 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 nun dieselbe Situation vor. Aber jetzt ändert sich auch die Bambusstange ständig in der Länge. Manchmal ist es kürzer, manchmal länger, und es ändert sich ständig ohne Vorhersage Ihrerseits. Sie müssen jetzt ständig Ihre Haltung ändern, und Sie wissen nie, wann sich die Verzögerung ändert. 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 kontrolliert.
Während also die Verzögerung für ein PID-Regelsystem schlimm genug ist. Variable Verzögerung ist sogar noch schlimmer. Daher müssen Sie Ihrem Softwaredesign strenge Aufmerksamkeit schenken – sehr strenge Aufmerksamkeit –, damit Sie keine IF-Anweisungen und bedingten Berechnungscode oder schlampige Verwendung von Timern usw. haben, die alle zu erheblichen Abweichungen in der führen können Verzögerung zwischen Abtast- und Steuerausgang.
Sie müssen das oben Gesagte in das Management einbringen, bevor Sie sich DANN Gedanken darüber machen, ob Sie eine derivative Kontrolle benötigen oder nicht. Das wichtigste zuerst. Bereinigen Sie Ihre Handlung. 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 extrem genauen Pyrometersystem (auch sehr teuer für Kunden). Ich erhielt einen Anruf von einem kanadischen Forscher, der mit unserem Pyrometer arbeitete, aber einen separaten PID-Regler von einem sehr großen kommerziellen Unternehmen (dem größten in die Welt, die diese Dinge tut.) Der Forscher kämpfte mit Wellen an der Seite einer Galliumarsenidkugel, die er aus einer Schmelze zog. Und wollte meine Hilfe dabei, die richtigen PID-Regelvariablen herauszufinden. (Beim Boule-Ziehen möchte man sehr gleichmäßige Durchmesser.)
Der Controller, den er benutzte, war nach allen Maßstäben ziemlich gut. Aber es fügte Verzögerungen hinzu – 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 die PID-Regelung zur Software in unserem Pyrometer hinzufügen würde und dass er einfach den externen Regler von dem System ziehen sollte, das er benutzte. Ich fügte diese Software in weniger als einer Woche hinzu und schickte ihm das modifizierte Pyrosystem. Ich habe nichts Besonderes mit der PID-Software gemacht. Ich habe jedoch meine Variabilität in ADC zu DAC auf weniger als ein paar Mikrosekunden gehalten und die Gesamtverzögerung ebenfalls auf etwa 100 Mikrosekunden verschärft. Ich habe ihm das geschickt.
Am Montag nächster Woche erhielt ich einen Anruf. Die Kugeln zogen fast perfekt heraus, ohne jegliche Welligkeit.
Es war so einfach, nur die Verzögerungen zu reduzieren und auch die Variabilität dieser Verzögerungen zu reduzieren. Überhaupt nichts Besonderes an der PID-Regelung. Es war eine simple Vanilla-Implementierung, die jeder produzieren würde, wenn er zum ersten Mal davon erfährt.
Dies veranschaulicht die Bedeutung des Herausdrückens von Verzögerung und Verzögerungsvariabilität. Sicher, die abgeleitete Steuerung kann eine Art "Sekante/Tangente"-Idee der Vorhersage liefern. Aber nichts ersetzt es, die Verzögerungen zu reduzieren und die Variabilität auf ein absolutes Minimum zu beschränken.
Denken Sie nur immer an die Bambusstange und das Problem mit den Vogelhäuschen.
Fazit?
Die Steuerung von Systemen mit einer dominanten Zeitverzögerung ist notorisch schwierig. Ich habe einige Gründe vorgeschlagen, die Sie könntenglauben, dass ein abgeleiteter Begriff bei Zeitverzögerungen hilft. Es besteht jedoch allgemeine Übereinstimmung darüber, dass die Ableitungswirkung bei Prozessen mit dominanten Zeitverzögerungen nicht viel hilft. Aus diesem Grund hatte ich sofort vorgeschlagen, diesem Forscher zu helfen, indem ich alle Verzögerungen beseitigte, die ich leicht entfernen könnte (wie zum Beispiel eine externe PID-Box). Ich hatte mir nicht vorgestellt, dass meine Implementierung besser war als das kommerzielle Produkt. Ich wusste, dass meine Implementierung nicht annähernd so gut geprüft sein würde. Verdammt, ich musste es von Grund auf neu schreiben, testen und installieren und eine Einheit mit neu hinzugefügter Software ausliefern, die noch nie zuvor darin war, und das alles in einer Woche. Aber ich wusste auch, dass die Verzögerung alle Chancen zunichte machte, die dieser Forscher hatte, um die gewünschten Ergebnisse zu erzielen. Ich wusste also sofort, dass der beste Ansatz darin bestand, die Verzögerungen herauszupressen 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 geringere Priorität.
Es gibt einige Dinge, die "Totzeitkompensatoren" genannt werden. Aber letztendlich müssen Sie alles tun, um Verzögerungen und Variabilität in diesen Verzögerungen herauszuziehen. Und dann, nachdem Sie dort alles getan haben, was Sie können, und wenn es immer noch ein Problem gibt, benötigen Sie wahrscheinlich ausgefeiltere Steuerungen, als eine PID zulässt. 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). Sie können damit viel machen, was mit PID nicht zu erreichen ist. In der Tat 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 ihre Variabilität herauszudrücken. Ich denke, Sie sollten, wenn möglich, auch die Verwendung einer vereinfachten Ein / Aus-Lampensteuerung vermeiden. Es wäre schön, wenn man die Lampenintensität steuern könnte. Aber ich weiß nicht, ob du das in Betracht ziehen kannst.
Dies beantwortet Ihre Frage nicht direkt, gibt Ihnen aber einige Werkzeuge, 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 knifflige Teil besteht darin, Ihren Prozess – den Ofen – zu modellieren, um 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.
Ein paar wilde Vermutungen anstellen:
Abbildung 2. Ausgabe des Excel-PID-Simulators.
Sie kommen im Allgemeinen mit einem Null-D-Term davon, wenn Ihr Prozess wahrscheinlich keine Störungen wie eine plötzliche Änderung des Sollwerts oder eine plötzliche Änderung der thermischen Belastung erfährt. Das vereinfacht die Dinge bis hin zu einem PI-Regelungsaufbau.
Zum Heizen können Sie eine proportionale Leistung erhalten, indem Sie die Leistung im Verhältnis zur thermischen Ansprechzeit ausreichend schnell vollständig ein- und ausschalten.
Abbildung 3. Variabler Arbeitszyklus für die AC-Steuerung einer Heizung.
In PID gibt es 3 Teile: Proportional, Integral und Differential.
Proportional ist die einfachste Steuerung. Es verstärkt den Fehler zwischen Soll- und Ist-Signal. ZB wenn Solltemperatur 100°C ist, ist Isttemperatur 80°C, dann Ausgang = 20 * Kp. Wie viel Leistung abgegeben wird, wird von Kp abgestimmt.
Wenn Sie Kp zu niedrig einstellen, wird nicht ausreichend geheizt und es wird möglicherweise nie die gewünschte Temperatur 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 Abgabe einer bestimmten Ausgangsleistung und der Messung ihrer Wirkung gibt.
Der integrale Teil ist notwendig, wenn Sie niedrige statische Offsets wünschen. Beachten Sie, dass ein P-Regler, um einen Ausgang zu geben, einen Fehler aufweisen muss, um einen Ausgangswert zu erzeugen. Wenn Sie möchten, dass der Fehler sehr nahe bei Null liegt, müssen Sie den I-Anteil von P übernehmen. 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 der Fehler eine große Änderungsrate aufweist, bedeutet dies, dass eine hohe Trägheit vorhanden ist. Mit einem abgestimmten Faktor Kd können Sie dafür sorgen, dass der Ausgang rechtzeitig zurück gedrosselt wird. Dadurch verlangsamt sich die Trägheit, bevor sie den endgültigen Ausgangswert erreicht.
Auf diese Weise können Sie einen hohen (höheren) P-Faktor für eine angemessen aggressive Reaktion verwenden, während Sie D verwenden, um ein Überschwingen zu verhindern. Der I-Teil wird verwendet, damit der statische Fehler schließlich auf 0 sinkt.
Analogsystemerf
Benutzer59864
glen_geek
mkeith
Transistor
mkeith
Transistor