# Where does the error come from in PID control?

Let's say my thermostat is 50 degrees Fahrenheit. I know that 1000 units of kinetic energy are needed to raise the temperature from 80 degrees Fahrenheit. So I calculate how much I need to increase my furnace to produce 1000 units of kinetic energy, and then the internal temperature should be 80 degrees.

What's wrong with what I just described? There's no PID control involved, no error term.

What's wrong with what I just described? There's no PID control involved, no error term.

Ok, even if you knew all this (which you practically never do), then, when do you switch off the heating? The heater's going to be hotter than the target temperature of the room (otherwise, you'd never be able to reach that temperature), so if you keep it on for as long as the room hasn't hit that temperature, then the temperature will overshoot – the heater doesn't suddenly stop being warm when you turn off the heating.

You could alternatively just keep it on for as long as it takes to insert the necessary amount of energy – but then the room is going to take very long to get to its target temperature; you'd be relying on the radiator completely heating up the room / cooling down to room temperature for the heat transfer to complete, that's going to take hours.

so, yes, control theory is necessary, even in this very simplistic example.

So, it's a problem: how to design an oven control that trades off getting it hot enough as quickly as possible (obviously, by maxing out the heating until you've reached target temperature) and not overshooting too much.

Then, of course, none of the things you claim are realistic:

You never know exactly the amount of energy needed to heat up the room, because a room isn't a sealed satellite somewhere in outer space far away from any star – it takes more energy to heat a room with cold walls (winter) than with warm walls (summer, or you just heated before letting in some fresh air). You never know how much energy will escape through walls, windows and doors – that's weather- and usage-dependent. The list goes on....

• I think part of the reason there is "error" is because energy transfer does not happen instantaneously. You can't force 1000 units of kinetic energy into the room, only 100 max at a time without blowing up the furnace. Therefore, after you pump out 100 units, there are 900 units of error. My question was more what this "error" means... I understand the distinction with open and close loop – user3180 Jan 7 at 7:37
• but that's exactly where this error comes from: your room doesn't instantaneously adopt the new temperature –> hence, error until it does – Marcus Müller Jan 7 at 8:07
• Error is defined as the difference between set point and measured variable. If you aren’t measuring anything, then there is no error. – Dan Szabo Jan 7 at 13:08
• no, if I should have 100€ in my pocket, but there's 10€ in there, that's an error of 90€, no matter whether I observe the content of my pocket or not. – Marcus Müller Jan 7 at 13:16

You are suggesting an open-loop controller. For some applications such as washing machines and bread toasters, an open-loop controller gives sufficient performance.

A closed-loop controller such as a PID controller uses feedback to determine the current measurement error from the target measurement, and attempt to reduce the error (in your case the target measurement is 80 degrees Fahrenheit).

• Certainly the description is in the language of an open-loop controller, but I'm not sure if that's what the OP intends. If they're planning on checking at intervals and updating then it's closed-loop (and described very confusingly). – TimWescott Jan 6 at 18:20