Jump to content

Recommended Posts

Geschrieben

Hallo,

 

ich arbeite gerade daran ein Terrarium mit TF & RasPi steuerbar zu machen.

Unter anderem will ich die Heizung dahingehend automatisieren, das ich nur noch eine Zieltemperatur vorgebe und die Software in Verbindung mit TF & Co diese dann regelt.

Bisher habe ich das Ganze mit dem DualRelay, einem PTC-Sensor und einer 12V/3A Heizmatte gelöst.

Kurz bevor die Zieltemperatur erreicht ist schaltet das Relais die Heizmatte aus. Fällt die Temperatur wieder unter eine bestimmte Schwelle, so schaltet das Relais die Heizmatte wieder ein.

Im Prinzip funktioniert das auch, allerdings braucht die Wärme etwas bis sie überall ankommt, will heißen wenn ich die Heizmatte ausschalte, dann steigt die Temperatur noch für ca. 15-20 min weiter bevor sie wieder abfällt.

Deshalb fällt es mir sehr schwer eine konstante Temperatur zu halten, in der Realität sieht das so aus, das die Temperatur zwischen 26.1 °C <-> 27.9 °C schwankt, und das im stündlichen Rythmus.

 

Das finde ich nicht optimal, ich hätte lieber eine konstante Temperatur.

Deswegen habe ich an sowas wie ein digitales Potentiometer gedacht, also an eine Möglichkeit per Software die Spannung der Heizmatte zu regeln.

 

Die Heizmatte arbeitet wie gesagt mit 12V und 3A, sprich sie verbraucht 36Watt.

Ich würde die Matte gerne per Software in z.Bsp. 20 Schritten von 6V/3A -> 12V/3A regeln können und damit dann auf diese Weise die Temeperatur einstellen.

 

Geht dasß

Und wenn ja wie?

Geschrieben

Hmm...

das solltest du mit Software Logik lösen können denke ich.

Du kannst ja damit anfangen das Relais alle 10 Sekunden für 10 Sekunden einschalten und dann 10 Sekunden ausschalten.

Wenn du nah an der Zieltemperatur bist, dann machst du das Relais nur noch 5 Sekunden an und 15 Sekunden aus. Entfernst du dich von der Zieltemperatur wieder dann erhöhst du die Einschaltdauer wieder usw....

 

Damit näherst du dich sehr langsam der Zieltemperatur und das 15-20 Minuten "Nachglühen" der Heizmatte fällt weg.

 

Sonst fällt mir noch PWM ein, dort kannst du über die Pulsweite das auch regeln.

Geschrieben

Die Idee mit dem Ein-/Ausschalten hatte ich auch schon, finde sie jedoch nicht wirklich perfekt.

Zum einen ist die Lösung wesentlich schwierige software-seitig zu lösen, sprich die Programmierung ist nicht gerade unkompliziert (muss dann ständig mit Timern arbeiten, dazu noch verschiedene Zeitintervalle, etc...) und zum anderen finde ich diese Lösung nicht wirklich professionell.

 

Ist aber derzeit meine Notlösung wenn mir sonst niemand helfen kann.

Geschrieben

Du bist quasi auf der suche nach ein Script der ein Regelverhalten hat. wie zumbeispiel P-Regler, PI-Regler oder PID-Regler mit solchen Reglern kannst du die Temperatur Regeln lassen.

 

Vielleicht hilft Google ich wollte gerade schnell Antworten das hatte ich im Kopf

Geschrieben

Ja, ich denke sowas in der Art.

Aber wenn ich mir den Wikipedia-Artikel dazu durchlese, dann sehe ich schon das es recht kompliziert ist und vorallem es ist nur eine Notlösung.

 

Wesentlich besser würde es gehen wenn ich die Spannung per Software regeln könnte.

Wäre weitaus schneller programmiert, würde schneller laufen, wäre ungleich genauer und stabiler.

Geschrieben

Ich habe mal im Zusammenhang einer Raspberry Pi Steuerung für einen Quadrocopter den Python-Code für einen PID-Regler gesehen.

 

Vielleicht könntest du danach suchen.

Temperatur-Regelungen werden in der Industrie so ausgeführt.

Geschrieben

so, habe mich jetzt bei Wikipedia mal schlau gemacht über (PID)-Regler und verstehe jetzt ehrlich gesagt gar nichts davon :(

 

Eine Formel in python umzusetzen, kein Problem.

Aber verstehen muss ich sie dafür, und hier verstehe ich weder welche Formel genau ich anwenden muss, noch welche Werte ich für welche Variablen nehmen muss.

 

Das Grundprinzip dahinter habe ich verstanden und wenn ich mir die ganzen anderen Lösungen anschaue (DC Brick, StepDown Wandler,...) dann ist das auch die günstigste Lösung.

 

Ich brauche ja nur das was ich schon habe, DualRelay + PTC, richtig?

Den Rest würde die Software regeln?

 

Kann mir irgend jemand dabei weiterhelfen?

Geschrieben

Hi,

 

Ich weiss nicht ob ich dafür einen von den komplexeren Reglern benutzten würde.

Die Heizmatte scheint ja schon relativ träge zu reagieren, und ein 2-Punkt Regler wie du ihn im Moment benutzt ist für sowas nicht das schlechteste.

Vielleicht solltest du mit den Einstellwerten (Hysterese) nochmal ein wenig spielen, 1,8°C ist nun auch nicht wirklich viel.

Da kann man bestimmt nochwas rausholen.  ;)

 

MfG

Geschrieben

So, ich habe jetzt halbwegs verstanden wie ich die entsprechenden Werte ausrechne.

Habe mich dabei an diese Seite gehalten -> http://www.vandelogt.nl/htm/regelen_pid_uk.htm

Allerdings habe ich nur den ersten Schritt verstanden, den 2. Schritt zum Fein-Tuning kapiere ich noch nicht.

 

Umgesetzt wurde es in python auf dieser Seite -> https://github.com/steve71/RasPiBrew

 

Die entsprechende Klasse -> https://raw.githubusercontent.com/steve71/RasPiBrew/master/RasPiBrew/pid/pidpy.py

 

Ansicht scheint der PID-Regler auch gut zu funktionieren, ich habe in der Regel Schwankungen von 0.1 - 0.5 °C und das auch nur über einen längeren Zeitraum.

 

Allerdings reagiert der PID-Regler extremst auf Temperaturänderungen der Umgebung.

Das heißt so lange ich eine konstante Temperatur in der Wohnung habe klappt es gut, wenn aber abends (wegen Besuch und Elektronik die läuft) das Wohnzimmer wärmer wird, dann kommt der Regler komplett aus dem Takt (das gleiche passiert auch wenn ich durchlüfte und es kälter wird).

Ich habe dann anstatt den eingestellten 27° C auf einmal 30° C oder mehr, dann fällt er ab bis ca. 25 °C und braucht wieder Stunden um sich irgendwann bei 27° C einzupendeln.

 

Ist das normal?

Kann ich das irgendwie rausrechnen?

 

Im Moment ist es so unbrauchbar, denn wenn die Temperatur plötzlich von 27° C auf 31° C steigt, dann ist die Nesttemperatur zu hoch und die Ameisen ziehen aus (ist ein Ameisen-Formicarium und ich regel die Temperatur im Ameisennest damit)

Geschrieben

Vielleicht reagiert der Regler zu schnell. Ein Delay einbauen und dazwischen immer überprüfen welche Temp. herrscht. Das Lüften ist ja meist nach 5min beendet. Ebenso die Regelungsdifferenz kleiner halten, nicht gleich voll heizen

Geschrieben

Das ist schon mal gut so soll der Regler arbeiten, jetzt kommt das Problem das die Werte richtig angepasst werden müssen.

 

Es gibt bei solchen Reglern eine Störgröße das ist in deinem Fall das Lüften.

Da muss man jetzt schauen wo man dem Regler sagt wie stark er auf diese Störgröße regagiern soll.

Geschrieben

Okay, ich bin mir sicher das sollte funktionieren, allerdings sollte man dazu auch die Formel die man anwendet im Ansatz verstehen  ;)

 

Ich muss aber leider zugeben das ich einfach nach PID und python gesucht habe und so auf meine Links gestoßen bin.

Beim Versuch die PID Formel mit Wikipedia zu verstehen bin ich grandios gescheitert  :(

 

Perfekt wäre es, wenn es eine Formel geben würde, bei welcher ich jedesmal noch zusätzlich die Raumtemperatur mit einbeziehe.

Geschrieben

muss nur noch verstehen wie und woher ich die Werte für ts, kc, ti und td bekomme, bzw. ich muss erstmal verstehen was es genau bedeutet.

 

Soweit ich das verstehe:

ts ist eine von dir vorgegebene Zeit nach der der PID alle Werte im Prozess kontrolliert.

die Zeitkonstanten musst Du durch probieren in Testreihen herausfinden. Dazu hat er auch noch verschiedene Algorithmen beschrieben um daraus die fehlende Werte zu finden (aber das Regelungsverhalten beeinflussen)

Geschrieben

Perfekt wäre es, wenn es eine Formel geben würde, bei welcher ich jedesmal noch zusätzlich die Raumtemperatur mit einbeziehe.

Gibt es sicher. Dazu ist wieder ein Zeitdiagramm notwendig wie sich die Temperaturdifferenz zwischen aussen und innen bemerkbar macht. Lüften macht z.B. eine Temp-Differenz von 5°C ; wie lange dauert es bis sich die Temp. im Nest ändert und wie schnell

Geschrieben
die Zeitkonstanten musst Du durch probieren in Testreihen herausfinden.

das habe ich schon gemacht, habe mich an die Anleitung hier

http://www.vandelogt.nl/htm/regelen_pid_uk.htm#PID31

Punkt 3.1 gehalten und dann die Formeln weiter unten auf der Seite mit meinen Werten gefüttert.

So bin ich dann auf meine Werte für Kc,Ti,Td gekommen.

ts ist nur der Zeitraum in welchem ich die Temperatur-Abfragen vornehme, das ist der einzige Wert der nicht errechnet wird, sondern den ich so setzen kann wie ich möchte.

Bei mir ist er 30, bedeutet das ich alle 30 Sekunden die Temperatur checke, mit dann einen neuen Wert ausrechnen lasse und das Relay entsprechend lang anschalte (von 0 bis max. 30 Sekunden).

 

Ich werde versuchen die Nestbox besser zu isolieren, mal schauen wie es dann ist.

Problematisch ist das die Wärme ca. 5-10 Minuten braucht bis sie das Nest erreicht, dadurch wird es sehr schwer den Controller auf kurzfristige Temperaturdifferenz zu eichen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...