Temperatursteuerung beim Maischen mit Arduino

Antworten
alvaschein
Posting Junior
Posting Junior
Beiträge: 17
Registriert: Montag 1. Mai 2017, 14:35
Wohnort: Adlikon b. R.

Temperatursteuerung beim Maischen mit Arduino

#1

Beitrag von alvaschein »

Hallo zusammen

Da ich schon etliche Sude mit meiner Anlage gemacht habe, dachte ich mir, sie könnte euch auch interessieren.

Ich habe nicht lange mit dem Braupaddel gearbeitet, da mir dabei immer zwei zusätzliche Hände fehlten um verschiedene Arbeitsabläufe parallel vorzubereiten. Ich habe mich dann entschieden, das Paddel in die Ecke zu stellen und eine Steuerung zu entwickeln.

Ich versuche nun die Steuerung mit seinen Hauptkomponenten zu beschreiben.

Hauptkomponente Einkochautomat
Der Einkochautomat ist von der Marke Weck, 29 Liter, mit Ablasshahn und 2 kW Heizleistung.

Hauptkomponente Rührwerk
Das Rührwerk besteht aus 3 Paddeletagen, die je nach Füllmenge eingesetzt werden. Die Paddel sind geneigt (45°) und rühren die Maische von unten nach oben und wieder runter, damit die Wärme homogen auf die gesamte Maische verteilt wird. Das Gestänge und die Paddel bestehen aus Kupfer. Der Motor des Rührwerks läuft mit 12 V DC, hat einen starken Drehmoment und dreht sich mit der Untersetzung maximal 2 mal pro Sekunde. Die Drehgeschwindigkeit kann nach Bedarf mit einem Potentiometer eingestellt werden.

Hauptkomponente Konsole
In der Konsole sind verschiedene Steuerelemente verbaut.
- PWM-Konverter/ Leistungsregler: Damit nicht voll Rohr geheizt wird, hängt die Heizleistung zuerst von der Menge des Hauptgusses und nach Erreichen der Einmaischtemperatur von der zusätzlichen Menge Malz ab, damit einerseits die Aufheiztemperatur im Bereich von 1°C/min liegt und andererseits die Temperatur nicht überschiesst und konstant gehalten werden kann.
- 3.5" TFT Touch Display: Das ermöglicht die Auswahl der Maischrasten, Eingabe der wichtigen Parameter und die Anzeige der Temperaturkurve.
- Arduino Mega 2560: Das Herz der ganzen Anlage! Hier gehen alle Steuer- und Rechenprozesse durch. 2'200 Zeilen Code ermöglichen eine optimale Maischeführung. Alle wichtigen Parameter werden auf SD Karte gespeichert, damit man entweder auf Fehlersuche gehen oder den Prozess optimieren kann.
- 220 V Anschlüsse: Einer ist gepulst und dient der Steuerung des Einkochautomaten, der andere ist frei, falls ein zusätzliches Gerät angeschlossen werden muss.
Frontpanel.jpg
(Die Frontpanel-Platte ist leicht ausklappbar, damit man nicht immer auf die Knie gehen muss um die Anzeige abzulesen.)
Seitenanschlüsse.jpg
Rückanschlüsse.jpg
Das Innenleben zeigt nachstehendes Bild.
Steuerelemente.jpg

