FHEM Forum

FHEM => Automatisierung => Thema gestartet von: PeterN am 03 Februar 2013, 14:40:59

Titel: PID , Minimalwert für FHT8V setzen
Beitrag von: PeterN am 03 Februar 2013, 14:40:59
Hallo,

folgendes Problem, ich wollte meine funktionierende PID Definition "define heizung.04 pid Arbeitszimmer stellantrieb.04"
um den Minimallwert für den FHT8V erweitern >> "define heizung.04 pid Arbeitszimmer stellantrieb.04:valve:25:100"
Seit der Änderung wird aber der FHT8V nicht mehr angesteuert und verharrt bei 25%.

Danke,

Peter
Titel: Aw: PID , Minimalwert für FHT8V setzen
Beitrag von: rudolfkoenig am 03 Februar 2013, 15:53:44
Ich fuerchte das Problem musst Du selbst finden mit Debug-Ausgaben im PID-Modul und nachrechnen.
Titel: Aw: PID , Minimalwert für FHT8V setzen
Beitrag von: PeterN am 24 Februar 2013, 15:58:43
Hallo,

anscheinend wird der "valve" Wert mit Nachkommastelle ausgegeben, was kann man dagegen tun?

2013.02.24 13:25:31 3: PID heizung.04: p:0.60 i:100.00 d:0.00
2013.02.24 13:25:31 3: FHT8V set stellantrieb.04 valve 100

2013.02.24 13:41:34 3: PID heizung.04: p:0.00 i:100.00 d:-0.15
2013.02.24 13:41:34 3: set stellantrieb.04 valve 99.85 : Set valve needs a numeric parameter between 0 and 100
2013.02.24 13:41:34 3: output of heizung.04 command: Set valve needs a numeric parameter between 0 and 100

2013.02.24 13:46:55 3: PID heizung.04: p:0.00 i:100.00 d:0.00
2013.02.24 13:46:55 3: FHT8V set stellantrieb.04 valve 100

2013.02.24 13:52:16 3: PID heizung.04: p:-0.60 i:99.75 d:-0.15
2013.02.24 13:52:16 3: FHT8V set stellantrieb.04 valve 99

2013.02.24 13:57:37 3: PID heizung.04: p:-1.20 i:99.25 d:-0.15
2013.02.24 13:57:37 3: set stellantrieb.04 valve 97.9 : Set valve needs a numeric parameter between 0 and 100
2013.02.24 13:57:37 3: output of heizung.04 command: Set valve needs a numeric parameter between 0 and 100

Peter
Titel: Aw: PID , Minimalwert für FHT8V setzen
Beitrag von: fgerhardt am 13 März 2013, 22:35:47
Hallo Peter,

ändere in 98_PID.pm in der Zeile
my $ret = fhem sprintf("set %s %s %g", $pid->{actor}, $pid->{command}, $a);

a$ in int(a$).

Gruß
Friedhelm
Titel: Aw: PID , Minimalwert für FHT8V setzen
Beitrag von: PeterN am 14 März 2013, 18:53:52
Hallo Friedhelm,
Das ist die Lösung, jetzt arbeitet der PID Regler so wie er soll,
Vielen Dank
Peter
Titel: Aw: PID , Minimalwert für FHT8V setzen
Beitrag von: Bernhard am 23 Mai 2013, 14:22:38
Zitat von: fgerhardt schrieb am Mi, 13 März 2013 22:35ändere in 98_PID.pm in der Zeile
my $ret = fhem sprintf("set %s %s %g", $pid->{actor}, $pid->{command}, $a);

a$ in int(a$).


Kann diese Änderung jemand einchecken?

Danke
Titel: Aw: PID , Minimalwert für FHT8V setzen
Beitrag von: rudolfkoenig am 25 Mai 2013, 09:49:47
>  Kann diese Änderung jemand einchecken?

Na so billig geht es nicht, schliesslich wuerde man damit die zwei Zeilen weiter oben getroffene (und kommentierte) Heuristik aushebeln, die rundet, falls das Unterschied zw. min und max >= 100 ist.

Ich habe jetzt ein Attribut roundValveValue eingefuehrt, dies ist in diesem Fall auf 1 zu setzen.
Titel: Aw: PID , Minimalwert für FHT8V setzen
Beitrag von: fgerhardt am 25 Mai 2013, 10:22:31
stimmt schon, nur arbeiten die FHT8V nicht mehr sobald kein ganzzahliger Wert gesendet wird.
Titel: Aw: PID , Minimalwert für FHT8V setzen
Beitrag von: Bernhard am 25 Mai 2013, 14:38:04
ganz konkret:
PID gibt berechnete Werte - auch nicht ganzzahlige - Werte an FHT8V.
FHT8V lehnt diese Werte mit Fehlermeldung ab.
In Folge davon kommt es vor, daß die Ventile über lange Zeit keine neuen (korrekten) Werte mehr erhalten.
Alternativ müsste eben in FHT8V Zeile 70
eingefügt/geändert werden:
    return "Set valve needs a numeric parameter between 0 and 100 ==> $a[2] <=="
        if(@a != 3 || $a[2] !~ m/^\d+([.]\d+)?$/ || $a[2] < 0 || $a[2] > 100);
Titel: Aw: PID , Minimalwert für FHT8V setzen
Beitrag von: PeterN am 26 Mai 2013, 12:14:34
Hallo Rudolf,
danke für die Änderung im "offiziellen" PID Modul.
für mich ist der Minimalwert des FHT8V sehr wichtig um den "Kuhschwanzheizung (//www.haustechnikdialog.de/shkwissen/643/Kuhschwanzheizung)" Effekt zu minimieren.
Übrigens, falls jemand Infos zur Heizungsproblemen braucht ist der "Haustechnikdialog (//www.haustechnikdialog.de/Forum)" nur zu empfehlen.

Peter