NEWS
Test Adapter pid (pid-Regler) V1.0.x
-
@quorle
Mit schwankenden Werten die generelle Funktion zu testen, ist schwierig. Übergebe mal an "actual value" einen konstanten Wert von 1000 (= 1000 W Überschuss). Das richtige Verhalten von "output value" nach einem Reset wäre dann der Start mit 57,5 % und alle 2 s Erhöhung um 0,5 %. -
@mcm57 sagte: Drr regler ist voll am Anschlag.
Durch den I-Anteil. kp ist 0,005.
-
@mcm57 sagte: resettet den p anteil
Du meinst den I-Anteil?
@mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.x:
Ich wütd auch den integrallanteil mal welassen
Tn = 0 deaktiviert den I-Anteil?
-
Also irgendwie komme ich damit nicht klar. Der Regler macht was er will, egal was ich einstelle. Hab es auch mit einem festen Wert von 1000 am "set" versucht. Aber wenn er regelt, regelt er nur auf 100%, dann wieder runter und wieder hoch.
Hat irgendeiner den Adapter schon anderweitig im Einsatz, außer Temperaturen zu regeln? Um den Heizstab zur PV-Einspeiseleistung regeln zu können, sollte der PID schnell reagieren, ohne sehr große Sprünge zu machen -
@quorle sagte: Der Regler macht was er will
Habe gestern mal den Regler getestet und festgestellt, dass sich der Ausgang nicht wie erwartet verhält.
@quorle sagte in Test neuer Adapter pid (pid-Regler) V0.0.x:
sollte der PID schnell reagieren
@quorle sagte in Test neuer Adapter pid (pid-Regler) V0.0.x:
Der Modbus Adapter holt alle 10 Sekunden die Werte aus dem Wechselrichter.
Die Reaktionsgeschwindigkeit ist durch den Abfragezyklus von Modbus begrenzt. Kann man den verkürzen?
Der folgende Regler verwendet als Zykluszeit den Modbus-Abfragezyklus. Tn = 20 s bezieht sich auf einen Abfragezyklus von 10 s. Verringert man den Abfragezyklus, kann man auch Tn entsprechend verringern.
Ich habe den Regler mit einem Datenpunkt "EVU-Einspeisung", der alle 10 s auf 1000 gesetzt wird, getestet.
11:14:27.406 info javascript.1 (2139) script.js.blockly.Test3_Blockly: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 11:14:30.007 info javascript.1 (2139) script.js.blockly.Test3_Blockly: 57.49825 11:14:40.004 info javascript.1 (2139) script.js.blockly.Test3_Blockly: 59.998 11:14:50.011 info javascript.1 (2139) script.js.blockly.Test3_Blockly: 62.4995 11:15:00.011 info javascript.1 (2139) script.js.blockly.Test3_Blockly: 64.9985 11:15:10.005 info javascript.1 (2139) script.js.blockly.Test3_Blockly: 67.498
-
Habe dir mal zwei Bilder aus Grafana angehängt.
Entweder regeln beide ( Script und Adapter) nur auf 100% und bleiben dann dort stehen, oder sie machen einfach nichts.
Liegt wahrscheinlich nur an den Einstellungen?
Ich wollte eigentlich den Adapter für mehrere Zwecke einsetzen.
Habe auch die Einstellungen von Nutzern weiter oben im Beitrag genutzt, jedoch regelt hier auch nichts.
Mit dem Scripteinstellungen habe ich auch etwas gespielt, bringt mich auch nicht weiter.Ich meine, wenn ich jetzt 1600 W am Eingang anliegen habe, sollte der Regler ja auf 80% Reglen (bei 2000W max = Heizstab) und nicht auf 100% Reglen und stehen bleiben. Und wenn es weniger Leistung am Eingang wird, sollte der Regler entsprechend herunter Regeln, dann bei Mehrleistung am Eingang wieder Hochregeln. Oder verstehe ich das Falsch?
@mcm57 Gibt es schon Anwendungsfälle, die Dokumentiert sind?
Scriptauswertung:
Adapterauswertung:
-
@quorle sagte: auf 100% und bleiben dann dort stehen
Wenn der Ausgang nicht auf den Heizstab wirkt, läuft der Ausgang nach Skriptstart auf 100 % (I-Anteil) und verharrt dort. Er verringert sich erst wieder, wenn der Eingang negativ wird (Bezug).
EDIT: Einen PI-Regler kann man nicht sinnvoll ohne geschlossenen Regelkreis (Verbraucher Heizstab) testen.
Hier habe ich die Aktualisierungsrate auf 1 s verringert und Tn auf 2 s eingestellt. Der Regler verhält sich genau so wie erwartet:
12:50:14.726 info javascript.1 (2174) script.js.blockly.Test3_Blockly: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 12:50:15.013 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 57.5 12:50:16.002 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 60 12:50:17.006 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 62.5 12:50:18.003 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 65 12:50:19.002 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 67.5 12:50:20.003 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 70 12:50:21.006 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 72.5 12:50:22.004 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 75 12:50:23.002 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 77.5 12:50:24.014 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 80 12:50:25.003 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 82.5 12:50:26.003 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 85 12:50:27.012 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 87.5 12:50:28.003 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 90 12:50:29.006 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 92.5 12:50:30.003 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 95 12:50:31.004 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 97.5 12:50:32.003 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 100 12:50:33.004 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 100 12:50:34.002 info javascript.1 (2174) script.js.blockly.Test3_Blockly: 100
-
@quorle sagte: Adapterauswertung:
Habe den Adapter getestet mit Invertierung und nachträglicher Eingabe des Offset (wurde nicht aus der Konfiguration übernommen). Nun verhält er sich wie erwartet:
Hier die History von "output value" nachdem um 13:05:13 Uhr "reset controller" auf true gesetzt wurde.
-
@mcm57 Hallo mal wieder, habe gestern Nacht oder eher heute früh mal ein Issue in Github eröffnet, wollte das Thema aber auch hier noch platzieren:
Kurz zusammen gefasst: es wäre Klasse, wenn "inv" beschreibbar wäre (true/false), wenn man "Zustände für die Konfiguration verwenden" aktiviert.
Ich habe den nächsten Einsatz für den Regler: Wärme-/ Kälterückgewinnung über die Drehzahl der Wärmeräder in der Lüftung. Dazu muss ich den inv mit true oder false aus einem Skript beschreiben können, das geht aktuell nicht. Alternativ könnte ich kp und tn auf einen negativen Wert setzen, der Adapter lässt aber nur positive Werte zu. Bei tn, tv, xp lassen sich negative Werte setzen.
Hintergrund: wenn die Außenluft kälter ist, als die Raumluft, kann ich über die Erhöhung der Drehzahl die Zuluft mit der Abluft erwärmen. Im Sommer ist die Außenluft wärmer, als die Raumluft, d.h. ich kann über die Erhöhung der Drehzahl die Zuluft mit der Abluft kühlen. D.h. wenn Temperatur Außenluft < Raumluft, dann inv = 0 und wenn Temperatur Außenluft > Raumluft, dann inv = 1 . Kannst du inv beschreibbar machen? Dann kannst du auch bei tn, tv, xp nur pos. Werte zulassen.
Danke vorab!
-
@fu_zhou
Schaus mir an -
@mcm57 hattest du schon die Chance, mal reinzuschauen?
-
@fu_zhou
Danke für den Schubs / Erinnerung.Leider bin ich noch nicht dazu gekommen das umzusetzen. Habs auf meienr Liste. Technisch sehe ich keinen Grund warum dies nicht gehen sollte. Ev komm ich diese Woche dazu - aber versprechen möcht ich nix.
Ja, könnte rascherer Support sein. Kann nur sorry sagen.
-
@mcm57 Kein Grund für eine Entschuldigung, im Moment behelfe ich mir mit 2 Reglern, die ich Außentemperatur-abhängig abwechselnd freigebe (über hold). Ich bin nach wie vor begeistert, wie gut der Regler mit den Funktionen funktioniert!
-
Ab Morgen steht im LATEST die neueste Version 1.0.0 des Adapters zur Verfügung.
Neu ist die Möglichkeit den Parameter INVERT via State zu ändern.
Weiters wurden die bekannten Fehler behoben.Releasenotes im ersten Beitrag und im Repository.
ACHTUNG:
Der Adapter erfordert nun minimal- Node.js 18
- js-controller 5
- admin 6
Die Anforderungen wurden hochgezogen, da node 16 mittlerweile nicht mehr mit Updates versorgt wird und von mir auch nicht mehr getestet wird. Auch js-controlelr 4 und admin 5 werden von mir nicht mehr gtestet - zusätzlich arbeite ich (sobald ich dazu komme) an einer (kompatiblen) umgestaltung der Config UI Seite da derzeit wie Paramater zu oft unlesbar abgeschnitten werden. Das neue Format benötigt jedenfalls dann Admin 6. Ich gehe davon aus, dass die Anforderungen insbesondere frü Tester kein Hindernis darstellen.
Fehler bitte wie immer hier bzw. als issues melden.
Hinweis: Aus persönichen Gründe bin ich voraussichtlich ab nächster Woche 2 bis 3 Wochen nur eingschränkt / nicht verfügbar. Aber wie sagte schon Paulchen Panter: "ich komm wieder - keine Frage"
-
Hi,
ich verwende seit einiger Zeit den pid.adapter zur Steuerung eines Heizkörper-Thermostats.
Was mir dabei aufgefallen ist:
Der D-Anteil des Reglers ist für mich leider nicht sinnvoll zu verwenden.
Der D-Anteil wird nur über das letzte Intervall gebildet.
Ich möchte das Intervall nicht zu groß wählen, damit der Regler einigermaßen schnell reagiert, wenn es eine Änderung der Soll-Größe gibt. Ich habe 10s gewählt.
Die Ist-Temperatur, erhalte ich vom verwendeten Thermometer nur mit einer Nachkommastelle.
Die Temperatur-Änderungen sind relativ langsam.
Das hat zur Folge, dass eine Änderung in der Ist-Temperatur über den D-Anteil des Reglers nur einen Peak von 10s Länge erzeugt, von dem ich dann wählen kann, wie stark er sein soll.Schön wäre, wenn man für den D-Anteil eine Anzahl von Intervallen angeben kann, über die er berechnet wird. Dann könnte ich die Zeitkonstante für diesen Anteil auf einige Minuten erhöhen.
-
Die Installation soll ja über Github erfolgen.
Kann den Adapter da aber nicht finden.
Hat sich da etwas geändert?
-
@zarello sagte: Der D-Anteil wird nur über das letzte Intervall gebildet.
Das ist normal. Andere Versionen sind mir bisher nicht begegnet. Deshalb verwendet man zur Temperaturregelung PI-Regler.
@zarello sagte in Test Adapter pid (pid-Regler) V1.0.x:
Ich habe 10s gewählt.
Das ist für eine Temperaturregelung viel zu kurz.
-
Der Adapter ist zwischenzeitlich normal über das LATEST Repository installierbar. Eine Installation von Github ist nicht notwendig.
Danke f.d. Nachfrage - habe die entsprechende Zeile im ersten Beitrag gelöscht da veraltet.
-
@mcm57 sagte in Test Adapter pid (pid-Regler) V1.0.x:
LATEST Repository
Danke für deine Info
Über Repository beta wird Version 0.0.8 angeboten.
Die kann ich nehmen, obwohl nicht mehr die Jüngste? -
@gonzokalle
Klick nach dem Umschalten mal auf den Refresh button. ("Nach Updates suchen" oben in der Kopfzeile des Adaptertabs)