NEWS
Test Adapter pid (pid-Regler) V1.0.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.@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.
-
@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.
@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.
-
@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 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" ;-)
-
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 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 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 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.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. -
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?
-
đ 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.
-
@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.
-
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.@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.
-
đ 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?
-
đ 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
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.
-
@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.
-
Ich hab eine neue Version 0.0.2-alpha.1 erstellt.
Was ist neu?
-) wahlweise xp/tn/tv oder kp/tn/tv Konfiguration
-) wahlweise BerĂŒcksichtigung von setpoint beim Differenzialanteil
-) alle Parameter ausgenommen cycle time alternativ von gui oder statesWenn wer Lust hat, bitte Testen.
Meinerseits ist die Testtiefe noch sehr gering - das geb ich offen zu. Auf Grund der regen Diskussion letzte Woche, möchte ich allerdings es auch euch so frĂŒh wie möglich anbieten zu testen.
FĂŒr jedes Feedback bin ich dankbar.
McM
P.S: Doku ist noch nicht aktualisisiert, gui sollte aber selbsterklÀrend sein,
-
Hut ab - alleine fĂŒr die neuen Optionen in der Instanz-Konfiguration. Begebe mich mal ans Testen...
Der Adapter tut erst mal alles, wie erwartet - echt stark! Habe bisher allerdings nur mit der Kp Konfiguration gespielt und D Anteil nur auf Ist.
Mir ist aufgefallen:- Kp kann in den Objekten auch negativ angegeben werden und der Regler reagiert dann invertiert - fĂŒr mich erwartet und in Ordnung. Aber: Bei negativem Kp startet der Adapter bei Instanz-Neustart nicht mehr mit entsprechendem Hinweis im Log/ Protokoll
- wird "man" aktiviert, bleibt der Reglerausgang stehen, es wird nicht "man_inp" auf den Ausgang geschrieben, aber im Hintergrund ermittelt der Regler weiter einen neuen Wert fĂŒr "y", auf den der Regler dann springt, sobald man "man" wieder deaktiviert - aber mit "man" wolltest du ja spĂ€ter erst weitermachen... aber "man" sollte im Hintergrund quasi "run" auf "false" setzen, oder?
- WĂ€re ggf. noch eine Ebene mit Ordnern sinnvoll, um die States/ Objekte zu sortieren/ gruppieren? Die sind jetzt komplett alphabetisch sortiert. Ich wĂŒrde da irgendwie an "Config static" (z.B. mit dao, cycle time, useXp, ...) - "Config dynamic" (z.B. Kp, Xp, Tn, Tv, off, sup, ...) "Input/Output" (z.B. mit act, y, ...) - "Statistic" (z.B. mit i_**, last_*, ...) denken.
- Vorhin war der eine Regler, den ich konfiguriert habe in den Objekten rot mit (!) daneben, das scheint mit dem erreichen von min/max (lim: true) zusammenzuhÀngen. Ist das Absicht?
- Bei Neustart der Adapter-Instanz bleibt das eingestellte "max" erhalten, wÀhrend "min" auf 0 gesetzt wird, auch "off" wird genullt. Ich denke, es sollten sÀmtliche Werte bei Adapter-Neustart erhalten bleiben.
- Wenn man Kp eingibt, wird ein Xp berechnet (unter BerĂŒcksichtigung von min und max) und angezeigt. Wenn man Xp eingibt, wird das entsprechende Kp dazu berechnet und der Regler macht einen Sprung basierend auf dem neuen Kp, auch wenn "UseXp" "false" ist. Ist eigentlich logisch, das mus der Anwender sicherstellen, dass bei Xp nichts reingeschrieben wird, wenn er Kp verwendet. Allerdings wird Xp nur bei Ănderung von Kp ermittelt, wird nur min oder max verĂ€ndert, wird Xp nicht automatisch neu ermittelt, erst wenn man Kp noch mal bestĂ€tigt. Durch die automatischen Berechnungen sieht man schön den Zusammenhang zwischen Kp, Xp und min/max.
- Ist "sup" schon implementiert? Hier gibt es auch nur positive Werte, man kann aber einen negativen Wert eintragen. Ist der Betrag der Regelabweichung < als der Wert von "sup" wird aktuell trotzdem der Ausgang y verÀndert.
-
beim pausieren des Reglers ĂŒber "run" = "false" passiert das gleiche, wie bei "man" = "true": der Regler ermittelt im Hintergrund fortlaufend ein neues "y", auf das dann gesprungen wird, sobald "run" wieder "true" ist. Der Regler mĂŒsste auf dem letzen Wert vor dem Pausieren aufsetzen (z.B. wird die Regelabweichung bei "run" = "false" intern auf 0 gesetzt).
-
Nochmal zur Umrechnung Xp -> Kp und umgedreht:
@mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
Kp = (MaxOut - MinOut) / Xp
d.h. umso gröĂer Xp wird, umso kleiner wird Kp. Aktuell wird aber bei MaxOut von 100 und MinOut von 0 bei einem Xp von 100 ein Kp von 10000 berechnet. Hier hĂ€tte ich ein Kp von 1 erwartet (100-0)/100.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden