From: Frank W. on
Is there a control engineering expert here?

I could us a bit of help on how to implement a PID autotune function for a
heating application (a small boiler).

My current PID autotune function produces no reliable results. I use the
relay feedback method (�strom and H�gglund) but it seems that the ultimate
period Tu - one of the paramters determined with the relay feedback test -
is directly correlated to the relay output step u. u is an arbitrary value
which makes Tu an arbitary value. Since Tu is required to compute Ti and Td
(e.g. Ti = 0.5 Tu = Ziegler-Nichols), autotune is not possible.

I believe this is because the machine heats very quickly (1500W boiler) and
cools down very slowly, so the process value isn't a sinusoid. Here is an
example graphics, green line is setpoint, red plot is process value and the
grey vertical bars represent heat output u:

http://img196.imageshack.us/img196/7409/examplejr.jpg

Regardless of u, the temperature always dips the same, small amount below
setpoint - because the machine cools slowly, the temperature can not fall
far below setpoint before it's reacting to the heat. It then shoots up by an
amount that is proportional to u. As a result, the plot resembles mountains
above setpoint. If u is large, temperature will shoot high above the
setpoint and take very long to cool down. Big mountains, so Tu gets large,
Tu ~ u = my problem.

Since all PID temperature controllers have Autotune, there must be a
solution for this problem. Any ideas?


From: Vladimir Vassilevsky on


Frank W. wrote:

> Is there a control engineering expert here?

You can contact Tim Wescott who is the expert in control systems,
however the problem is not really a rocket science.

> I could us a bit of help on how to implement a PID autotune function for a
> heating application (a small boiler).

It looks like a huge lag in the control loop. PID approach won't work
very well. Is your heater on-off type or proportionally regulated?

> Since all PID temperature controllers have Autotune, there must be a
> solution for this problem. Any ideas?

To begin with, abandon autotune and see if you can get good control by
manual adjustment of parameters.


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com

From: Bob on
Frank W. wrote:
> Is there a control engineering expert here?
>
> I could us a bit of help on how to implement a PID autotune function for a
> heating application (a small boiler).
>
> My current PID autotune function produces no reliable results. I use the
> relay feedback method (�strom and H�gglund) but it seems that the ultimate
> period Tu - one of the paramters determined with the relay feedback test -
> is directly correlated to the relay output step u. u is an arbitrary value
> which makes Tu an arbitary value. Since Tu is required to compute Ti and Td
> (e.g. Ti = 0.5 Tu = Ziegler-Nichols), autotune is not possible.
>
> I believe this is because the machine heats very quickly (1500W boiler) and
> cools down very slowly, so the process value isn't a sinusoid. Here is an
> example graphics, green line is setpoint, red plot is process value and the
> grey vertical bars represent heat output u:
>
> http://img196.imageshack.us/img196/7409/examplejr.jpg
>
> Regardless of u, the temperature always dips the same, small amount below
> setpoint - because the machine cools slowly, the temperature can not fall
> far below setpoint before it's reacting to the heat. It then shoots up by an
> amount that is proportional to u. As a result, the plot resembles mountains
> above setpoint. If u is large, temperature will shoot high above the
> setpoint and take very long to cool down. Big mountains, so Tu gets large,
> Tu ~ u = my problem.
>
> Since all PID temperature controllers have Autotune, there must be a
> solution for this problem. Any ideas?
>
As someone else said: try manually adjusting parameters, instead. Do you
really need autotune? If the boiler/heater/load/setpoint don't change
much, then twiddle the parameters until you like the result.

That said, there are at least a dozen algorithms for autotuning. They
fall into two basic methods (relay and step), but the parameters they
generate can be quite different due to the different desired responses
(e.g. "fastest to reach a certain error after a step change in setpoint"
vs "little or no overshoot after a disturbance", etc.). You have to be
clear about what you're trying to do before you bother trying to tune it.

Large delay and overshoot are common to heater control loops. Placing
the sensor as close as possible to the heater can help, but then you
might not be measuring the thing you want hot. I just had a (maybe)
similar problem that included a requirement for a smooth ramp of the
temperature. That led me to close the loop around the slope (calculated
with an extremely simple FIR filter) during ramping. The slope-loop
worked far better than trying get the temperature-loop to follow a
ramping setpoint.

YMMV
Bob
From: Tim Wescott on
On Thu, 05 Nov 2009 13:09:43 -0600, Vladimir Vassilevsky wrote:

> Frank W. wrote:
>
>> Is there a control engineering expert here?
>
> You can contact Tim Wescott who is the expert in control systems,
> however the problem is not really a rocket science.

Or you can wait for him to get around to doing the newsgroup thang.

(thanks for the plug).

I'll bet there's rockets out there with temperature loops.

>> I could us a bit of help on how to implement a PID autotune function
>> for a heating application (a small boiler).
>
> It looks like a huge lag in the control loop. PID approach won't work
> very well. Is your heater on-off type or proportionally regulated?
>
>> Since all PID temperature controllers have Autotune, there must be a
>> solution for this problem. Any ideas?
>
> To begin with, abandon autotune and see if you can get good control by
> manual adjustment of parameters.
>
Ditto -- try it by hand, and go from there.

--
www.wescottdesign.com
From: Tim Wescott on
On Thu, 05 Nov 2009 18:37:21 +0100, Frank W. wrote:

> Is there a control engineering expert here?
>
> I could us a bit of help on how to implement a PID autotune function for
> a heating application (a small boiler).
>
> My current PID autotune function produces no reliable results. I use the
> relay feedback method (Åstrom and Hägglund) but it seems that the
> ultimate period Tu - one of the paramters determined with the relay
> feedback test - is directly correlated to the relay output step u. u is
> an arbitrary value which makes Tu an arbitary value. Since Tu is
> required to compute Ti and Td (e.g. Ti = 0.5 Tu = Ziegler-Nichols),
> autotune is not possible.

Are you sure you haven't just stopped too soon in turning the output step
down? I see where you're having trouble with this; is there some reason
you can't turn u down even further? Things may start looking better when
you get it down to where the temperature curve is roughly symmetrical
around the average.

> I believe this is because the machine heats very quickly (1500W boiler)
> and cools down very slowly, so the process value isn't a sinusoid. Here
> is an example graphics, green line is setpoint, red plot is process
> value and the grey vertical bars represent heat output u:
>
> http://img196.imageshack.us/img196/7409/examplejr.jpg
>
> Regardless of u, the temperature always dips the same, small amount
> below setpoint - because the machine cools slowly, the temperature can
> not fall far below setpoint before it's reacting to the heat. It then
> shoots up by an amount that is proportional to u. As a result, the plot
> resembles mountains above setpoint. If u is large, temperature will
> shoot high above the setpoint and take very long to cool down. Big
> mountains, so Tu gets large, Tu ~ u = my problem.
>
> Since all PID temperature controllers have Autotune, there must be a
> solution for this problem. Any ideas?

Why do you want to use autotune? If this is a product that you're
working on, and if the boiler design is the same for all of the parts
that you ship, then you should just need one tuning.

Autotune is for when you're selling a shrink-wrapped controller that has
to work for anything -- and autotune is often considered to be a good way
to get the tuning in the ballpark so that a human can get involved and
actually make it work right.

Unless you need to adapt to a variety of different, unexpected boiler
combinations -- that don't change as the boiler is operating -- then
there's not much value in autotune, IMHO.

--
www.wescottdesign.com
 |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9 10 11
Prev: Artesyn BAJA PPC 750
Next: FPGA Soft Core CPUs