Neues Modul PID20 - Der PID-Regler

Begonnen von John, 02 Dezember 2013, 22:03:40

Vorheriges Thema - Nächstes Thema

Hans Franz

#45
Hallo John,

Ich befürchte, wir muten deinem armen PID-Regler bei mir viel zu :).

Für das zu späte Reagieren des Ventils(FHT8V) habe ich keine Erklärung.

Verlauf der Vorlauftemperatur ?
Müsste ich erst händisch dokumentieren.

elektronisch geregelt Umwälzpumpe ?
Ja. Wilo 4132452

Zweirohrsystem ?
Ja

Es handelt sich um herkömmliche Heizkörper, die über Konvektion arbeiten ?
Ja

In welcher Zeit ist die Vorlauftemperatur abgesenkt ?
22:30 -6:00

Wie stabil ist die Vorlauftemperatur ?
Tja, das ist der Punkt, der mir Sorgen macht:
Pelletofen versorgt 1000l-Speicher und scheint manchmal überfordert. Vor Wartung (alle 1.5t) bei Frostgraden ohne Sonne drehe ich schon mal alle Ventile für eine Stunde zu, um den Speicher und damit die Vorlauftemperatur zu halten.
Ich glaube, mit FHEM und einem noch zu findenden Sensor sollte ich die Vorlauftemperatur  protokollieren.

Gruss
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

John

#46
Hallo Hans
ZitatFür das zu späte Reagieren des Ventils(FHT8V) habe ich keine Erklärung.

Wie kalibrierst du den Stellantrieb ?
In der Bedienungsanleitung von FHT8V habe ich zu diesem Thema nichts gefunden.
Meine MAX-Ventile können das automatisch; nach Einlegen der Batterie und Bestätigung erfolgt das Kalibrieren des Stellbereiches.

Vielleicht kannst du es so rausfinden

  • Ventilstellung auf 0 %
  • Heizkörper abkühlen lassen
  • Ventilstellung in 5% Schritten erhöhen und dabei prüfen, ob sich Heizkörper erwärmt, mit ausreichend Wartezeit
  • Ventilposition merken, bei der sich HK erwärmt und bei pidActorLimitLower eintragen

2. zeitsparende Möglichkeit:
pidActorLimitLower nach und nach (1x pro Tag) um 5% erhöhen, Weiteres werden uns die Kurven zeigen.

John


CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Hans Franz

#47
Hallo John,

Wert des P-Faktors seit gestern ca. 13:00 Uhr auf 30. Scheint immer noch zu überschwingen oder interpretiere ich das falsch?
Habe jetzt den PID gestoppt, um die von dir angeregte Kalibrierung duchzuführen.

Gruß
Hans

Edit:
pidActorLimitLower auf 10 gesetzt da bei 15% Ventilöffnung der Heizkörper anfing warm zu werden
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

John

#48
Hallo Hans,
den Sollwertsprung um 17:30 Uhr hat  PID20 richtig gut hinbekommen, der Rest ist noch nicht so toll.
Reduziere den P-Faktor schrittweise um 5%. Ein verbleibendes Schwingen um 0.5 Grad ist akzeptabel.

Auch wenn wir die Todzone eliminiert haben, reagiert das System im unteren Bereich des Stellausgangs schon sehr massiv.
Daher sollten wir den Regler "feingliedriger" machen.
pidActorThreshold auf 2..3.
pidActorInterval   von 600 auf 420

Man muss an vielen Schrauben drehen, aber es ist gut sie zu haben.

Hast du eine Erklärung dafür, warum die markierte Stelle eine so hohen Temperaturanstieg zeigt, obwohl das Verhalten des Stellgliedes wie zuvor ist.
(stark erhöhte Vorlauftemperatur ?)

John




CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Hans Franz

Hallo John,

pidActorThreshold auf 2,
pidActorInterval  auf 420,
pidFactor_P auf 25.

Der Temperaturanstieg ist wohl Folge der Sonneneinstrahlung = Störgrösse :).

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Hans Franz

Hallo John,
Ich glaube, ich habe ihn kaputtgemacht :).
Nach stop und start bleibt actuation auf 10 bzw. jetzt 0 (habe  actorLimitLower wieder auf 0 gesetzt) stehen. Delta bei 4, actuationCalc > 100.
Was kann das sein?


Internals:
   DEF        CUL_WS_1:temperature stellantrieb.01:valve
   NAME       heizung.01
   NR         305
   NTFY_ORDER 50-heizung.01
   STATE      processing
   TYPE       PID20
   Readings:
     2013-12-16 16:40:58   actuation       0
     2013-12-16 16:50:04   actuationCalc   105
     2013-12-16 16:50:04   delta           3.8
     2013-12-16 16:40:58   desired         22.0
     2013-12-16 16:40:58   measured        17.7
     2013-12-16 16:50:04   p_d             0
     2013-12-16 16:50:04   p_i             10
     2013-12-16 16:50:04   p_p             95
     2013-12-16 16:50:04   state           processing
   Helper:
     actor      stellantrieb.01
     actorCommand valve
     actorErrorAction freeze
     actorErrorPos 0
     actorInterval 420
     actorKeepAlive 1800
     actorLimitLower 0
     actorLimitUpper 0
     actorThreshold 2
     actorTimestamp 2013-12-16 16:40:58
     actorValueDecPlaces 0
     adjust     
     calcInterval 60
     deltaGradient -0.00112945139341439
     deltaOld   3.8
     deltaOldTS 2013-12-16 16:48:37
     deltaTreshold 0
     desiredName desired
     disable    0
     factor_D   0
     factor_I   0.1
     factor_P   25
     isWindUP   1
     measuredName measured
     reading    temperature
     regexp     ^([\+,\-]?\d+\.?\d*$)
     reverseAction 0
     sensor     CUL_WS_1
     sensorTimeout 3600
     stopped    0
     updateInterval 600
