Group Abstract Group Abstract

Message Boards Message Boards

Coffee optimization, how to get your cup of joe just right

Posted 10 years ago
POSTED BY: Patrik Ekenberg
4 Replies

What a cool use of System Modeler Patrik! Here's a link to an article by Nathan Myhrvold (former CTO of Microsoft) explaining why adding milk to your coffee immediately keeps the coffee warmer than adding the milk just prior to drinking the coffee:

http://modernistcuisine.com/2012/12/the-physics-of-coffee-cream/

POSTED BY: Micah Lindley
Posted 9 years ago

Alternatively, drop it into Mathematica with manipulate.

Manipulate[
 {
  sols = NDSolve[{
     D[Temp[t], t] == -0.1 (Temp[t] - ambient),
     Temp[0] == beginTemp,
     WhenEvent[
      t > addMilk,
      Temp[t] -> (coffee*Temp[t] + milk*milkTemp)/(coffee + milk)]},
    Temp,
    {t, 0, experimentTime}
    ];
  Plot[
   Temp[t] /. sols, {t, 0, experimentTime},
   PlotRange -> {{0, experimentTime}, {0, beginTemp + 10}},
   AxesLabel -> {"Time (minutes)", "Temperature  ?C"},
   LabelStyle -> Directive[Bold, Medium],
   ImageSize -> {{400, 600}}]
  },
 {{ambient, 20, "Ambient temperature"}, 0, 30, 0.5, 
  Appearance -> "Labeled"},
 {{experimentTime, 30, "Time of Experiement(minutes)"}, 1, 100, 0.5, 
  Appearance -> "Labeled"},
 {{beginTemp, 80, "Coffee start temperature"}, 50, 100, 0.5, 
  Appearance -> "Labeled"},
 {{milkTemp, 5, "Milk start temperature"}, 1, ambient, 0.5, 
  Appearance -> "Labeled"},
 {{addMilk, 1, "Time to add milk(minutes)"}, 1, 100, 1, 
  Appearance -> "Labeled"},
 {{coffee, 200, "Coffee volume (ml)"}, 100, 500, 10, 
  Appearance -> "Labeled"},
 {{milk, 20, "Milk volume (ml)"}, 0, 50, 5, Appearance -> "Labeled"},
 ControlPlacement -> Left
 ]

Manipulate parameters for coffee cup cooling

POSTED BY: garyb AU
POSTED BY: Brian Winkel
POSTED BY: EDITORIAL BOARD
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard