Mapping the behavior of my espresso machine PID

Need help with equipment usage or want to share your latest discovery?

#1: Post by boren »

I have a Quick Mill Alexia Evo, which is single-boiler machine with E61 grouphead. I notice that although it has a PID, the temperature in boiler is not always what it's supposed to be. It can sometimes reach 99c even when the PID is set to 93c. In addition, the grouphead temperature can fluctuate significantly without any obvious reason. If the PID is set to 93c not all shots, especially not all subsequent ones, have the same temperature (when measured in the group).

I'd like to map the behavior of the PID to better understand patterns and optimize my workflow. Similar to this exercise, where measuring temperatures at different times and configurations helped better understand the limitations of my Elektra Microcasa a Leva machine.

I plan to do the following:
- Note down boiler temperature and grouphead temperature (before flushing) at different times from turning the machine on - e.g. 2, 4, 7, 10, 15, 20, 30, 40, 50 and 60 minutes.
- Measure how long a flush (in seconds) is required for the reading in the grouphead to stabilize, and what's the gap in temperature between it and the boiler temperature.
- Measure grouphead temperature 1 minute after flushing.

After pulling a shot, I always move the lever all the way down to drain the puck. Should I do this when testing temperature without coffee, or should I just move the lever back to the middle position? I assume the former would more closely resemble actual usage, but without coffee it's still not really representative. And I don't want to waste 10 shots only for the purpose of this test.

Any other things to consider before starting this test?



#2: Post by DeGaulle »

Do you plan to repeat measuring the flush length at given intervals (e.g. 2 minutes apart) ? If so, how about doing those series of measurements at various intervals (e.g. at 2 minutes, 4 minutes and 6 minutes apart) ? IOW does a longer recovery time benefit the shot-to-shot consistency or perhaps the contrary?

User avatar
Supporter ★

#3: Post by cafeIKE »

Try to find a manual for the actual PID controller so you can check the P, I & D settings or post the PID make, model & approximate machine manufacture date. Clear sharp images help.

How are you measuring shot temperature?

It's not uncommon for a PID to show wide temperature variations on a small boiler. Depending on geometry of the sensor, heating element and water injection along with prior N minutes of operation.

On my original 2008 Vibiemme DoubleDomo, set point is 103°C. Idle display is 103 or 104. Shot display can vary between 99 and 105. Shot temperature is 195°F ± 0.5°F, rising about 0.5°F per back to back shot pulled at 3 minute intervals.

If the numbers bother you and the shots taste great, a piece of electrical tape will set things rosy.

User avatar
Team HB

#4: Post by Jeff »

I did something similar probably 15 years ago on an Anita. I'd recommend seeing if EricS still has thermocouples that fit in place of his group-head thermometer and buying a moderate-cost data logger for a thermocouple. I think the changes you'll see are on the order of tens of seconds, and you'll quickly tire of taking readings by hand. A cell-phone camera with "time lapse" can record the PID display as well.

"Theory says" that a series of shots will result in a rising set of brew temperatures with a typical E61 "double boiler" (one directly connected, not using an HX). The group temperature, hanging out in the breeze, will be significantly lower than the boiler temperature (unless you keep your house at 96°C). When you pump boiler water through it, it heats the group a bit more, so it cools the water a bit less on each, subsequent shot.

User avatar
Supporter ★

#5: Post by cafeIKE »

Extech sells high quality, reasonably priced dataloggers and some have applications that allow recording data to a PC. Dual channel is a plus.

Omega sells thermocouples in sizes to fit. Get a grounded bead. With Eric's adapter, it is insulated from the group, but does make electrical contact with the water. I've used grounded ones in water for decades w zero problems, but...

Be wary of cheap and cheerful products, some are OK and some not so.


#6: Post by kmillsmatsci »

My Quickmill Silvano (not evo) seemed to wander from the set point and I found the "I" setting was a 0 and adjusted that to lowest increment positive value it would allow and that helped. My understanding is the I is the integral value, meaning the longer the device is away from the set point, the larger the correction is made to converge to the set point. If the coefficient is 0 then there is no correction made. From experience with PIDs in other equipment, there CAN be a wide range of acceptable values for the coefficients so just changing to a larger number than what's currently set may help you out.


#7: Post by DeGaulle »

In a PID algorithm, the I setting is a time constant or sometimes defined as number of units per second/minute, which is the reciprocated value of the integral time; the shorter the integral time, the faster the PID will ramp up its output if the actual temp is at a given number below the set value or ramp down if the temperature has overshot the set value by the same given number. As the actual temperature approaches the set value, the ramp rate declines until the actual temperature converges to match the set value and the heater keeps pulsing at a steady rate.

My guess is that if your I setting had been at 0, the PID worked as a P-only controller. This means that the controller only responds to momentary changes in actual temperature or changes to the set value and in the steady state there is always an offset between set and actual temperature. The I action is intended to bring that offset to zero.

boren (original poster)

#8: Post by boren (original poster) »

Thanks for all the responses everyone!

@DeGaulle - I may do a separate round of tests to check shot-to-shot consistency with multiple subsequent shots, but this will wait until I nail down the basic behavior of my PID.

@cafeIKE - I'm measuring shot temperature at the grouphead with a Vidastech E61 Thermometer Pro. Not all shots taste great, some are more sour than I like, and this correlates well with lower than normal temperature. Here are my PID settings:

Celsius mode
F.04=12 (offset between boiler and group)

@Jeff, @cafeIKE - I don't plan to do regular data logging, so can't justify additional purchases. This is mostly a one-time exercise aimed to help me learn more about my setup in order to optimize workflow (and possibly re-configure some PID settings). Pulling subsequent shots in a short amount of time is not a very common use case for me. What I'm aiming for is to get the first shot as close as possible to the target temperature set in the PID. Waiting for the group to properly heat up and flushing water before pulling the shot are apparently not enough to get consistency.

@kmillsmatsci, @DeGaulle - the PID I value is already at 0.05 (the default on my machine for Celsius). I can reduce it in 0.01 increments all the way to 0.01. Would this reduce temperature fluctuations?

User avatar
Supporter ★

#9: Post by cafeIKE »

On an e61, the temperature on an actual shotis a curved dish. Hotter at the start and end than the middle due to the volume of water passing the thermometer. With a Scace, the temperature is flatter because the flow is consistent.

On my e61s, the group idles about 185ºF for about 195ºF shot.

PID settings are not related to display mode, but they are familial meaning that a different PID connected to the same hardware will have different parameters for the same response.

Group temperatures at any time less than 45 minutes from cold, will likely be cold. There may be some group model variability.

Operationally, if the machine idles consistently, it's OK. If it runs off into the weeds at idle, something is amiss. A PID display drop at the start of brew is likely normal, with a rise above part way into the shot and a return to idle temp soon after the shot.


#10: Post by DeGaulle »

I don't know what the time basis is for that setting of I = 0.05. If it is minutes, it equates to 0.05 * 60 = 3 seconds, which seems short already, does the manual say anything about this? Too short an integral time may cause overshooting and subsequent oscillation of the temperature when the PID responds to a temperature variation.

A PID algorithm typically looks like this:
Output = P * ((SV-PV)+ 1/Ti*INT(SV-PV) + D* d(SV-PV)/dt)

The P action is, well, a proportional action as soon as a difference between the actual temperature (PV) and set value occurs.
The I action adds to the output based on integration of this difference for as long as it exists. If the temperature overshoots the set value, the I action is reversed, i.e. it starts ramping down.
The D action adds to the output based on the rate of change of the difference. So if you are heating up the boiler, the PID will temper the heat requirement on the element based on how fast the temperature is rising, even before it has reached its set value.