PID20 für Mischermotor (Fußbodenheizung)

Begonnen von Morgennebel, 17 Februar 2017, 11:19:40

Vorheriges Thema - Nächstes Thema

Morgennebel

Moin Moin,


ich würde gerne meine bisherige DOIF-basierende Lösung zur Steuerung meines Mischermotors für den FB-Kreis auf PID20 umstellen.

Dazu habe ich die folgende Definition verwendet:


Internals:
   CFGFN
   DEF        EG.Heizung.Mischer.Vorlauf:temperature.avg EG.HWR.Fussbodenmischer
   NAME       PID_MischerCommands
   NR         75899
   NTFY_ORDER 50-PID_MischerCommands
   STATE      processing
   TYPE       PID20
   VERSION    1.0.0.9
   Readings:
     2017-02-17 11:11:10   actuation       30
     2017-02-17 11:11:10   actuationCalc   29.9645
     2017-02-17 11:11:10   delta           1.133
     2017-02-17 11:11:10   desired         30
     2017-02-17 11:11:10   measured        28.867
     2017-02-17 11:11:10   p_d             0
     2017-02-17 11:11:10   p_i             1.6395
     2017-02-17 11:11:10   p_p             28.325
     2017-02-17 11:11:10   state           processing
   Helper:
     actor      EG.HWR.Fussbodenmischer
     actorCommand
     actorErrorAction errorPos
     actorErrorPos 0
     actorInterval 40
     actorKeepAlive 1800
     actorLimitLower 0
     actorLimitUpper 100
     actorThreshold 1
     actorTimestamp 2017-02-17 11:11:10
     actorValueDecPlaces 0
     adjust
     calcInterval 60
     deltaGradient 0.00603217367605127
     deltaOld   1.404
     deltaOldTS 2017-02-17 11:11:42
     deltaTreshold 0
     desiredName desired
     disable    0
     factor_D   0
     factor_I   0.25
     factor_P   25
     isWindUP
     measuredName measured
     reading    temperature.avg
     regexp     ^([\+,\-]?\d+\.?\d*$)
     reverseAction 0
     sensor     EG.Heizung.Mischer.Vorlauf
     sensorTimeout 3600
     stopped    0
     updateInterval 600
Attributes:
   pidActorErrorAction errorPos
   pidActorErrorPos 0
   pidActorInterval 40
   pidActorValueDecPlaces 0
   room       EG.HWR
   verbose    5


Dabei sind:


  • EG.Heizung.Mischer.Vorlauf:temperature.avg: gleitender Mittelwert über die Vorlauftemperatur des Mischers
  • EG.HWR.Fussbodenmischer  Mischeransteuerung über das STELLMOTOR-Modul

Laut https://fhem.de/commandref.html#PID20 sollte jedoch der Aktor ein Reading haben: <actor:cmd >, ich verwende nur <actor>, das das STELLMOTOR-Modul mit

set EG.HWR.Fussbodenmischer <position>

arbeitet, d.h. nur ein Argument möchte.

Leider funktioniert dies nicht wie gewünscht (und es liegt bestimmt an mir): Laut Logfile:


