Neues Modul PID20 - Der PID-Regler

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

Vorheriges Thema - Nächstes Thema

John

Hallo stgeren,

ZitatMuß oder soll ein externer Tempgeber eingesetzt werden oder kann ich auch die "desiredTemperature" des Max Thermostates selbst verwenden?

ganz schlau werde ich aus deiner Frage nicht:

Ein Temperaturgeber liefert den Istwert für den Regler, desiredTemperature hingegen stellt den Sollwert des Max-Thermostaten dar.

Wie geht das zusammen ?

PID20 erwartet einfach ein Reading für den Istwert, woher dieses kommt ist völlig unerheblich.

Da  desiredTemperature ein Reading vom Max-Thermostat ist, kannst du diese als Istwert verwenden.

Ob das Sinn macht ist eine andere Frage.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

cwagner

Moin, John,

Deine Tipps haben mein PID20 entscheidend vorangebracht (und mein Verständnis auch). Die Stellbefehle sind deutlich kleiner geworden, die Solltemperatur wird wesentlich enger eingehalten. Noch schlagen die Flanken des Haupt-Vorlaufes durch, wenn der Brenner anspringt. Aber ich wäre mit meinen zaghaften Veränderungen noch lange nicht in die Nähe dieses Ergebnisses gekommen. Bisher war ich ja auch nicht vorangekommen, weil ich ja den Lernerfolg eines jeden Tages immer wieder verloren hatte...

Den heutigen Stand habe ich angefügt.

Herzliche Grüße

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

John

Hallo Christian,
das ist ja ein erfreuliches Ergebnis.

Wie sehen die aktuellen Parameter aus ?

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

cwagner

Ja, John, Deine Argumentation (vor allem in Bezug auf die Berechnungshäufigkeit) war so überzeugend, dass ich PIDActorInterval auf 30 Sekunden gestellt habe und I-Faktor auf 0.2 sowie P-Anteil auf 6.
Ich guck mir das jetzt noch einmal an und will noch Deinen Vorschlag nachvollziehen, das Sensor- und Berechnungsintervall vielleicht noch kürzer zu machen (ist ja bei 1-Wire kein wesentliches Problem), damit PID20 maximales Futter bekommt.

Es macht richtig Spaß jetzt in einem Sprung soviel näher an ein gutes Regelergebnis gekommen zu sein.

Grüße

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

dero

Hi,

ich habe mal ein paar Fragen zu dem PID20-Regler:

* Kann man das Teil auch mit dem neuen Homematic HM-CC-RT-DN Stellantrieb einsetzen? Beim HM-CC-RT-DN kann man keine prozentuale Ventilöffnung einstellen, sondern nur Ist und Solltemperatur... Ich würde die gerne nehmen, da ich ein HM-CFG-LAN btreibe und nicht auf MAX! umsteigen will...
* Ist der Regler selbstlernend und speichert er die Konstanten automatisch ab?
* Welches Funk-Raum-Thermometer wird empfohlen (433 MHZ oder HM)?
* Ich will 2 Räume mit FBH damit regeln. Niedrigenergiehaus, d.h. extrem träge. Mir geht es eigentlich im wesentlichen darum, abends die Kinderzimmer runterzukühlen...

Danke!

dero

John

#80
Hi dero ,

ich versuch mal deine Fragen zu beantworten
(zu den Homematic Komponenten habe ich keine Erfahrungen)

ZitatKann man das Teil auch mit dem neuen Homematic HM-CC-RT-DN Stellantrieb einsetzen
Laut Wiki ist ja da HM-CC-RT-DN kein reiner Stellantrieb, sondern ermittelt den Istwert selbst und regelt auch selbst.
D.h. er hat den Regler schon intus.
So stellt sich die Frage, warum dann noch ein PID20 eingesetzt werden soll.

Wenn du ihn trotzdem einsetzen willst brauchst du

  • ein Reading das den Istwert beschreibt
  • ein Actuator-Device, das das Stellglied realisiert

Wenn du auf den Stellausgang vom HM-CC-RT-DN nicht direkt Einfluss nehmen kannst, sind die Voraussetzungen nicht gegeben.
Zitat
Ist der Regler selbstlernend und speichert er die Konstanten automatisch ab?
Ja, die Konstanten werden gespeichert, PID20 ist ein klassischer PID-Regler.
Wenn du den angelernten I-Anteil als selbstlernenden Regler interpretierst, dann ist er einer.

ZitatWelches Funk-Raum-Thermometer wird empfohlen (433 MHZ oder HM)?
Hier gibts keine Empfehlung. Seitens des PID20 kann praktisch jedes numerische Reading verwendet werden.
Die Auswahl hängt wohl eher vom der Dynamik der zu regelnden Strecke ab.

ZitatMir geht es eigentlich im wesentlichen darum, abends die Kinderzimmer runterzukühlen.
Wenn das Teil ein Wochenprogramm hat, kannst du dies doch damit realisieren.
Ansonsten gibt es noch das Modul Heating_Control, mit dem du zeitabhängig Sollwerte automatisiert setzen kannst.

