NEWS
Test Adapter pid (pid-Regler) V1.0.x
-
@fu_zhou sagte: Heißt dass, dass sich der Reglerausgang (Stellwert) halbiert, wenn ich Max halbiere, z.B. durch ein Skript
Ja, Min und Max sollten konstante Parameter sein wie auch Tn und Tv. Soll eine variable Max-Begrenzung erfolgen, sollte dies im Anschluss mit dem Stellsignal passieren.
-
@mcm57 für mich ganz klar Kp - aus oben angeführtem Grund.
-
Welchen Vorteil bringt es min / max hier zwingend als fixen Regelparameter zu sehen?
Wenn ich nachher nochmals begrenze hab ich doch nur zusätzlichen Aufwand. Und da xp in kp leicht umrechenbar ist und min / max sonst keinen Einfluß auf die Regelung haben, seh ich da wenig Vorteile. -
@mcm57
https://de.wikipedia.org/wiki/Regler#PID-Regler
und auch deine Formel hier (https://forum.iobroker.net/topic/64250/test-neuer-adapter-pid-pid-regler-v0-0-1-alpha-x/28) verwenden nur kp und sind damit unabhängig von min/max Werten.
Wo kommt das xp her?
Und welchen Vorteil bringt es via xp statt via kp einzustellen? -
@mcm57 sagte Wenn ich nachher nochmals begrenze hab ich doch nur zusätzlichen Aufwand.
Eine variable Maximalbegrenzung ist keine typische Funktion eines PID-Reglers. Als Bestandteil des Reglers dürfte sie sehr selten verwendet werden. Bei Xp gibt es viele Erfahrungswerte zur Voreinstellung bevor man optimiert.
-
@paul53 Mhm... das ist jetzt eine Frage der Philosophie... Selbst Tn und Tv sind in manchen Fällen dynamisch zu beschalten, weil sich die Regelstrecke im Heizfall anders verhält als im Kühlfall - gut, die Frage ist, wie relevant das im Smarthome-Umfeld ist, aber die Möglichkeit zu haben, schadet ja nicht.
-
@fu_zhou sagte: die Möglichkeit zu haben, schadet ja nicht.
Viele Möglichkeiten führen zu vielen Fragen unerfahrener Anwender.
-
@paul53 Aber Kp scheint mir für den unerfahrenen wie erfahrenen Anwender nachvollziehbarer, weil das ändern von Min und Max keinen Sprung am Reglerausgang verursacht. Und selbst wenn Min und Max mit statischen Werten versehen wird, wird ja die Funktionalität des Reglers durch Kp anstatt Xp nicht beeinträchtigt.
-
@paul53 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
Soll eine variable Max-Begrenzung erfolgen, sollte dies im Anschluss mit dem Stellsignal passieren.
Wenn der Regler Max bei 100% hat und ich das Stellsignal bei 50% begrenze, läuft der Regler ja bei entsprechender Regelabweichung weiter Richtung 100%. Dieses "Überschießen" muss ja wieder abgebaut werden, wenn sich das Vorzeichen der Regelabweichung ändert, was ja dauern kann (Wind-Up). Außer ich halte den Regler an, wenn der Ausgang > Begrenzung Stellsignal ist, sonst weiß der Regler ja nix von der Stellgliedbegrenzung = zusätzlicher Aufwand. Vielleicht sollte der Adaptername präzisiert werden: "PID-Regler mit Stellsignalaufbereitung"
-
@mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
Welchen Vorteil bringt es min / max hier zwingend als fixen Regelparameter zu sehen?
Wenn ich nachher nochmals begrenze hab ich doch nur zusätzlichen Aufwand. Und da xp in kp leicht umrechenbar ist und min / max sonst keinen Einfluß auf die Regelung haben, seh ich da wenig Vorteile.Also in der Praxis möchte man bspw. bei Tests den Max oder Minwert verändern und wenn der Regler dann nicht schon in der Begrenzung ist, sollte sich definitiv nicht die Stellgröße davon beeinflussen lassen.
Max und Min sollten immer als letzte Begrenzung einspringen. nicht schon in der grundlegenden Berechnung. -
@mcm57 gibt es schon Änderungen, oder ist die erste Version noch aktuell?
-
@ben1983
Neuer Version ist in Arbeit. Ich geb Bescheid wenn was auf Github zum Testen kommt. -
Ok, es gibt bezüglich xp/kp verscheidene Meinungen und Arbeitsansätze.
Bezüglich Tn7Tv scheint Einigkeit zu herrschen.Da ich es immer allen Recht machen will werde ich jetzt mal folgendes Umsetzen
Kp / Tn / Tv System als Default
Xp / Tn / Tv System als wählbare Option - aber nur auf Instanzebene umschaltbar, nicht für den einelnen ReglerMin/Max werden zwingende Parameter mit Default 0 / 100
Fast alle Reglerparameter werden im ersten Ansatz via GUI eingestellt. Die Paramater stehen auch als States RO) zur Verfügung. Optional wird die Einstellung via States (RW) umgesetzt - bei Aktivierung ist die Einstellung via GUI ausgeblendet.
Ausnahme ist die Zykluszeit des Reglers. Die wird nur via GUI einstellbar bleiben. Ich sehe auch keinen technischen Grund diese im laufenden Betrieb zu ändern. Hier wird man ja meist eine Zeit wählen die rasch genug für das System ist aber nicht unnötig den Rechner belastet.
McM
P.S. Über eine Verknüfpung mit fremden States als input / output denk ich nach - aber erst für V2.
Und ja was den Zeitrahmen betrifft:
Hoffe am Wochenende zum Test einladen zu können.
Hab grad aktuellen Fehler im envertech-pv Adapter zu beheben. Das er schon weiter im Testing ist, hat das im Moment prio. Sollte aber heute erledigt sein. -
wobei man Min auch < 0 wählen können sollte, während du Kp und Xp > 0 machen möchtest aber einen Invertiereingang zur Verfügung stellst. Was passiert eigentlich, wenn man Min auf -100 setzt und Max auf 0? Startet der Regler dann bei -100, also bei Min? Was passiert bei -100 für Min und +100 für Max? Startet der Regler dann in der Mitte, also bei 0? Der Regler muss, wenn er erstmals startet, immer mit einem Reglerausgang = 0 starten, also ohne Ansteuerung eines Stellglieds, unabhängig, wie die Grenzen eingestellt sind. Ich denke, das ist schon so gelöst.
Mit Min = -100 und Max = 0 bekommt man quasi auch eine Invertierung hin, oder?
-
@fu_zhou sagte: Mit Min = -100 und Max = 0 bekommt man quasi auch eine Invertierung hin, oder?
Nein, nur eine Verschiebung des Ausgangs.
@fu_zhou sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
Was passiert bei -100 für Min und +100 für Max? Startet der Regler dann in der Mitte, also bei 0?
Ja.
@fu_zhou sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
Der Regler muss, wenn er erstmals startet, immer mit einem Reglerausgang = 0 starten
Weshalb? Ein Regler startet mit dem Wert, den ein P-Regler liefern würde. Der I-Anteil startet mit 0.
-
@paul53 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
Weshalb? Ein Regler startet mit dem Wert, den ein P-Regler liefern würde.
Ich glaube, wir meinen das Selbe: Der Regler wird freigegeben (hier: die Adapter-Instanz wird gestartet und der Regler ist mit "Automatischer Start" = 1 parametriert) und die erste Reaktion ist dann die Antwort des P-Anteils auf Änderung von Soll- oder Istwert aber ab 0, nicht ab Min oder dem Mittelwert zwischen Min und Max. Ein Stoppen des Reglers (z.B. über die Instanz) lässt den Regler wieder bei 0 starten, während ein HOLD nur die Neuberechnung des Ausgangs pausiert und wenn HOLD wieder aufgehoben wird, macht der Regler da weiter, wo er stand.
-
@mcm57
@mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
P.S. Über eine Verknüfpung mit fremden States als input / output denk ich nach - aber erst für V2.
Das ist ein gutes Feature, finde ich, spart dann die Aktualisierung des Objektes über z.B. Blockly.
-
@mcm57 falls ich Verwirrung gestiftet habe mit "Regler startet bei 0": Das passiert so schon in der alpha.2. Wenn die Instanz gestoppt und wieder gestartet wird, werden alle Werte auf Null / 0 gesetzt und von da geht es dann wieder los.
-
@fu_zhou
Min und Max werden nicht aktiv begrenzt. JS Number-Range sollte reichen
0 / 100 sind nur defaults falls nichts (sinnvolles) angegeben wird.Regler startet immer mit dem P Anteil (act - set)*kpI + offset, oder anders gesagt Integralsummierer ist beim ersten Durchlauf 0, diffenrenzierer detto. Aber ich nehme mal an, das meinst du auch so. Ein expliziter "0" Startwert wäre extra Aufwand und durch den zwangsweise nachfolgenden Sprung um nichts sinnvoller als ein erster Berechneter Wert
Hold suspendiert nur die Berechnungen, resetted aber nicht
Reset setzt Integralteil retour
Instanz stoppen / restarten sollte (bei unveränderten Paramatern) analog wie reset sein, d.h. Integralteil wird resetted. Hier einen extra Merker einzuführen wär aufwandig und der Restart eines "echten Regler" (Strom aus/ein) würde auch keine Integralteile speichern.
-
@mcm57 einwandfrei!