Neues Modul PID20 - Der PID-Regler

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

Vorheriges Thema - Nächstes Thema

abc2006

Zitat von: Forstling am 16 März 2021, 19:28:51
140s Braucht der Mischermotor wenn ich da was ändern will brauch ich neue Hardware 
nicht zu eng sehen ;)
Zitat
Die 30s reichen für 21% Verstellweg vom Mischer 15 würden für ~11% ausreichen. Müsste  man probieren. Ich hatte auch schon alle 10s Rechnen und alle 30s Stellen mein Mischer ist halt recht langsam.
japp. Deshalb hab ich mir das Stellmotor-Modul ein bisschen modifiziert.
Grob gesagt fährt der Mischer zuerst seinen Befehl zuende, bevor er den nächsten annimmt. Das stört den PID aber kaum (erfahrungsgemäß).
Ebenso Erfahrungsgemäß kommt es nicht oft vor, dass der Mischer so lange fahren muss - wenn denn der PID früh genug anfangen darf.

Zitat
Also am besten 1 Doif das den PID 20 bei sagen wir 60° resetet. Die Berrechnung stoppen würde ich nicht, da bei Ausfall des Sensor der Mischer nicht mehr in seine Notfallstellung fährt. Obwohl das könnte ich noch über einen anderen Sensor abfangen. Falls mal jemand anfängt zu Heizen wenn der Sensor ausgefallen ist.
Vor dieser Überlegung stand ich auch schon. Ist in den letzten 5 Jahren nicht passiert. Aber was ist die Sicherheitsstellung? Zu heiss ist blöd, da kommt die Thermosicherung. Zu kalt ist blöd, da rostet der Kessel... schwierig ...

lg,
stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Forstling

So doif angelegt

@ abc2006

Ich habe mir mal deine Kurven angeschaut. sehe ich das richtig das dein Speicher am Ende des Abbrandes voll war?

Ich hatte immer das Problem das ich bei zu wening Abnahme meine Speicher umgewälzt habe. Das ganze so lange bis entweder morgens die Heizung anging oder der dann kalte Kessel die Speicher über die Esse soweit runtergkühlt hatte das der Mischer geschlossen wurde.
Das hat mich angeko....
Das war der Hauptgrund warum ich meinen Kessel über FHEM steuere und nicht über meine Solarsteuerung.

Ich habe mir für den Fall ein Doif geschrieben das die Solltemperatur vom Mischer auf 5° über die Rücklauftemperatur setzt.

abc2006

Naja, voll würd ich jetzt nicht sagen, höchstens halb. Habe 4500l, da passen knapp 3 Abbrände rein. Siehe Bild.

Zitat
bei zu wening Abnahme meine Speicher umgewälzt habe
Verstehe ich das so, dass deine Puffer zu klein sind?
Meistgegebener Tipp: Mehr Puffer.
Viel einfacher: nicht so voll legen.

Zitatder dann kalte Kessel die Speicher über die Esse soweit runtergkühlt hatte das der Mischer geschlossen wurde
Du meinst mit "Mischer" die RLA?
Bei mir geht die HV-Pumpe aus, wenn der Abbrand fertig ist. Da wird nix weiter umgewälzt. Habe mal überlegt, ob ich die RLA komplett auffahre, um die Restwärme zu nutzen. Ist bisher aber nicht umgesetzt.

Den letzten Satz verstehe ich nicht. :)
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Forstling

Ja meine Speicher sind recht klein hab nur 2x 1000l aber der Platz gab nicht mehr her.

für 30m² Röhrenkollektor und einen 25kW Kessel ist das für den Staat ja ausreichend.
Aber wenn mich jemand fragen würde wie groß der Speicher sein soll würde ich sagen so groß wie möglich.
Zumindest war es wo ich die Teile eingebaut habe wenigsten im Winter beim Frühstück warm.
Und ja ich hätte eine Holzvergaserkessel Einbauen sollen aber damals hatte meine Mutter noch keinen Wald.