John




CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

dero

Danke!!!

Okay, dann heißt es entweder MAX oder kein PID20...

Ich baue erstmal meine alten FHT80b an, mal sehen, wie gut die laufen...

dero

dman

Hi John,

habe das Modul mit ein paar FHT8V direkt am CUL in Betrieb und muss sagen, funktioniert sehr gut! Die Verbesserungen gegenüber dem "normalen" PID.Modul sind sehr nützlich. Danke dafür!!


John

Hallo d-man,
besten Dank für die Rückmeldung.

Vielleicht könntest du noch den einen oder anderen Chart hier reinstellen, damit wir auch sehen, ob das Lob begründet ist.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Hans Franz

Hallo John,
wäre es sehr vermessen, dich zu bitten, noch einige Erklärungen der drei wesentlichen Parameter(P,I und D) hier oder besser noch im Wiki zu verfassen?
Im Netz steht ja einiges zum PID-Regler, aber leider auch viel Unausgegorenes, Falsches oder auf einem Niveau, das ohne regen Besuchs von Vorlesungen zur Regelungstechnik kaum zu verstehen ist. Die Spreu vom Weizen zu trennen fällt zumindest mir immer noch schwer :'(.
Welchen Sinn macht der D-Faktor? In meiner Simulation (Tabellenkalkulation) scheint er einen dämpfenden Einfluss zu haben. Ist er in einer doch sehr trägen Heizungsregelung sinnvoll?

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

John

#85
Hallo Hans,

alle 3 Übertragungslieder (P,I,D) haben als Eingangsgröße die Regeldifferenz:

R-Diff = Sollwert-Istwert

Alle 3 Übertragungsglieder liefern ihren Anteil für den Reglerausgang (Vorgabe für das Stellglied in %)
Reglerausgang = P-Anteil + I-Anteil +D-Anteil

Berechnung P-Anteil
P-Anteil = R-Diff * P-Faktor

Also einfach eine lineare Gleichung. Der Zusammenhang von P-Anteil und R-Diff ist proportional.
Die Einheit vom P-Faktor ist bei Temperatur-Regelung  % pro C°.

Beispiel: P-Faktor=50 %/C°, Regelabweichung 0.5, ergibt einen P-Anteil von 25%

Andersherum gedacht benötigt man eine Regeldifferenz von 2 Grad, damit der P-Anteil +/-100% wird,
und somit das Ventil voll auf/zu -fährt.

Bei den herkömlichen Thermostatköpfen spricht man hier von 2K-Ventilen, die eine Regeldifferenz von 2 Kelvin benötigen,
damit sie voll auffahren.

Der P-Anteil hängt nicht von der Zeit ab, er reagiert sofort auf eine sich ändernde Regeldifferenz und zwar proportional über
den P-Faktor und liefert so seinen Anteil am Reglerausgang.

Er ist für die schnelle Reaktion auf die Änderung der Regelabweichung zuständig.

Später mehr zum I-Glied und D-Glied.

John

PS: wie läuft es den mit deinem PID-Regler ?
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Hans Franz

Hallo John,
Danke für die Erklärungen.
Auch wenn dein Wiki zum PID20 schon umfangreich ist, sind solche Erläuterungen, so glaube ich, essentiell.
Einfach intuitiv an Parametern zu schrauben verbietet sich beim PID irgendwie.
Antworten auf Fragen wie "Wie erreiche ich ein schnelleres Ansprechen(P-Faktor?)?" oder, aktuell bei mir jetzt "Wie stelle ich auf Grund von Problemen den I-Anteil(='Gedächtnis'?) zurück?" machten sich im Wiki wie evtl auch einige Beispielplots hervorragend.

Schön fände ich es, wenn mehr Nutzer ihre Charts hier hereinstellen würden, denn nur mit Erfahrung im Interpretieren derselben lässt sich der Regler mAn individuell optimieren.

Rein subjektiv arbeitet der PID bei mir hervorragend, soll heißen: Das Wärmeempfinden ist gut.
Aber beim Betrachten der Charts stellt sich oft dieses Gefühl ein: "Mist! Ich kenn' mich damit zu wenig aus!" . Vielleicht geht es anderen genauso? Soweit ich das beurteilen kann, ist aber doch ein PID-Regler die sinnvollste Art einer Heizungssteuerung, oder?
Aktuell habe ich auf Grund der herrschenden Minusgrade mit dem Problem der schwankenden Vorlauftemperatur zu kämpfen. Da kann der PID nicht gegenan regeln.
Deswegen im Anhang Charts vom 23. diesen Monats. Dem Phänomen, das beim PID_1 die IST-Temperatur über der SOLL-Temperatur bleibt, bin ich durch Verändern von  pidActorLimitLower auf der Spur. Oder liege ich falsch.
Bei PID_4 fällt mir öfter auf, dass die Soll-Temperatur nicht ganz erreicht wird, weil der Stellantrieb zu früh wieder zu fährt. Ich habe mich aber noch nicht getraut, viel mit den Einstellungen herumzuspielen.
Der Peak gegen 2:30 Uhr ist wohl auf ein hartes "kill -9 fhem" zurückzuführen. ::)
Bei gleichbleibender Vorlauftemperatur ist das Erstaunen beim Blick auf die Thermometer, wie genau die Temperatur jetzt eingehalten wird, oft beträchtlich. Schon geil. :)
   
PID_1:
   factor_D  1
   factor_I  0.1
   factor_P  25

PID_2,PID_4:
  factor_D   0
  factor_I   0.25
  factor_P   25


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

John

Hallo Hans
ich dank dir für den ausführlichen Bericht.

Zu deinen Themen
ZitatAktuell habe ich auf Grund der herrschenden Minusgrade mit dem Problem der schwankenden Vorlauftemperatur zu kämpfen. Da kann der PID nicht gegenan regeln..

Im Idealfall sollte es so sein, dass der Raumregler (PID) nichts davon mitbekommt, wenn es  kälter/wärmer wird, da ja die Vorlauftemperatur über die Kennlinie abhängig von der Aussentemperatur geführt wird.
Bei gleicher Ventilstellung wird mehr Wärme abgegeben, aber durch die höhere Differenztemperatur (Innen zu Aussen) wird auch mehr Wärme durch die Aussenwände abgegeben.

Eine zu hohe Vorlauftemperatur wirkt wie eine Erhöhung des P-Faktors. Schon bei geringer Ventilöffnung wird ein hohe Wärmemenge zugeführt.
Ausserdem ist die Änderung der Aussentemperatur normalerweise ein langsamer Vorgang, den der PID-Regler klaglos mitmachen sollte.

Die Frage ist, warum bei PID_1 ab 20:00 Uhr die Temperatur steigt, obwohl die Ventilstellung kaum verändert wurde.
(Kachelofen, Erhöhung der Vorlauftemperatur wegen Brauchwasserladung ?)
ZitatDem Phänomen, das beim PID_1 die IST-Temperatur über der SOLL-Temperatur bleibt, bin ich durch Verändern von  pidActorLimitLower auf der Spur.
pidActorLimitLower splielt eigentlich nur im unteren Stellbereich eine Rolle (Begrenzung nach unten).
Das sehe ich nicht als Erklärung da die Stellposition stets>30% liegt.

Das Schwingen von 04:00 bis 16:00 Uhr ist absolut normal, da sich die Regelung hier nur noch im Stellbereich von 0..10% arbeiten kann
(wg. des niedrigen Sollwerts). Der untere Bereich des Ventils ist eher nicht linear, hier kann der PID nur schwer regeln.
(Dasselbe Verhalten haben auch meine MAX-Thermostate).

Der Sollwertsprung von 4 Grad um 16 Uhr ist schon sehr gross. Ich rechne im Mittel mit 1 Grad/Stunde, das schafft deiner in 2.5 h.

Zu PID_2 ist nicht viel zu sagen. Um 19:00 Uhr wurde wohl das Fenster geöffnet.

PID_4 ist etwas schwach auf der Brust. Sieht man schon in der Ruhephase bis 11:00 Uhr. Nur wenig Schwingungsneigung.
Dafür schafft er eben auch den Sollwertsprung von 15:00 Uhr nicht.
Den P-Faktor solltest du kräftig erhöhen (ruhig mal verdoppeln also 50 statt 25)

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Marcus Naumann

Hallo Zusammen,

würde gerne ebenfalls das neue PID Modul ausprobieren. Allerdings wird das Modul in der .cfg - Datei nicht erkannt. Ich habe dies 98_PID20.pm Datei in den angegebenen Pfad kopiert. Muss ich noch zusätzlich was beachten? Des Weiteren wollte ich mal fragen, wie ihr das mit dem Max!-Thermostat gemacht habt. Ich habe ebenfalls eins eingebundenen. Allerdings kann ich die Ventilstellung nicht vorgeben. Da manche Leute das PID Modul fleißig in Verbindung mit einem Max! - Thermostat einsetzen würde es mich interessieren, wie dieser angesteuert wird. Im Wiki-Eintrag soll dies über maxValveSettings geschehen. Allerdings ist dies doch die maximale Begrenzung des Ventilstellbereichs.

Vielen Dank im Voraus!

Gruß
manavu

John

Hallo manavu

um dir zu helfen, sende bitte das define deines PID20 in fhem.cfg und ggf einen Auszug aus der FHEM*.Log Datei.
Wiki hast du ja sicher gelesen.

Wie man das MAX-Thermostat als reines Stellglied einsetzt, ist hier
http://forum.fhem.de/index.php/topic,14154.msg96815.html#msg96815
beschrieben.

Idee dahinter:

Man stellt das Thermostat auf desiredTemperature ON.
Demnach wird es voll auffahren, der Reglerbetrieb ist nun inaktiv.

Nun kann man mit maxValveSetting die Öffnung des Stellausgangs direkt steuern.
Funktioniert wunderbar, du kannst das direkt über FHEM testen.

Ich steuere damit meine Fussbodenheizung. (PID20+Temperaturgeber+MAX)

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP