HEIMEIER Thermischer Stellantrieb, Regelalgorythmus

Ja, mach mal. Würd mich interessieren was er dazu sagt. Aber natürlich hat jeder Meister seine eigene Meinung zu dem Thema. Mein Spezialist ist seit Jahren im Ruhestand. Er ist ein absoluter Bastler und Tüftler. Mit ihm hab ich bei zwei, drei Bierchen eine lange Unterhaltung zum Thema gehabt.

Das hat Steiner meine ich gemacht, oder? Das ist was ich oben beschrieben hab, nur ne Ecke konsequenter.

Man schaltet das teil alle 30 sekunden für 30 Sekunden ein. Bevor du das tust wartest du 2 Minuten bis er ganz geschlossen ist und stellst ihn auf seine „Arbeitsposition“ indem du ihn 60 sekunden einschaltest (halb offen). Nun wird er zwischen 50% und 75% hin und herpendeln und nie aus oder ganz offen sein. Wenn du eine Temperatur ausgleichen willst und, sagen wir mal, die Temperatur um ein Grad anheben, dann lässt du ihn 35 sekunden aufregeln und 30 nur wieder schließen. So kannst du dynamisch den öffnungsgrad bestimmen. Ist ne Art PWM.

Aber das würde ich nur über Kabel machen. Nicht mit Funk…

Toni

Hast du da mal nachgefragt?

Mal ne doofe Frage :

HEIMEIER Stellantrieb anstatt des FHT Stellantriebs an die Heizung anbauen, 230 V Kabel an eine Steckdose führen (z.B. am Heizungsrohr entlang in den Keller), an eine FS20ST dran.

Dann nur noch ein Skript schreiben á la „unter 20° = Steckdose AN“ und „über 20° Steckdose AUS“.

Ist das in soweit richtig ?

Die FHTs kann dich dann ja hängen lassen, auch ohne Stellantrieb, einfach um die Temperatursteuerung vor Ort vorzunehmen, oder ?

Nutzt irgendjemand das schon so und kann ein wenig berichten ?

Hallo roadsterhh,

warum so kompliziert? Nutze dafuer doch dieses Modul und in Kuerze wird es in WIIPS auch den PI-Regler dafuer geben.

Gruss Torro

Hallo roadsterhh,

besser „FS20_SwitchDuration“ - sicher ist sicher :rolleyes:
Mit der FS20 ST funktioniert es bei mir sehr gut.

Siehe auch: http://www.ipsymcon.de/forum/showpost.php?p=265&postcount=1

MST

Falsche Logik, tut mir leid. Wenn du einen Heizkörper auf Betriebstemperatur hälst, braucht er weniger Energie (global gesehen) als wenn du ihn ständig zufährst. Denn in dem Fall kühlt dein Heizkörper ab, und muss nachher wenn er heizen muss, erst mal so richtig dampf geben. Und da wirst du merken, wie der Kalorien-Messer im Kreis rotieren wird !

Das habe ich mich erst kürzlich von meinem Heizungsinstallateur belehren lassen müssen.

Hallo Franz,

wie soll das begründet sein? Der abkühlende Heizkörper gibt doch die Energie an die Umgebung (d.h. den Raum) ab, so daß dort also keine „Verluste“ entstehen. Höhere Verluste entstehen doch auch in der Zuleitung nicht, da die Vorlauftemperatur am Warmwasserspeicher konstant ist?

Ich hatte auch die glorreiche Idee, meinen Warmwasserspeicher in der Küche nachts abzustellen (per Funksteckdose) da ja eh niemand warmes Wasser brauch um diese Zeit. Doch ich merkte am nächsten Morgen, dass das Gerät in der Kurzen Zeit mehr Strom verbrauchte um das Wasser von 10 auf 75 Grad wieder zu erhitzen, als wenn ich es nachts im Standby-Modus laufen lies. Da waren die Heizperioden viel kürzer.

Kann ich auch nicht nachvollziehen, lasse mich aber gerne eines Besseren belehren??? Um Wasser um eine gewissen Gradzahl zu erwärmen ist doch eine konstanten Energiemenge aufzuwenden, oder? Die Wärmeverluste sind beim Abschalten des Geräts über Nacht jedoch geringer, da die Differenztemperatur zur Umgebung kleiner wird. Also müsstest du insgesamt trotzdem damit Strom gespart haben.

Kennt jemand vielleicht die math. Formeln dazu noch???
Das würde mich selbst auch stark interessieren, da ich momentan die Warmwasseraufbereitung der Heizung nachts automatisch abstelle.