Das Problem ist halt wie kriege ich mit das ich nichts mehr reinlegen darf. Wenn mehrere Leute da was reinlegen ist das halt nicht so einfach. Und dann kommt es ja auch immer auf das Holz an. Jetzt war halt mal ein Haufen mit Birke dran das macht schon einen Unterschied zur Borkenkäfer-Fichte.

Ja meine Pumpe geht auch aus allerdings erst wenn die Wassertemperatur unter einen bestimmten Wert gefallen ist. (dann gehen Pumpe und Lüfter aus) Ist halt ein ziemlich einfacher Kessel. Elektronik findet man dort nicht ist alles klassiche Elektrik. Daher kann so etwas vorkommen.

Ja die Restwärme wollte ich auch mal nutzen. das Projekt schieb ich auch noch vor mir her.

zum letzten Satz: Sollwert für Mischer normalerweise 73° Wenn im Speicher unten über 68° sind dann: neuer Sollwert Speicher unten +5° (Also wenn im Speicher unten 70° sind wird die Solltemperatur auf 75° gesetzt:

Maui

Ich bin zwar bei deiner "hardware" raus aber ich würde den D Anteil wie gesagt weg lassen und den I Anteil auch erstmal. Lieber dem PID händisch ein I-Anteil einimpfen und dann anpassen zb nach unten beim überschwingen.
Die 0.5 wirkt auf mich auch erstmal relativ hoch, damit dürftest du schnell einen hohen I Anteil kriegen.

abc2006

Den D-Anteil hab ich auch weggelassen. Ich würde aber eher auf den P-Anteil verzichten als den I-Anteil. Der I-Anteil regelt dir das im Laufe des Abbrandes schön aus (wenn er klein genug ist).

Abbrandende (für den Mischer) bekommst du schön mit, wenn du zb ein Abgasthermometer einbaust (MAX6675, Typ K), direkt an den Raspi

Wie du mitkriegst, dass du nix mehr reinlegen darfst:
Du machst mal einen Abbrand, dann hast du eine (ganz grobe) Vorstellung ,wieviel Energie bei einem mal anheizen rumkommt.
Dann könntest du (so wie ich) entweder einen Durchflusssensor und zwei Temperatursensoren anbringen (Wärmemengenzähler) oder (wie ich) an deine Pufferspeicher mehrere Temperatursensoren befestigen. (Ich hab alle 20 cm einen). Damit kann man schön sehen (und rechnen) wieviel Energie noch drin ist, und wieviel noch rein passt.
Da müssen sich dann natürlich alle dran halten, die den Ofen bedienen.


Zitat
ich hätte eine Holzvergaserkessel Einbauen sollen
der KC25S *ist* doch ein Holzvergaser - oder?

Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Forstling

Zitatder KC25S *ist* doch ein Holzvergaser - oder?

Nein das ist ein Feststoffvergaserkessel
Kleinerer Brennraum
Holz ist nur Zusatzbrennstoff
Eigentlich sollte man Braun oder Steinkohle reinlegen.
Dafür hat er einen sehr kleinen Abgaswärmetauscher und die Abgastemperatur soll bei 240° liegen bei mir ist sie 270°

ZitatAbbrandende (für den Mischer) bekommst du schön mit, wenn du zb ein Abgasthermometer einbaust (MAX6675, Typ K), direkt an den Raspi

Liegt in meiner Bastelkiste ist auf dem Plan Wenn ich das so recht überdenke wäre das auch eine Gute Steuerung für meine Nachlegelampe die geht derzeit auf den Durchflussmesser.

jetzt mus ich nur noch den passenden Bus zum Kessel bringen oder dort einen 2. Raspberry installieren langsam werden die Sensorkabel alle ist halt mist wenn Ofen und Kessel getrennt stehen.

ZitatWie du mitkriegst, dass du nix mehr reinlegen darfst:

Aktuell geht ein Lampe an wenn der Sensor im unteren dritttel des 2. Speicher eine gewisse Temperatur anzeigt.

Hier noch mal ein Bild zum besseren Verständniss meiner Heizung.

abc2006

Hab mir mal das Bild angeschaut.. Dazu stellen sich mir erstmal zwei Fragen
a) warum sind bei dem linken Speicher oben und unten verbunden? Du sagtest was von "umschalten", deswegen glaube ich, dass die Zeichnung hier evtl. nicht ganz stimmt
b) Wie schaffst du es, dass deine Solarthermie *beide* Speicher heizt? Meine verwendet eine Solarflüssigkeit, die ich nicht mit dem Heizungswasser mische.

