[From Bill Powers (950919.0530 MDT)]
Jeff Vancouver (950918.1710) --
I think it is dangerous to lump all dynamic equilibruim process as
either control processes, as Bill P. _seems_ to be doing,
It is even more dangerous to base opinions on a hasty reading of the
literature. As other members of this net will attest, I have spent
considerable time discussing the difference between a simple equilibrium
process, in which there is no power amplification, and a control
process, which is defined by very narrow and specific properties. There
are many dynamic equilibrium processes that are not control processes.
But some processes that have been _interpreted_ in terms of dynamic
equilibrium are actually explainable only as control processes.
···
---------------------------
What I am not clear about is where biology, etc. generally stand on
this issue. I was under the impression the homeostatic processes
and set points were an accepted concept (although each must be
empirically demonstrated). Is this not the case?
Many biologists, enough to have been inconvenient for control theorists,
reject any concept of a set point. They prefer to see homeostasis as a
passive dynamic equilibrium process, of the same nature as a weight
stretching a spring. As Bruce Abbott has said, they often specifically
reject a control-system model, and then proceed to describe a process
that can ONLY be explained as control. You'll have to ask a biologist
why.
-----------------------------------------------------------------------
Hans Blom (950919)--
Bill, I have had the time to analyze the problem now.
OK, you have solved it. I thought it would have to be something like
that.
Bill, how would your program handle different values of b, say from
0.1 to 10.0 and from -0.1 to -10.0? Mine would need no changes and
it would show the same high performance in all cases. Indeed, b
could be a time function in my program and the performance would
still remain identical.
As you can recall from looking at my previous post, the RMS errors I was
getting were 5.582. I get exactly the same error for k = 1, 10, 100, -1,
-10, and -100. Remember, I have disabled the "randomize" statement so
the random generator always starts with the same seed. This is handy for
comparing runs.
My program is
k := 100.0; {or whatever value you like}
{RUN THE MODEL MAXTABLE + 1 TIMES}
for i := 0 to maxtable do
begin
x := k * u + d[i]; { ENVIRONMENT}
b := 1/k; { ASSUMED ADAPTATION}
u := u + b * (r[i] - x); { CONTROL SYSTEM }
sum := sum + sqr(r[i] - x); { ACCUMULATE FOR RMS CALCULATION}
end;
{==============================================================}
So this raises the question that has been bugging me since the beginning
of this interchange: why does your model work? It's easy to see why it
works in one sense: the calculations are designed to make the error
exactly zero. You can explain that the output is being adjusted to
nearly cancel the disturbance. All this I understand.
However, your model works nearly as well when you _don't_ calculate the
right disturbance. Leave out your new division by b, and make the
disturbance calculation simply dnew := x - u, without the b multiplying
u. For positive values of k, the RMS error will still be only a tiny
fraction of the amplitude of the disturbance. For your b = 1.0 in the
environment equation, the error is 1.9. for b := 0.2 the error is 3.7.
You would still need an adaptation to compensate for the sign of b, but
that's a separate question.
Obviously, the disturbance is not being calculated correctly for k = 0.2
(dnew is theoretically only 1/5 of the required size), yet the error is
still only 0.004 of the peak disturbance. In fact what you find is that
dnew is very different from the actual disturbance -- just enough
different and in the right direction to maintain control!
What I suspect, but can't prove, is that your method is simply a
limiting case of a general control method basically identical to mine.
Perhaps while I'm gone you can give some thought to this.
-----------------------------------------------------------------------
That's really all -- off to the airport.
Best to all,
Bill P.