Hauptkomponente Steuerprogramm
Grundsätzlich ist es kein Problem eine Steuerung zu programmieren. Jedoch hat sich gezeigt, dass bei den Probeläufen nicht alles so linear reagiert wie es gewünscht ist, wie z.B. Heizleistung und Wärmeverlust bei höheren Temperaturen. Ich musste mich da iterativ an brauchbare Werte herantasten. Das Programm ist Straight-Down programmiert. Zuerst wird die Anzahl Rasten aus einem Menu ausgewählt. Zu jeder Auswahl werden im nächsten Schritt Defaultwerte angegeben, welche verändert werden können. Schlussendlich wird die Hauptgussmenge in Dezilitern und die Schüttung in Gramm angegeben. Diese beiden Werte sind notwendig, da die Aufheizrate von ca. 1°C/min (Narziss, "Technologie der Würzebereitung") vom Inhalt des Einkochautomaten abhängt. Wenn die Einmaischtemperatur erreicht wird, wird eine andere Heizleistung benötigt, da nun eine Wasser/Malz-Mischung aufgeheizt werden muss.
Menu_00.jpg
Menu_01.jpg
Menu_02.jpg
Menu_03.jpg
Sobald der Maischprozess gestartet wird, muss das System 70 Sekunden anschwingen, bis die Heizleistung zu einer eindeutigen Erwärmung der Maische geführt hat. Danach werden die Rasten abgearbeitet. Damit das Schütten nicht vergessen wird meldet sich ein Buzzer mit einem Signal. Nach jedem Ende und beim Start der Rast meldet sich der Buzzer nochmals.
Die Hauptfrage die sich bei der Entwicklung des Programms stellte war, wie steuere ich die Heizleistung, ohne dass die Temperatur massiv überschwingt. Ein Teil der Lösung war ein Rührwerk, das die Maische so stark umrührt, dass die Wärme (Trägheit der Heizspirale nach dem Ausschalten der Heizung, Temperaturschichtung (kühl oben, warm unten)) gleichmässig auf die gesamte Maische verteilt wird.
Der zweite Teil war etwas schwieriger. PD, PI, PID waren alles Stichwörter, welche mir im Kopf herumschwirrten. Da ich aber ein System wollte, das nicht für jede neue Situation (Füllmenge) angepasst werden muss (Kp, Ki, Kd), habe ich einen anderen Weg gewählt. Ich heize mit der notwendigen Heizleistung bis auf 95% der Solltemperatur, lasse es ausschwingen bis die Temperatur wieder fällt und heize wieder, bis die Temperatur auf die nächste Stufe (z.B. 97.5% Solltemperatur) kommt. Sobald die Solltemperatur erreicht ist (Einmaischtemperatur, Rasttemperatur), wird abgewartet, bis die Temperatur unter einem unteren Sollwert der Temperatur fällt (z.B. Rasttemperatur 64°C, unterer Sollwert 63.9°C). Sobald die Temperatur unter diesem unteren Sollwert liegt, schaltet sich die Heizung ein, bis die Temperatur einen Anstieg registriert. Danach wird die Heizung wieder ausgeschaltet und das Ausschwingen abgewartet. Normalerweise steigt die Temperatur über den Sollwert und das gleiche Spiel beginnt von vorn. Ab und zu reicht es nicht und es wird automatisch nachgeheizt, bis die Temperatur in den Regelbereich kommt. Das ist vor allem beim Erreichen der Einmaischtemperatur wichtig, da das Malz das Wasser abkühlt (kann aber abgefangen werden, indem die Einmaischtemperatur entsprechend gesetzt wird).
Das wird über alle Temperaturen der Rasten bis zum Schluss gemacht.

Temperaturverlauf des ganzen Maischprozesses
Die Abweichung von der Solltemperatur liegt irgendwo bei +/- 0.3 bis 0.5°C. Die linke Skala zeigt die Temperatur ab 20°C in 10°C Schritten und die Untere Skala zeigt die verstrichene Zeit in 10 Minutenschritten (z.B. 12 entspricht 12 x 10 Minuten). Die grünen horizontalen Linien zeigen die Solltemperaturen der Rasten und die blauen vertikalen Linien den Zeitbereich der Rastdauer (werden immer automatisch gezeichnet).
Temperaturverlauf.jpg
So, nun bin ich gespannt auf eure Rückmeldungen.

Gruss
Roy
hopfenschluerfer
Posting Junior
Posting Junior
Beiträge: 66
Registriert: Montag 16. Oktober 2017, 20:49

Re: Temperatursteuerung beim Maischen mit Arduino

#2

Beitrag von hopfenschluerfer »

Gefällt mir. Ich hab an meiner Arduino-gesteuerten Heizplatte auch ein Display.
Rasten kann ich da zwar auch eingeben, meistens übertrage ich die aber per Bluetooth. Zur Prozessüberwachung will ich das Display aber nicht mehr missen.
Benutz du für die Gui irgendein Framework oder zeichnest du die einzelnen Ansichten auch mit der Adafruit_GFX Bibliothek selbst ? Grade die Navigation durch das Programm ist bei mir nämlich noch verbesserungswürdig und verschlingt einiges an Zeilen.
Hast du für den Graphen im letzten Bild eine Library ? Sowas könnte ich nämlich auch noch gebrauchen :)
Was hat es denn mit dem Wasser- und Malzmenge Bildschirm auf sich?
alvaschein
Posting Junior
Posting Junior
Beiträge: 17
Registriert: Montag 1. Mai 2017, 14:35
Wohnort: Adlikon b. R.

Re: Temperatursteuerung beim Maischen mit Arduino

#3

Beitrag von alvaschein »

hopfenschluerfer hat geschrieben: Donnerstag 22. März 2018, 15:13 Benutz du für die Gui irgendein Framework oder zeichnest du die einzelnen Ansichten auch mit der Adafruit_GFX Bibliothek selbst ? Grade die Navigation durch das Programm ist bei mir nämlich noch verbesserungswürdig und verschlingt einiges an Zeilen.
Hast du für den Graphen im letzten Bild eine Library ? Sowas könnte ich nämlich auch noch gebrauchen :)
Was hat es denn mit dem Wasser- und Malzmenge Bildschirm auf sich?
Folgende Libraries habe ich für die Steuerung eingesetzt:
math.h
QuickStats.h
OneWire.h
TFT_Touch.h
UTFT.h
URTouch.h
DS1307.h
SPI.h
SD.h

Für den Graphen gibt es keine Library. Er ist recht einfach aufgebaut und mit den Befehlen/Funktionen der UTFT einfach zu zeichnen. Lediglich für die Zahlen musste ich ein Pattern erstellen (3x5-Matrix).
Antworten