Neues Modul PID20 - Der PID-Regler

Begonnen von John, 02 Dezember 2013, 22:03:40

Vorheriges Thema - Nächstes Thema

John

Das Modul PID20 ist seit 26.03.2014 Bestandteil von FHEM
(die Zwischenversionen in diesem Thread wurden gelöscht)

Das neue Modul PID20 realisiert einen PID-Regler mit erweiterten Funktionalitäten.

PID20 implementiert im Wesentlichen die in diesem Thread
http://forum.fhem.de/index.php/topic,15060.0.html
diskutierten neuen Features.

Es kann unabhängig zum bestehenden PID-Modul eingesetzt werden, so dass jederzeit der Schritt "zurück" möglich ist.

Beide Module können innerhalb von FHEM unabhängig voneinander, auch gleichzeitig genutzt werden.

Das Grundkonzept des Moduls, insbesondere die Dynamisierung von Setter-Namen beruht auf Code-Vorlagen von Betateilchen
aus dem erwähnten Thread.

Ich verwende das Modul seit nunmehr 2 Monaten mit einem MAX-Thermostat als Stellglied und einen HMS100TF als Istwert-Geber
für die Temperatur zur Regelung meiner Fußbodenheizung und bin damit sehr zufrieden.

Die Beschreibung findet sich im Wiki unter
http://www.fhemwiki.de/wiki/PID20_-_Der_PID-Regler


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Hans Franz

Danke !

Habe gerade umgestellt.
Log läuft. Plot auch. Werde berichten.

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

fgerhardt

Hallo John,

heute habe ich das Modul für einen von zwei Wohnzimmerheizkörpern in Betrieb genommen. Bisher haben alle
Regelversuche in irgendwelchen Extremsituationen versagt, darum suche ich noch immer nach einer Lösung.
Ich verwende FHT8V Stelltriebe und ein S300TH als Temperaturgeber.
Eine meiner Besonderheiten ist, dass meine Ventile bereits bei 18% geschlossen sind. Also sind ActorLimitLower auf 18 und ActorLimitUpper auf 100 gesetzt. Das führt alledings dazu, dass actuationCalc zwar richtig errechnet aber nie übergeben wird. Der actuation bleibt immer auf 18 stehen. Die Ausgabe von Get Params sagt dann auch für
Lower und Upper Limit 18 obwohl die Attribute richtig gesetzt sind.
Ohne LimitLower 18 scheint alles einwandfrei zu laufen, lediglich mit träger Regelung weil dann ja erst eine Ventilöffnung über 18% wirksam wird.

Vielleicht hast Du eine Idee für eine Anpassung.

Gruß, Friedhelm

John

#3
Hallo Friedhelm,

ich denke du hast den ersten Bug entdeckt.

Bin an dem Thema dran.

John

CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

John

#4
Hallo Friedhelm,
Problem ist gefixed.
Betrifft nur die, die das Attribut pidActorLimitUpper explizit gesetzt haben.

Anbei die neue Version 1.00.c

John

PS: Dateianhang gelöscht, da Modul in FHEM integriert ist
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

fgerhardt

Läuft jetzt einwandfrei!

Danke, Friedhelm

Smooth

Vielen Dank für das neue Modul....

Ich bin schon lange auf der Suche meinen MAX-Thermostaten vernünftiges Regeln bei zu bringen. Dazu möchte ich die Raumtemp.
über S300TH messen und die Stellgröße an das Thermostat ausgeben.

Wie hast Du den MAX Thermostaten als Stellorgan eingebunden?


mfg.

Michael

Smooth

Oh Augen auf... dann sieht man es  :o

Habe eben erst den Hinweis auf den WIKI Eintrag gesehen....


http://www.fhemwiki.de/wiki/PID20_-_Der_PID-Regler#Inbetriebnahme

Sorry

mfg.

Michael

John

Hallo Michael,
ich regle mit PID20+Max+HMS100TF meine Fußbodenheizung.

Den entsprechenden Forumseintrag findest du hier
http://forum.fhem.de/index.php/topic,14154.msg89039.html#msg89039
falls es von Interesse für dich ist.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

locodriver

Kleine Anmerkung zum Wiki-Artikel:

Zitat:

actuationCalc

Der Ausgabewert für das Stellglied wird wie folgt berechnet

  actuationCalc = p_d + p_i + p_d

In der Formel muss doch auch einmal p_p auftauchen - oder?

Uwe
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

John

Hallo Uwe,
schon erledigt. Danke für den Hinweis.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Smooth

Wie macht ihr das mit der Sendehäufigkeit?

Ich habe 9 MAX Thermostate... Wenn ich bei jedem den Intervall auf 15 Minuten stelle, dann habe ich 36 Sendevorgänge pro Stunde.
MAX lässt aber nur 33 Telegramme pro Stunde zu (zumindest mit dem CUL).

Gibt es hierfür einen Ansatz oder bin ich hier den Grenzen hilflos ausgeliefert?

Viele Grüße

Michael

John

#12
Hallo Michael,
warum überlässt du das Regeln nicht den Max-Thermostaten selbst ?

Ich habe 8 Maxe im Einsatz und nur 1 davon wird via PID20 angesteuert.

Die technischen Grenzen sind vom Gesetzgeber festgelegt  siehe Wiki
http://www.fhemwiki.de/wiki/1%25_Regel

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

fhainz

Ich hab das Modul seit ein paar Tagen mit einem FHT8V in Verwendung. Klappt soweit ganz gut.
Nur kann ich irgendwie einstellen das mein log nicht so zugespammt wird?

2013.12.08 21:47:31.524 3: [szHeizung] PID20_Calc.667 <set szStellventil valve 33> with ret:
2013.12.08 21:47:31.677 2: [szHeizung] PID20_Calc.691 readings updated
2013.12.08 21:48:03.409 3: [szHeizung] PID20_Set.329 set szHeizung desired 18
2013.12.08 21:48:55.424 2: [szHeizung] PID20_Notify.213 check 3 readings for temperature
2013.12.08 21:51:52.436 2: [szHeizung] PID20_Notify.213 check 3 readings for temperature
2013.12.08 21:53:03.410 3: [szHeizung] PID20_Set.329 set szHeizung desired 18
2013.12.08 21:54:49.457 2: [szHeizung] PID20_Notify.213 check 3 readings for temperature
2013.12.08 21:57:31.854 3: FHT8V set szStellventil valve 34
2013.12.08 21:57:31.964 3: [szHeizung] PID20_Calc.667 <set szStellventil valve 34> with ret:
2013.12.08 21:57:32.114 2: [szHeizung] PID20_Calc.691 readings updated
2013.12.08 21:57:46.455 2: [szHeizung] PID20_Notify.213 check 3 readings for temperature
2013.12.08 21:58:03.408 3: [szHeizung] PID20_Set.329 set szHeizung desired 18
2013.12.08 22:00:43.463 2: [szHeizung] PID20_Notify.213 check 3 readings for temperature
2013.12.08 22:03:03.436 3: [szHeizung] PID20_Set.329 set szHeizung desired 18
2013.12.08 22:03:40.482 2: [szHeizung] PID20_Notify.213 check 3 readings for temperature


Grüße

John

Hallo fhainz,
wenn du verbose auf 1 nimmst , sollte der Spuk ein Ende haben.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP