Taktung bei Gasheizung (Viessmann) vermeiden

Begonnen von andies, 01 Juli 2018, 10:02:27

Vorheriges Thema - Nächstes Thema

0-8-15 User

Zitat von: andies am 01 Juli 2018, 10:02:27Und nun beobachte ich im Sommer, dass in der Heizphase tagsüber (!) die Heizung anläuft und sofort wieder ausgeht. Jetzt frage ich mich, warum das passiert.
Auch auf die Gefahr hin, dass das Thema schon lange durch ist. Ich habe das Problem durch Anpassung der Sommersparfunktionen A5/A6 in den Griff bekommen.

andies

Erzähl mal!

Die Taktung habe ich über den Winter in den Griff bekommen. Ich habe inzwischen niedrige einstellige Brennerstarts pro Stunde (und insgesamt pro Tag unter 30). Der hydraulische Abgleich für arme Leute hat auch einiges gebracht, nur ein Zimmer ist noch immer leicht zu kalt (2 Grad zu wenig). Da ich im Obergeschoss fast alles geregelt habe, traue ich mich nicht weiterzumachen.

Die Heizkurve ist übrigens gar nicht so viel tiefer gegangen bei mir. Und die Rücklauftemperatur an der Heizung habe ich auch überwacht (allerdings von außen an dem Rohr befestigt, nicht intern), die war immer unter 40, oft sogar 35 Grad.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

0-8-15 User

#62
Wir haben vor ziemlich genau einem Jahr eine Vitocrossal 300 eingebaut (1 Heizkreis mit Mischer, relativ großes Einfamilienhaus, mit sehr alten Heizkörpern im Erdgeschoss und neuen Heizkörpern im Obergeschoss). Ohne die Sommersparfunktion würde die Heizung in der Übergangsphase quasi im 5-Minuten-Takt laufen. Der einzige Ausweg scheint zu sein, der Heizung beizubringen, ab welcher Außentemperatur kein Heizbedarf mehr besteht.

Im Anhang befinden sich zwei Grafiken, welche den Tagesverlauf von vor wenigen Tagen abbilden:
- Sobald die Außentemperatur 16 °C übersteigt, schaltet sich die Heizung (einschließlich Heizkreispumpe) aus und bei Unterschreiten von 15 °C wieder ein. (A5).
- Das Gleiche passiert, sobald die gemittelte Außentemperatur 16 °C übersteigt, bzw. 14 °C unterschreitet. (A6).

Zusätzliche wurde natürlich die Heizkurve so angepasst, dass die meisten Thermostatventile im Haus, sofern es keine externen Einflüsse gibt, offen sind.

Die Heizung läuft ganzjährig im Warmwasser und Heizbetrieb, schaltet sich also je nach Witterung automatisch ein/aus und hat es bisher, bei ca. 4000 Betriebsstunden, auf knapp 1000 Brennerstarts gebracht.

Nachtrag: Im Übrigen halte ich die Werkseinstellungen (insbesondere zur Differenztemperatur und zur Zeitkonstante) für sehr klug gewählt.

Frini

Wie hast Du denn die gemittelte Außentemperatur ausgeben können?

andies

Bei grafana geht das mit dem entsprechenden SQL-befehl
SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    AVG(CONVERT(VALUE, DECIMAL(7,3))) as value,
    "Anzeigename" as metric
  FROM history
  WHERE READING="readingname" AND DEVICE="devicename" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 2700

und 2700 ist das intervall, über dem der Durchschnitt genommen wird.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

0-8-15 User

#65
Ich lese Außentemperatur und gedämpfte Außentemperatur über vcontrold aus und berechne daraus die gemittelte Außentemperatur.

Nachtrag: Aber auch die gedämpfte Außentemperatur lässt sich aus dem Verlauf der Außentemperatur berechnen.

Anbei eine Grafik die den Verlauf der gedämpften sowie gemittelten Außentemperatur bei Benutzung verschiedener Zeitkonstanten (Adresse 90) veranschaulicht.

Frini

Ok. Ich gehe ja über die API. Da wird die nur die Außentemperatur übermittelt.
Wie die gedämpfte Außentemperatur berechnet wird, oder werden soll, habe ich im Haustechnikdialog gefunden. Aber ehrlich gesagt nicht verstanden.
Wenn Du ne Formel für die gedämpfte, bzw. die gemittelte Außentemperatur hast, würde ich die dankend annehmen  :)

andies

FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Frini

Ich?:

GAT_neu = GAT_alt*(1-1/ZK)+Messwert/ZK.

