Eismaschine

Posted on Sat 31 August 2024 in Science & Medicine

Ich liebe Eiscreme! Und seit wir vor Jahren mal günstig eine Eismaschine ergattert haben, kann ich leider kein Eis mehr im Supermarkt kaufen, weil es einfach sch***e schmeckt. Und so hat besagte Eismaschine den Sommer über einen festen Platz in unserer Küche. Und wie ich feststellen muss, scheint die Eismaschinenkrankheit sehr ansteckend zu sein – jedenfalls kaufen sich gerade diverse unserer Freunde ebenfalls solche Geräte nachdem sie unser Eis probiert haben. Nun war es so, dass ich ein paar Versuche benötigt habe, bis das Eis so wurde wie es soll. Es galt ein paar Parameter zu optimieren und zu lernen, worauf es ankommt:

  1. Exakt an das Rezept halten. Experimente kommen später.
  2. Die Behälter in die wir das Eis am Ende füllen sollten aus Glas sein und müssen unbedingt vorgekühlt werden.
  3. Das Eis nicht zu früh abfüllen, sondern geduldig abwarten bis es wirklich fertig ist.

Diese Tips habe ich an meine Freunde weitergegeben – nur der dritte Punkt war problematisch, denn was in aller Welt heißt "wirklich fertig"? Woran erkennt man das? Nun, ich erkenne es inzwischen am Geräusch der Eismaschine und durch visuelle Überprüfung. Ich sehe es einfach wenn die Konsistenz stimmt. Nur hilft das dem ambitionierten Eisneuling wenig. Die Rezepte enthalten in der Regel Zeitangaben, aber die sind von der Menge, Anfangstemperatur sowie der Kühlleistung der Maschine abhängig und somit schlecht übertragbar. Also muss das unbedingt genauer erforscht werden, um soetwas wie das Urmeter der Speiseeisproduktion zu bekommen, damit die Nachwelt zuverlässig gutes Eis produzieren kann.

Science!

Primär wäre es wohl die Viskosität, die bestimmt, wann das Eis fertig ist, aber wer hat schon ein Viskosimeter zur Hand? Das zweitbeste dürfte bei einigermaßen konsistentem Eisrezept wohl die Temperatur sein, bei der die gewünschte Konsistenz erreicht wird. Also brauchen wir zunächst mal ein IR-Thermometer:

Aber wenn wir schon dabei sind messen wir nicht einfach nur die Endtemperatur vor dem Abfüllen, sondern erheben mal die Kühlkurve. D.h. wir Messen die Temperatur der Eismasse im Verlauf während die Eismaschine das ganze unter dauerndem Rühren herunterkühlt. Wenn man diese Kurve hat kann man zukünftig die Starttemperatur ablesen und weiß, wie lange es in etwa dauern wird bis das Eis fertig ist.

Also frisches Eis ansetzen:

  • 400 ml Sahne
  • 400 ml Milch
  • 300g Zucker
  • eine Prise Salz
  • einen großen Teelöffel Vanillepaste (oder eine halbierte und ausgekratze Vanilleschote)

Alles in den Topf, aufkochen, abkühlen lassen, so lange die Geduld hält und rein in die bereits vorgekühlte Eismaschine gießen. Und dann immer wieder die Temperatur messen und in einem CSV File protokollieren.

Daten einlesen:

dat = read.csv("vanille.csv")

Und schnell prüfen, ob alles OK aussieht:

    time  temp
1  12.00   6.3
2  15.50   1.5
3  17.00  -0.2
4  19.00  -4.3
5  20.00  -3.4
6  21.50  -2.7
7  24.00  -3.3
[...]

Ja – passt.

Das ganze schnell plotten und auch gleich einen LOESS-Smoother inkl. 95%-Konfidenzintervall mit einbauen, damit wir es besser einschätzen können.

ggplot(dat) + aes(x=time, y=temp) + 
    geom_point() + 
    geom_smooth() + 
    ggtitle("Vanille")

Das sieht doch schon ganz gut aus. Wie man sieht habe ich die erste Temperaturmessung erst nach 12 Minuten gemacht und die Masse auch nicht auf Kühlschranktemperatur vorgekühlt, sondern lauwarm eingefüllt und es der Maschine überlassen, das herunter zu kühlen.

Und noch eine Runde – diesmal Karamelleis:

  • 400 ml Sahne
  • 400 ml Milch
  • 300 g Zucker
  • 2-3 Prisen Salz

Die hälfte des Zuckers in einen Topf geben und bei mittlerer Hitze schmelzen und erhitzen bis er schön braun ist. Dabei mit dem Kugelbesen langsam rühren. Dann Milch-Sahne-Gemisch schwungvoll zugießen, restlichen Zucker und Salz dazu, aufkochen rühren bis das Karamell vollständig aufgelöst ist. Alles Abkühlen lassen und in die vorgekühlte Eismaschine geben. Diesmal hab ich mir Zeit gelassen und wirklich kühlschrankkalte Eismasse eingefüllt. Wie gehabt, die Temperatur protokollieren und plotten:

