# My espresso boiler temperature controller project

1. Nov 16, 2011

So, I've been thinking about this for years as I've began studying Mechanical Engineering, but I never felt like I had the time or expertise to undertake the project: to make my own temperature controller at the heart of a fully functional and high quality espresso machine. It wasn't until this semester, when I began taking Thermofluids II and Sensors & Controls, that I felt that this was a manageable idea. Learning about how to work with conduction, convection, and control systems seem to be the final pieces of the puzzle. I hope to use this thread to document what I've done so far and to ask for help with what remains.

Note: this is a work in progress and I have not even come close to completing it

1) Background
I purchased a GE espresso machine, model 169108. After running it as is for a few weeks, it made passable espresso, but the brew temperature and shot times varied widely, leading to inconsistent taste. After reading about performance modifications to much more expensive machines, it became apparent that the most effective one was put the heating coil power and thus the water temperature in the hands of a well-tuned PID controller. Instead of relying on thermostats to switch the heating coils on and off at intervals to keep the water within manageable limits, the PID controller promises negative feedback logic to 'intelligently' determine how much power to give the coils, keeping the water temperature at a consistent, precise value.

2) The Setup
The only components that remain from the original machine are the 900W stainless still (I think) boiler and a 41W vibration pump. To construct a simple test rig to tune my PID controller, the boiler and pump were mounted on wooden stands outside of the original case. A 10A solid-state relay is switched on and off by an Arduino microcontroller to control current to the boiler (the coil resistance is about 16.7Ω, which at 120V should draw around 7.5A at its rated 900W maximum power). Power to the water pump is controlled by a simple manual switch to initially fill the boiler with water and later to pump the heated water out of the boiler and out of the espresso machine. Later this will be controlled by the Arduino as well.

3) Building a model

I wanted to take what I’d learned in Thermofluids II to build a theoretical model of the boiler including convection of the heating coil power through the water and onto the boiler inside wall, conduction through the wall, and convection of the heat away from the outer wall by ambient air. My immediate thought was to employ a lumped capacitance model to simplify things, which seems to require an assumption of uniform temperature distribution. The Biot number of a surface, to my understanding, represents the ratio of energy transfer by convection to that by conduction. If the Biot number is much less than one, much more heat is conducted into the material than is lost through convection so that the surface behaves as a fully charged capacitor, and thus can be assumed to have a fully uniform temperature distribution. The Biot numbers were calculated as follows:

$Bi=\frac{hL_C}{k_b}$
The inner and outer Biot numbers were calculated to be 0.176 and 0.779, respectively; I don’t think they qualify as “much less than” one. Does this mean I cannot expect reasonable accuracy using a model based on lumped capacitance? Where might I head from here?

2. Nov 16, 2011

### edgepflow

Yeah, the textbooks usually say that Bi < 0.1.

I ofter use a 1D model for a short cylinder I developed for these kind of problems. When I compare, I can see the lumped capacity quickly losing accuracy near the Bi < 0.1 limit.

The 1D model of a short cylinder is not too bad to set up. See P. 242-247 of Incropera & DeWitt, "Fundementals of Heat and Mass Transfer," 4th Edition or your (much newer) Thermofluid text may have this.