Nachtrag:
Habe gerade im Internet noch etwas recherchiert und meine Vemutung bestätigt bekommen. Die spezifische Wärmekapazität bei Wasser zwischen 0 und 100 Grad Celsius bleibt bei konstanten Druck in etwa konstant. Somit bestimmt nur die Temperaturdifferenz die notwenige Energiemenge zur Erwärmung, d.h. es ist egal ob man Wasser von 20 auf 40 Grad erwärmt, oder von 60 auf 80 Grad.

Gruß, Andreas

Aber bei einer guten Dämmung hälst du die Temperatur ja eher konstant, also häufiger wenige Grad aufheizen. Wenn du ausschaltest hast du einmal morgens viele Grad aufheizen ;).

Leute… Diese Ja/Nein/Pro/Kontra Disskussion ohne Fakten hat doch keinen Wert. Ich war so froh, dass der Thread eingeschlafen war…

AAaaalso… TiefLuftHolUndStudiumVortäusch

Ist es nicht auch so, dass ein heisser Tee schnell lauwarm wird während ein lauwarmer Tee lange lauwarm bleibt? Wers nicht kennt, könnt ihr mir glauben - ist so. :stuck_out_tongue: Gibt nen Fachausdruck dafür, der mir entfallen ist.

Je größer also der Temperaturunterschied ist desto schneller gleichen sich die unterschiedlichen Temperaturen an.

Auf unser Problem Übertragen bedeutet das, dass es Unsinn ist einen größeren Wasservorrat aktiv (also durch zufuhr von Energie) auf hoher Temperatur zu halten, wenn man ihn nicht benötigt.

Wenn Mr_Command recht hat, dass es egal ist ob man von 20 auf 40 oder von 60 auf 80 Grad aufheizt, wovon auch ich ausgehe, dann kann man sich leicht ausrechnen wieoft man von 55 auf 60 aufheizen kann bis es sich gelohnt hätte von 20 (das Wasser wird ja nicht unter Raumtemperatur/Außentemperatur, je nachdem wovon wir reden, sinken) auf 60 Grad aufzuheizen.

Wenn man den Fall ins Extreme treibt wird es noch deutlicher. Man stelle sich nur einmal vor man fährt 14 Tage in den Urlaub! Abschalten oder nicht?!? Keine Frage oder?

Da es, dieser Feststellung folgend, einzig und allein von der Zeit abhängig ist ob es sich rechnet oder nicht - was kann man da tun? Das einzige was man tun kann ist dafür zu sorgen, dass möglchst wenig „Temperatur“ (korrekterweise müssten wir hier von Energie sprechen) verloren geht. Dies lässt sich auf zwei einfachen Wegen erreichen. Der erste Weg, das wird jedem einleuchten, besteht darin den Behälter zu isolieren. Da sich nun die Zeit verändert bis wieder 5 Grad „nachgetankt“ werden muss, ändert sich auch die Zeit wann es sich lohnt nachts abzuschalten. Der Zweite Weg besteht darin die Temperaturdifferenz möglichst niedrig zu halten. Wir erinnern uns an den Tee, der von sich aus lange lauwarm bleibt. Moderne Heizungen, nicht nur Fußbodenheizungen, werden aus diesem Grund teilweise mit nur noch weniger als 40°C betrieben.

Fazit: Es gibt kein Richtig oder Falsch. Jeder muss sich ausrechnen ob es bei seinen Gegebenheiten, damit meine ich die Wärmeverluste der Rohre, des Boilers, des Kessels, Sinn macht oder nicht. Ein alter Boiler verhält sich nun einmal anders wie eine moderne Gasheizung.

Ich hoffe nun ihr konntet meinen Ausführungen folgen und ich hab mit meinem Beitrag etwas Licht ins Dunkle gebracht.

Toni

Danke, profimäßig :smiley:

Uralter Thread, muss ihn mal wieder aufwärmen…
Da ich das Problem mit den Heimeier-Ventilen gerade habe…

Das Problem ist doch nicht der Energieverbrauch beim hochheizen des Wassers von 30 auf 50 oder 40 auf 60 Grad…
Das eigentliche Problem bei der Regelung von solchen Thermostaten ist doch, dass das einfache Abschalten sobald die Zieltemperatur im Raum erreicht ist, zu einem „Überheizen“ des Raums führt, da der/die Heizkörper ja noch (in meinem Fall 65 Grad °C) eine recht hohe nicht benötigte Energie gespeichert haben, welche an den Raum abgegeben wird.

