Hi,
fertige und ausgereifte/getestete Quellcodes/Bibliotheken für P(I)D
Regelkreise gibt es ja genügend. Allerdings habe ich jetzt hier einen
konstanten Datenstrom von Sollwerten mit festen zeitlichen Abständen t.
D.h. wenn ich diese Werte erst mal durch einen kleinen Ringbuffer
schiebe, hätte ich zwei Sollwerte:
1. den aktuellen Sollwert (Ringbuffer Position 0), wie er exakt zu
momentanen Zeitpunkt sein soll
2. einen kommenden Sollwert (Rungbuffer Position 0+n), wie er zu einem
kommenden Zeitpunkt t*n anstehen soll.
Meine Überlegung: kann es für einen Regelkreis nicht von Vorteil sein,
zu wissen, welcher Sollwert in der Zukunft gefordert sein wird und
resultierend daraus zu wissen, wie weit/stark vom aktuellen Sollwert aus
ausgesteuert werden muss, um diesen zukünftigen Wert effektiv zu
erreichen?
Gibt es für diese Aufgabenstellung eventuell schon fertige Bibliotheken
oder habe ich hier einen Denkfehler, so dass das gar keinen Sinn machen
würde?
Danke!
Hallo
Nun in dem Fall unterscheidet man zwischen Regelung (nur die
Rückführung) und Vorsteuerung. In der Vorsteuerung werden dann
zukünftige Sollwerte mitberücksichtigt. Diese ist unabhängig von deinem
(PID...) Regler.
> fertige und ausgereifte/getestete Quellcodes/Bibliotheken für P(I)D> Regelkreise gibt es ja genügend.
Aehem..ja Bibliotheken fuer eine Zeile Quellcode. Warum wundert mich das
jetzt nicht?
> Allerdings habe ich jetzt hier einen> konstanten Datenstrom von Sollwerten mit festen zeitlichen Abständen t.
Wieso erstaunt dich das? Ein fester Abtastzeitpunkt ist wesentlich weil
er deine Regelparameter gewichtet.
> D.h. wenn ich diese Werte erst mal durch einen kleinen Ringbuffer> schiebe, hätte ich zwei Sollwerte:
Du willst eine zusaetzliche Zeitkonstante in deinen Regelkreis einfuegen
weil dir sonst die Regelung zu einfach waere? Kann man machen, muss man
aber nicht.
> Gibt es für diese Aufgabenstellung eventuell schon fertige Bibliotheken
Du brauchst keine fertigen Bibliotheken sondern ein Grundlagenbuch ueber
Regelungstechnik weil es dir am Grundverstaendnis fehlt.
Olaf
Olaf schrieb:>> fertige und ausgereifte/getestete Quellcodes/Bibliotheken für> P(I)D>> Regelkreise gibt es ja genügend.>> Aehem..ja Bibliotheken fuer eine Zeile Quellcode. Warum wundert mich das> jetzt nicht?
Eine Zeile für einen PID-Regler? Na dann kannst du die hier ja mal
posten...
>> Allerdings habe ich jetzt hier einen>> konstanten Datenstrom von Sollwerten mit festen zeitlichen Abständen t.>> Wieso erstaunt dich das? Ein fester Abtastzeitpunkt ist wesentlich weil> er deine Regelparameter gewichtet.
Lesen hilft: es geht um die Sollwerte, nicht um die Abstastung der
Istwerte.
>> D.h. wenn ich diese Werte erst mal durch einen kleinen Ringbuffer>> schiebe, hätte ich zwei Sollwerte:>> Du willst eine zusaetzliche Zeitkonstante in deinen Regelkreis einfuegen> weil dir sonst die Regelung zu einfach waere? Kann man machen, muss man> aber nicht.
Nein, will ich nicht - siehe oben.
>> Gibt es für diese Aufgabenstellung eventuell schon fertige Bibliotheken>> Du brauchst keine fertigen Bibliotheken sondern ein Grundlagenbuch ueber> Regelungstechnik weil es dir am Grundverstaendnis fehlt.
Und du brauchst einen Grundkurs "Lesen", weil du den elementaren Teil
meiner Frage einfach nicht verstanden hast.
Olaf schrieb:> Du willst eine zusaetzliche Zeitkonstante in deinen Regelkreis einfuegen> weil dir sonst die Regelung zu einfach waere?
Das wäre keine Zeitkonstante, wie sie in linearen Systemen völlig normal
ist, sondern eine Totzeit.
Damit kommt ein linearer PID Regler überhaupt nicht gut zurecht, weil
sich Totzeiten nicht durch gewöhnlichen Differentialgleichungen
beschreiben lassen.
Die Frage ist, was Du willst.
In der Regel will man, daß solange auf den alten Sollwert geregelt wird,
bis der neue vorgegeben wird und sich nicht schon früher ändert.
Looper schrieb:> so dass das gar keinen Sinn machen> würde?
Natürlich macht das Sinn (Deutschterroristen bitte weghören), ich habe
so etwas verwirklicht für ein medizinisches Bad, bei dem Wasser im
Kreislauf gepumpt wurde und mit einer Art Durchlauferhitzer auf
Temperatur gebracht. Im Behandlungsbad trat die Temperaturerhöhung mit
einer Verzögerung von 30..60 Sekunden auf. Ich habe daher den
Temperaturverlauf in die Zukunft extrapoliert und auf diesen Wert
geregelt, mit einem parametrierbaren PID-Regler. Das Regelergebnis war
um eine Grössenordnung besser als mit einer Regelung nach der aktuellen
Badtemperatur, was für die medizinische Behandlung auch notwendig war.
Die Softwarestruktur ist eigentlich einfach: eine Vorhersage der
zukünftigen Temperatur - die ist massgebend für die Regelqualität. Und
mit diesem zukünftigen Wert einen PID-Regler füttern.
Für so etwas gibt es nicht nur keine Theorie, puristische Regeltechniker
lehnen so etwas sogar entschieden ab, weil es nicht in die schulmässigen
Modelle passt.
Georg
Peter D. schrieb:> In der Regel will man, daß solange auf den alten Sollwert geregelt wird,> bis der neue vorgegeben wird
Ergänzung: der Sollwert änderte sich bei meinem Gerät, die Temperatur
sollte linear ansteigen. Folglich wurde auch der Sollwert extrapoliert,
wie der in der Zukunft sein sollte war ja bekannt, und geregelt wurde
also mit Sollwert und Istwert aus der Zukunft.
Georg
Peter D. schrieb:> Die Frage ist, was Du willst.> In der Regel will man, daß solange auf den alten Sollwert geregelt wird,> bis der neue vorgegeben wird und sich nicht schon früher ändert.
Bei dieser Anwendung sieht es so aus, dass viele, sich ständig ändernde
Sollwerte geliefert werden. So lange so ein Sollwert aktuell ist, soll
er natürlich auch gehalten werden.
Meine Überlegungen sind jetzt folgende:
- vom Zeitpunkt der Vorgabe eines Sollwertes bis dieser wirklich
erreicht ist, benötigt jeder Regler eine gewisse Zeit. D.h. es kann für
meine Anwendung passieren, das zu dem Zeitpunkt, zu dem der letzte
Sollwert endlich erreicht wurde, möglicherweise schon ein neuer Sollwert
aktuell ist. Könnte ein Regelkreis das nicht ausgleichen, wenn er von
vorneherein schon weiß, welcher neue Sollwert demnächst ansteht?
- wenn ein neuer Sollwert zu schnell angefahren wird (unpassende
Reglerparameter), so kann das zu Überschwingern führen. Wenn jetzt aber
ein zukünftiger Sollwert in Richtung des Überschwingers liegt, wäre das
ja kein Problem, sprich der Regelkreis könnte den Überschwinger dann ja
akiv nutzen um gleich weiter "in die Zukunft" zu verfahren?
Hallo Looper,
insofern ich deine Frage richtig verstanden habe, wirst du unter dem
Begriff prädiktive Regelung bzw. predictive control fündig. Das hat dann
mit einem einfachen PID-Regler allerdings nicht mehr viel zu tun.
Ob bei einem PID-Regler die Kenntnis zukünftiger Sollwerte hilfreich
sein kann, weiß ich leider nicht.
Viel Erfolg beim Recherchieren und Implementieren.
LG Simon
georg schrieb:> Folglich wurde auch der Sollwert extrapoliert,> wie der in der Zukunft sein sollte war ja bekannt
Ist nur eine Ansichtssache. Man kann für die Regelung eine
Anstiegsgeschwindigkeit und den Endwert vorgeben. Dann wird quasi der
momentane Sollwert in kleinen Schritten entsprechend der geforderten
Kurve intern vorgegeben. Die Regelung interessiert sich nicht dafür,
sondern arbeitet als ganz normale PID-Regelung.
Looper schrieb:> Könnte ein Regelkreis das nicht ausgleichen, wenn er von> vorneherein schon weiß, welcher neue Sollwert demnächst ansteht?
Dann nimm meine Glaskugel. Hihihi
Looper schrieb:> - vom Zeitpunkt der Vorgabe eines Sollwertes bis dieser wirklich> erreicht ist, benötigt jeder Regler eine gewisse Zeit. D.h. es kann für> meine Anwendung passieren, das zu dem Zeitpunkt, zu dem der letzte> Sollwert endlich erreicht wurde, möglicherweise schon ein neuer Sollwert> aktuell ist. Könnte ein Regelkreis das nicht ausgleichen, wenn er von> vorneherein schon weiß, welcher neue Sollwert demnächst ansteht?>> - wenn ein neuer Sollwert zu schnell angefahren wird (unpassende> Reglerparameter), so kann das zu Überschwingern führen. Wenn jetzt aber> ein zukünftiger Sollwert in Richtung des Überschwingers liegt, wäre das> ja kein Problem, sprich der Regelkreis könnte den Überschwinger dann ja> akiv nutzen um gleich weiter "in die Zukunft" zu verfahren?
Die Aufgabe des Reglers ist es, das System zu stabilisieren, Störgrößen
auszugleichen und Modellierungsungenauigkeiten zu kompensieren. Für das
Folgen von Führungsgrößen wird dagegen keine Rückführung benötigt.
Ich empfehle dir, dich mit dem Konzept Vorsteuerung auseinander zu
setzen, welches genau für diese Aufgabe da ist, einem vorgegebenen
Verlauf zu folgen. Wenn man die beiden Probleme (Regelung +
Vorsteuerung) getrennt betrachtet macht man sich das Leben wesentlich
einfacher.
Regelung + Vorsteuerung führen dann zu dem von dir
prognostizierten/gewünschten Verhalten.
Simon schrieb:> insofern ich deine Frage richtig verstanden habe, wirst du unter dem> Begriff prädiktive Regelung bzw. predictive control fündig. Das hat dann> mit einem einfachen PID-Regler allerdings nicht mehr viel zu tun.
Das klingt doch mal interessant und vor allem richtig - Danke, ich werde
den Herrn Google mal ein wenig mit diesen Begriffen bemühen!