HM-CC-RT-DN: Regler schießt übers Ziel hinaus

Begonnen von PatrickR, 04 Januar 2014, 15:11:30

Vorheriges Thema - Nächstes Thema

Joachim

FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

martinp876

ZitatDa sollte es doch für die Technik einfach sein "mitzudenken", denn in dem Fall weiß sie ja schon vorher was passiert.
macht es schon. In deinem Beispiel ist die Regeldifferenz auf 0 gegangen (die 1,5Grad muss man hinnehmen...) und das ist in jedem Fall bedenklich.
Man kann die Regelparameter beeinflussen, die sind in Registern hinterlegt (nicht aber die Historie...)
Du könntest probieren, den Sprung kleiner zu machen, also 2-stufig...


Bennemannc

Hallo Martin,

also so groß ist der "Sprung" nun auch wieder nicht. Um 15:00 wird die Solltemperatur von 18° auf 21,5° angehoben. Das veranlasst das Ventil ca. 20% auf zu machen - unabhängig davon, das es im Raum bereits 22,5° oder mehr sind (Südseite mit vielen Fenstern).
Wieso interessiert es die Reglung mehr, das die Differenz zwischen Soll- und Isttemperatur von +6,5 auf +1,5 gesunken ist - meiner Meinung nach sollte der Vergleich Soll / Ist Vorrang haben. Ich bin immer noch im Plus, also warum sollte ich da weiter ins Plus nachsteuern?
Kann man die Steuerung träger machen ? - vielleicht bring das ja etwas. Dann würde in meinem Fall nicht so wahnsinnig übersteuert.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

martinp876

nun - lange her, das sich einmal regler berechnet habe.

Das ist eine Regelung, auch noch eine recht 'komplexe' - ist wohl nicht nur ein PI sondern ein PID regler.
Man könnte evtl dinge auch anders lösen, hier also erst einmal wie ich den Regler sehe (nicht was ich mir wünsche)
1) der Regler regelt bei Internem Fühler auf +1,5 Grad (oder so).
2)den regler interessiert ausschließlich die Regeldifferenz. Der Regler selbst bekommt wahrscheinlich garkeinen anderen Wert.
da mit ist 3) die regeldifferenz nicht von 6,5 auf 1,5 gesunken sondern von 5 auf 0.
Die Regeldifferenz IST der soll-ist vergleich.

Stelle dir den Regler auch so vor: Du willst hinter einem Laster her fahren, Abstand 50m, der hat gerade 80 drauf du kommst mit 120 an. Du musst bremsen, bevor du auf 50m ran bist, sonst krachts.
Nun hast du es geschafft, der Laster beschleunigt jetzt (was du nicht weisst) und der Anstand vergrössert sich. Je nach Änderungsgeschwindigkeit des Abstands musst du beschleunigen. Also je schneller sich der Abstand ändert desto heftiger musst du auf das Gas.
Das ist gängige Praxis in der Regelwelt - die genaue Parametrisierung ist jetzt die kunst. Dazu brauchst du eigentlich etliche Parameter: Wie träge ist die Heizung, wie groß/träge ist der Raum sind die wesentlichen. Die Trägheit der Heizung wird beeinflusst von der vorlauftemperatur, die der RT nicht kennt... wenn türen offen stehen oder manchmal nicht ändert dies alles eine präzise Regelung.

Der RT erlaubt das ändern des P (proportional) und I (integral) Anteils der Regelung. Per default steht der Regler auf adaptive regelung - eQ3 versucht also P und I zu optimieren, aus dem Verhalten des Systems. Ob dies klappen kann, kann ich nicht sagen - z.B. die Änderung der Vorlauftemp könnte dies bereits zu nichte machen.

Du kannst also adaptiv abschalten und es selbst machen.

Nächstes Problem: Es gibt die Werte für intern und extern. Ich kann nur raten, was es bedeutet: Interner oder externen Fühler. Es werden schon keine 2 gekoppelten PI regler sein...

Wenn du also nun den Internen her nimmst kannst du die Regelung einstellen (so sagen die Werte).

