Erstellt von Andreas

Einleitung

Ohne PID schwankt die Rancilio Silvia ungef├Ąhr zwischen 85 bis 100 ┬░C. Bekannte Methoden sind „Temperatursurfen“, um dennoch einen gleichm├Ą├čigen Kaffeegenuss zu erhalten. Mit einem PID kann die Schwankung ohne Bezug faktisch vollst├Ąndig minimiert werden:  +/- 0,3 ┬░C k├Ânnen hierbei erreicht werden. Bei einem Bezug rauscht trotzdem die Temperatur um ca. 8 ┬░C runter. Die (wissenschaftliche) Neugierde spornt dabei an, ob man dies nicht weiter verbessern kann! Folgende Methoden m├Âchte ich hierbei vorstellen. 

  • PID-Werte
  • Software Erkennung
  • Hardware Erkennung

Stand: 27.12.2018

Die Softwareerkennung ist nun im Mastercode integriert und hat somit den Beta Stand verlassen.

Mathematische Absch├Ątzung 

Bei einem Bezug werden ca. 30 ml Wasser bezogen. Der Tank hat ein Volumen von ca. 330 ml bei ca. 92┬░C. Die 30 ml im Tank werden nun mit 20 ┬░C warmen Wasser ersetzt. Die Mischungstemperatur betr├Ągt somit: 

(300 ml x 92┬░C + 30 ml x 20┬░C) / ( 330 ml)= 85,5 ┬░C

Messung ohne Br├╝herkennung

In der ersten Messung wurde der DS18B20, der urspr├╝nglich in der Maschine eingebaut wurde mit dem TSIC 306 verglichen, der nun die neue Standardl├Âsung bei unserer PID L├Âsung ist. 

DS18B20 wurde auf die Temperatur von der Anfangstemperatur des TSIC normiert, um diese besser zu vergleichen.
Unten ist der DS18B20 mit der zus├Ątzlichen Platine ├╝ber dem eigentlichen Messsensor , oben ist der TSIC zu sehen.

Beim ersten Br├╝hvorgang ohne Br├╝herkennung gibt vier wichtige Erkenntnisse: 

  1. Die mit dem TSIC gemessene Temperatur sinkt um die oben grob abgesch├Ątzten 88,5 ┬░C. Punktlandung. 
  2. Die Darstellung von dem DS18B20 habe ich auf die Eingangstemperatur von dem TSIC normiert, da der DS18B20 eine deutliche h├Âhere Temperatur ausgibt – es m├╝ssen fast 10 ┬░C hinzu addiert werden. Der Grund kann hier die Einbauposition sein, da der DS18B20 oben durch das Board abgeschirmt ist, sodass der W├Ąrmeverlust nach oben hin kleiner ist.
  3. Die Abtastrate des TSIC betr├Ągt 100 ms bei einer Aufl├Âsung von 0,1 ┬░C  und dieser reagiert wahnsinnig schnell auf den Br├╝hvorgang. Der DS18B20 nimmt sich hier deutlich mehr Zeit, die Abtastrate ist aufl├Âsungsabh├Ąngig und betr├Ągt in dem Fall 187,5 ms mit nur 0,25 ┬░C.
  4. Die PID ist nicht schnell genug bei einem solchen tr├Ągen System die Regelabweichung auszugleichen. Daher pr├╝fen wir nun im weiteren Verlauf, ob man dabei „nachhelfen“ kann, um dieses Absinken zu minimieren.

PID-Werte

Die einfachste Methode ist die PID-Werte insgesamt so zu ver├Ąndern, sodass bei einer St├Ârung im System die Regelabweichung schneller erkannt wird. Hierbei w├Ąre nur der D Anteil f├╝r geeignet, da dieser schnell auf ├änderung reagieren k├Ânnte. Ohne genauere Unterscheidung / Erkennung eines Br├╝hvorgangs wird das dennoch nicht zum Erfolg f├╝hren, da somit das gesamte System bei h├Âheren D-Werten zum Schwingen neigen wird. Jede Regelabweichung wird dann, genauer gesagt jede zeitliche ├änderung der Regelabweichung, wird in eine Korrektur der ausgegebenen Stellgr├Â├če umgesetzt. Durch das tr├Ąge System wird es dabei schwingen, da durch die D├Ąmpfung des Kessels die Temperatur├Ąnderung erst langsam den Kessel durchlaufen und der Sensor dann verz├Âgert diese ├änderung durch den Sensor messen wird. Der Regler wird auf was reagieren, was schon im Kessel Vergangenheit ist. 

