stirred tank heating PID tuning ? - Page 1
Forum section: electronics / beginners

author: seyedsaeed
author_rank: Regular Contributor
timestamp: June 30, 2020, 12:24:37 pm
content: HiIm want PID tuning for stirred tank heatingconstant volume 20 literhow find system modeling?

author: Siwastaja
author_rank: Super Contributor
timestamp: June 30, 2020, 12:39:03 pm
content: Stirred tank is sometimes "too easy" and uninteresting. I have done a stirred tank with pure P controller to 0.1 degC accuracy and less than 0.1 degC oscillation (regarless of how "stupid" using just P might be). Heck, a traditional hysteretic on-off thermostat which basically is just a P controller with a very high P coeff, might work perfectly well.Pure I controller would likely work as well without much oscillation or any problems with transient response. Such tanks are so freaking slow anyway, water has a lot of energy storage in it. Now that I think about it, I have done accurate-to-0.1 degC stirred tank with pure I as well.But let's pretend for a while you need to tune it. This might be the case if you have to respond to transients such as adding liquid, having to heat it up again, without overshoot.Almost always, add feedforward. This is highly neglected in literature. Sometimes you can work without one, then the I term does the job for you. But most often, you start with FF.This is how I would likely do it:For heated tank, adding feedforward is trivial. Say, your room temperature is typically around the same, the tank walls leak some heat out at a rate linearly related to t_tank - t_ambient. This describes the system already: power required = (t_tank - t_ambient) * k.k would be the feedforward.The only thing to do is to implement ff, p, i, d controller. First thing, turn p, i, d completely down to zero. By actual testing, bring up feedforward so that the tank becomes as close to the setpoint as you can easily get it. Give it some time to reach equilibrium.For example, if the tank normally heats from 20 degC to 60 degC heater fully on, obviously it will heat from 20 degC to 40 degC with heater 50% on.FF takes care of this and has instant response and doesn't need to build up error before acting. Almost mandatory in motor speed control loops.Now, you have excellent response to setpoint changes, but no response against process transients (i.e., someone pouring in cold water suddenly). Further, the result is only on the right ballpark, but not exactly there. But you have no feedback at all yet, and yet you are doing quite well already.Now let the feedbackdo the rest.Add a tiny bit of I, just enough to make it correct for the residual error.Now bring up P until you start seeing oscillation. In a heated tank system, this oscillation would be quite slow; with a motor, it would be very fast and you would definitely see it. Bring P back to maybe 30%-40% what it was when you saw the oscillation.Now the remaining parameter is I. Too much, and you are seeing oscillation again. Too little, and it takes forever to get to the correct point. Adjust I until happy.D: just forget it.And do limit the error integral somehow. Many ways available.

author: seyedsaeed
author_rank: Regular Contributor
timestamp: July 01, 2020, 03:43:55 am
content: Quote from: Siwastaja on June 30, 2020, 12:39:03 pmmy system volume of water is constantno inlet and no outletThere is a 2000 watt electric heaterI shouldn't have Overshoot because it's too late to cool down

author: wizard69
author_rank: Super Contributor
timestamp: July 02, 2020, 08:14:23 pm
content: A stirred tank, assuming a good traducer location should be pretty simple. In fact I'd consider hitting the auto tune button on the controller and leaving as is. this assumes that the tank controls have a standard off the shelf controller with auto tune.

author: Siwastaja
author_rank: Super Contributor
timestamp: July 02, 2020, 08:43:46 pm
content: Control accuracy needed? I.e. difference between maximum and minimum allowed temperature?

author: seyedsaeed
author_rank: Regular Contributor
timestamp: July 04, 2020, 09:50:39 am
content: Quote from: Siwastaja on July 02, 2020, 08:43:46 pm+_ 0.03C