Forum: Mikrocontroller und Digitale Elektronik PD-Regelkreis mit Vorschau?


von Looper (Gast)


Lesenswert?

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!

von Mo (Gast)


Lesenswert?

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.

von Olaf (Gast)


Lesenswert?

> 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

von Looper (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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.

von georg (Gast)


Lesenswert?

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

von georg (Gast)


Lesenswert?

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

von Looper (Gast)


Lesenswert?

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?

von Simon (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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.

von Hexe (Gast)


Lesenswert?

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

von Mo (Gast)


Lesenswert?

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.

von Looper (Gast)


Lesenswert?

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!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.