Grandientenerkennung

christoph.87

Level-1
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Ich bin relativ neu hier und beschäftige mich seit ein paar Monaten mit Codesys 3.5, da ich meine "alte" Haussteuerung (Codesys 2.3 auf Wago Kopplern) updaten möchte.

Jetzt bin ich auf eine Idee gekommen die ich gerne umsetzen würde, leider fehlt mir das Hintergrundwissen und die Erfahrung in ST (mache bis jetzt so gut wie alles in CFC).

Zur Idee:

Ich bin gerade auch dabei eine Heizung für meinen Whirlpool zu realisieren, dieser soll über eine Zirkulationspumpe und einem Wärmetauscher geheizt werden, jetzt ist die Erwärmung ja nicht linear, sondern eher in Form einer Parabel, da das aufheizen im oberen Bereich immer langsamer geht. Sicher muss in diesem Fall davon ausgegangen werden, dass die Erwärmung Konstant ist.
Hierfür hätte ich gerne eine Funktion, die errechnet wie lange dieser Aufbau noch benötigt um eine bestimmte Temperatur zu erreichen, bzw. wird diese überhaupt erreicht,…
Diese Funktion könnte für viele weitere Anwendungsbereiche auch gebraucht werden, wie zum Beispiel befüllen eines Behälters (wäre hier aber eher eine lineare Befüllung) das sollte die Funktion aber erkennen.
Zudem könnte man auch die aktuelle Zeit addieren und am Ende eine Zeit bekommen, an der das gewünschte Ergebnis erreicht ist.
Ich kann hier leider den Umfang nicht abschätzen, bzw. kann mir Jmd. einen Tipp geben ob es eine solche Funktion schon gibt?

Vielen Danke schon mal.
MfG Chris
 
Wie genau willst du es haben?

Erstmal ist die reale Aufheizkurve keine Parabel sondern eine e-Funktion.
Wenn du die Verluste unberücksichtigt lässt, dann wäre die Aufheizkurve eine Gerade. So wie wenn du einen Behälter mit Wasser füllst, der wenn der Behälter unendlich hoch wäre einen unendlich hohen Füllstand hätte. So könntest du vielleicht rechnen wenn du dich in einem Bereich befindest, in dem die Wärmeverluste wesentlich kleiner als deine Heizleistung sind. Also wenn du den Pool von 10°C auf 30°C aufheizt, dann hast du mehr oder weniger eine Gerade. Dann misst du wie lange das Aufheizen um 1K benötigt, und kannst dann damit deine Zeit berechnen, Grundschulmathematik.

Wenn du aber schon in die Abflachung der Kurve kommst, dann würde ich die Zeitkonstante deiner Strecke aufnehmen. Also bei üblicher/kleinster Anfangstemperatur voll aufheizen, und dann bis zur max. Temperatur die du erreichen kannst. Das wären dann 5 mal Zeitkonstante Tau. Damit kannst du dann die theoretische Zeit zum Aufheizen bestimmen. So in der Art wie beim Laden eines Kondensators. Immer noch nur genähert, aber für die Praxis sollte verhindern dass du in den eiskalten Pool hüpfen musst.
 
Hi Thomas,

vielen Dank für die Antwort.

Das ist ja mein problem die Grundschulmathematik bekomme ich ja sicher noch hin, aber das mit 5 mal Tau,...
Ich hab zwar Tau jetzt gegoogelt, das wäre genau das was ich brauchen würden, aber wie das jetzt in eine Steuerung packen?

Bin für jeden hinweiß dankbar.

MfG Chris
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal angenommen du nimmst eine Heizkurve auf, d.h. aufheizen bis sich keine Temperaturänderung in deinem Pool ergibt. Z.B. von 10°C auf 40°C in 1 Stunde (3600s). Dann ist Tau = 720s. Zumindest angenommen deine Temperaturkurve besitzt dann auch einen exponentiellen Verlauf (PT1).
Dann kannst du mit
T(t) = Te + (Ta - Te) * e^(-t/Tau)
die Temperatur T nach der Zeit t berechnen. Te ist die Endtemperatur, Ta die Anfangstemperatur aus deinem Aufheizvorgang. Setzt dann aber voraus, dass du bei deinem Aufheizen immer bei Ta beginnst.
Oder das Ganze nach t umstellen und du hast dann die Zeit nach der die Temperatur erreicht wird. Das ist die gleiche Formel wie zur Berechnung des Ladevorgangs eines Kondensators.

Das lässt sich vielleicht noch verfeinern, wenn du zusätzlich die Zeitkonstante des Abkühlvorgangs aufnimmst. Wenn der Pool in einem Haus steht dann ist das evtl. sogar brauchbar, weil dann Dinge wie unterschiedliche Außentemperaturen, Sonneneinstrahlung, Wind usw. wegfallen.
 
Zurück
Oben