[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.