From: Datesfat Chicks on
"Tim Wescott" <tim(a)seemywebsite.com> wrote in message
news:rPCdnSIjis5QNWTXnZ2dnUVZ_oli4p2d(a)web-ster.com...
>
> Systems with delay can be perfectly linear, as well as time invariant --
> they just can't be described by ordinary differential equations with a
> finite number of states.

Hi Tim,

I might have missed something significant here.

It is my assumption that a system with a pure time delay is inherently
non-linear.

Let's take my shower example with a pure delay in the pipes ...

With no delay, you can just say that

Temperature(t) = Valve_Position

or perhaps with a little thermal mass thrown in you can say that:

d Temperature / dt = K * (Valve_Position - Temperature)

where of course I'm assuming that valve position and water temperature are
the same thing.

The first is I think a 0'th order linear differential equation and the
second is a 1st-order LDE.

But how would you linearize a system with a pure time delay, exactly?

The shower example with a pure pipe delay between the shower valve and my
skin is fine.

Thanks, Datesfat

From: Jerry Avins on
Datesfat Chicks wrote:
> "Tim Wescott" <tim(a)seemywebsite.com> wrote in message
> news:rPCdnSIjis5QNWTXnZ2dnUVZ_oli4p2d(a)web-ster.com...
>>
>> Systems with delay can be perfectly linear, as well as time invariant
>> -- they just can't be described by ordinary differential equations with a
>> finite number of states.
>
> Hi Tim,
>
> I might have missed something significant here.
>
> It is my assumption that a system with a pure time delay is inherently
> non-linear.

Superposition is sufficient proof of linearity. What comes out of a pipe
(assuming that there is no mixing in transit) is almost a delayed linear
superopsition of what is pushed into it, but it is not linear because it
is not a pure delay. When the input velocity increases because both hot
and cold water are flowing, the delay time decreases. Superposition
doesn't strictly apply because the time to look isn't well defined.

Any delay pushes a servo system toward unstable. That's not a linearity
problem.

> Let's take my shower example with a pure delay in the pipes ...
>
> With no delay, you can just say that
>
> Temperature(t) = Valve_Position
>
> or perhaps with a little thermal mass thrown in you can say that:
>
> d Temperature / dt = K * (Valve_Position - Temperature)
>
> where of course I'm assuming that valve position and water temperature
> are the same thing.

There's also the time it takes the valve to move.

> The first is I think a 0'th order linear differential equation and the
> second is a 1st-order LDE.
>
> But how would you linearize a system with a pure time delay, exactly?

It's already linear. Just nasty.

> The shower example with a pure pipe delay between the shower valve and
> my skin is fine.

But, as I wrote above, a pipe is onlt a pure delay as long as the flow
is constant.

Jerry
--
Engineering is the art of making what you want from things you can get.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
From: pnachtwey on
On Nov 5, 9:37 am, "Frank W." <frankw_use...(a)mailinator.com> wrote:
> Is there a control engineering expert here?
Yes.
> Since all PID temperature controllers have Autotune, there must be a
> solution for this problem.
Some auto tuning algorithms are pretty crude and I think some
companies implement the simplest auto tuning algorithms just to say
they have one. It is a marketing thing. How are the customers to
know the difference? If they knew the difference they wouldn't need
the auto tuning.

> Any ideas?
Turn down the gain for one. It looks like the control output , gray
bar, amplitude is variable and not a simple on/off SSR.
Because the plant responds so quickly to the output I think the PID
update time should be faster but then the lack of resolution
will be a limitation. Using the derivative gain may be handy to but
again the lack of resolution will be a factor.
A tried and true method is the feed forward. If one know how much
control output is require for every temperature then one can compute
the control output and be with a percent or two without even using the
PID gains. The PID gains are just used to correct for errors in the
feed forward predictions.
You should be able to get very close with a feed forward and a
proportional gain. The integrator will simply remove the last bit of
error.

Auto tune works great when the plant matches the model AND the system
is properly excited. If not then auto tune doesn't work so well. Are
the water levels in the boiler constant? If not can the water level
be detected? Obviously the temperature will rise more slow or not as
fast if the boiler is full of water as opposed to being empty.

Does the tuning need to be better for a coffee machine? Manual tuning
should be easy enough.

When I get serious I prefer to make a model of the system. The
excitation requires a few steps in the control output. The steps
should be big enough so the response is clearly more significant than
the noise. The dead time should be clearly visible and the same goes
for the rise time. One can often get the plant gain, time constant and
dead time by inspection. If not then one must log the control output
and the response. Then one fits a FOPDT or SOPDT model to your coffee
machine. I do this using Scilab's optim or lsqrsolve. Then one goes
to the www.controlguru.com site and uses the IMC, internal model
control, equations there for computing the gains. For a FOPDT
Kc=t1/((tc+dt)*K)
ti=t1
Where:
Kc is the controller gain. It should have units of %output per
degree.
ti is the integrator time constant which is usually in minutes.
t1 is the plant time constant
dt is the dead time
K is the plant gain. This has units of degree per % control output.
tc is the closed loop time constant. tc is made smaller for more
aggressive tuning and longer for more conservative tuning. The value
for tc is dependent on the plant time constant and dead time. The
formula for tc on on the www.controlguru.com site.