ZK= Code90 Dämpfungsfaktor

Nur  hier muss ich erstmalig GAT haben, und die bekomme ich nicht.


Dann habe ich weitere Formeln:
Hier steige ich persönlich aus:
EW: Einstellwert Codierung 90
Minütlicher Dämpfungsfaktor md = ( (EW-1)/EW ) ^ 0.1
TG_i+1 = TG_i*md + TA*(1-md)


andies

Kann es sein, dass das gleitende Mittelwerte sind? Also ich nehme die Werte der letzten X Minuten/Stunden und daraus rechne ich dann den nächsten aus? Kathrin schien nicht zu wissen, ob man stündlich oder viertelstündlich mittelt, wenn ich das richtig erinnere.

Wenn wir den Mechanismus kennen, gibt es Tools in FHEM um das abzubilden. Das ist dann relativ einfach.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Frini

Ich glaube wir meinen den gleichen Thread.
Kathrin hatte damals testweise im 5 Minutentakt abgelesen.
Ich habe mit der Spielerei eher als Beschäftigungstherapie auf Dienstreise angefangen  ;)
Die gedämpfte Außentemperatur benötige ich ersteinmal nur aus Interesse und nicht zum steuern.
Mit folgender Idee bin ich noch nicht ganz fertig;
Zitat
sub GAT()
{
my $AT = ReadingsVal("vitoconnect","Aussentemeperatur",0);
my $ZK = 10;
my $GATalt = ReadingsVal("vitoconnect","GAT",0);
my $md = {(($ZK - 1)/$ZK)**0,1};
my $GATneu = {$GATalt * $md + $AT*(1-$md)};
fhem "setreading vitoconnect GAT $GATneu";
}
Nur mal quick'n dirty. ZK muss manuel gesetzt werden und der Anfangswert für die gedämpfte Außentemperatur auch. So könnte ich logischerweise eine Kurve abbilden. Allerdings bin ich mir nicht sicher ob die Formel korrekt ist.

0-8-15 User

#71
Also der Zusammenhang zwischen gedämpfter, gemittelter und aktueller Außentemperatur ist wie folgt:
ATgem = ATged * 0.7 + AT * 0.3

Die Vorlauftemperatur berechnet sich dann folgendermaßen, wobei AT hier der gemittelten Außentemperatur entspricht:
def berechneVorlauftemperatur(neigung, niveau, raumsoll, AT):
    if AT >= raumsoll:
        return raumsoll
    return neigung * 1.8317984 * math.pow(raumsoll - AT, 0.8281902) + niveau + raumsoll


Bild: Heizkennlinie.png

Die gedämpfte Außentemperatur lässt sich iterativ aus der aktuellen Außentemperatur gewinnen. Bei einem Messintervall von 10 Minuten gilt:
ATged = ATged * (cod90 - 1) / cod90 + AT / cod90
Bei anderen Messintervallen kann man die gedämpfte Außentemperatur näherungsweise mit der folgenden Formel berechnen (t : Messintervall in Minuten):
ATged = (AT - ATged) * (1 - e^(-t / (cod90 * 10))) + ATged

Bild: viessmann_cod90_128.png

Wenn man das alles miteinander kombiniert und einen sinusförmigen Außentemperaturverlauf zugrunde legt, erhält man folgende Temperaturverläufe (für verschiedene Zeitkonstanten):

Bild: [1.4,1,22,17]_FA_1.1_cod90_128.png
Bild: [1.4,1,22,17]_FA_1.1_cod90_18.png

ZitatIch lese Außentemperatur und gedämpfte Außentemperatur über vcontrold aus und berechne daraus die gemittelte Außentemperatur.
Ich muss mich korrigieren. Ausgelesen werden die Außentemperatur und die gemittelte Außentemperatur. Daraus lässt sich die gedämpfte Außentemperatur dann sehr einfach berechnen, indem man die 1. Formel umstellt.
Die aufwendigen Rechnungen mit der Zeitkonstante sind nur dann notwendig, wenn man retrospektiv den Effekt der Wahl anderen Zeitkonstanten beurteilen will. Oder keinen Zugriff auf die gemittelte Außentemperatur hat.

ZitatNur hier muss ich erstmalig GAT haben, und die bekomme ich nicht.
Als Startwert kann man einfach die aktuelle Außentemperatur nehmen. Der Fehler gleicht sich dann innerhalb weniger Tage von alleine aus. Notfalls könnte man auch die Heizung ein- und ausschalten, dann wird die gedämpfte Außentemperatur zurückgesetzt, aber das halte ich persönlich für übertrieben.