Beispiel:
Bei 21 Grad Raumtemperatur wird abgeschaltet. Der Thermostat braucht noch 1,2 Minuten zum schließen und die Heizkörper haben dann immer noch 65 Grad. Der Raum heizt sich also weiter auf bis ca. 23 - 26 Grad. (Je nach Außentemperatur). Dann fällt die Raumtemperatur wieder bis unter 21 Grad und das Spiel beginnt von neuem. --> Unangenehm für die Nutzer des Raums.

Lösung: Bestromung in Pulsweiten in Abhängigkeit der Raumtemperatur.

Kurz eine Formel gebastelt: $dauer=round((pow(($solltemp-$isttemp),4)+1)*20000)+10000;

Also Temperaturdelta hoch 4 plus 1 * 20000 Milisekunden ergibt die Pulsweite in Milisekunden + 10 Sek. (damit die Heizkörper nicht ganz kalt werden.)
Das Script läuft alle 2 Minuten, $dauer wird bei 80000 = 80 Sekunden künstlich gekappt.

Eigentlich sollte die Außentemperatur, welche ja die Abkühlung des Gebäudes beeinflusst, auch noch in die Haltezeit einfließen. (Hab ich noch nicht nicht gemacht.)

Da ich leider keinen Schalter habe, welchem ich sagen kann, dass er $dauer lang Strom geben soll, wird einfach zwischen „Einschalten“ und „Ausschalten“ ein „IPS_Sleep“ dazwischen gehängt.

(OK, IPS_Sleep sollte man nicht machen… Aber warum gibt es dafür in IPS keine einfachere zuverlässige Lösung als aufwändig irgend welche Variablen mit Einschaltzeiten zu setzen und dauernd (Skript alle 5-10 Sekunden) zu vergleichen?)

Nun zur eigentlichen Frage:
Hat jemand eine bessere Formel ge- oder erfunden?
Hat jemand was besseres als den Sleep?

Juergen,

Im Skript kann ein Ereignisszeit eingestellt worden:
IPS_SetEventCyclicDatebounds($EventID,time()+ $EventDelay ,0);
IPS_SetEventCyclicTimebounds($EventID,time()+ $EventDelay ,0);
(Vorher zyklisches Ereigniss definieren)

Im Skript Schalter einschalten und nach Ablauf des Ereignisszeites Schalter wieder abschalten im Ereignissaktion.

Dein Formel mit (Soll - Ist ) Hoch 4 hat ein Problem wenn es zu warm wird, weil dann die Heizung weiter geoeffnet wird. Mit Hoch 3 im Formel gibt es dieses Problem nicht.

Viel Spass

PS
Ich habe in meinem Haus Niedertemperatur, 40C/25C, Zentralheizung mit gleichem Temperatur ueber den ganzen Tag. Wassertemperaturregler mit Aussentemperatur und lokal Temperatur einstellung mittels „Thermostatisch regelelement“ SR Design TRV4.

Sorry, kann mir die Formel mal jemand erklären?

ich hab hier nämlich grade das Problem eine FBH zu regeln und ich hab es bisher so gemacht. Ich prüfe die Temp alle 10 Minuten (weniger lohnt nihct bei einer FBH) und berechne das PWM Verhältnis dann wie folgt:

	function SetPWM($raum)
	{
	   $delta = $raum['Sollwert'] - $raum['Istwert'];

		switch($delta)
	   {
	      case ($delta < 0): $pwm = 0; break;
	      case ($delta > 0.8): $pwm = 100; break;
	      case ($delta > 0.6): $pwm = 90; break;
	      case ($delta > 0.4): $pwm = 75; break;
         case ($delta > 0.2): $pwm = 40; break;
	      case ($delta >= 0): $pwm = 20; break;
	   }
	   
		//Einschaltzeit in Sekunden berechnen
		$dauer = (10 * 60) * $pwm / 100;
		if ($pwm == 100)
		{
		   $dauer += 10; //10 Sekunden dazu wegen dem Anzeigeproblem in Multichard
		}

		return $dauer;
	}

Was natürlich nihct wirklich elegant ist und ich denke sobald ich weitere Zimmer damit regele wird es zu abweichungen kommen, da diese Werte nur für das Wohnzimmer in Versuchen ermittelt wurden.

Gibt es vielleicht eine Formel die für meinen Regler passt, die ich hier verwenden könnte und wo dann ein Prozentwert raus kommt?