Am Ende wird man einen Kompromiss f├╝r die Startphase, Bezug und den Betrieb am Soll-Wert finden m├╝ssen. Bildlich gesprochen den „Allwetterreifen“ f├╝r die PID Werte w├Ąhlen: Man kann diese immer nutzen, aber sind nie perfekt f├╝r die jeweilige Situation.

Software Erkennung

In einem ersten Ansatz habe ich durch eine Softwareanpassung versucht die Änderung der Temperatur zu erkennen, um dann aggressivere PID-Werte vorzugeben für die Zeitdauer eines Bezugs.

Grundprinzip

Das Grundprinzip dieser Idee ist es, dass sich der zeitliche Verlauf der ├änderung angeschaut und dann anhand eines Indikators erkannt wird, dass man beginnt einen Espresso zu beziehen. Die Problematik ist, dass auch hier das System erst verz├Âgert diese erkennen wird, aber vielleicht ist die Zeitdauer klein genug, um noch auf den Br├╝hvorgang zu reagieren?

Aufbau der Erkennung

In einem vordefinierten Array wird die fortlaufende Zeit (readingstime) und in einem weiteren Array die zugeh├Ârige Temperaturen (readingstemp) weggeschrieben. Wenn dieses gef├╝llt ist, wird wieder von vorne dieses beschrieben. Da innerhalb der Loop() nicht klar ist, wie lange dieses dauert, muss die Zeit und Temperatur erfasst werden.  Zus├Ątzlich wird die lokale Steigung in einem dritten Array  (readingchangerate) und die sich daraus ergebene rollierende durchschnittliche Heizrate ( heatrateaverage) erfasst. 

Parametrierung

„Brewboarder“ gibt den Grenzwert an, bei dem ein Br├╝hvorgang erkannt wird. Dieser wird ermittelt, in dem die durchschnittliche Heizrate heatrateaverage beim Aufheizen und Abk├╝hlen mitgeloggt wird und man manuell analysiert, was der minimale Wert im normal Betrieb ohne Br├╝hvorgang ist. Dies ist dann das normale „Grundrauschen“ des Sensors/Heizkessel. Erst wenn der Wert unterschritten wird, wird von einem Br├╝hvorgang ausgegangen. In der neusten App, habe ich den minmalen Wert automatisch ermitteln lassen. Die Parametrierung kann somit elegant in blynk erfolgen, sodass im Code nichts ge├Ąndert werden muss. Dazu mehr im n├Ąchsten Kapitel.

Durchschnittliche Heizrate ├╝ber einzelne Zeitschritte

Blynk APP

In der Blynk App ist die minimale Heizrate (minimum heat average) direkt ausgegeben (negative Heizrate = Abk├╝hlvorgang). Dieser Wert dient zur Orientierung, wie ein geeigneter Grennzwert gew├Ąhlt werden kann. Dieser wird bei Brew Heater Detection Limit dann eingestellt. Ab dieser Grenze wird die Br├╝herkennung aktiviert und die speziellen PID Werte ├╝bergeben. Wenn dieser Wert zu gro├č ist, gibt es Fehlerkennung und somit ungewollte Heizvorg├Ąnge. Wenn er zu klein ist, wird kein Br├╝hvorgang erkannt. In dem unteren Beispiel wurde ├╝ber 20 Minuten -16,82 als minimale Heizrate gefunden (Maschine sollte nahe an der Solltemperatur sein und dort 10-15 Minuten laufen). Als Grenzwert wurde 60 gew├Ąhlt, das Minus wird im Code erg├Ąnzt, sodass der Grenzwert -60 ist. Bei Brew Timer Software Seconds wird die Zeitdauer f├╝r die speziellen PID Werte eingestellt. Vor der Findung des Grenzwertes ist es empfehlenswert erst Brew Heater Detection Limit  auf 200 zu stellen und abzuwarten, welcher minimale Wert bei minimum heat average gefunden wird.

Br├╝herkennung wird f├╝r 12 Sekunden aktiviert, Grenzwert sind -60. Die minimale Heizrate war seit Start -16,83. Aktuell sind es 2,89. Bei einer Br├╝herkennung wird P: 250; I: 0 und D: 0 ├╝bergeben.

Ich empfehle dringend die Maschine bei einer solchen Parametrierung nicht unbeobachtet zu lassen! Es kann Fehlerkennung geben und die Maschine heizt unkontrolliert hoch! In dem Fall On/Off in der App verwenden, Netzstecker ziehen oder Netzschalter bet├Ątigen.

