Die würde ich schon drinlassen, nur ohne die manuellen Eingaben von Ist- und Sollwert.
Bei meiner Version (3 Tage alt) hatte ich als Test den PI-Regler passiv mitlaufen lassen, gespeist aus Ist- und Solltemperatur Bad. Den von deinem Modul berechneten Verlauf des Stellwertes vergleiche ich nun mit dem Stellwert des KNX PI_Reglers im Heizungsaktor, der tatsächlich dort regelt.
Beide Regler sind gleich parametriert: P-Band 2K, Nachlaufzeit für I-Anteil 90 Minuten, kein D-Anteil.
Irgendwie ignoriert dein Code hartnäckige alle Änderungen des Sollwertes in der verlinkten Variablen. Davon abgesehen sieht es aber nach dem erwarteten PI-Regelverhalten mit der gewünschten Zeitkonstante für den I-Anteil aus, nur eben auf den falschen (festen) Sollwert berechnet.
Nachtrag: Festes Berechnungsintervall ist aktiv weil meine KNX-Sensoren Werte nicht im festen Intervall senden sondern auch bei Änderung. Die Zeitabstände der Ist-Werte sind also variabel.
Hallo
Also das es nicht auf Sollwerteänderungen reagiert kann ich nicht nachvollziehen.
In der Langzeitbetrachtung find ich aber immer wieder Betriebszustände die mir nicht gefallen oder zumindest mal ich nicht verstehe. Muß ich mir mal temporär ein logging für die PID Anteile einbauen um das besser nachvollziehen zu können.
Im Moment haben wir hier aber herrlichstes Schiwetter mit tollen Bedingungen das mindert ziemlich die Lust und Zeit fürs programmieren.
kein Problem, ich habe ja funktionierende PI-Heizungsregler und wollte nur bei den ersten Tests deines Moduls unterstützen. Hab’s jetzt erstmal gelöscht.
Hallo
Für Interessierte mal ein kleines Update zwischendurch.
Funktionieren tut es jetzt brav. Habe mir inzwischen vier Räume umgestellt und beobachte permanent
Die Regelung ist jetzt sehr gut, nicht zuletzt dadurch das man eben auch sehr viel einstellen kann.
Allerdings ist das zugleich auch ein Pferdefuß. Man kann eben auch manches falsch machen. Für einfach so Plug & Play ist das nichts.
Das kann der interne Algorythmus der Regelventile (Spirit) besser.
Das bringt mich auch an die größte Schwachstelle: Es sind (zumindest bei mir) in der ganzen Signalkette (1Wire Sensor auf ESP Basis → Wifi → IPS → LAN ->USB-> zWave->Spirit Ventilantrieb) einfach zu viele Komponenten im Spiel. Dazu kommt dann auch noch 1Wire (Ölofen) und Wifi (Wärmepumpe) gesteuerte Wärempquellen.
Irgendwo in der Kette ein Problemchen und Frau schimpft. Heizung braucht ein robusteres Setup.
Wenn ich die Spirit Ventile so wie geplant mittels des PID über IPS steuere fehlt einfach die Fallback Lösung und das ist nicht gut.
ich habe vor mit dem PID-Regler meine Solarheizung bzw. die dazugehörige Pumpe nach Differenztemperatur zu regeln.
D.h. wenn die Differenztemperatur >Sollwert ist soll die Leistung der Pumpe gesteigert werden und wenn die Differenz kleiner ist soll die Leistung verringert werden.
Jetzt ist die Funktion des Reglers genau anders herum. Bei Differenztemperatur > Sollwert regelt die Pumpe herunter.
Ich kenne den PID-Regler in Pumpensteuerungen und wird lediglich der P-Anteil negiert und somit die Wirkung umgekehrt.
In dem PID-Controller geht der P-Anteil nicht zu negieren.
Gibt es eine Möglichkeit im Modul oder muss ich mit externen Mitteln die 0-100% um skalieren.
Moin Moin,
möchte nun auch mal das Modul testen und die Werte mit dem „Heating Control“ vergleichen. Komme jedoch nicht weiter, die Werte der Ein-/Ausgangsvariablen werden nicht(?) erkannt. Nur wenn ich was bei den Variablen unter was eintrage, tauchen die Werte auf. Aber so soll es ja nicht sein.
Was mache ich ggf. in der Konfiguration noch falsch… Habe die 6.4. am laufen.
Hab nun eine neue Version nach Github hochgeladen.
Zugegeben es war etwas verwirrend … wenn ich mich recht erinnere hatte ich damit auch schon beim Volker Stirnrunzeln verursacht
Die Variable „TargetValue“ und „ActualValue“ waren nämlich eigentlich nur als Debug Ausgabe gedacht. Und NICHT um diese auch gleich zur Eingabe der Werte zu verwenden. - ja, das war irreführend.
Habs nun dahingehend umgebaut das diese nun auch direkt als Eingabevariablen benutzt werden können.
Will man das tun so können die entsprechenden Felder im Konfgurationsdialog leer bleiben. Füllt man sie aber aus, so kann man auf eine beliebige Float Variable als Eingang verweisen.
Die Texte im Konfigurationsdialog wurden entsprechend angepasst.
Allerdings hat das jetzt zur Folge das falls man die Eingangswerte per Script oder beliebige externen Variablen setzt die Target und Actual unter dem Modul nicht mehr upgedated werden können. Sonst gibts eine Endlosschleife.
evtl. mußt du das BB_Controller Modul entfernen und neu hinzufügen damit die die aktuelle Version bekommst.
Version sollte als 1.1 angezeigt werden
hoffe ich hab nix verschlimmbessert jetzt
Bernhard
Hallo zusammen, das Thema wird für mich jetzt plötzlich sehr interessant. Meine Regelung (Frischwasserstation) muss in den nächsten Wochen erneuert werden und ich Frage mich ob ich mit dem Regler meine Frischwasserstation gesteuert bekomme? Was denkt ihr, kann das funktionieren?