NEWS
Test Adapter pid (pid-Regler) V1.0.x
-
@mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
Bezüglich man/run
y ist nie ein Input und der Regler kann daher nach man=false / run = true etc. nicht "von y wegregeln". y ist das Ergebnis lt. den angegebenen Formeln, d.h. hängt primär von act - set und xp ab. Dazu kommt noch offset und integral / differentialanteil. Das bedeutet fast immer einen Sprung wenn mann man abschaltet. Wird run auf false gesetzt bleibt y stehen und sollte bei run = true nicht mehr springen als bei jedem Zeitintervall. (Das ist noch offen)Ja klar, verstehe. Wenn das implementiert wird das schon passen!
-
@fu_zhou
Danke. Offensichtlich hab ich ne andere Admin version die den Text nicht färbt.
Im Prinzip ist alles klar. Das rote Rufzeichen nehm ich mal raus. Orange bleibt da der Adapter in dem Zustand ja nicht läuft ist das meiner Ansicht nach OK.https://github.com/iobroker-community-adapters/ioBroker.pid/issues/35
Welche Admin Version hast du aktiv?
Bei mir ist da nix bunt bei Admin 6.3.7 und 6.4.3. -
@ben1983 said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
@mcm57 sieht ganz gut aus.
Ich weiß zwar aktuell nicht, was man_inp oder sup sein soll. Aber ok.man / man_inp gehören zusammen.
Aktiviert man man, wird der Wert von man_inp direkt auf y durchgereicht.Ein Anwendungsfall wär z.B. eine (Heizungs-)Steierung bei der ein Steuerventil (z.B. 0-10V) mit Y angesteuert wird. Im Servicefall will man das Ventil auf z.B. 25% stellen - unabhängig v Temperaturen etc. Dann lkann man setzen man=true, man_inp=25.
OK das gibge auch extern zu lösen, aber wenn man das gleich im Adapter hat braucht man für diesen Fall kein zwischengeschaltetes Blockly/Javascript da VIS die States des Adapters ggF direkt ansteuern kann.
Für den normalen Reglerbetrieb gilt man=false, man_inp=irrelevant
sup stellt eine Hysterese dar die kleine Änderungen des Inputs ignoriert. Dazu gibts hier gleich noch ne Diskussion
-
@fu_zhou
Ok, da gibts eine Unterschiedliche Ansicht / Auffassung zu was sup tun soll.
Derzeit ist eingebaut, dass sub kleine Änderungen des Eingangs ignoriert, d.h.if (act[t] - act[t-1]) < sup) then do_nix
Lt. deiner Beschreibung aus OSCAT soll sich sup aber auf den Wert von DIFF Beziehen, d.h. wenn die Regelabweichung < sup ist soll nix passieren, d.h.
if (set - act) < sup) then assume diff=0
OK, das kann / werd ich ändern. Durch diff=0 sollte dann auch der I Anteil gleich bleiben. Der Differenziereranteil kann sich noch ändern, da ja diff[t-1] ggf ungleich 0 war.
https://github.com/iobroker-community-adapters/ioBroker.pid/issues/32
-
Kleiner Überblick über aktuelle Probleme und noch anstehende Änderungen. In Klammern die jeweiligen Issuenummern zur Evidenz)
- Umordnung der States und Gruppierung in Foldern (BREAKING) (#36)
- run/hold funktioniert nicht richtig, Integralanteil läuft weiter (#30)
- man sollte implizites hold auslösen (#30)
- sup funktioniert nicht wie erwartet (#32)
- kein rotes Rufzeichen bei Limitüberschreitung (#35)
- q Flags werden teilweise falsch gesetzt (#34)
- invert Flag funktioniert nicht (#39)
-
@mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
OK, das kann / werd ich ändern. Durch diff=0 sollte dann auch der I Anteil gleich bleiben. Der Differenziereranteil kann sich noch ändern, da ja diff[t-1] ggf ungleich 0 war.
das wäre Klasse, weil sonst kann der Istwert ja langsam weglaufen und die Regelabweichung wird immer größer, ohne dass der Regler eingreift. Deswegen ist if (set - act) < sup) then assume diff=0 das Mittel der Wahl.
Ich benutze Admin 6.4.3 mit dunklem Farbthema, aber bei deinem Screenshot oben ist C-1 auch rot, nur sehr schwer erkennbar, durch den weißen Hintergrund,
@mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
Orange bleibt da der Adapter in dem Zustand ja nicht läuft ist das meiner Ansicht nach OK.
Der Adapter läuft ja, nur der Regler ist mit run = false angehalten. Habe mal einen 2. Regler in der Konfig hinzugefügt. Der eine ist grün, der andere Orange => auf eine Blick erkennbar, welcher Regler arbeitet und welcher pausiert => OK.
Die Frage ist dann, ob er auch Orange wird, wenn man = true, weil da passiert ja auch erstmal nix mehr - im Gegensatz zu sup, da ist diff = 0 ja nur temporär und wenn (set - act) > sup geht es ja automatisch weiter, während run und man ja umgeschaltet werden müssen. -
@fu_zhou said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
das wäre Klasse, weil sonst kann der Istwert ja langsam weglaufen und die Regelabweichung wird immer größer, ohne dass der Regler eingreift. Deswegen ist if (set - act) < sup) then assume diff=0 das Mittel der Wahl.
Nein, das nicht. Ich vergleiche den letzten ANGENOMMENEN act Wert mit dem neuen Act Wert, also bei sup =0,3
- act = 0 (Start)
- act = 0,5 -- wird angenommen, Regler regelt mit act = 0,5
- act = 0,6 -- wird ignoriert, Regler regelt mit act = 0,5 weiter
- act = 0,7 -- wird ignoriert, Regler regelt mit act = 0,5 weiter
- act = 0,8 -- wird angenommen da 0,8 - 0,5 >= 0,3; Regler regelt mit act = 0,8
Aber wie schon geschrieben ist es wahrscheinlich sinnvoller auf DIFF abzustellen, da dann auch Änderungen an set mit beachtet werden UND sich der Ausgang nicht ändert wenn diff zu gering (was ja das eigentliche Ziel) ist.
Der Adapter läuft ja, nur der Regler ist mit run = false angehalten.
Die Anzeige betrifft den einzelnen Regler innerhalb der Instanz und nicht den Adapter bzw. die Instanz des Adapters. Und der Regler läuft nach meinem Begriff nicht.
Die Frage ist dann, ob er auch Orange wird, wenn man = true, weil da passiert ja auch erstmal nix mehr
Muss ich mir ansehen ob das geht. An sich kann nur ein State verknüpft werden. Also entweder führ ich einen State HOLD ein und mach RUN einen XTRA / readonly state der die Verknüpfung von HOLD und MAN enthält oder mir fällt noch was anderes ein ( )
-
-
@mcm57 mir fällt als erstes das hier auf:
Eine Änderung der Auswahl verändert zwar den Text, aber es wird immer noch angezeigt, dass Kp /Tn / Tv ausgewählt ist.
-
@mcm57
Die Tn Tv Eingaben sind für mich in der Config nicht erischtlich. (Feld zu kein)
-
@mcm57 das mit dem invertieren passt noch nicht so ganz.
Sollwert ist 0
ich habe einfach mal zum testen den act wert auf 800 gesetzt.
Erwartet hätte ich, dass er langsam y aufintegriert.
Passieren tut nichts y bleibt 0.Also irgendwie tut sich bei mir überhaupt nichts.
Entweder habe ich irgendwas vergessen, oder der regler macht gerade gar nichts -
@ben1983 said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
@mcm57 mir fällt als erstes das hier auf:
Eine Änderung der Auswahl verändert zwar den Text, aber es wird immer noch angezeigt, dass Kp /Tn / Tv ausgewählt ist.
Danke - ist ein Fehler im deutschen Text
https://github.com/iobroker-community-adapters/ioBroker.pid/issues/40
-
@ben1983
Ich fürchte da kann ich nicht viel machen. Als Abhilfe kannst du die Browservergrößerung kleiner stellen. Ich werd schaun ob ich noch was rausquetschen kann, aber zweizeilig kann die jsonConfig nicht. Ebenso wäre mir nicht bekannt, dass Admin rechts/links verschieben könnte.Ev. nutzt es etwas wenn ich Minimalwert etc durch Min ersetze. Ich notier das Problem mal.
https://github.com/iobroker-community-adapters/ioBroker.pid/issues/38
-
@ben1983 Habe gerade bemert,
dass ich das Limit auf einen negativen wert stellen muss.
(Wobei ja gerade die negierung das bezwecken sollte, dass er in die andere richtung regelt.
Er negiert den wert nicht und mach bei act 1000 soll 0 trotzdem ein aufintegrieren in negative richtung bis zur grenze.
Erwartet hätte ich dass min limit 0 ok ist und durch die negierung positiv geregelt wird.
Vielleicht ist die Stelle der begrenzung im code nicht so passend. -
@mcm57 Du könntest ja in de jsonconfig die breite des elements breiter machen.
Oder? -
@mcm57 Das invertieren hat bei mir überhaupt keine Auswirkung
-
@ben1983 said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
@mcm57 Du könntest ja in de jsonconfig die breite des elements breiter machen.
Oder?Die Summe aller Tabellenelemente ist bereit 100%. Breiter geht nur wenn was anderes schmäler wird. Und zusätzlich begrenzt die jsonConfig die minimale Breite durch die Überschriftsbreite. ICh würd gern die Breite der Checkboxen minimieren, vor allem der ersten mit dem Plus Zeichen drinnen - geht nicht.
Ich werd schaun was möglich ist.
-
@ben1983 said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
@mcm57 Das invertieren hat bei mir überhaupt keine Auswirkung
Sorry,, da hast du recht. Da fehlt noch Code.
https://github.com/iobroker-community-adapters/ioBroker.pid/issues/39
-
@mcm57 was mir noch auffällt ist:
selbt wenn man den Regler auf run stellt, fängt er nicht an, bevor man nicht einen soll und istwert neu schreibt.
Die sind aber vielleicht noch gleich gelieben.
Zumindest der Sollwert. -
@ben1983 said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:
@mcm57 was mir noch auffällt ist:
selbt wenn man den Regler auf run stellt, fängt er nicht an, bevor man nicht einen soll und istwert neu schreibt.
Die sind aber vielleicht noch gleich gelieben.
Zumindest der Sollwert.Kann ich so ganz glauben. Aber run/hold Verhalten ist ein noch offener Punkt:
https://forum.iobroker.net/topic/64250/test-neuer-adapter-pid-pid-regler-v0-0-1-alpha-x/91Da schau ich mir eh nochmals an