Hardware Erkennung

F├╝r die Hardware Erkennung habe ich ein Stromsensor am Br├╝hschalter zwischen geschaltet, um einen Bezug zu erkennen.

Am Beginn des Starts des Nodemcu wird f├╝r 30 Sekunden der Mittelwert am Sensor ermittelt, da dieser bei 0A eine Grundspannung ausgibt (5 Volt/2). Diese wird in eine Skala von 0 bis 1023 durch den Nodemcu ├╝bersetzt. Den Bezug erkenne ich durch ├ťberschreitung einer Differenz zu diesem Mittelwert. Im nachfolgenden Diagramm ist gut der Verlauf der Stromst├Ąrke bei Wechselspannung zu sehen.

Auslesen des Analogen Eingangs bei Bezug (ab Schritt 49 bis 91)

Parametrierung

Wenn die Differenz vom anf├Ąnglichen Mittelwert und der aktuellen Spannung gr├Â├čer 20 wird, dann wird von einem Br├╝hvorgang ausgegangen. Dieser Wert ist im Moment fest im Quellcode vorgegeben.

Ergebnisse zu der Hardware und Software Erkennung

Bei dem Vergleich der beiden L├Âsungen geht es im ersten Schritt nur darum, wie tief die Temperatur beim Bezug absinkt. Es wurde in beiden F├Ąllen mit mit P = 400 gearbeitet.

Messungen wurden nur mit dem TSIC durchgef├╝hrt. 

Wie zu erwarten war, ist die Hardware Erkennung deutlich schneller, sodass hier die Temperatur minimal weniger absinkt. Die Unterschiede zwischen der Software Erkennung und Hardware Erkennung sind dennoch eher zu vernachl├Ąssigen oder kann durch eine normale Schwankung beim Bezug hervorgerufen werden. Beide L├Âsungen f├╝hren dazu, dass schneller die Solltemperatur wieder erreicht wird. Statt 3-4 Minuten wird nach ca. 2 Minuten wieder der Punkt f├╝r einen neuen Bezug erreicht.  Der Kurvenverlauf der beiden Bez├╝ge nach dem Minimum sind nicht direkt zu vergleichen, da Bezugsmenge hierbei wahrscheinlich den weiteren Kurvenverlauf beeinflussen kann. In einem weiteren Teil werde ich pr├╝fen, ob durch gut gew├Ąhlte PID Werte ein ├ťberschwingen verhindert werden kann und die Soll-Temperatur schnell wieder erreicht werden kann.

Optimale PID Werte w├Ąhrend eines Bezuges

Nach l├Ąngeren experimentieren ist es uns gelungen optimale PID Werte f├╝r den Bezug zu finden. Diese sind P: 80: I: 0 und D: 800. Diese gelten f├╝r 45 Sekunden.

Bei der Br├╝herkennung war: P: 80, I: 0, D: 800. Diese Werten galten f├╝r 45 Sekunden. Der Output gibt die Reglerstellung an: 0 entspricht 0 %, und 1000 entspricht 100 % Heizleistung

Diese Werte m├╝ssen ggf. individuell f├╝r die einzelnen Maschinen angepasst werden. Dies kann Bequem ├╝ber die App erfolgen.

Fazit

Ein PID Regler kann die Temperatur im Kessel deutlich stabilisieren, eine Softwareerkennung kann hierbei die Abweichung bei einem Bezug von ca. 8 ┬░C auf 6 ┬░C reduzieren und die Hochheizphase verk├╝rzen. Die Einbauposition und Einbauweise des Sensors kann hierbei deutlich das Ergebnis verf├Ąlschen / beeinflussen. Die Unterschiede von der Hardwareerkennung und der Softwareerkennung sind eher minimal.

Das Wichtigste bei der gesamten Optimierung:

Der Espresso schmeckt auch ohne hardwareseitige oder softwareseitige Erkennung des Br├╝hvorgangs mit einem „normalen PID“.

├ťbertragung in den Mastercode

Nach der Beta Phase haben wir uns entschlossen die Softwareerkennung in den Mastercode einzubauen. Diese steht seit dem 27.12.2018 zur Verf├╝gung. Das keine Vorteile f├╝r die Hardwareerkennung vorliegen, haben wir uns entschieden diese nicht weiter zu verfolgen.

Ausblick

Es k├Ânnte sp├Ąter die M├Âglichkeit bestehen bei einem Vollausbau direkt das Signal vom Schalter zu nutzen, um noch schneller auf ein Br├╝hvorgang zu reagieren.