Zumindest den ersten Step der Sprungantwort kannst du ausmessen. Ist aber zeitaufwändig... Thermostat in konstanter temp lagern (ohne heizkörper) und einen fixen tempSprung draufgeben => reaktion des Ventils aufzeichnen.
Alles zurück, parameter ändern, noch einmal ein sprung.
Das kannst du auch automatisieren - mit FHEM at kannst du die desired-temp hin und her schalten und die ganze nacht aufzeichnen Auch die P/I werte kannst du automatisch ändern. Wenn du das Script hast kannst du alles in einer Nacht messen.
Wenn dein Keller konstante temp hat (10 Grad) kannst du eine Tabelle machen: von 4 auf 8, 5 auf 9, 6 auf 10, 4 auf 10, .....
Das ganze bei unterschiedlichen Werten für P und I.
Die Tabelle ist sicher interessant...

Schwerer ist es dann, die weitere Regelung auszumessen - das dauert ohne simulation wirklich lang, da ist dein HK und der ganze Raum beteiligt... das ist sehr träge.

Gruss Martin

Bennemannc

Hallo Martin,

also bei mir wird der Regler sich schon wegen der Witterungsgeführten Vorlauftemperatur den Nacken brechen. Das kann er nicht erkenne - er weiß die Außentemperatur ja nicht.
Wie kann man da adaptive Verhalten abstellen und P und I selber anpassen?

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

frank

Zitat von: Bennemannc am 24 April 2014, 20:31:17
Wie kann man da adaptive Verhalten abstellen und P und I selber anpassen?

nach hmconfig.pm solltest du eventuell diese register haben:

regAdaptive -> adaption an/aus?

reguIntI -> intern i-anteil?
reguIntP -> intern p-anteil?
reguIntPstart -> vielleicht p-anteil nach sollwertsprung?

einfach mal mit rumspielen!

gruss frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Bennemannc

Hallo,

das wäre doch mal ein Fall für eine Rundfrage:
Wer hat welche Werte in diesen Registern und wie zufrieden ist man mit diesem Regelverhalten ? - ach ja FW Version nicht zu vergessen.
Vielleicht könnte man auf diese Weise eine Tabelle zusammenstellen und "vernünftigere" Werte ermitteln, die bei ungewünschtem Verhalten manuell eingetragen werden können.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Puschel74

#52
Hallo,

nur mal so als kleine Randbemerkung:

Die Parameter für P und I-Anteil eines anderen Reglers werden hier nichts bringen.

Andere Vorlauftemperatur, andere Raumgröße, andere Heizkörpergröße, ...
Um die Werte vergleichen zu können müssten diese zwingend bei den selben örtlichen Gegebenheiten aufgenommen werden.
Und selbst dann wird es schwierig alle Störgrößen konstant zu halten.

Ein Vergleich mit anderen Reglerwerten wird dich daher nicht glücklich machen - leider.

Im grossen und ganzen kann man aber sagen das die adaptive Regelung idR passende Werte für P und I findet.
Ok. In der Firma halte ich nicht viel davon da ich eine Anlage selten so lange in die Finger bekomme um mit einer adaptiven Regelung wirklich was bewirken zu können.
Dafür wird der Regler erstmal nach "Gefühl" eingestellt und dann geschaut wie sich der Regler in der gesamten Anlage verhält.

http://de.wikipedia.org/wiki/Regelungstechnik

Es gibt auch Verfahren um einen Regler zu optimieren.
http://de.wikipedia.org/wiki/Faustformelverfahren_%28Automatisierungstechnik%29

Da darf sich aber gerne jeder selbst austoben  8)
Aber Vorsicht: Man kann sich schnell "zu Tode optimieren"  ;)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

strauch

Zitat von: Puschel74 am 25 April 2014, 09:05:45
Die Parameter für P und I-Anteil eines anderen Reglers werden hier nichts bringen.

