Eating crow

[From Bill Powers (970303.1031 MST)]

Hans Blom (several posts) --

God, how I hate being stupidly wrong, and then blathering on about what it
all means.

Hans' model of the environment is perfectly OK. What was wrong was that I
used only the part in his "0bservation" function, which wasn't the entire
model -- the rest of it is located where that function is _used_. For the
record, the right way to write his function is

xsav := x;
x := (u+d)*dt*dt/J + 2*x - xlast;
xlast := xsav;

Note that the old value of x is saved, then the new value is computed using
the old value of xlast, then xlast is updated.

For my two-level model I have to add

v := (x - xlast)/dt;

because I have one control system controlling velocity (v) and a second
level controlling position (x)by ajusting the velocity reference signal. The
computation of v isn't exactly right -- it's 1/2 time-step off -- but with
small dt that makes no difference that I can see in the result.

Needless to say, my model now DOES run properly using Hans' way of
representing the environmental feedback function (the plant).

So Hans, please ignore everything I said about tautologies and system
equations and all the incredibly brilliant commentary that went with it, and
accept my apology. And everybody else, please note famous PCT programming
expert groveling. I hope I've learned my lesson, but probably not.

Maybe now we can get back to the main subject.

Best,

Bill P.

[Hans Blom, 970304d]

(Bill Powers (970303.1031 MST))

So Hans, please ignore everything I said about tautologies and
system equations and all the incredibly brilliant commentary that
went with it, and accept my apology.

I have no idea what you're talking about ;-). It may console you to
know that I also forgot the two lines surrounding the function call
and spent some time on puzzling what I had forgotten.

Greetings,

Hans