2017-02-17_10:38:38 PID_MischerCommands desired: 30
2017-02-17_10:38:38 PID_MischerCommands measured: 27.267
2017-02-17_10:38:38 PID_MischerCommands p_p: 68.325
2017-02-17_10:38:38 PID_MischerCommands p_d: 0
2017-02-17_10:38:38 PID_MischerCommands p_i: 1.34475
2017-02-17_10:38:38 PID_MischerCommands actuation: 67
2017-02-17_10:38:38 PID_MischerCommands actuationCalc: 69.66975
2017-02-17_10:38:38 PID_MischerCommands delta: 2.733
2017-02-17_10:38:38 PID_MischerCommands processing
2017-02-17_10:39:38 PID_MischerCommands desired: 30
2017-02-17_10:39:38 PID_MischerCommands measured: 27.512
2017-02-17_10:39:38 PID_MischerCommands p_p: 62.2
2017-02-17_10:39:38 PID_MischerCommands p_d: 0
2017-02-17_10:39:38 PID_MischerCommands p_i: 1.96675
2017-02-17_10:39:38 PID_MischerCommands actuation: 64
2017-02-17_10:39:38 PID_MischerCommands actuationCalc: 64.16675
2017-02-17_10:39:38 PID_MischerCommands delta: 2.488
2017-02-17_10:39:38 PID_MischerCommands processing
2017-02-17_10:40:38 PID_MischerCommands desired: 30
2017-02-17_10:40:38 PID_MischerCommands measured: 29.967
2017-02-17_10:40:38 PID_MischerCommands p_p: 0.825000000000031
2017-02-17_10:40:38 PID_MischerCommands p_d: 0
2017-02-17_10:40:38 PID_MischerCommands p_i: 1.975
2017-02-17_10:40:38 PID_MischerCommands actuation: 64
2017-02-17_10:40:38 PID_MischerCommands actuationCalc: 2.80000000000003
2017-02-17_10:40:38 PID_MischerCommands delta: 0.0330000000000013
2017-02-17_10:40:38 PID_MischerCommands processing
2017-02-17_10:41:39 PID_MischerCommands desired: 30
2017-02-17_10:41:39 PID_MischerCommands measured: 33.075
2017-02-17_10:41:39 PID_MischerCommands p_p: -76.8750000000001
2017-02-17_10:41:39 PID_MischerCommands p_d: 0
2017-02-17_10:41:39 PID_MischerCommands p_i: 1.20625
2017-02-17_10:41:39 PID_MischerCommands actuation: 0
2017-02-17_10:41:39 PID_MischerCommands actuationCalc: -75.6687500000001
2017-02-17_10:41:39 PID_MischerCommands delta: -3.075
2017-02-17_10:41:39 PID_MischerCommands processing
2017-02-17_10:42:40 PID_MischerCommands desired: 30
2017-02-17_10:42:40 PID_MischerCommands measured: 36.283
2017-02-17_10:42:40 PID_MischerCommands p_p: -157.075
2017-02-17_10:42:40 PID_MischerCommands p_d: 0
2017-02-17_10:42:40 PID_MischerCommands p_i: 1.20625
2017-02-17_10:42:40 PID_MischerCommands actuation: 0
2017-02-17_10:42:40 PID_MischerCommands actuationCalc: -155.86875
2017-02-17_10:42:40 PID_MischerCommands delta: -6.283
2017-02-17_10:42:40 PID_MischerCommands processing
2017-02-17_10:43:41 PID_MischerCommands desired: 30
2017-02-17_10:43:41 PID_MischerCommands measured: 39.404
2017-02-17_10:43:41 PID_MischerCommands p_p: -235.1
2017-02-17_10:43:41 PID_MischerCommands p_d: 0
2017-02-17_10:43:41 PID_MischerCommands p_i: 1.20625
2017-02-17_10:43:41 PID_MischerCommands actuation: 0
2017-02-17_10:43:41 PID_MischerCommands actuationCalc: -233.89375
2017-02-17_10:43:41 PID_MischerCommands delta: -9.404
2017-02-17_10:43:41 PID_MischerCommands processing
2017-02-17_10:44:43 PID_MischerCommands desired: 30
2017-02-17_10:44:43 PID_MischerCommands measured: 41.967
2017-02-17_10:44:43 PID_MischerCommands p_p: -299.175
2017-02-17_10:44:43 PID_MischerCommands p_d: 0
2017-02-17_10:44:43 PID_MischerCommands p_i: 1.20625
2017-02-17_10:44:43 PID_MischerCommands actuation: 0
2017-02-17_10:44:43 PID_MischerCommands actuationCalc: -297.96875
2017-02-17_10:44:43 PID_MischerCommands delta: -11.967
2017-02-17_10:44:43 PID_MischerCommands processing
2017-02-17_10:45:44 PID_MischerCommands desired: 30
2017-02-17_10:45:44 PID_MischerCommands measured: 42.212
2017-02-17_10:45:44 PID_MischerCommands p_p: -305.3
2017-02-17_10:45:44 PID_MischerCommands p_d: 0
2017-02-17_10:45:44 PID_MischerCommands p_i: 1.20625
2017-02-17_10:45:44 PID_MischerCommands actuation: 0
2017-02-17_10:45:44 PID_MischerCommands actuationCalc: -304.09375
2017-02-17_10:45:44 PID_MischerCommands delta: -12.212
2017-02-17_10:45:44 PID_MischerCommands processing
2017-02-17_10:46:46 PID_MischerCommands desired: 30
2017-02-17_10:46:46 PID_MischerCommands measured: 41.783
2017-02-17_10:46:46 PID_MischerCommands p_p: -294.575
2017-02-17_10:46:46 PID_MischerCommands p_d: 0
2017-02-17_10:46:46 PID_MischerCommands p_i: 1.20625
2017-02-17_10:46:46 PID_MischerCommands actuation: 0
2017-02-17_10:46:46 PID_MischerCommands actuationCalc: -293.36875
2017-02-17_10:46:46 PID_MischerCommands delta: -11.783
2017-02-17_10:46:46 PID_MischerCommands processing
2017-02-17_10:47:47 PID_MischerCommands desired: 30
2017-02-17_10:47:47 PID_MischerCommands measured: 41.371
2017-02-17_10:47:47 PID_MischerCommands p_p: -284.275
2017-02-17_10:47:47 PID_MischerCommands p_d: 0
2017-02-17_10:47:47 PID_MischerCommands p_i: 1.20625
2017-02-17_10:47:47 PID_MischerCommands actuation: 0
2017-02-17_10:47:47 PID_MischerCommands actuationCalc: -283.06875
2017-02-17_10:47:47 PID_MischerCommands delta: -11.371
2017-02-17_10:47:48 PID_MischerCommands processing
2017-02-17_10:48:48 PID_MischerCommands desired: 30
2017-02-17_10:48:48 PID_MischerCommands measured: 41.508
2017-02-17_10:48:48 PID_MischerCommands p_p: -287.7
2017-02-17_10:48:48 PID_MischerCommands p_d: 0
2017-02-17_10:48:48 PID_MischerCommands p_i: 1.20625
2017-02-17_10:48:48 PID_MischerCommands actuation: 0
2017-02-17_10:48:48 PID_MischerCommands actuationCalc: -286.49375
2017-02-17_10:48:48 PID_MischerCommands delta: -11.508
2017-02-17_10:48:48 PID_MischerCommands processing
2017-02-17_10:49:48 PID_MischerCommands desired: 30
2017-02-17_10:49:48 PID_MischerCommands measured: 42.171
2017-02-17_10:49:48 PID_MischerCommands p_p: -304.275
2017-02-17_10:49:48 PID_MischerCommands p_d: 0
2017-02-17_10:49:48 PID_MischerCommands p_i: 1.20625
2017-02-17_10:49:48 PID_MischerCommands actuation: 0
2017-02-17_10:49:48 PID_MischerCommands actuationCalc: -303.06875
2017-02-17_10:49:48 PID_MischerCommands delta: -12.171
2017-02-17_10:49:48 PID_MischerCommands processing
2017-02-17_10:50:49 PID_MischerCommands desired: 30
2017-02-17_10:50:49 PID_MischerCommands measured: 43.204
2017-02-17_10:50:49 PID_MischerCommands p_p: -330.1
2017-02-17_10:50:49 PID_MischerCommands p_d: 0
2017-02-17_10:50:49 PID_MischerCommands p_i: 1.20625
2017-02-17_10:50:49 PID_MischerCommands actuation: 0
2017-02-17_10:50:49 PID_MischerCommands actuationCalc: -328.89375
2017-02-17_10:50:49 PID_MischerCommands delta: -13.204
2017-02-17_10:50:49 PID_MischerCommands processing
2017-02-17_10:51:50 PID_MischerCommands desired: 30
2017-02-17_10:51:50 PID_MischerCommands measured: 44.442
2017-02-17_10:51:50 PID_MischerCommands p_p: -361.05
2017-02-17_10:51:50 PID_MischerCommands p_d: 0
2017-02-17_10:51:50 PID_MischerCommands p_i: 1.20625
2017-02-17_10:51:50 PID_MischerCommands actuation: 0
2017-02-17_10:51:50 PID_MischerCommands actuationCalc: -359.84375
2017-02-17_10:51:50 PID_MischerCommands delta: -14.442
2017-02-17_10:51:50 PID_MischerCommands processing
2017-02-17_10:52:51 PID_MischerCommands desired: 30
2017-02-17_10:52:51 PID_MischerCommands measured: 45.587
2017-02-17_10:52:51 PID_MischerCommands p_p: -389.675
2017-02-17_10:52:51 PID_MischerCommands p_d: 0
2017-02-17_10:52:51 PID_MischerCommands p_i: 1.20625
2017-02-17_10:52:51 PID_MischerCommands actuation: 0
2017-02-17_10:52:51 PID_MischerCommands actuationCalc: -388.46875
2017-02-17_10:52:51 PID_MischerCommands delta: -15.587
2017-02-17_10:52:51 PID_MischerCommands processing
2017-02-17_10:53:52 PID_MischerCommands desired: 30
2017-02-17_10:53:52 PID_MischerCommands measured: 46.263
2017-02-17_10:53:52 PID_MischerCommands p_p: -406.575
2017-02-17_10:53:52 PID_MischerCommands p_d: 0
2017-02-17_10:53:52 PID_MischerCommands p_i: 1.20625
2017-02-17_10:53:52 PID_MischerCommands actuation: 0
2017-02-17_10:53:52 PID_MischerCommands actuationCalc: -405.36875
2017-02-17_10:53:52 PID_MischerCommands delta: -16.263
2017-02-17_10:53:52 PID_MischerCommands processing
2017-02-17_10:54:53 PID_MischerCommands desired: 30
2017-02-17_10:54:53 PID_MischerCommands measured: 45.737
2017-02-17_10:54:53 PID_MischerCommands p_p: -393.425
2017-02-17_10:54:53 PID_MischerCommands p_d: 0
2017-02-17_10:54:53 PID_MischerCommands p_i: 1.20625
2017-02-17_10:54:53 PID_MischerCommands actuation: 0
2017-02-17_10:54:53 PID_MischerCommands actuationCalc: -392.21875
2017-02-17_10:54:53 PID_MischerCommands delta: -15.737
2017-02-17_10:54:53 PID_MischerCommands processing
2017-02-17_10:55:54 PID_MischerCommands desired: 30
2017-02-17_10:55:54 PID_MischerCommands measured: 45.038
2017-02-17_10:55:54 PID_MischerCommands p_p: -375.95
2017-02-17_10:55:54 PID_MischerCommands p_d: 0
2017-02-17_10:55:54 PID_MischerCommands p_i: 1.20625
2017-02-17_10:55:54 PID_MischerCommands actuation: 0
2017-02-17_10:55:54 PID_MischerCommands actuationCalc: -374.74375
2017-02-17_10:55:54 PID_MischerCommands delta: -15.038
2017-02-17_10:55:54 PID_MischerCommands processing
2017-02-17_10:56:55 PID_MischerCommands desired: 30
2017-02-17_10:56:55 PID_MischerCommands measured: 43.633
2017-02-17_10:56:55 PID_MischerCommands p_p: -340.825
2017-02-17_10:56:55 PID_MischerCommands p_d: 0
2017-02-17_10:56:55 PID_MischerCommands p_i: 1.20625
2017-02-17_10:56:55 PID_MischerCommands actuation: 0
2017-02-17_10:56:55 PID_MischerCommands actuationCalc: -339.61875
2017-02-17_10:56:55 PID_MischerCommands delta: -13.633
2017-02-17_10:56:55 PID_MischerCommands processing
2017-02-17_10:57:57 PID_MischerCommands desired: 30
2017-02-17_10:57:57 PID_MischerCommands measured: 41.883
2017-02-17_10:57:57 PID_MischerCommands p_p: -297.075
2017-02-17_10:57:57 PID_MischerCommands p_d: 0
2017-02-17_10:57:57 PID_MischerCommands p_i: 1.20625
2017-02-17_10:57:57 PID_MischerCommands actuation: 0
2017-02-17_10:57:57 PID_MischerCommands actuationCalc: -295.86875
2017-02-17_10:57:57 PID_MischerCommands delta: -11.883
2017-02-17_10:57:57 PID_MischerCommands processing
2017-02-17_10:58:58 PID_MischerCommands desired: 30
2017-02-17_10:58:58 PID_MischerCommands measured: 39.967
2017-02-17_10:58:58 PID_MischerCommands p_p: -249.175
2017-02-17_10:58:58 PID_MischerCommands p_d: 0
2017-02-17_10:58:58 PID_MischerCommands p_i: 1.20625
2017-02-17_10:58:58 PID_MischerCommands actuation: 0
2017-02-17_10:58:58 PID_MischerCommands actuationCalc: -247.96875
2017-02-17_10:58:58 PID_MischerCommands delta: -9.967
2017-02-17_10:58:58 PID_MischerCommands processing
2017-02-17_10:59:58 PID_MischerCommands desired: 30
2017-02-17_10:59:58 PID_MischerCommands measured: 38.767
2017-02-17_10:59:58 PID_MischerCommands p_p: -219.175
2017-02-17_10:59:58 PID_MischerCommands p_d: 0
2017-02-17_10:59:58 PID_MischerCommands p_i: 1.20625
2017-02-17_10:59:58 PID_MischerCommands actuation: 0
2017-02-17_10:59:58 PID_MischerCommands actuationCalc: -217.96875
2017-02-17_10:59:58 PID_MischerCommands delta: -8.767
2017-02-17_10:59:58 PID_MischerCommands processing
2017-02-17_11:00:59 PID_MischerCommands desired: 30
2017-02-17_11:00:59 PID_MischerCommands measured: 38.104
2017-02-17_11:00:59 PID_MischerCommands p_p: -202.6
2017-02-17_11:00:59 PID_MischerCommands p_d: 0
2017-02-17_11:00:59 PID_MischerCommands p_i: 1.20625
2017-02-17_11:00:59 PID_MischerCommands actuation: 0
2017-02-17_11:00:59 PID_MischerCommands actuationCalc: -201.39375
2017-02-17_11:00:59 PID_MischerCommands delta: -8.104
2017-02-17_11:00:59 PID_MischerCommands processing