Vielleicht doch. Ich hab zwei Regler mit Firmware 1.0 und 2 mit Firmware 1.1. Die mit 1.0 haben als Werte 18 und 33 und die mit 1.1 haben 15 und 30..... also viel scheint da sich nicht zu adaptieren. Die Räume sind schon sehr unterschiedlich, der eine ist unterm Dach und eh immer zu warm. Das andere ist ein Bad mit RTL Bodenheizung.....

Vorallem ist für mich ja nicht mal die Regelung das Problem. Sondern das zu hohe ansetzten der Temperatur. Egal was ist, wenn ich eh 1,5°C über dem Soll bin, brauche ich nicht anspringen. Ich hab das Problem gelöst in dem ich es einfach kälter eingestellt habe und gut ist. Also das Problem ist ja doch eher trivial.

FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Puschel74

Hallo,

ZitatVielleicht doch.
Aber wenn dann nur rein informativ.

ZitatAlso das Problem ist ja doch eher trivial.
Jep, und hat aber nichts mit dem Regelalgorithmus an sich zu tun.
Ich denke mal nicht das eQ3 das Rad neu erfindet und einen eigenen Algorithmus für ihre Regler schreibt.

Theoretisch! sollte ein I-Anteil dazu führen das der Regler nach einer endlichen Zeit wirklich anfängt das Ventil zu schliessen.
Eine ständige Regelabweichung als Ergebniss gibt es eigentlich nur bei einem reinen P-Regler.
Und sowas werden die wohl hoffentlich nicht programmiert haben  ;D

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

martinp876

Zu beachten ist, dass man die P und I werte nur ändern kann, wenn regAdaptive auf offDeter steht. Was letztendlich logisch ist.

reguExt ist "voraussichtlich" nicht relevant in diesem Fall

Zitat7: reguIntI         |  10 to 20   
7: reguIntP         |  25 to 35   
7: reguIntPstart    |   5 to 45     
da die Wertebereiche begrenzt sind und 0 nicht zulässig ist wohl auch immer ein I-Anteil vorhanden.

Da das Ziel hier eigentlich war, die Antwort auf eine regeländerung abzuschwächen sollte man dies einfach testen. Das ist schließlich der einfache Teil, das lässt sich mir einen Thermostat im Keller prima erreichen.
Das gesamte Regelverhalten über den Bereich zu optimieren - da stimme ich Puschel74 zu - ist eine komplexe Angelegenheit. Da hat man erst einmal etwas zu tun.


Gruss Martin


disaster123

So ich habe 10_CU_HM.pm nun so umgebaut, dass man ein festes Offset für desired angeben kann. Ich werde die nächsten Tage mal testen ob alles funktioniert wie gedacht und dann gerne hier die Version veröffentlichen.

PS: warum nutzt FHEM nicht perltidy die Formatierung ist gewöhnungsbedürftig.

martinp876

kannst du erklären, was du alles berücksichtigt hast? Nur desired-temp ist nicht hinreichend - du hast sicher mehr gemacht.

Thorsten Pferdekaemper

Zitat von: disaster123 am 26 April 2014, 23:07:01So ich habe 10_CU_HM.pm nun so umgebaut, dass man ein festes Offset für desired angeben kann.
Hi,
ich glaube, dass ein fester Offset das "Problem" nicht ausgleichen kann. Ich habe mehrere RTs am Laufen, zum Teil mit unterschiedlicher Solltemperatur. Der im Bad steht oft auf 22° und scheint erst bei ungefähr 24° zufrieden zu sein. Ein anderer steht zurzeit auf 17.5° soll. Ist ist 18.7° und er zeigt keine Anstalten, das Ventil zu öffnen. Momentan ist es sowieso warm, aber ich glaube mich zu erinnern, dass bei 17° soll die RTs nur sehr wenig zu hoch regeln.
D.h. der Offset scheint von der eingestellten Solltemperatur (oder von der Ist-Temperatur?) abhängig zu sein.
Gruß,
    Thorsten
FUIP

disaster123

Ich werde es mal eine Woche lang testen. Falls es klappt, poste ich den Code gerne. Berücksichtig ist alles was mit desired zu tun hat. Egal ob set oder get und egal ob templist, manuel oder auto.