# Model-based behavior: The control of perception

[From Rick Marken (950920.1030)]

Hans Blom (950920) says that his model-based control system:

is NOT a "control of perception" model.

In fact, it is. I finally figured out why Hans' model based controller works.
It works because it is essentially the same as the PCT model that Bill Powers
posted. The only difference is that Hans' model adds a "noise" term to the
error signal; this noise term improves control (relative to the basic control
model) if 1) the disturbance is relatively smooth and 2) the feedback
function is known (or can be estimated).

The easiest way to see this is to look at the code for the two models with
the reference signal, r[ ], constant at 0 and the environmental coefficient,
b, constant at 1. In that case, the basic control model is:

u := u - x

where u is the output variable and x is the perceptual variable.

Hans' model based control model is:

dnew := x - u;
dpre := 2.0 * dnew - dold;
u := - dpre;

In these equations, dnew is viewed as an estimate of the current disturbance,
dpre the "predicted" value of the disturbance at the next time instant and
dold is the previous disturbance estimate. This way of looking at the
variables in Hans' model obscures the fact that the code segment above is
equivalent to:

u := u - x + (u - x + dold)

Looked at in this way, we can see that the output of Hans' model (u) is
EXACTLY the same as the output of the control model (u := u-x) with the
addition of an extra quantity (u - x + dold) that I call the "noise" term.
This noise term is added by the algorithm that "predicts" the disturbance
values. It is "noise" in the sense that it is an independent addition to the
error signal (0-x) that drives the integrated output (u). If the actual
disturbance is smooth over time, this noise term improves control by adding
what usually turns out to be an appropriate amount to the output integral; if
the disturbance is not smooth (if, for example, it is a square wave), this
noise term degrades control (relative to that produced by the basic PCT
model).

So Hans' model is fundamentally the same as the PCT model; it controls a
perceptual variable, x, keeping it close to the reference signal value
despite disturbances. Hans' model extends the basic PCT model by trying to
add "intelligent noise" to the error signal; noise that will improve control.
This intelligent noise does improve control under many circumstances.

Although Hans' model based addition to the PCT model can improve control
under certain circumstances, there is no evidence that this addition is
needed to explain anything about the behavior of living control systems. It
MAY eventually prove to be an important addition to the basic PCT model, but
as yet, there is no data I know of that demands such an addition to the model.

Hans' model-based control model does not, in any way, contradict the basic
insight of PCT (that behavior is the control of percpmion); in fact, Hans
model can be used to illustrate the basic point of PCT, viz. when a system
(living or artifactual) controls, what it controls is a perceptual
representation of a variable or variables in its environment. The PCT model
controls a perceptual variable (x in the model code); Hans' model controls
the same perceptual variable. Hans' model controls better than the PCT model
in many circumstances; but what Hans model controls is what all control
systems control: perception.

Best

Rick

[From Bruce Abbott (950920.1425 EST)]

Rick Marken (950920.1030) --

Hans' model based control model is:

dnew := x - u;
dpre := 2.0 * dnew - dold;
u := - dpre;

In these equations, dnew is viewed as an estimate of the current disturbance,
dpre the "predicted" value of the disturbance at the next time instant and
dold is the previous disturbance estimate. This way of looking at the
variables in Hans' model obscures the fact that the code segment above is
equivalent to:

u := u - x + (u - x + dold)

Looked at in this way, we can see that the output of Hans' model (u) is
EXACTLY the same as the output of the control model (u := u-x) with the
addition of an extra quantity (u - x + dold) that I call the "noise" term.

Having not had the time to examine Hans's code all that carefully yet, I'm
probably going beyond my data, but it seems to me that the proper way to
view the code segment in question may be as follows:

Assume that the estimated disturbance does not change between two
iterations. Then

dpre := 2.0 * dnew - dold;
:= 2.0 * dold - dold; { because dold = dnew }
:= dold;

This makes it clear why dnew must be multiplied by 2.0 before dold is
subtracted: so that in the absence of change in d, dpre is constant.

Rearranging the terms slightly makes the actual sense of the computation
apparent:

dpre := dnew + (dnew - dold); or
dpre := dnew + ddelta; { where ddelta = dnew - dold }

Ddelta is just an approximation to the first derivative of the estimated
disturbance. Not so long ago we argued whether adding the first derivative
(of the conrolled quantity) to the value of the controlled quantity
constituted a form of anticipation. We disagreed on the interpretation, but
we did all agree that adding the first derivative tended to improve control
relative to the standard model (without derivatives). Again, my apology if
I'm not up to speed on this, but doesn't Hans's model benefit from the same
addition? And Rick, the first derivative is hardly what I would call "noise."

Regards,

Bruce