btw: vielleicht machst du besser nen neuen Thread auf, das wird doch arg OT

lg,
stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Forstling

Hallo

Ja dafür wäre ein neuer Thread sinnvoll.

Kommen wir wieder zum eigentlichen Thema dem PID20 Modul.

Ich denke das hat einen gravierenden Fehler bei der Berechnung des D-Anteil (zumindest in meinem Fall: pidReverseAktion = 1)

Ich denke der D-Anteil wird in meinem Fall genau mit verkehrten Vorzeichen berrechnet.

Zur Eklärung:
Ich habe die Funktionsweise der Module eines PID-Regler folgendermaßen Verstanden:
P-Anteil: Nach den Regler schnell und genau ist einfach in diesem Fall Temperaturabweichung * P ist Anteil an der Mischerstellung
I-Anteil: schaut in die Vergangenheit wenn Sollwert erreicht hält er den Mischer auf dieser Position
D-Anteil: Schaut in die Zukunft wenn eine steigende Temperatur erkannt wird macht dieser Anteil den Mischer schon bevor die Solltemperatur erreicht ist ein Stück auf um Somit das erste Überschwingen zu minimieren bzw. man nähert sich langsam der Solltemperatur:

Beim meinem PID Regler macht der D-Anteil allerdings genau das Gegenteil er hält den Mischer zu wenn die Temperatur steigt und öffnet ihn wenn sie sinkt.

Jetzt ist meine Frage vestehe ich was falsch. Oder ist hier ein Fehler wegen der umgekehrten Aktion des Mischers.
Betrifft der Fehler auch den anderen Fall (pidReverseAction 0 --> Standardeinstellung)

Damit ist es das beste wenn man ihn auf 0 setzt und somit "nur" einen PI-Regler hat.

Zu den Fragen:
a. An der Verbindungstelle ist ein 3 Wegventil dieses schaltet etweder den unteren Ausgang des Speicher zum Rücklauf (somit 2. Speicher aus) oder den unteren Ausgang des 1. Speichers auf den oberen Eingang des 2. Speichers somit ist dieser mit im System. Ja, es fehlen ein paar Teile in der Zeichnung. Aber es Funktioniert.
b. Der Kasten wo die Wärmemengen drin stehen ist ein Wärmetauscher. somit habe ich 2 getrennte Kreisläufe 1x Solarflüssigkeit und 1x Heizungswasser



Forstling

Ich hab mal kurz in das PID Modul reingeschaut.

Dann habe ich mir mal die Berrechnung des D-Anteils angeschaut und mal Testweise ein "* -1" eingefügt.

Sieht jetzt bei mir so aus:

      # calc d-Portion
      $dPortion = ($deltaGradient) * (-1) * $hash->{helper}{calcInterval} * $hash->{helper}{factor_D};


mal sehen wie es funktioniert.

Maui

Was erhoffst du dir denn konkret von dem D-Anteil? Ich bin mir ziemlich sicher dass du es falsch verstanden hast und falsche Erwartungen vom D-Anteil hast.
Der Code vom PID20 sieht richtig aus, er rechnet halt mit den Änderungen und da diese bei dir ja sicherlich kleiner werden ist der Wert nunmal negativ.
Bsp dein Ziel sind 20K und du hast erst 15K, dann 18K und dann 19K. Das delta davon ist 3K und 1K. Und 1-3 sind -2 und genau daher kommt dein Vorzeichen.
Du kannst natürlich einfach ein *(-1) davor machen aber das wird dir nicht helfen  ;)

