Autor Thema: PID-Modul: Vorschläge (gelöst)  (Gelesen 50135 mal)

Offline John

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1426
Aw: PID-Modul: Vorschläge
« Antwort #90 am: 07 Oktober 2013, 23:48:21 »
Hi Udo
delta kann positiv u. negativ werden.

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

Hans


if($delta >= AttrVal($name,'pidDeltaTreshold','0')) {

John
CubieTruck CULV3 MAX HM  Logo  ESP8266 MQTT PID20 HourCounter MaxScanner KostalPiko

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17955
  • Stoppt den Unicode-Irrsinn!
Aw: PID-Modul: Vorschläge
« Antwort #91 am: 07 Oktober 2013, 23:49:05 »
ja, das ist aber im Moment nicht das Problem.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Hans Franz

  • Sr. Member
  • ****
  • Beiträge: 547
Aw: PID-Modul: Vorschläge
« Antwort #92 am: 07 Oktober 2013, 23:52:57 »
Zitat von: betateilchen schrieb am Mo, 07 Oktober 2013 23:46
lösche mal das Attribut pidActorTreshold

Tata,
2013.10.07 23:50:46 3: aDiff:0 pAT:0  tDiff:4.38690185546875e-05 pAI:0
2013.10.07 23:50:46 3: PID heizung.04: set stellantrieb.04 valve 98


Das sieht doch schon besser aus.
Aber wieso ist $aDIFF immer 0?
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17955
  • Stoppt den Unicode-Irrsinn!
Aw: PID-Modul: Vorschläge
« Antwort #93 am: 07 Oktober 2013, 23:54:42 »
Weil der Stellantrieb noch nie gestellt wurde. Eigentlich sollte das JETZT nicht mehr 0 sein.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline John

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1426
Aw: PID-Modul: Vorschläge
« Antwort #94 am: 08 Oktober 2013, 00:00:48 »
Nochmal,
wenn der Istwert goesser als der Sollwert ist, dann geht der Regler in Pause, da Delta negativ wird.
Das ist nun wirklich ein Problem oder ?


Wie wärs mit
if(abs($delta) >= AttrVal($name,'pidDeltaTreshold','0')) {

Dann sind wohl auch die anderen Probleme mit der Stellausgabe gelöst.
John
CubieTruck CULV3 MAX HM  Logo  ESP8266 MQTT PID20 HourCounter MaxScanner KostalPiko

Offline Hans Franz

  • Sr. Member
  • ****
  • Beiträge: 547
Aw: PID-Modul: Vorschläge
« Antwort #95 am: 08 Oktober 2013, 00:06:23 »
Zitat von: betateilchen schrieb am Mo, 07 Oktober 2013 23:54
Weil der Stellantrieb noch nie gestellt wurde. Eigentlich sollte das JETZT nicht mehr 0 sein.

Leider doch:
2013.10.07 23:53:48 3: PID heizung.04: set stellantrieb.04 valve 98
2013.10.07 23:53:48 3: FHT8V set stellantrieb.04 valve 98
2013.10.07 23:53:48 3: get stellantrieb.04 valve : 97
2013.10.07 23:53:48 3: PID heizung.04: set heizung.04 desired 21
2013.10.07 23:53:49 3: aDiff:0 pAT:0  tDiff:60.8145229816437 pAI:0
2013.10.07 23:53:49 3: PID heizung.04: set stellantrieb.04 valve 98
2013.10.07 23:53:49 3: FHT8V set stellantrieb.04 valve 98
2013.10.07 23:54:49 3: aDiff:0 pAT:0  tDiff:60.3309800624847 pAI:0
2013.10.07 23:54:49 3: PID heizung.04: set stellantrieb.04 valve 98
2013.10.07 23:54:49 3: FHT8V set stellantrieb.04 valve 98
2013.10.07 23:54:49 3: get stellantrieb.04 valve : 97
2013.10.07 23:54:49 3: PID heizung.04: set heizung.04 desired 21
2013.10.07 23:54:50 3: aDiff:0 pAT:0  tDiff:60.8117101192474 pAI:0
2013.10.07 23:54:50 3: PID heizung.04: set stellantrieb.04 valve 98
2013.10.07 23:54:50 3: FHT8V set stellantrieb.04 valve 98
2013.10.07 23:55:50 3: aDiff:0 pAT:0  tDiff:60.3267669677734 pAI:0
2013.10.07 23:55:50 3: PID heizung.04: set stellantrieb.04 valve 98
2013.10.07 23:55:50 3: FHT8V set stellantrieb.04 valve 98
2013.10.07 23:55:50 3: get stellantrieb.04 valve : 97
2013.10.07 23:55:50 3: PID heizung.04: set heizung.04 desired 21
2013.10.07 23:55:51 3: aDiff:0 pAT:0  tDiff:60.8101971149445 pAI:0
2013.10.07 23:55:51 3: PID heizung.04: set stellantrieb.04 valve 98
2013.10.07 23:55:51 3: FHT8V set stellantrieb.04 valve 98
2013.10.07 23:56:51 3: aDiff:0 pAT:0  tDiff:60.3250930309296 pAI:0
2013.10.07 23:56:51 3: PID heizung.04: set stellantrieb.04 valve 98
2013.10.07 23:56:51 3: FHT8V set stellantrieb.04 valve 98



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

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17955
  • Stoppt den Unicode-Irrsinn!
Aw: PID-Modul: Vorschläge
« Antwort #96 am: 08 Oktober 2013, 00:06:32 »
Wenn schon, dann bitte so: if(abs($delta) >= abs(AttrVal($name,'pidDeltaTreshold','0'))) {

Aber um dieses Thema geht es gerade überhaupt nicht!
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17955
  • Stoppt den Unicode-Irrsinn!
Aw: PID-Modul: Vorschläge
« Antwort #97 am: 08 Oktober 2013, 00:08:05 »
Zitat von: Hans Franz schrieb am Di, 08 Oktober 2013 00:06
Leider doch:


Mach nochmal bitte ein "list <pidName>"

-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Hans Franz

  • Sr. Member
  • ****
  • Beiträge: 547
Aw: PID-Modul: Vorschläge
« Antwort #98 am: 08 Oktober 2013, 00:23:13 »
Internals:
   DEF        CUL_WS_5 stellantrieb.04
   NAME       heizung.04
   NR         360
   STATE      18.8 (delta 1.2)
   TYPE       PID
   Readings:
     2013-10-08 00:15:51   actuation       0
     2013-10-08 00:15:51   delta           0
     2013-10-08 00:16:45   desired         20
     2013-10-08 00:15:51   integrator      0
     2013-10-08 00:21:47   measured        18.8
     2013-10-07 22:57:21   p_d             16.4705882352941
     2013-10-07 22:57:21   p_i             3.13725490196076
     2013-10-07 22:57:21   p_p             96.8627450980392
     2013-10-08 00:21:46   sensorState     alive
     2013-10-08 00:21:47   state           paused
   Helper:
     actor      stellantrieb.04
     command    valve
     dFactor    5.88235294117647
     errorState
     iFactor    3.05882352941176
     pFactor    25.4901960784314
     pausedSince 1381184151.72795
     reading    temperature
     regexp     ([\d\.]*)
     satMax     100
     satMin     0
     sensor     CUL_WS_5
Attributes:
   alias      Heizungen_4
   room       Heizungen

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

Offline John

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1426
Aw: PID-Modul: Vorschläge
« Antwort #99 am: 08 Oktober 2013, 00:27:45 »
setActor wird niemals aufgerufen solange {lastActVal} nicht definiert ist.


my $aDiff = 0;
$aDiff = abs($a - $hash->{helper}{lastActVal}) if($hash->{helper}{lastActVal});
.....
if($aDiff >= $pAT && $tDiff >= $pAI) {
# send command to actor
setActor($hash,$a);
}



damit bleibt aDiff dauerhaft auf 0.

lastActVal wird aber nur in setActor aktualisiert.
CubieTruck CULV3 MAX HM  Logo  ESP8266 MQTT PID20 HourCounter MaxScanner KostalPiko

Offline Hans Franz

  • Sr. Member
  • ****
  • Beiträge: 547
Aw: PID-Modul: Vorschläge
« Antwort #100 am: 08 Oktober 2013, 01:01:17 »
if(abs($delta) >= AttrVal($name,'pidDeltaTreshold','0')) {
führt zu
Use of uninitialized value $i in numeric gt (>) at ./FHEM/98_PID.pm line 305.
Use of uninitialized value $i in numeric lt (<) at ./FHEM/98_PID.pm line 306.
Use of uninitialized value $i in addition (+) at ./FHEM/98_PID.pm line 309.
Use of uninitialized value $a in int at ./FHEM/98_PID.pm line 310.
Use of uninitialized value $i in int at ./FHEM/98_PID.pm line 310.
Use of uninitialized value $i in sprintf at ./FHEM/98_PID.pm line 312.


also wieder rausgeschmissen.

dennoch jetzt:
Use of uninitialized value $a in int at ./FHEM/98_PID.pm line 310.
Use of uninitialized value $a in sprintf at ./FHEM/98_PID.pm line 312.
Use of uninitialized value $a in int at ./FHEM/98_PID.pm line 316.


Ich blick' den Code leider überhaupt noch nicht:(.

(heizung.04 ist mein Schlafzimmer. Ich geh' erst mal lüften :).)
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17955
  • Stoppt den Unicode-Irrsinn!
Aw: PID-Modul: Vorschläge
« Antwort #101 am: 08 Oktober 2013, 09:26:19 »
Moin. Ich hab grad keine Lust mehr.
Lasst mich doch einfach mal in Ruhe einen Fehler suchen, anstatt hier durch sinnlose Code-Basteleien, die scheitern müssen den Thread noch unübersichtlicher zu machen, als er sowieso schon ist.

Zitat von: John schrieb am Di, 08 Oktober 2013 00:27
setActor wird niemals aufgerufen solange {lastActVal} nicht definiert ist.


Diese Aussage ist so schlichtweg falsch.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Hans Franz

  • Sr. Member
  • ****
  • Beiträge: 547
Aw: PID-Modul: Vorschläge
« Antwort #102 am: 08 Oktober 2013, 09:51:17 »
Moin,
lastActVal ist nun intialisiert, wieso auch immer.
Wenn desired grösser ist als measured wird das Ventil auch geöffnet. Alles OK.
Aber wenn desired kleiner als measured (negatives Delta) bleiben actuation und Delta in den Readings auf den alten Werten.
Das Ventil wird nicht geschlossen.
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17955
  • Stoppt den Unicode-Irrsinn!
Aw: PID-Modul: Vorschläge
« Antwort #103 am: 08 Oktober 2013, 09:55:03 »
Zitat von: Hans Franz schrieb am Di, 08 Oktober 2013 09:51
Aber wenn desired kleiner als measured (negatives Delta) bleiben actuation und Delta in den Readings auf den alten Werten.
Das Ventil wird nicht geschlossen.


Ja, ich weiß...
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline fhainz

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1263
Aw: PID-Modul: Vorschläge
« Antwort #104 am: 08 Oktober 2013, 16:26:00 »
Bis auf den negatives Delta Fehler funktioniert's jetzt bei mir. :)

 

decade-submarginal