You can see from the equation that the dead time reduces the gain.
Also, if the plant gain changes due to the water level then K will be
a function of water and the controller gain will then be modified as a
function of water level.
Kc=t1/((tc+dt)*K(WaterLevel))



I would start here. Once the plant gain, time constant and dead time
are know there are other options. On the www.controlguru.com site
there are formulas for adding the derivative time constant td. One
can also implement a Smith Predictor. A Smith Predictor isn't that
hard to implement. The hard part is finding the plant parameters.

I talked to someone else on the phone about making a high end coffee
or espresso machine a few months back. Our product was gross overkill
but would have made a nice research tool.

Peter Nachtwey
From: Tim Wescott on
On Tue, 10 Nov 2009 13:24:00 -0500, Datesfat Chicks wrote:

> "Tim Wescott" <tim(a)seemywebsite.com> wrote in message
> news:rPCdnSIjis5QNWTXnZ2dnUVZ_oli4p2d(a)web-ster.com...
>>
>> Systems with delay can be perfectly linear, as well as time invariant
>> -- they just can't be described by ordinary differential equations with
>> a finite number of states.
>
> Hi Tim,
>
> I might have missed something significant here.
>
> It is my assumption that a system with a pure time delay is inherently
> non-linear.
>
> Let's take my shower example with a pure delay in the pipes ...
>
> With no delay, you can just say that
>
> Temperature(t) = Valve_Position
>
> or perhaps with a little thermal mass thrown in you can say that:
>
> d Temperature / dt = K * (Valve_Position - Temperature)
>
> where of course I'm assuming that valve position and water temperature
> are the same thing.
>
> The first is I think a 0'th order linear differential equation and the
> second is a 1st-order LDE.
>
> But how would you linearize a system with a pure time delay, exactly?
>
> The shower example with a pure pipe delay between the shower valve and
> my skin is fine.
>
> Thanks, Datesfat

Well, if it's already linear you don't linearize it.

Take the system y = h(x, t) ==> y(t) = x(t - td). Testing this with
superposition we get

y1(t) = x1(t - td),
y2(t) = x2(t - td),

y1(t) + y2(t) = x1(t - td) + x2(t - td)

which is both h(x1, t) + h(x2, t) and h(x1 + x2, t) -- therefore the
system is linear.

Note that as Jerry points out a shower isn't necessarily a linear system,
unless your shower valve insures a constant flow and the pipes don't have
any turbulence. Let a vastly simplified version be

y(t) = x(t - kd * x(t)),

(this doesn't capture the delay behavior in even a perfect pipe)

Then we try superposition:

y1(t) = x1(t - kd * x1(t)),
y2(t) = x2(t - kd * x2(t)).

This does _not_ equal the system output to the sum:

ys(t) = x1(t - kd * (x1(t) + x2(t))) + x2(t - kd * (x1(t) + x2(t))).

so this system isn't linear -- but not for the reason that you thought.

--
www.wescottdesign.com
From: Tim Wescott on
On Tue, 10 Nov 2009 12:45:24 -0800, pnachtwey wrote:

> On Nov 5, 9:37 am, "Frank W." <frankw_use...(a)mailinator.com> wrote:
>> Is there a control engineering expert here?
> Yes.
>> Since all PID temperature controllers have Autotune, there must be a
>> solution for this problem.
> Some auto tuning algorithms are pretty crude and I think some companies
> implement the simplest auto tuning algorithms just to say they have one.
> It is a marketing thing. How are the customers to know the difference?
> If they knew the difference they wouldn't need the auto tuning.

-- snip --

> Auto tune works great when the plant matches the model AND the system is
> properly excited. If not then auto tune doesn't work so well. Are the
> water levels in the boiler constant? If not can the water level be
> detected? Obviously the temperature will rise more slow or not as fast
> if the boiler is full of water as opposed to being empty.
>
> Does the tuning need to be better for a coffee machine? Manual tuning
> should be easy enough.

-- snip --

> I talked to someone else on the phone about making a high end coffee or
> espresso machine a few months back. Our product was gross overkill but
> would have made a nice research tool.
>
> Peter Nachtwey

Speaking of overkill, why not just use an on-off thermostat with some
hysteresis? Energy consumption? Lack of cool?

For that matter, how about modeling the whole range of coffeemakers that
you expect (or that you're willing to warrant the device as working).
Then see if you can get reasonable performance with just one tuning
setting*. Then instead of telling the customer he can mess around with
autotune, you can tell him he can just plug & play.

* I've done this on blood pressure monitor; we expected to need four
different tunings for the whole range of cuffs from 'premie arm' to 'fat
guy thigh', and ended up needing just one.

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