Hi,
ich habe das Problem, dass mein PID-Regler einen I-Anteil aufweist, obwohl der factor auf 0 gestellt ist:
nternals:
CHANGED
DEF OW_HV_RLA:temperature D_PID_HV
NAME PID_HV
NR 27
NTFY_ORDER 50-PID_HV
STATE processing, A: 235ms 2017-12-15 11:32:05
TYPE PID20
VERSION 1.0.0.9
READINGS:
2017-12-15 11:32:05 actuation 2500
2017-12-15 11:32:05 actuationCalc 2734.710626369132
2017-12-15 11:32:05 delta 0.125
2017-12-15 11:32:05 desired 61
2017-12-15 11:32:05 measured 60.875
2017-12-15 11:32:05 p_d 172.210626369132
2017-12-15 11:32:05 p_i 2500
2017-12-15 11:32:05 p_p 62.5
2017-12-15 10:56:16 restarted 6557
2017-12-15 11:32:05 state processing
helper:
actor D_PID_HV
actorCommand
actorErrorAction freeze
actorErrorPos 0
actorInterval 1
actorKeepAlive 1800
actorLimitLower -5000
actorLimitUpper 2500
actorThreshold 0
actorTimestamp 2017-12-15 11:32:05
actorValueDecPlaces 0
adjust
calcInterval 15
deltaGradient 0.0291183128029433
deltaOld 0.313000000000002
deltaOldTS 2017-12-15 11:32:11
deltaTreshold 0
desiredName desired
disable 0
factor_D 600
factor_I 0
factor_P 500
isWindUP
measuredName measured
reading temperature
regexp ^([\+,\-]?\d+\.?\d*$)
reverseAction 0
sensor OW_HV_RLA
sensorTimeout 3600
stopped 0
updateInterval 600
Attributes:
comment positive Werte: mehr Vorlaufwasser/Temperatur muss höher/nach links drehen
negative Werte: mehr kaltes Wasser/Temperatur soll niedriger/nach rechts drehen
event-on-change-reading state
event-on-update-reading actuation,actuationCalc,p_d,p_i,p_p,measured,desired,delta,restarted
pidActorInterval 1
pidActorLimitLower -5000
pidActorLimitUpper 2500
pidActorTreshold 0
pidActorValueDecPlaces 0
pidCalcInterval 15
pidFactor_D 600
pidFactor_I 0
pidFactor_P 500
room PID
stateFormat {sprintf("%s, A: %.0fms %s",ReadingsVal($name,"state",0),ReadingsVal($name,"actuation",0),ReadingsTimestamp($name,"actuation",0))}
Hat jemand eine Idee, woran das liegt, bzw. noch besser, wie ich es weg bekomme?
Grüße,
Stephan