prediction; math

[From Bill Powers (960116.0500 MST)]

Martin Taylor 960115 16:00 --

I appreciate your stepping into the discussion with Shannon Williams,
bearing some nice explanations. One point comes up, however, that I
would like to raise some questions about.

     Hans Blom and Bill P. have had a long discussion on this topic. As
     I understand the state of play, it is acknowledged that some
     prediction is sometimes useful (personally I'd go a little further
     in that direction than I think Bill is prepared to go. To me, it's
     a question of disturbance bandwidth how much prediction is possible
     and useful. How much is used is a separate question.)

Hans Blom's model-based control system, at least in the versions I have
seen, does not "predict" the state of the environment. It models it, but
what it models, if it is working right, is the _current_ state of the
environment, not a future state. After all, you want the output of the
system to counteract the disturbance that is acting _right now_, not the
one that will act some time in the future. It isn't clear to me what
good it would do a control system to receive a depiction of the
environment as it will be some time from now.

I understand that one point of prediction is to compensate for lags
inside the control system. But in human systems, those lags are seldom
more than half a second, and for lower systems are much less than that.
And anyway, if you add the first derivative of the input to the
proportional perceptual signal, you will _destabilize_ the control loop
when there is a transport lag, not stabilize it. The cure for system lag
is an _integration_, not a differentiation -- actually, an added lag
(integral).

The other use claimed for prediction is to produce an action whose
effects on the controlled variable are delayed. To have an effect of an
action occur at time t, the action must be advanced to time t - tau in
order for its effects to arrive at the right time. Anchoring our
observation point in present time, however, we can see that what is
needed is to advance the output, but not the perceptual signal. What we
want is for the perceptual signal NOW to match the reference signal NOW,
and for the effects of actions to counteract disturbances that are
acting NOW. This means that the error signal must be put through a
predictive filter that can produce an output proportional to a predicted
future value of the error signal. Only in this way can the action be
properly advanced to take care of both perceptual and reference signal
changes. If you put the prediction into the perceptual function, you
will be trying to match a future state of the perceptual signal to the
present state of the reference signal, which is not what we want.

What I'm saying is that there seems to be no advantage to _perceptual_
predictions; the predictions we want are on the output side, not the
input side. As you note, the scope of predictions is ordinarily very
limited; few things on Earth behave like planetary-sized bodies in
space. Even without prediction, reasonably fast control is quite
possible in most situations. So prediction isn't a necessary part of
every control system, and it is seldom an essential part of ANY control
system.

One last point: if you do add a first-derivative component to a
proportional input function, the effect on the system is to introduce
damping. You actually slow the changes in the controlled variable. The
reason is that the system thinks the controlled variable has reached its
reference level before it has actually done so, and the output begins to
decrease prematurely. A step-change in the reference signal will result
in an approach of the controlled variable to its final state in the form
of 1 - exp(-kt), where k becomes smaller as the first-derivative
component becomes larger. A "predictive" input function makes the output
actions faster, but with the net result of making the input changes
slower.

···

-----------------------------------------------------------------------
Rick Marken (960115.1600) --

     Rick:

     >o := o + (k.2i-o)

     Bruce:

     >But doesn't this reduce to just

     > o := k.2i ?

     Mathematically, yes. But with the replacement operation I think we
     just end up adding an increment, k.2i-o, to o.

No matter how you think about it, o + k.2i - o is just k2.i. Putting
parentheses in doesn't change that. You've left out the slowing factor,
or you're using a slowing factor of 1, which is the same thing.

My policy is like a Pascal compiler. When presented with a long piece of
source code, when it finds the first error it stops reading and doesn't
bother with the rest.
-----------------------------------------------------------------------
Best,

Bill P.