Aber noch(mal) was konstruktives: lass den D Anteil weg, dreh vermutlich den P-Anteil ein wenig runter ud stell den I Anteil erst einmal händisch ein, setz den Faktor für I auf 0 und taste dich an deine Ideale Regelung an. Oder eliminiere alle Störfaktoren für den I Regler, damit der nicht aus Blödsinn seinen Anteil berechnet.

cwagner

Da kann ich mich den Empfehlung von Maui nur anschließen. Habe den PID-Regler für mehrere sehr träge Steuerungen genutzt und hatte nach langem Versuchsreihen den Durchbruch mit D=0 und dann einem nach Beobachtung eingestellten P Anteil: Bei Überschwingen zurücknehmen, bei zu zögerlichem Start raufnehmen. Faustformel für I-Anteil am Anfang 1/10 vom P-Wert.

Vielleicht helfen diese Praxis-Tips.

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

Forstling

Zitat von: Maui am 31 März 2021, 22:41:16
Was erhoffst du dir denn konkret von dem D-Anteil?

Das er das macht was er soll und nicht genau das Gegenteil von dem was zumindest ich von ihm erwarte.

Heißt für mich der D-Anteil Regler erkennt eine steigende Temperatur also gibt er den Befehl gegenzusteuern.
Ich stelle mir das ungefähr so vor Soll 70°C ist schnell von 55°C auf 65 °C P-Anteil in meinem Fall -20 I-Anteil 0 (War ja die ganze Zeit zu kalt)
Jetzt sollte der D-Anteil schon bei ca +20 liegen das der Regler langsam anfängt auf zu gehen.
So meine Vorstellung eines PID Reglers. Und ich Glaube auch der einschlägigen FAchliteraturr

Ich will halt einen richtigen PID-Regler ansonsten hätte ich die miserable aber Funktionierende Reglung meiner Resol-Steuerung lassen können.
ich möchte halt einen funktionierenden PID-Regler und nicht wie vorgeschlagen einen P-Regler oder einen PI-Regler.

über Ostern wid es wieder kälter da werde ich Heizen müssen mal schauen ob sich der Regler jetzt so verhält wie in den Allgemeinen Beschreibungen die man so findet.

Mein ursprüngliches Ziel war es Die Vorlauftemperatur des Kessels zu Regeln die wollte ich auf 85-90°C halten. Aufgrund der Todzeit die sich durch die Rüclaufmischung einstellt wird das ganze Extrem Träge und das Überschwingen was jetzt schon fast 10K beträgt würde sich noch erhöhen und damit würde ich regelmäßig meine Notkühlung testen.

cwagner

Sorry, aber Du scheinst eine Vorstellung zu haben, die so nicht nicht umzusetzten ist. Ich aber 16 PID20-Regler im Einsatz für so unterschiedliche Aufgaben wie Heizkörper-Steuerung, Kesselregelung, Vorlaufsteuerung für einen aus dem Hochtemparatur-Vorlauf abgeleiteter Fußbodenvorlauf, Solar-Kollektorsteuerung (da wurde übrigens auch eine kaputt gegangene Resol-Steuerung ersetzt) und es funktioniert.

Bitte aber auch https://wiki.fhem.de/wiki/PID20_-_Der_PID-Regler beachten, da ist weiter unten die Strategie gegen den Windup-Effekt beschrieben, vielleicht "spuckt Dir der in die Suppe".

Meine zuvor beschriebene Strategie ist die des Ran-Tasten vom agilsten Regelanteil (P) über die Rückschau (I) hin zur Vorschau (D).

Schöne Feiertage

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

Maui

Gefühlt ist eines deiner gedanklichen Probleme dass du denkst ein PID würde sich unabhängig der Faktoren schon mit der Zeit selbst richtig einstellen.
Aber da du ein wenig resistent gegen Praxis Tipps bist, bin ich hier raus  ;)