Attributes:
   alias      Heizungen_1
   pidActorInterval 420
   pidActorLimitLower 0
   pidActorTreshold 2
   pidFactor_I 0.1
   pidFactor_P 25
   room       Heizungen


Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

John

#51
Hallo Hans,
ich glaub du bist einem Bug auf die Spur gekommen.

ZitatReadings:
     2013-12-16 16:40:58   actuation       0
     2013-12-16 16:50:04   actuationCalc   105

     isWindUP   1


Versuch den Regler aus dem Windup rauszukriegen, in dem zu  den Sollwert temporär in die Nähe vom Istwert setzt.
Wenn er sich gefangen (Windup inkativ)  hat, sollte er weiterlaufen.
Dann kannst du den Sollwert wieder passend setzen.

Start/Stop muss nicht sein, wenn man die Attribute ändert.

Aber zum Fehler finden ist es gut so.


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Hans Franz

#52
Hallo John,
Stop war wegen Kalibrierung.
Sehe aber gerade. das pidActorLimitUpper auf 0 steht. Das kann natürlich auf meine Paddeligkeit zurückzuführen sein, glaube es aber eigentlich nicht.
Aus dem Windup war er gerade 'raus, bei setzen des Sollwertes aber auch wieder drin.

     2013-12-16 17:31:25   actuation       0
     2013-12-16 17:33:26   actuationCalc   32.65
     2013-12-16 17:33:26   delta           1.3
     2013-12-16 17:31:25   desired         21
     2013-12-16 17:31:25   measured        19.6
     2013-12-16 17:33:26   p_d             0
     2013-12-16 17:33:26   p_i             0.15
     2013-12-16 17:33:26   p_p             32.5
     2013-12-16 17:33:26   state           processing

     isWindUP   1


Ich muss ihn jetzt ersteinmal stoppen. Meinem Sohn ist es zu kühl. ::)

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

John

#53
Hallo Hans
kann es sein dass du noch mit der alten Version fährst ?

die aktuelle ist 1.00c (siehe auch WIKI)
http://forum.fhem.de/index.php/topic,17067.msg111828.html#msg111828

Auszug aus Change-Log
Zitat
# V 1.00.c
#  03.12.2013 - bug: pidActorLimitUpper wrong assignment

In der Vorgängerversion war genau der Fehler drin.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Hans Franz

Zitat von: John am 16 Dezember 2013, 20:33:48
kann es sein dass du noch mit der alten Version fährst ?
Mann ,mann,mann. Ja klar. Danke

Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

cwagner

Hallo John,

bei meinem Projekt "Mischersteuerung" mit PID20 musste ich umdisponieren. Die Temperaturmesswerte für den Vorlauf im Fußbodenheizkreis liess ich mir bei Homematic Sensor funken. Die Werte kamen alle drei Minuten und da der Vorlauf des Hauptkreises sehr schnell durchaus zwischen 40 und 60 Grad sich ändert, ist PID20 gar nicht mehr aus den Extremwerten rausgekommen, hat den Nebenkreis auf dem niedrigen Vorlaufniveau recht stabil gehalten.
Ich habe jetzt mit 1-Wire einen Sensor dran, der mir aktuell alle 30 Sekunden die Messwerte liefert. Damit kann PID20 viel näher um den Sollpunkt arbeiten.
Ich werde weiter berichten, aber glaube nun auf dem richtigen Weg zu sein.

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

John

Hallo Christian,
wenn die Prozessänderung so schnell ist,
solltest du in Betracht ziehen, das Attribut pidCalcInterval (default 60 Sekunden) zu verkleinern.
Dies ist der Bewertungszyklus beim PID.

Allerdings habe ich hier noch einen Fehler entdeckt.
Also bitte noch die nächste Version abwarten, bevor du dieses Attribut änderst.


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

cwagner

Moin, John,

zu spät! :-)
Hatte schon  herabgesetzt, weil mir die Idee gekommen war (sowohl ActorInterval  (60 s, weil ein kompletter Mischerlauf 95 s dauert) wie auch CalcInterval auf 30 s). Wir werden mal sehen. Die häufigeren Meßwerte führten zumindest dazu, dass die Aktorwerte systematischer schwankten (also nicht ständig zwischen den beiden Polen des Vierwegeventils hin und her gefahren wird, sondern ein Annäherungsprozess an einen Wert, um den herum jetzt in kleineren Schritten iteriert wird, zu erkennen ist. Dieser Punkt gleitet dann mit der steigenden oder fallenden Temperatur des Haupt-Vorlaufs, was schon sinnig erscheint).
Bin auf Deine Version e gespannt. Bis dahin: Schönes Festtagszeit...

Herzliche Grüße aus dem aktuell windigen Norden

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Hans Franz

Hallo John,
Kannst du noch 'mal einen Blick darauf werfen?

PID_1:
    pidActorInterval     420
    pidActorTreshold   2
    pidFactor_I            0.1
    pidFactor_P           25

PID_2:
    pidActorInterval     600
    pidActorTreshold   5
    pidFactor_I            default
    pidFactor_P           default

PID_1 schwingt zu sehr oder täusche ich mich? pidFactor_P ist aber gleich. Was tun?

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Hans Franz

Die Kurve von gestern bereitet mir auch Kopfzerbrechen.
Bis 13:00 Uhr so wie ich es erwarte, dann Soll-Absenkung wegen Wartung des Ofens.
Ab 20:00 Uhr beginnt das Schwingen ohne Änderung der Parameter von aussen.

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20