[From Bill Powers (970331.0030 MST)]
Still processing old posts in the attempt to understand what Hans Blom is
talking about. This runs in parallel with my objections to what I understand
of his model. One part of me may be saying, "This doesn't make sense," but
another part is always asking, " ... but how _might_ it make sense?"
Hans Blom, 970327--
Two paradigms converse with each other. Says one to the other: "I
don't understand a word you say". Responds the other: "What did you
say? I don't understand you at all".
....
In fact, the Kalman Filter equation of what a model-based
controller does when _processing an observation_ is
x-model := w1 * x-model + w2 * x-observation
where w1 and w2 are _weights_ which depend on the accuracies (known
or estimated in/by the model) of both x-model and x-observation. Thus
x-model is a weighted average of the internally generated prediction
x-model and the observation. This is the general formula, but we can
distinguish two extremes:
...
I could instead have written a code line
somewhere in my program such as
x := 0.0 * p + 1.0 * xx
where in my code p is the predicted model-x and xx the direct
observation. Would that have helped?
Yes, it would have helped. What this tells me that I didn't understand the
way the Kalman filter was being used, and thus the significance of your
condition that the observation be "error free." The significance is that
when the observation is error free, w1 is set to 0 and w2 is set to 1.
Thus I now understand that when the observation is error free, the MCT model
is _exactly_ the PCT model at least in form. The internal world-model is not
used at all! If you could read block diagrams, you would have seen that none
of my diagrams reflects what you are saying here. The situation you are
describing is this (omitting the Kalman Filter machinery and any other
crucial parts I may still not understand or you may not have mentioned):
r
>
[Sum]----------->[COMP] -->-
> > >
[w2] [w1] [output computation]
> > >
> x'<--[World-Model]<-----u (output)
> > CONTROLLER
=====|==========================================================
> > ENVIRONMENT
> <----u
--<-x <--[Real Object]
<--- d
In the case of noise-free observation, w1 is 0 and w2 is 1 (I assume that w1
and w2 always sum to 1). At this extreme, the control loop uses ONLY
real-world observations generated (in our examples) by the exact physical
model of the Real Object!
In this case, a loss of input from x would result in immediate loss of
control, just as in the PCT model; i.e:
The only workable values of w1 and w2 are 1 and 0, if control is to be
simulated upon loss of input from x. Suppose that they were each 0.5. If the
world-model is exactly correct, loss of the x input would lead to the
feedback from the world model's x' being 0.5 times the value of the
simulated x, so instead of matching x' to r, the system would match 0.5*x'
to r. This would result in the wrong output u. The Kalman filter routine (or
some separate subsystem) would have to detect this error and set w1 to 1 and
w2 to 0. So there would be a transient error while this switch was being
made. The point is that correct operation in the absence of real-time
sensing of x requires that w1 = 1 and w2 = 0.
With your handicap concerning block diagrams ;-), you probably didn't
understand a "compromise proposal" I made some months ago, in which I showed
exactly the above diagram, with a switch in place of w1 and w2. The switch
could be thrown so the feedback signal entering the comparator came from
either the real-time input x or the simulated input x'. This is exactly
equivalent to saying that [w1,w2] can have only the values [0,1] and [1,0].
As I have pointed out above, these are the only values that will properly
handle the situation when detection of x is lost. Somehow, the controller
must be able to distinguish between the loss of the connection from x and
x's value actually going to zero, and throw the switch appropriately. In my
compromise proposal, I didn't specify how this distinction was to be made,
and you haven't specified it either (in your programs, the _programmer_
knows that input is lost at a particular time, and arbitrarily sets the
weights to 0 and 1 as required, at the right moment, rather than letting the
Kalman filter assign the weights -- which it would do incorrectly).
So this clears up one mystery. In the case of noise-free observation, the
MCT model is, in form, simply the PCT model.
Your case 2 is presented in a misleading way:
2) x-observation is or can be extremely erroneous. This is the
"missing observation" or "walking in the dark" case. The above
formula now has w1=1 and w2=0 and reduces to x-model := x-model,
resulting in open loop behavior.
When you say that the x-observation is or can be extremely erroneous, you
are saying that the _perception_ of x (called y in your earlier models) can
be a misrepresentation of x. But the only kind of misrepresentation I have
seen offered is that y is x plus a zero-average high-frequency noise term.
This, however, is only one way in which y can be erroneous. In the general
case, the non-random component of y can be some function of x, so that
y = f(x) + noise.
The simplest kind of sensing error is a calibration error: y is proportional
to x but not equal to it, even when there is no observation noise. The
Kalman filter approach can't detect an input calibration error, because y
represents its only knowledge of x. All that the KF approach can do is to
assume that certain variations in y are random and discount them by giving y
less weight and x' more weight. A systematic calibration error, either of
scaling or of linearity, cannot be detected. As a result, the Kalman filter
will adjust the controller for best control of y, but x will not match the
reference level except where the calibration curve crosses the assumed
linear relation between y and x (if it does).
The PCT model, of course, has exactly the same problem, except that the PCT
model doesn't claim to control anything more than the perception.
The confusion may arise because you cannot see the model "in" the
computer code. That is right: it is "behind" the code. It will need
to explicitly appear _in_ the code only when measurements are noisy.
But that is not the case in our example. And it would make the PCT -
MCT comparison far more difficult to investigate -- except in terms>
of performance...
I do have a problem with understanding a model when essential parts of it
are omitted!
Bill, what gives you the perception that I'm a blathering idiot? I do
know what I'm talking about. And it's not your lack of knowledge that
worries me, but your attitude. When you say things like this in your
posts, that is -- _not_ in your attempts to reach understanding...
What gives me this impression is your way of leaving out crucial
explanations, as above. It doesn't help anyone else if YOU know that there
is a w1 and a w2 being adjusted by some background process, but fail to let
anyone else in on this fact. The impression that both Martin Taylor and I
got was that you simply couldn't tell the difference between a continuous
physical process and the MCT model's discrete internal simulation of it. You
never explained that this internal model wasn't even being used.
You said once that you don't intend to give a tutorial on the Kalman filter.
But how are you going to communicate what you mean if you don't do exactly
that? How many more aspects of the MCT model are there that you're keeping
to yourself?
Also, Hans, the mere fact that a lot of people accept the textbook
explanations of MCT is no indication at all that these explanations are
error-free. How many people who espouse this approach are simply passing on
the arguments and interpretations they all read in these same textbooks? And
how many have gone down to the nitty-gritty, iteration-by-iteration level
that we're looking at? I would expect that, as in any other field, there are
a few innovators who generated these ideas, and many followers who are
content to accept the pre-packaged explanations and interpretations given by
these few people. If the innovators happened to share a common
misinterpretation of the relation of the model to the world -- if they all,
for example, use an inexact non-physical approximation of the actual
physical plant to represent what the world is actually doing -- who is going
to call attention to that, and work out its implications? Certainly not
those followers who take the correctness of the arguments on faith, and that
eliminates the vast majority of those who accept the MCT approach. And
certainly not the innovators themselves, if all they are interested in is
proving that they are right.
So who does that leave to keep the theoreticians honest, but outsiders like me?
Best,
Bill P.