Hallo,

danke für den Tip von AndreIP mit IPS_SetEventCyclicDatebounds($EventID,time()+ $EventDelay ,0);
Muss ich mal testen.

Bzgl. hoch 4 oder hoch 3: Ich prüfe natürlich vorher per IF-Abfrage, ob die Solltemperatur unter der Isttemperatur ist. Wenn Ist > Soll wird nicht gerechnet und auch nicht geheizt. Sonst würde es bei allen geraden Potenzen weiter hoch heizen. 4 hat sich einfach derzeit als brauchbarer Wert erwiesen. Kann auch 3 oder 5 sein, je nach Fläche der Heizkörper etc.


Noch zur Formel: $dauer=round((pow(($solltemp-$isttemp),4)+1)*20000)+10000;

round = runde die Zahl.

pow = x hoch y (x=($solltemp-$isttemp), y=4

  • 1: Werte mit 0,xxx (soll = 20, ist = 19,5 --> Delta = 0,5 hoch 4 = 0,0625) werden beim Potenzieren immer kleiner statt größer. Deshalb immer mal sicherheitshalber 1 dazu, dann werden die Werte beim potenzieren immer größer. (soll = 20, ist = 19,5 --> Delta = (0,5 + 1) hoch 4 = 5,06)

20000: Damit da nicht nur 1,5 Milisekunden raus kommen (in der Zeit macht der Thermostat garnichts), wird einfach mal mit 20 Sekunden multipliziert. Bei 5,06 * 20Sek. gibt das dann 101,2 Sekunden heizen.

10000: Einfach nochmal einen Festwert von 10 Sekunden dazu.

Dieser Festwert 10 Sek. oder der 20 Sek. könnte auch in Abhängigkeit der Außentemperatur gebildet werden.
Beispiel: $festwert = 20Sek. + (Außentemp. in Grad * -1) Somit kommen zu den 20 Sekunden bei -10 Grad nochmal 10 Sekunden dazu, bei +10 Grad Außen werden es 20-10 = 10 Sekunden.

Da der IPS_sleep nicht zu lange werden darf, ist er einfach per IF $dauer > 80 Sekunden auf 80 Sekunden gekappt.
Keine Ahnung wie hoch er wirklich sein darf, bevor IPS Ärger macht, aber das das Script alle 120 Sekunden läuft habe ich einfach etwas Sicherheit eingebaut. Man könnte sicher auch bei 40 Sekunden kappen und das Script jede 60 Sekunden laufen lassen.

Danke für die Erklärung, dass muss mir jetzt mal für meinen Fall umsetzen und ggf. pro Raum einen Korrekturfaktor berechnen.

Bei mir ist das mit dem Skript einfacher. Ich triggere alle 10 Minuten und berechne eine neue Zeit für die das Fußbodenheizungsventil offen sein soll )0 -10 Minuten) und setze den Aktor auf diese Zeit. Ausschalten kann er dann von selber.

Wobei ich jetzt festgestellt habe (Excel sei Dank), dass folgende Formel am besten zu meinem Raum und den vorher per Switch eingestellten Werten passt:

	function SetPWM($raum)
	{
	   $delta = $raum['Sollwert'] - $raum['Istwert'];
		$parallel = $raum['Parallele'];
		$korrektur = $raum['Korrektur'];

		//Berechnet
		$pwm = (log($delta + $korrektur * 0.001) + $parallel * 0.01) * 100;
		if ($pwm > 100)
		{
			$pwm = 100;
		}

               /* alt

		switch($delta)
	   {

	      case ($delta < 0): $pwm = 0; break;
	      case ($delta > 0.8): $pwm = 100; break;
	      case ($delta > 0.6): $pwm = 90; break;
	      case ($delta > 0.4): $pwm = 75; break;
         case ($delta > 0.2): $pwm = 40; break;
	      case ($delta >= 0): $pwm = 20; break;
	      
            */

		//Einschaltzeit in Sekunden berechnen
		$dauer = (10 * 60) * $pwm / 100;
      if ($pwm == 100)
		{
   		$dauer = $dauer + 10; //10 Sekunden dazu wegen dem Anzeigeproblem in Multichard
		}
		return $dauer;
	}

Wobei fürs Wohnzimmer der Korrekturwert auf 120 und der Parralelverschiebungswert auf 110 steht. Bin gespannt, wie das verhalten aussieht die nächsten tage und ob es auf die anderen Räume übertragbar ist.