Ist die Ventil-SOLL-Stellung actuation lange Zeit auf dem Wert 0, jedoch bleibt der STELLMOTOR und damit der Mischer auf hohen Werten:


017-02-17_10:27:05 EG.HWR.Fussbodenmischer position: 49
2017-02-17_10:30:00 EG.HWR.Fussbodenmischer position: 1   << addLog
2017-02-17_10:35:00 EG.HWR.Fussbodenmischer position: 1   << addLog
2017-02-17_10:37:38 EG.HWR.Fussbodenmischer position: 67
2017-02-17_10:40:00 EG.HWR.Fussbodenmischer position: 63   << addLog
2017-02-17_10:45:00 EG.HWR.Fussbodenmischer position: 63   << addLog
2017-02-17_10:50:00 EG.HWR.Fussbodenmischer position: 63   << addLog
2017-02-17_10:53:04 EG.HWR.Fussbodenmischer position: 44
2017-02-17_10:55:00 EG.HWR.Fussbodenmischer position: 44   << addLog
2017-02-17_10:59:59 EG.HWR.Fussbodenmischer position: 44   << addLog


Bis ich ihn um 10:53 auf 44 setze. Das funktioniert auch prima.

Anscheinend spricht meine Aktor-Definition nur kurz (beim Start Zielwert 67) mit dem STELLMOTOR/Mischer, kann diesen aber nur einmal auf 63 einstellen, obwohl der berechnete Zielwert 0 ist...

Was sollte ich anders machen?

Danke, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA