Selbstlernende Treibhaussteuerung

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Moin,

    ich möchte mittels einer Kombination von Raspi und mehreren Arduino oder ESP mit Sensoren für Temperatur und Luftfeuchtigkeit innen, Temperatur und Luftfeuchtigkeit außen, Windstärke und Lichtstärke außen die Belüftung und Bewässerung von mehreren Treibhäusern steuern. Die Treibhäuser verfügen über Lüftungsklappen, die motorisch angesprochen werden können und einer zentral ansteuerbaren Beregnung.

    Geplant ist, die Temperatur und Luftfeuchtigkeit in den Treibhäusern möglichst dicht entlang den für die jeweilige Kultur optimalen Werten zu steuern. Zur Veränderung aktueller Werte gibt es nur die Varianten „Lüftung auf/zu“ und „Bewässerung an/aus“ - das Ganze wird in einer Bioland Gemüsegärtnerei laufen, also keine Option für „künstliche „ Klimatisierung…

    Ich würde die Steuerung gerne in einem vorgegebenen Rahmen die optimale Strategie für die notwendigen Änderungen lernen lassen, z.B.

    - Luftfeuchtigkeit innen zu hoch UND Innentemperatur etwa gleich Außentemperatur UND Luftfeuchtigkeit außen niedriger Luftfeuchtigkeit innen—> Lüftung öffnen

    - Temperatur innen zu hoch UND Lichtstärke außen hoch. —> Lüftung öffnen

    - Temperatur innen korrekt UND Temperatur außen sinkt UND Lüftung offen. —> Lüftung schließen

    Ich stelle mir vor, dass ich anfänglich einfache Strategien vorgebe und dass die Steuerung überwacht, ob diese Strategie erfolgreich war. In der Folge werden die Strategien mit einer Priorität bewertet, sodass später eine als „besser“ bewertete Strategie eher zieht.

    Fragen:

    - Wie steuere ich die Strategiebewertung, wenn z.B. Luftfeuchtigkeit eine offene Lüftung und die Temperatur eine geschlossene Lüftung erfordert? Vorab die Parameter Feuchtigkeit und Temperatur Gewichten?

    - Überfordere ich damit einen Raspi als Steuerzentrale?

    - Gibt es in dieser Richtung schon Lösungsansätze?

    Ich wäre euch für alle Tipps und Hinweise sehr dankbar… :bravo2:

    Schöne Grüße aus Isernhagen

    Andreas

  • Überfordern wirst du da so schnell nichts.

    Ich glaube aber nicht, dass hier ein selbstlernendes System sinnvoll ist. Die Reaktion ist zu träge und die Einflüsse sind so vielfältig, dass es ewig dauern würde, bis das System die richtigen Reaktionen selbst lernt. Ich denke, es ist sinnvoller, wenn du die gegebenen Parameter nimmst und mit einer Entscheidungsmatrix ermittelst, welche Steuerparameter die richtigen sind. Du kannst das verfeinern, indem du Zukunftsdaten einbeziehst - z. B. aus der Uhrzeit errechnete Erwartungen (Abends wirds kälter) oder Prognosen von einem Wetterserver. Wenns zu warm und zu trocken ist, aber Regen vorausgesagt, kannst du die Klappen öffnen, um zu kühlen. Aufs Beregnen kannst du verzichten, weil dann bei Regen ja eh die Feuchtigkeit steigt. Oder sowas in der Art eben. Ansonsten würd cih vielleicht versuchen, den Steuerparameter aus den Differenzen Soll-/Ist- und Ist-/Außenwert zu grob zu bilden. Wenns drinnen nur wenig zu warm ist, aber draußen 20 ° minus, dann macht man die Klappe nur ein Bisschen auf.

    Ich glaube, dass das ne ziemlich schwierige Aufgabe ist, wenn du keine Aktiven Elemente hast (Wämreräder, Ventilatoren, Jalousien, Heizung, ggf. Kühlung, Luftbefeuchtung). Wenns drinnen warm ist und draußen warm ist, wirst du es nicht kalt kriegen...

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Generell wird nicht der Raspi überfordert, eventuell aber der Programmierer. Bei selbstlernenden Systemen sind immer Konflikte vorprogrammiert. Wenn z.B. ein Kriterium ein Öffnen der Klappe erfordert, ein anderes aber gleichzeitig ein Schließen, liegt solch ein Konflikt vor. Da muss vorher überlegt - und im Programm berücksichtigt - werden, die Erfüllung welches Kriteriums Vorrang hat. Eventuell kann der Vorrang sogar abhängig davon, welche Werte aktuell vorliegen, wechseln. Speziell bei Luftfeuchtigkeit und Temperatur gilt die Frage zu beantworten, ob die Pflanzen im Konfliktfall durch zu hohe Luftfeuchtigkeit durch Pilzbefall erkranken oder durch "falsche" Temperaturen oder gar Luftzug verdorren oder erfrieren können. Da ist die Steuerung ein echtes Expertensystem, das auch Expertenwissen bezogen der Pflanzen erfordert. Dieses Wissen muss in das Programm mit aufgenommen werden, sonst geht das Ganze irgendwann schief. Eventuell hängt es auch von den (wechselnden ??) Bepflanzungen ab, welche Werte erreicht werden müssen und wie schnell sich die Werte ändern dürfen. Neben Temperatur und Luftfeuchte muss sicherlich auch die Windgeschwindigkeit berücksichtigt werden - nicht alle Pflanzen vertragen Zugluft.

    Gibt es zur Temperaturregelung neben einem Öffnen von Lüftungsklappen noch die Möglichkeit einer Beschattung? Benötigen die Pflanzen viel oder eher weniger direktes Licht? Ohne genaue Vorgaben was muss wann wie gemacht werden, kann solch ein System nicht funktionieren. Da muss der Pflanzenfachmann gründlich überlegen, wann das System wie reagieren muss. Die Intelligenz kommt nicht vom Rechner sondern an erster Stelle vom Aufgabensteller und an zweiter vom Programmierer, der aus der Aufgabenstellung Widersprüche oder Lücken erkennen und schließen muss.

  • Im Prinzip war das Ganze ja schon im Ansatz angedeutet, aber nicht in der für ein Expertensystem (und darum handelt es sich) ausreichend formuliert. Anfangs müssen die vorherrschenden Randbedingungen wie "Luft kalt und trocken, kalt und nass, heiß und trocken oder heiß und nass" und auch die Windstärke und die Lichtverhältnisse aufgelistet werden und dann auch die Innenbedingungen, ob es Gewächshaus eher Wunschbedingungen herrschen oder ob dringender Handlungsbedarf vorliegt. Für alle diese Fälle muss der Experte (Betreiber des Gewächshauses) definieren, was er in dieser Situation machen würde um (welche ?) Idealbedingungen herzustellen. Herrschen beispielsweise im Gewächshaus schon fast Idealbedingungen würde man kaum lüften, wenn dadurch eher eine Verschlechterung eintreten würde. Bei schlechten Bedingungen im Gewächshaus würde man dagegen vermutlich versuchen, durch Lüften die Bedingungen zu verbessern. Das nur als Beispiel. Die Reaktion des Systems hängt also erst einmal von den Randbedingungen ab und kann von Fall zu Fall völlig unterschiedlich ausfallen.

    Der "selbstlernende" Regler muss diese Bedingungen kennen - und das, was von den Maßnahmen an Verbesserung erreicht werden soll. Nur dann kann er "entscheiden", ob die getroffenen Maßnahmen der Zielerreichung dienen, eher zu schwach, zu stark oder sogar kontraproduktiv sind und danach seine Regelparameter anpassen.

    Übrigens: Ein Regler, auf dem die Daten zusammenlaufen und der Algorithmus läuft, ist besser als viele verschiedene Regler. Da gilt die Erkenntnis, dass viele Köche den Brei verderben. Es muss in einem solchen System einen "Master" geben, wobei "Slave"-Rechner (pfui, darf man heute nicht mehr sagen) nur die Daten zusammenfassen und als Paket an den Hauptrechner liefern oder Steuerbefehle ausführen. Die Daten dürfen aber bei der Zusammenfassung nicht verfälscht werden, sonst wird der Regler leicht instabil.

    Nicht vergessen: In Gewächshäusern ist auch die CO2-Konzentration (eventuell sogar abhängig von der Tageszeit) für das Pflanzenwachstum bedeutsam. Auch hier gibt es mehr oder weniger empfindliche Pflanzen.

    Man redet gern in Begriffen wie "Fuzzy Logik", "künstlicher Intelligenz" u.ä.. Diese täuschen eine Intelligenz vor, die ein System einfach nicht haben kann. Das Wissen liegt einzig in der Kenntnis und Erfahrung des Experten und diese ist durch kein System ersetzbar.

  • Hallo Andreas,

    Fragen:

    - Wie steuere ich die Strategiebewertung, wenn z.B. Luftfeuchtigkeit eine offene Lüftung und die Temperatur eine geschlossene Lüftung erfordert? Vorab die Parameter Feuchtigkeit und Temperatur Gewichten?

    - Überfordere ich damit einen Raspi als Steuerzentrale?

    - Gibt es in dieser Richtung schon Lösungsansätze?

    Zu Frage 1:

    Nicht die relative Luftfeuchtigkeit ist entscheidend, sondern die absolute Luftfeuchtigkeit, also die Masse an Wasser, die sich in einem m³ Luft der Temperatur ϑ befindet.

    Die absoluten Luftfeuchtigkeiten (drinnen / draußen) bilden eine Voraussetzung, ob Klappen geöffnet / geschlossen werden, um eine andere Luftfeuchtigkeit / andere Temperatur einzustellen. Zu dem Thema gibt es einen Beitrag von mir in diesem Forum. Da solltest Du Dir Anregungen holen können.

    Die Strategie sollte dann aber auch die Erwartungshaltung an Wettervorhersagen berücksichtigen:. Ist Regen angekündigt? Falls ja, macht es wenig Sinn, kurz vorher noch mal die Luft zu befeuchten... Ist es innen zu warm und die Sonne geht bald unter, macht es keinen Sinn, für einen Temperaturausgleich zu sorgen. Nachts wird es kälter und keine Technik für eine Erwärmung vorhanden...

    Da solltest Du ALLE möglichen Kombinationen mal durchgehen und Dir überlegen, was da gerade am sinnvollsten zu tun ist. Das als Basis für eine grundlegende Strategie. Ob dann der Bedarf nach mehr besteht, muss die Zukunft zeigen.

    Ich habe Zweifel, ob ein lernendes System da Sinn macht. Wenn es um Nuancen geht, dann werden die Entscheidungen nicht mehr nachvollziehbar. Und da können schon mal 1 °C oder 5% rF mehr / weniger (jeweils drinnen / draußen) den Ausschlag geben, ob es "besser" ist, abends doch noch mal zu lüften mit dem Risiko, dass es nachts doch zu kalt wird, nur um es dann evtl. so feucht zu haben, dass der Taupunkt unterschritten werden kann.


    Zu Frage 2:

    Ganz sicher wird ein Raspberry Pi (egal welches Modell) NICHT überfordert werden. Ich habe mit einem RPi mal ein Reinraum-Monitoring nach ISO 14644-2 programmiert. Darüber läuft auch die Kommuniktion und Datenaustausch mit HVAC & AHU und die täglichen Reports mit Empfehlungen an das Reinraum-Team.


    Zu Frage 3:

    Suche mal nach BME280 und meinem Namen. Da findet du einen recht fundierten Thread, der Dir genug Anregungen geben sollte.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Ich habe in der Vergangenheit längere Gespräche mit dem technisch Verantwortlichen für ein großes Forschungsgewächshaus beim MPI für Pflanzenzüchtungsforschung in Köln über die verwendete Technik geführt.

    Grund für die Unterhaltung war ein Schulungsprojekt unseres Schülerlabors bei dem eine Gewächshaussteuerung gebaut und betrieben wurde.

    Hintergrund für das Schulungsprojekt war weniger die tatsächliche Steuerung eines Gewächshauses, als vielmehr Steuer- und Regelzusammenhänge zu vermitteln und eine technische Umsetzung am Modell zu verwirklichen.

    Herzstück des Projektes ist ein Pi als Wlan-Access-Point, als MQTT Broker und als Plattform für Node-Red. Als Sensoren dienen ESP8266 und ESP32 mit Sensoren für Lichteinfall, Windstärke, Windrichtung, Regensensoren, Füllstandsmesser, Temperatur und Feuchtemesser (sowohl Luft als auch Erdreich) Tür und Fenstersensoren und Aktoren für die Steuerung der Beschattungseinrichtung, der Belüftung und der Heizung.

    Die anfallenden Messdaten werden in einer Round-Robin-Datenbank abgelegt.

    Die Visualisierung und Steuerung erfolgt über Node-Red. Hier werden Grenzwerte, Regelverhalten und Alarmierung festgelegt und können jederzeit interaktiv angepasst werden.

    Ähnlich, wenn auch mit anderer Technik, wird auch das Gewächshaus am MPI betrieben. Die Automatik hält Grenzwerte ein und reagiert nach einem festlegbaren Eskalationsmodus. Zudem können dort auch festgelegte Programme bei der Temperierung, Bewässerung und Belüftung gefahren werden, je nach Pflanzentyp bzw. Forschungsrichtung.

    Die betreibenden Forscher am MPI sagten ganz klar, dass die Automatiken in der Gewächshaussteuerung lediglich den Vorgaben (Grenzwerten usw.) der Betreiber zu folgen haben und keine weitere Automatisierung gewünscht ist. Vorhandene Biomasse, also Größe und Dichte der Pflanzen, Volumen und Zusammensetzung des Pflanzsubstrats, Wärmeabgabe der künstlichen Beleuchtung, Personen die Türen öffnen für längere Materialtransporte und viele weitere Faktoren beeinflussen Messwerte und die Regelhysteresen. Darauf darf eine Automatik keinesfalls überreagieren.

    Wie soll ein selbstlernendes System erkennen, das aktuell Tomatenpflanzen vorhanden sind, diese eine bestimmte Wuchshöhe erreicht haben und das deshalb in einer Nacht alle Fester für 2 Stunden geöffnet werden, damit die Temperatur knapp unter 14° fällt. Tomaten reagieren auf eine solche Behandlung mit dem Beginn von Blütenbildung. Damit verfügt die Tomate dann über Blüten und später Früchte an Stellen die sonst nur Kraut zu bieten hätten. Die Tomate muss also nicht erstmal fast einen Meter hoch werden, bis sie von selber Blüten austreibt.

    Das nur als zusätzliches Futter für deine Überlegungen.

  • Schon "einfaches" Getreide benötigt in der Wachstumsphase Feuchtigkeit und in der Reifephase Trockenheit. Für ein Expertensystem muss für die jeweiligen Pflanzen hinterlegt werden, welche Bedingungen überhaupt benötigt werden (siehe auch Beispiel der Tomatenpflanzen oben). Das kann - wie der Name schon sagt - nur ein Experte. Dann muss der Regler aus den vorherrschenden Bedingungen versuchen, die optimalen Bedingungen zu erzeugen. Durch den Soll- / Ist- Vergleich und Einflüsse der verschiedenen Stellmöglichkeiten in der Vergangenheit kann ein (in bestimmten Bereichen) selbstoptimierendes System geschaffen werden.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!