andies

#72
Zitat von: 0-8-15 User am 07 März 2019, 11:23:04
Also der Zusammenhang zwischen gedämpfter, gemittelter und aktueller Außentemperatur ist wie folgt:
Das sind ja alles Bombeninfos. Kann ich Dein "08-15"-Wissen mal anzapfen für meine Frage, die mich seit einem halben Jahr umtreibt. Wann genau kommt es zur Taktung der Viessmann?  Ich weiß theoretisch, dass da mehr Wärme produziert wird als die Heizung abgeben kann. Aber welche Parameter sind es und in welcher Reihenfolge verändert man die sinnvollerweise?

Wenn die Heizung zu viel Wärme produziert, kann man beispielsweise entweder die Heizkurve senken oder aber die Haustemperatur absenken. Wenn der Abtransport das Problem ist, kann man die Pumpenleistung erhöhen. Ich verstehe aber noch nicht, wie die Viessmann "merkt", dass die Wärme nicht abtransportiert  werden kann - die Heizung springt für bestenfalls eine Minute an und da ändert sich doch die Rücklauftemperatur nicht. Also muss im Kessel irgendwas passieren - was genau passiert da und wie ändern die Dinge, die ich oben genannt habe (Heizkurve, Kesseltemperatur, Vorlauftemperatur) diese Situation?

<edit> Ich muss da noch was ergänzen. Bei kalten AT (also unter 5) taktet das Ding gar nicht, das habe ich im Griff. Sobald die AT steigt, geht es los. Ich habe 1,3 als Heizkurve und 18-20 als Haustemperatur.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Zitat von: 0-8-15 User am 07 März 2019, 11:23:04
Die gedämpfte Außentemperatur lässt sich iterativ aus der aktuellen Außentemperatur gewinnen. Bei einem Messintervall von 10 Minuten gilt:
ATged = ATged * (cod90 - 1) / cod90 + AT / cod90
PS Das ist exakt der (ungewichtete) Durchschnitt der letzten zehn Aussentemperaturen (d.h. gemessen alle 10 Minuten).
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Frini

Auch wenn ich nicht 0-8-15 bin hier mal meine Erfahrungen:
Im Kessel wird die Temperatur überwacht, welche mit der errechneten Vorlauftemperatur verglichen wird. Ist die gemessene Kesseltemperatur einen gewissen Zeitraum größer der benötigten Vorlauftemperatur geht der Brenner wieder aus. Nach einer gewissen Zwangspause, schaltet er wieder ein. Warum weiß ich noch nicht.

Ich hatte das bei meiner alten Heizung auch und konnte das durch zwei Änderungen einigermaßen in den Griff kriegen Im Keller habe ich die Heizkörper durchgehend auf Stufe 5 laufen lassen und die Raumsolltemperatur angehoben.
Die vom Brenner eingebrachte Leistung ist schlicht weg zu groß gewesen. Vielleicht kann man hier noch die Brennerleistung an sich reduzieren, dass er nicht immer mit 100% startet sondern vielleicht die Brenner über den Codierstecker einfach auf die Hälfte reduzieren.

Es bringt nicht viel (In gewissen Maßen schon aber nicht unendlich), die Pumpenleistung zu erhöhen, denn wenn die Wärme nicht abgenommen wird ist das deltaT zu gering und ich habe wieder Energieüberschuss am Brenner.

Eigentlich müsstest Du die Heizkurve anheben, damit Du damit die zu hohe untere Modulationsleistung des Brenners kompensierst. Erkennst Du ja daran, dass die Heizung ab 5°C läuft.

Jetzt mit meiner akutellen Heizung habe ich das Taktverhalten erst ab 14°C Außentemperatur. Sprich da ist für mein Haus die untere Modulationsgrenzleistung von 1,9kW schon zu groß. Um den Brenner durchgehend laufen zu lassen.
In der Nacht (bei 6°C AT) bei einer Temperaturabsenkung auf 12°C habe ich ebenfalls ein takten bei mir feststellen können (nur zur Info, warum ein herabsenken der Vorlauftemperatur nicht funktioniert). Daher schalte ich die Heizung (reduzierung auf 3°C) die Heizung jetzt immer für 6 Stunden am Stück ab, dann eine Stunde früher wieder auf normale Raumsolltemperatur 21°C ein. Das ergibt bei mir zu Hause den niedrigsten Verbrauch über 4 Tage verglichen. Die Unterschiede sind aber Peanuts. Die Reduzierung der Brennerstarts war hier meine Motivation.