Control without -- I think -- prediction of disturbance

[From Bill Powers (950515.1615 MDT)]

Hans Blom (950515) --

Hans, your last message, I finally figured out, came through uuencoded
instead of straight ascii. It also had some sort of word-processor code
for a hyphen, which comes out in ascii as a character code greater than
128. I managed to decode it and fill in missing hard returns.


Here is a short program for a control system that will keep its
controlled variable (qi) matching an arbitrary reference level (r) in
the presence of any arbitrary disturbance pattern (d). Of course the
disturbance pattern should have some upper frequency limit, but since
this is only a simulation none of the limits matter much (the
disturbance amplitude limit would be the largest real variable on your

p := qi
e := r - p
o := o + (1000*e - o)/1001
qi:= d + o

Iterate this program over and over while applying variable disturbances
and recording the output and qi (or p). You will find that the output is
almost the mirror image of the disturbance relative to the reference
level, and qi remains very near the reference level, in comparison with
its value when there is no output action (o).

A constant reference signal will show the relationships the most easily;
however, the input quantity qi will track any (reasonable) varying
reference signal.

As far as I can see, this model contains no way of predicting the
disturbance d, yet it controls very well.

I know this is a very simple model, but it does seem to violate your
statement that the control system needs information about the
disturbance in order to work.

Bill P.