Sehr schön. Wie man sehen kann streuen die Messwerte ein bisschen. Das kann an meinem sehr günstigen Thermometer liegen, aber ich denke es ist eher die manuelle Messung, die in Sachen Reproduzierbarkeit zu wünschen übrig lässt. Wie auch immer – die Kurve macht schon Sinn, auch wenn sie nicht exakt ist.

So aus dem Bauch heraus würde ich erwarten, dass die Temperaturkurve Eine Art "Zerfallskurve" ist, also einen exponentiellen Abfall darstellt. Also erstmal recherchieren. Und lag richtig. Das ganze folgt der Newton'schen Kühlkurve:

$$ T_t = T_{env} + (T_0 - T_{env}) \cdot e^ {-rt} $$

wobei

\(t\): Zeit

\(T_0\): Anfangstemperatur [K]

\(T_t\): Temperatur zum Zeitpunkt \(t\) [K]

\(T_{env}\): Umgebungstemperatur (= Endtemperatur) [K]

\(r\): Wärmeübergangskoeffizient

Der zu fittende Parameter ist dann also \(r\) – und irgendwie auch \(T_{env}\), denn das haben wir, zumindest bei der ersten Runde, auch nicht gemessen und wo wir schon dabei sind, lassen wir das Modelle auch \(T_0\) schätzen. Also auf geht's.

model = nls(
    temp ~ T_env + (T_0 - T_env) * exp(-r*time),
    dat,
    start = list(r=0.1, T_0=8.9, T_env=-15)
)

Streng genommen sind alle Temperaturangaben der Formel in Kelvin und nicht in °C, aber das können wir an der Stelle ignorieren, weil der letzte Term die Temperaturdifferenz enthält und die ist in K und °C identisch.
Außerdem brauchten wir ungefähre Startwerte für die drei Parameter:

  • \(T_0\): da habe ich einfach mal den Startwert der Messreihe genommen. Tatsächlich waren es aber sicher über 25 °C.
  • \(T_{env}\): geratene -15 °C
  • \(r\): das ist schwieriger, denn ich hab keine Ahnung in welcher Größenordnung sich das zu bewegen hat. Also hatte ich vorab ein paar Plots gemacht mit \(r = 1, 10, 100, 0.1, 0.01\) und bei 0.1 sah es nicht total verrückt aus.

Und nun lassen wir uns mal das Modell anzeigen:

> summary(model)

Formula: temp ~ T_env + (T_0 - T_env) * exp(-r * time)

Parameters:
      Estimate Std. Error t value Pr(>|t|)
r      0.08197    0.01297   6.319 5.90e-06 ***
T_0   30.01423    6.92980   4.331 0.000402 ***
T_env -9.75786    0.70998 -13.744 5.52e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9918 on 18 degrees of freedom

Number of iterations to convergence: 9
Achieved convergence tolerance: 2.394e-06

Und weil das so viel Spaß gemacht hat erledigen wir das auch noch für die Vanille Daten:

Formula: temp ~ T_env + (T_0 - T_env) * exp(-r * time)

Parameters:
      Estimate Std. Error t value Pr(>|t|)
r      0.13499    0.01091   12.38 7.18e-13 ***
T_0    8.58448    0.56838   15.10 5.50e-15 ***
T_env -8.79020    0.35013  -25.11  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8194 on 28 degrees of freedom

Number of iterations to convergence: 7
Achieved convergence tolerance: 3.665e-06

Und plotten beide:

Alles in allem haben wir also gefunden, dass \(r ≈ 0.1\) und \(T_{env} ≈ -9\) °C. Und wir haben gelernt, dass die Vanillemasse noch ca 30 °C hatte, als ich sie eingefüllt habe. Ich finde das ist schon eine ganze Menge für so ein einfaches Experiment und so bin ich hochzufrieden.

Allerdings fällt auf, dass die Datenpunkte gerade so ein bisschen unter 0 °C doch deutlich abweichen, während sie anfangs und später viel "glatter" verlaufen. Etwas Nachdenken und Recherche ergaben, dass hier neben der reinen Abkühlung noch ein anderer Effekt am Werke ist: Kristallisation. Konkret kristallisiert das Wasser in der Mischung und das ist ein exothermer Vorgang. Und so flacht die Kurve etwas unter Null ab oder steigt sogar wieder an bevor sie später wieder schön regelmäßig fällt. In den Daten ist das tatsächlich zu sehen: Bei etwa -4 °C steigt die Temperatur plötzlich wieder auf etwa -2.5°C an bevor sie dann wieder sinkt. Im Extremfall kommt es sogar zur sog. Unterkühlung – d.h. Wasser bleibt unter 0°C zunächst flüssig und gefriert dann schlagartig, wobei dann die Temperatur wieder ansteigt. Ein Unterkühlen in der Eismaschine eigentlich nicht zu erwarten, da das Rühren und die teils rauhe Oberfläche des Behälters das verhindern/vermindern sollten, aber dennoch muss wird die Kristallisationswärme freigesetzt. Mehr Info dazu findet Ihr z.B. hier

Ich finde, all das sollten die Hersteller von Eismaschinen so in ihre Bedienungsanleitungen aufnehmen – das würde den Neulingen der Eisherstellung sicher sehr helfen.