Home Forums General Does it matter if PID output starts at zero or 100% ?

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • deejay1272
    Participant
    Post count: 20

    Application: Controlling the temperature of an espresso water boiler (heating water from approx 20C to approx 100C and maintaining that temp)

    I’ve done a few tests with my fully tuned osPID system and I’m finding that it seems to matter whether the initial PID output starts at 100% or 0%. When I start heating the water from initial output =100%, I seem to have overshoot problems. However, when I start heating water from initial output = 0%, the overshoot disappears.

    Has anyone else found that it matters if initial output affects the system overshoot? If so, then how do I ensure that my osPID starts at output=0% when I initially power it up and begin to use it?

    Brett
    Keymaster
    Post count: 101

    it definitely matters, but it may not be the only thing going on. first the 0-100 thing. the pid output will start adjusting from whatever output value is in place before it turns on. if you start at 100% there’s a lot more heat going in to the system initially, and the pid will need to back off. if you start at 0%, there isn’t that initial heating and the rise is more gentle.

    that being said, you aren’t necessarily comparing apples to apples in your graph. it’s likely that your system behaves differently at 40C vs 80C. since heat transfer is based on the difference in temp between your heater and the liquid, the same amount of juice at 40C will yield a larger temperature change. most processes are like this; behaving differently at different operating ranges. it’s important therefor to decide with region is most important to you, and get the tunings that work best there.

    deejay1272
    Participant
    Post count: 20

    Brett – thanks very much for your reply. You’re absolutely correct about the system behaving differently at ~40C relative to 100C (where my setpoint will be most of the time). I’ll keep this in mind.

    If it matters so much if the initial output is 100% when I start my process, it seems that the best solution is to use a temperature profile to artificially add a breakpoint in the middle of the big temperature rise to get the espresso boiler from cold (~20C) to brew temp (~100C). If all goes well with this “breakpoint” in the middle, I will see the temp overshoot fairly dramatically at, say, 75C. This overshoot will cause the PID output back off significantly before I ramp the temp up to the final brew temp of ~100C. Because the output has dropped so much as a result of this breakpoint, I’ll effectively start from at or near zero output at ~75C, which is closer to my brew temp, and therefore more appropriate for the PID tunings.

    I think I’m starting to get it… Please let me know if I’m off base on any of this.

    I’ll follow up with success stories/results soon hopefully.

    Cracked
    Participant
    Post count: 44

    I think I’ve come across this issue before myself. Why does it matter, and how do you suggest operating? Manually setting the output value and then switching to auto?
    Im using profiles, could this be built into the profile so that it is always the same?

    Brett
    Keymaster
    Post count: 101

    if you’re starting the profile with the standard “step to a low temp->wait for it to get there before continuing” you should be fine. the output will get to about the same starting point every time. I really think the main issue on the OP is the non-linearity. in both cases (0% start and 100% start) the output is instantly at 100% after the setpoint change. while there is more heat in the system before the 100% start, this is a far bigger issue when you have a conservative controller (output starts at 0%, steps up to 0.1%, etc.)

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.