PID-Modul: Vorschläge (gelöst)

Begonnen von John, 01 Oktober 2013, 23:22:35

Vorheriges Thema - Nächstes Thema

fhainz

Hallo!

Da bisher das Ventil immer noch nicht auf das PID Modul gehört hat, hab ich nochmal die alte Version eingespielt. Neugestartet und schon wurde mir der richtige Stellwert angezeigt und hat auch aufs Modul gehört. Wieder deine Version eingespielt und wieder stand defined da. Sollwert schicken hat nichts gebracht. Direkter Wert hat geklappt, aber wird nicht mehr durch PID zurückgeregelt.

Hat noch jemand mit einem FHT 8V Ventil getestet?

Grüße

Edit:
actuation im Modul ist auf 63% aber das Ventil rührt sich nicht.

Hans Franz

Zitat von: fhainz schrieb am Mo, 07 Oktober 2013 17:50Hallo!
Hat noch jemand mit einem FHT 8V Ventil getestet?
Das kann ich leider bestätigen :(.

Außerdem:
2013.10.07 18:28:08 3: PID heizung.04: paused - delta: -3
2013.10.07 18:30:33 3: PID heizung.04: set heizung.04 desired 25
2013.10.07 18:35:35 2: PID heizung.04: outdated readings deleted

Seitdem kein Log-Eintrag von heizung.04 mehr.

Wenn sich outdated auf den Temp.-Sensor bezieht, hier der Auszug aus dem Log:
2013-10-07_18:30:52 CUL_WS_5 T: 18.0  H: 75.3 D: 13.6
2013-10-07_18:33:47 CUL_WS_5 T: 17.9  H: 75.3 D: 13.5

Edit:
Nach Herabsetzen von desired:
2013.10.07 19:05:10 3: PID heizung.04: set heizung.04 desired 15
2013.10.07 19:05:10 3: PID heizung.04: paused - delta: -2.9
2013.10.07 19:06:11 3: PID heizung.04: paused - delta: -2.9
2013.10.07 19:07:11 3: PID heizung.04: paused - delta: -2.9
2013.10.07 19:08:11 3: PID heizung.04: paused - delta: -2.9


Hans



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

betateilchen

äh... irgendwie versteh ich das Problem grade nicht. (Ja, ich habe erfolgreich mit einem FHT8V getestet, aber welcher Stellantrieb verwendet wird, ist wurscht, es funktioniert sogar mit einem Dummy).


2013.10.07 18:28:08 3: PID heizung.04: paused - delta: -3
2013.10.07 18:30:33 3: PID heizung.04: set heizung.04 desired 25
2013.10.07 18:35:35 2: PID heizung.04: outdated readings deleted


Der PID steht auf paused, weil die Ist-Temperatur 3 Grad höher ist als die Solltemperatur. Was soll der PID da regeln?

Die paused-Meldung sollte sich im Log wiederholen, und zwar im Abstand von "pidDeltaInterval".

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Hans Franz

Zitat von: betateilchen schrieb am Mo, 07 Oktober 2013 19:05Der PID steht auf paused, weil die Ist-Temperatur 3 Grad höher ist als die Solltemperatur. Was soll der PID da regeln?
Die desired um 18:30 auf 25 Grad erhöht (gemessen 18 Grad), dann keine Logeinträge mehr bis desired wieder kleiner als gemessene Temperatur.
Oder verstehe ich etwas grundsätzlich falsch?

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

betateilchen

mach mal bitte ein "list <pidName>" und poste die Ausgabe hier.



(siehe Anhang / see attachement)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Teste mal diese Version hier im Anhang.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Hans Franz

Gerne:

Internals:
   DEF        CUL_WS_5 stellantrieb.04
   NAME       heizung.04
   NR         360
   STATE      17.8 (delta 2.2)
   TYPE       PID
   Readings:
     2013-10-07 19:41:17   actuation       70
     2013-10-07 19:41:17   delta           2.2
     2013-10-07 19:39:16   desired         20
     2013-10-07 19:36:34   integrator      0
     2013-10-07 19:41:17   measured        17.8
     2013-10-07 19:41:17   p_d             7.05882352941176
     2013-10-07 19:41:17   p_i             7.72941176470588
     2013-10-07 19:41:17   p_p             56.078431372549
     2013-10-07 19:41:17   sensorState     alive
     2013-10-07 19:41:17   state           active
   Helper:
     actor      stellantrieb.04
     command    valve
     dFactor    5.88235294117647
     errorState
     iFactor    3.05882352941176
     pFactor    25.4901960784314
     reading    temperature
     regexp     ([\d\.]*)
     satMax     100
     satMin     0
     sensor     CUL_WS_5
Attributes:
   alias      Heizungen_4
   pidActorTreshold 2
   room       Heizungen


Ich habe einfach nur das PID-Modul getauscht, ohne attributes zu setzen (jetzt gerade erst pidActorTreshold).
Könnte hier der Fehler liegen?
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

betateilchen

Nein, das Modul läuft auch komplett ohne gesetzte Attribute. Siehe meinen Screenshot von eben.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Hans Franz

Hallo,
auch mit der neuen Version Logeinträge nur bei negativem Delta und keine Befehle an Stellantriebe.

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

betateilchen

keine Ahnung was Du da machst.

Bei mir im Log passiert folgendes:


2013.10.07 20:02:47 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:03:47 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:04:48 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:05:48 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:06:48 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:07:48 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:08:49 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:09:49 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:10:49 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:11:49 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:12:49 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:13:50 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:14:50 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:15:50 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:16:51 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:17:51 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:18:51 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:19:51 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:20:52 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:21:52 3: PID ku_FHT: paused - delta: -7.2
2013.10.07 20:21:52 3: PID ku_FHT: send keepAlive
2013.10.07 20:21:52 3: FHT8V set ku_Ventil valve 0


Solange der PID pausiert, erfolgt jede Minute ein Logeintrag, aber ansonsten keine Aktion.
Spätestens nach 30 Minuten wird ein keepAlive Befehl an das Stellventil gesendet.

Und genau so ist das auch gedacht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

fhainz

Auch mit der neuen Version rührt sicher das Ventil nicht. Hab auch nochmal neu gepaired. Pipser wie immer erhalten und Soll-Temp. hoch gesetzt aber nichts passiert.

Internals:
   DEF        Schlafzimmer szStellventil
   NAME       szHeizung
   NR         254
   STATE      18.4 (delta 1.6)
   TYPE       PID
   Readings:
     2013-10-07 21:13:24   actuation       50
     2013-10-07 21:13:24   delta           1.6
     2013-10-07 21:08:21   desired         20
     2013-10-07 20:50:25   integrator      0
     2013-10-07 21:13:24   measured        18.4
     2013-10-07 21:13:24   p_d             3.52941176470589
     2013-10-07 21:13:24   p_i             5.89411764705883
     2013-10-07 21:13:24   p_p             40.7843137254902
     2013-10-07 21:13:24   sensorState     alive
     2013-10-07 21:13:24   state           active
   Helper:
     actor      szStellventil
     command    valve
     dFactor    5.88235294117647
     errorState
     iFactor    3.05882352941176
     pFactor    25.4901960784314
     pausedSince 0
     reading    temperature
     regexp     ([\d\.]*)
     satMax     100
     satMin     0
     sensor     Schlafzimmer
Attributes:
   alias      Temperatur
   group      Heizung
   icon       temp_temperature
   room       2_Schlafzimmer


Edit:
Hier auch mal meine Defines:

define szStellventil FHT8V 1234
attr szStellventil alias Stellventil
attr szStellventil group Heizung
attr szStellventil icon sani_heating
attr szStellventil room 2_Schlafzimmer

define szHeizung PID Schlafzimmer szStellventil
attr szHeizung alias Temperatur
attr szHeizung group Heizung
attr szHeizung icon temp_temperature
attr szHeizung room 2_Schlafzimmer

define szHeizungDesiredTemp dummy
attr szHeizungDesiredTemp alias Temperatur Sollwert
attr szHeizungDesiredTemp group Heizung
attr szHeizungDesiredTemp icon temp_control
attr szHeizungDesiredTemp room 2_Schlafzimmer
attr szHeizungDesiredTemp setList state:17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22
attr szHeizungDesiredTemp webCmd state
define nSzHeizung notify szHeizungDesiredTemp {\
    my $neuer_wert = ReadingsVal("szHeizungDesiredTemp","state","0") ;;\
    fhem("set szHeizung desired $neuer_wert");;\
  }

betateilchen

*grübel* ich habe jetzt zumindest verstanden, was das Problem ist. Ich mach mich mal auf die Suche :)



EDIT: Ich habe den Fehler gefunden, aber noch nicht seine Ursache...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Hans Franz

Die letzte Version zeigt das gleiche Verhalten.:(

Ich habe mal $aDiff und $pAT mitprotokolliert.
Bei mir bleibt $aDiff auf 0.
Somit wird $aDiff >= $pAT wohl nicht wahr.

Hans

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

betateilchen

lösche mal das Attribut pidActorTreshold
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!