Powers (1988) An Outline of Control Theory

[From Chris Cherpas (971006.0938 PT)]

I've been studying PCT for over a year now, learning
about new (to me) aspects, finding out misconceptions
I'd developed along the way, and gradually seeing myself
getting to the point where I could apply it to computer-based
educational technology.

I just read Powers' (1988) "An Outline of Control Theory"
in _Living Control Systems_. I found this piece to be
exceptionally effective. There are a few points I'd like
to be able to get clearer on:

1. Amplification

Bill Powers (1988, pp267-268)--

"If we compare two control systems with greatly
different error sensitivities, our first guess might be that
the system with the greater error sensitivity, all else being
equal, would produce the greater amount of action. What actually
happens is that the system with the greater error sensitivity
contains the smaller error signal, and its action is essentially the
same as what the other system produces."

As is noted in this article and other places, one intuitively
thinks that amplifying the output would be like trying to
kill a fly with a sledge-hammer (caution: my metaphor), but
in fact, this is not the case, especially since one adds a
slowing factor. I'm not clear how this is derived, though.
I find myself thinking that this is a surprising phenomenon
that is critically important, but sense that I should be able
to see why, rather than just "that's the way it works out."

I can see the notions of asymmetry of control and
the superstability of control systems, as opposed to the
entropy/thermodynamics of non-living systems, per se,
and can sense a principle linking the need to amplify
to the problem of living in a world of disturbances, but I
don't find myself being able to programmatically/logically
fit the pieces together. The equations all look right, and
the variables change the way they're supposed to, but something
seems missing or wrong in my thinking, because I don't see
how I would would derive the role or necessity of amplification,
while simulaneously including a slowing factor which would,
not quite literally, but somewhat, undo the amplification anyway.

I feel that playing with the equations would make it clearer,
but I also want to see if there's some obvious qualitative/contingent
aspect I'm missing before simply proving to myself enough times
that the quantitative/tautological form simply "works."

2. Russell's types

Bill Powers (1988, pp275-2765)--

"Each second-order perceptual signal thus produced will represent
some new type of invariant of the first-order world (every single-
valued function of multiple variables generates some sort of invariant).
I have reason to think, but will swallow the temptation to elaborate,
that each new level actually represents a new type of variable in
exactly the sense of Russell's Theory of Types.

Bill Powers (1988, p281)--

"As we go up the list, the relationships between types are the
relationships between successive stages of invariants, each stage
abstracted from the previous one by a new rule, as in Russell's
Theory of Types."

I'd be interested in any amount of elaboration, however speculative,
on the relationship between Russell's types and the orders of HPCT,
whether you are speaking of the nature of "typing" or the specific
types themselves.

3. Reference signals skipping orders

Bill Powers (1988, p277)--

"...there are arguments against reference signals skipping orders
on the way down in a control hierarchy (such signals would be treated
as disturbances and canceled)."

Perhaps I should have included more of the context of this
statement, since the passage is about the relationship of
first and second order perceptions, but my question is whether
you are saying that reference signals don't directly connect
to anything lower than the next level down in general. I thought
I had this straightened out, but, if you don't mind playing it
again, I'd appreciate it. Actually, the diagram on p278 is
very instructive, but whereas the "pipeline" that runs up the
hierarchy suggests skipping levels on the way up, there don't
appear to be any obvious downward pipelines that skip over
levels (I mean orders, but who can resist saying levels?).

Thank you for your patience.

Best regards,
cc

[Hans Blom, 971007d]

(Chris Cherpas (971006.0938 PT)) citing Bill Powers (1988, pp267-268)

"If we compare two control systems with greatly
different error sensitivities, our first guess might be that
the system with the greater error sensitivity, all else being
equal, would produce the greater amount of action. What actually
happens is that the system with the greater error sensitivity
contains the smaller error signal, and its action is essentially the
same as what the other system produces."

As is noted in this article and other places, one intuitively thinks
that amplifying the output would be like trying to kill a fly with a
sledge-hammer (caution: my metaphor), but in fact, this is not the
case, especially since one adds a slowing factor. I'm not clear how
this is derived, though.

It can be derived in several ways. A simple explication, which
requires little understanding of how the full control loop operates,
is the following. Consider only the part of the loop from error to
output (called the output function). For simplicity (and most in line
with what Bill says), assume that the output function is just an
amplifier with a gain of A:

error ----- action
------>| A |------->

···

-----

Now a controller is in control only if its action is appropriate,
that is neither saturated nor limited to zero (which would be due to
saturation as well): it requires finite amounts of action to achieve
your goals. If your actions require more power than you can deliver,
you're obviously "out of control". You're similarly out of control if
you cannot produce actions at all, or only the feeblest. Thus, the
output range of a controller's output (its "actions") is
approximately constant, regardless of all other properties of the
control loop.

Say A is an operational amplifier (opamp) with a gain of 1,000,000,
and its output is unsaturated only if it remains between +10 and -10
volts. Any practical design will want to employ the full output range
-- but not more. Given the opamp's gain of 1,000,000, the error will
then vary between +10 and -10 microvolts. If A were a mere 1000, the
error would be able to vary between +10 and -10 millivolts, a factor
of 1000 larger.

Two factors play a role: "being in control", i.e. a non-saturated
output, and "gain". As long as the system remains in control, the
error decreases if the gain increases. The slowing factor plays no
role here.

Going up a level: all else remaining the same -- i.e. remaining in
equally effective control -- increasing your sensitivity is not, as
many people seem to fear, becoming a victim of hysteria but a fine
method to experience decreased internal error.

Greetings,

Hans

[From Bill Powers (971008.0725 MDT)]

Chris Cherpas (971006.0938 PT)--

I've been studying PCT for over a year now, learning
about new (to me) aspects, finding out misconceptions
I'd developed along the way, and gradually seeing myself
getting to the point where I could apply it to computer-based
educational technology.

An effort that is well-appreciated from this end, Chris.

I just read Powers' (1988) "An Outline of Control Theory"
in _Living Control Systems_. I found this piece to be
exceptionally effective. There are a few points I'd like
to be able to get clearer on:

1. Amplification

Bill Powers (1988, pp267-268)--

"If we compare two control systems with greatly
different error sensitivities, our first guess might be that
the system with the greater error sensitivity, all else being
equal, would produce the greater amount of action. What actually
happens is that the system with the greater error sensitivity
contains the smaller error signal, and its action is essentially the
same as what the other system produces."

As is noted in this article and other places, one intuitively
thinks that amplifying the output would be like trying to
kill a fly with a sledge-hammer (caution: my metaphor), but
in fact, this is not the case, especially since one adds a
slowing factor. I'm not clear how this is derived, though.
I find myself thinking that this is a surprising phenomenon
that is critically important, but sense that I should be able
to see why, rather than just "that's the way it works out."

Let's take the second problem first. The slowing factor is the simplest way
to introduce physical time into the control system equations. By this I
mean that it represents the fact that no physical variable can jump
instantly from one state to other: it must pass through all values between
the starting and ending values. In every real control system there is at
least one variable in the loop that is subject to this physical constraint.

To see what happens when you leave out physical time, just consider the
algebraic equations representing a control system:

e = r - p (error equals reference minus perception)
o = gain*e (output equals gain times error)
p = ff * o (perception = feedback factor times output)

This is a bare-bones representation of a control loop, leaving out all
complications (the input function is just a unity multiplier).

Now solve the equations for the perceptual signal p:

1. p = ff*o
2. p = ff*gain*e
3. p = ff*gain*(r - p) = ff*gain*r - ff*gain*p

Since p appears on both sides of the equation, we add ff*gain*p to both sides:

4. p + ff*gain*p = ff*gain*r

5. p*(1 + ff*gain) = ff*gain*r

         ff*gain*r
6. p = ----------
        1 + ff*gain

If we now let the product ff*gain become very large with respect to 1, we
get the approximation

7. p = r.

The perceptual signal p equals the reference signal r. To see how close
this approximation is, just use the actual values of ff and gain.

That's the right answer. However, we haven't said anything about how the
perceptual signal gets from its initial value to the final value. We might
try to work this out by using the above equations as a simulation, solving
them one at a time, over and over, using actual numbers. Let's say that ff
= 1 and gain = 100. The exact result would be p = 100*r/101. If r = 100, p
should become equal to about 99, but let's see what we get by solving the
equations serially.

Start with p = 0. Since r = 100, e = 100 - 0 or 100. The gain is 100, so
the output is 10,000. The feedback factor is 1 so p becomes 10,000. The
next value of the error signal is 100 - 10,000 or -9,900. The next value of
the output is gain*e or 100*(-9900) or -990,000, which is also the next
value of the perceptual signal p. The next value of the error is ....

Obviously something is wrong. The error is getting 99 times larger every
time we go around, reversing its sign each time. What's the matter?

The matter is that we have left out the fact that physical variables can't
change from one value to another instantly. To fix the problem in the
easiest possible way, we can put a slowing factor into the output process,
as follows.

In the first step above we said e = r - p = 100. The next step says that
the output should become gain*e or 10,000. But let's say that the output o
can actually change by only 1/S of the way to the final value during a
single iteration. We start with the initial value, o. Then we calculate the
change in o as the calculated new value minus the starting value: gain*e -
o. Dividing this by S, we get the amount of change that can happen in a
single iteration, (gain*e - o)/S. And finally, we add that allowed amount
of change to the initial value of o to find the actual new value of o at
the end of one iteration:

o(new) = o(old) + (gain*e - o(old))/S.

If you set S to 200, and substitute the above expression for o = gain*e in
the above series of equations, after two or three times around the loop you
will see that the perceptual signal is now approaching the reference value
of 100 very rapidly -- a few more times around and it will come to
equilibrium at the right value of about 99. Now the simulation converges to
the same final answer you get with the algebraic solution. As long as S is
larger than about 100, you'll see convergence; it will be slower as S gets
larger, but you'll eventually get to the right answer for any value of S
greater than 100.

I recommend actually going through the numerical calculations by hand, with
a pocket calculator, to watch this work. You could write a program to see
the same thing happening much faster, but if you do the calculations
hands-on you'll get a much better feel for what's going on. If you want to
_understand_ control, there's no better way than playing with the numbers.

You might guess that there is an optimum value of S (about 100), and that
it is related to the loop gain, ff*gain (it is). The least value of S for a
monotonic approach to the final value is (1 + ff*gain). In simulating a
real system, we would have to use much larger values of S, because
generally the real system will not be able to change its output to the
final value in a single iteration. In fact, we pick an S that makes the
simulated system behave as much like the real system as possible. Assuming
that we're using a fairly rapid iteration rate, we might have to set S to a
value 10 or 20 times the minimum value to make the simulation behave as
slowly as the real system behaves.

Now we can consider the first part of your question about amplifiction. In
the above equations, we're putting all the amplification in the output
function, in the form of the gain factor. When we do that (leaving out ff
because it's just 1), we find that

      gain
p = ----------*r
     1 + gain

Obviously, if the gain is some low number like 2, p = (2/3)*r, with an
error of 1/3 r (r - 2/3 r = 1/3 r). If the gain is 10, we have p = (10/11)
r and the error is 1/11 r. A gain of 1000 gives us p = (1000/1001)*r and
error = (1/1001)*r. As the gain gets larger, p gets closer to r and the
error shrinks toward zero as a fraction of the reference signal. Of course
if we were simulating this control system, we would have to use larger and
larger values of the slowing factor S to keep the wild oscillations from
occurring. But there would always be some value of S that would stabilize
the system, making the above solutions valid.

If you want to experience the joy of discovery, I suggest that you solve
the above equations for the error signal, using the same simulation
strategy with S set equal to (1 + gain), but now adding a disturbance d
with a value of 10 or 20 or so: the equations with the disturbance are

e = r - p;
o = o + (gain*e - o)/S
p = o + d;

If you like, you can first solve the equations algebraically, writing them as

e = r - p
o = gain*e
p = o + d

... and solving by sucessive substitutions as above. If you solve for the
output as well as for the error, you will learn something about how the
output relates to the disturbance.

But then set up the simulation and spend 15 minutes actually writing down
numbers. The result is quite beautiful.

I feel that playing with the equations would make it clearer,
but I also want to see if there's some obvious qualitative/contingent
aspect I'm missing before simply proving to myself enough times
that the quantitative/tautological form simply "works."

By all means play with the equations, and use actual numbers. I guarantee
that you's come out of it with a vastly increased understanding.

2. Russell's types

I'd be interested in any amount of elaboration, however speculative,
on the relationship between Russell's types and the orders of HPCT,
whether you are speaking of the nature of "typing" or the specific
types themselves.

My reference to Russell's theory of types was a bit of youthful
pretentiousness; I know no more about it than you do. The point was that
each new level introduces a new type of perception, not just a combination
of existing types. Russell was trying to solve the "barber" paradox (the
barber shaves everyone who does not shave himself: does the barber shave
himself?). This boiled down to a question about the class of all classes
that are not members of themselves. I'm not sure how the theory of types
solves this paradox, but I know how I solved it: by going up a level. The
barber can shave anyone he pleases, including himself. The logical problem
is irrelevant when you look at it that way; the barber is not constrained
by a silly logical rule that contradicts itself, unless he decides that he
can't shave anyone until he solves it. Somewhere in here I realized that
logical thinking is not the highest level. It's more like a good place to
get stuck.

3. Reference signals skipping orders

Bill Powers (1988, p277)--

"...there are arguments against reference signals skipping orders
on the way down in a control hierarchy (such signals would be treated
as disturbances and canceled)."

Perhaps I should have included more of the context of this
statement, since the passage is about the relationship of
first and second order perceptions, but my question is whether
you are saying that reference signals don't directly connect
to anything lower than the next level down in general. I thought
I had this straightened out, but, if you don't mind playing it
again, I'd appreciate it. Actually, the diagram on p278 is
very instructive, but whereas the "pipeline" that runs up the
hierarchy suggests skipping levels on the way up, there don't
appear to be any obvious downward pipelines that skip over
levels (I mean orders, but who can resist saying levels?).

A reference signal can skip levels only if there is no control system
active at an intermediate level. The reason is obvious: if the reference
signal results in a perceptual signal changing at a lower level, the
intermediate level system will see an unwanted change in its own
perception, and will change its output to the lower level to correct the
change. In doing so it will cancel or partly cancel the effect of the
higher level's output, leading to conflict.

Example. Suppose you're driving along while thinking about physical
mechanics. There's an intermediate-level system keeping the car on the road
by operating the steering wheel. In the course of your musings, it occurs
to you that a rotation of the steering wheel by the width of one of its
spokes would probably cause a measurable sideward acceleration. To test
this idea, you specify a rotation of the wheel of that amount, which the
lower systems operating the wheel would normally bring about. However, the
immediate result is that the car heads into oncoming traffic, and the
system that's trying to keep the car in its lane immediately reacts against
this movement of the wheel. If you're lucky, it will win.

Have fun with the numbers.

Best,

Bill P.

[From Bruce Gregory (971010.1135 EDT)]

Bill Powers (971008.0725 MDT)]

But then set up the simulation and spend 15 minutes actually writing down
numbers. The result is quite beautiful.

Yup. Thanks! We sure do learn through our fingers!

n'th Best

Bill Powers (971008.0725 MDT) to Chris Cherpas (971006.0938 PT)--

Let's take the second problem first. The slowing factor is the simplest way
to introduce physical time into the control system equations. By this I
mean that it represents the fact that no physical variable can jump
instantly from one state to other: it must pass through all values between
the starting and ending values.

Chris, you can simplify all of what Bill says about the "slowing factor"
into a single comment: "The slowing factor serves as a low-pass filter to
mitigate one problem associated with simulating analogue systems on
digital computers."

The "slowing factor" is a very easy filter to implement when you are
simulating, but there is no such thing in the analogue system being
simulated. What the slowing factor does is to ensure that the simulation
does not attempt to simulate analogue loops with too short a loop delay
time.

Don't confuse statements about digital simulation with statements about
the workings of _analogue_ control systems. But _do_ try to make sure
that your simulations properly represent the workings of the analogue
system by making the simulation sample intervals short compared to the
time over which anything interesting happens in the analogue system.

The only real way to "see" what an analogue control system does is to
simulate it several times with ever-decreasing sampling time intervals,
and believe it when further decreasing the sampling interval ceases to
affect what you see.

Martin

[From Bill Powers (971014.1804 MDT)]

Martin Taylor (971014) --

Chris, you can simplify all of what Bill says about the "slowing factor"
into a single comment: "The slowing factor serves as a low-pass filter to
mitigate one problem associated with simulating analogue systems on
digital computers."

While that's true in part, it's not really right. In fact, our models of
tracking behavior employ a slowing factor that has a time constant far
longer than is needed to avoid the digital-computer problem. The programs
run at least at 30 iterations/sec (depending on the display). In a tracking
task, the environmental part of the loop responds to movements of the mouse
within, at most, 1/30 sec. The human system employs an output function that
is best modeled as a leaky integrator, as we have found in numerous tests
of various models (with and without perceptual delays) running at speeds
from 25 to 84 iterations per second. The output time-constant that fits
the data the best at any repetition rate is about 6 seconds. This is
clearly far too long to be associated with the need to smooth digital
calculations: it is 180 iterations at 30/sec.

Part of the reason for needing this slowing factor can be traced to the
properties of muscles, which contain viscous damping. Another part is due
to the first-derivative feedback from muscle spindles, which makes output
changes resemble the behavior of a leaky integrator. But the largest part
has to be a property of the output functions of the visual control systems,
because the lower-order time constants would still be much shorter than 6
seconds.

You have to understand that the _closed-loop_ time constant is the output
time constant divided by the loop gain. So the time constants we observe
are much shorter than 6 seconds, both in the model and in the real
behavior. However, the actual time constant in the leaky integrator in the
model is the full 6 seconds and is independent of the iteration rate. The
time constant required to prevent artificial oscillations due to the
digital calculations would be only one or two iterations long.

I don't know how the story got started that the slowing factor is needed
only to prevent "digital oscillations." I guess that's just one of those
"academic myths" which, once stated or picked up from a misunderstanding
acquire a life of their own. The slowing factor is a real parameter of a
human visual-motor tracking system. I hope this makes that clear.

Best,

Bill P.

[Hans Blom, 971016c]

(Bill Powers (971014.1804 MDT))

The output time-constant that fits the data the best at any
repetition rate is about 6 seconds.

Here the output time constant is a parameter of a (curve fit)
_model_.

The slowing factor is a real parameter of a human visual-motor
tracking system.

And here the output time constant, now called the slowing factor, has
become _real_.

Your reasons for the "true" existence of at least one physiological
mechanisms _in the loop_ that operate on a time scale of 6 seconds
doesn't convince me, however:

Part of the reason for needing this slowing factor can be traced to
the properties of muscles, which contain viscous damping. Another
part is due to the first-derivative feedback from muscle spindles,
which makes output changes resemble the behavior of a leaky
integrator. But the largest part has to be a property of the output

functions of the visual control systems, because the lower-order time

constants would still be much shorter than 6 seconds.

Saying that some system has a 6 second time constant is the same as
saying that that system has an open loop step response of 6 seconds,
i.e. that it takes about 6 seconds before the output is fully
developed after a sudden change of input. I have no idea of the time
constant of viscous damping, but it is not in the loop; it is a minor
contributing factor. Muscle spindles respond in the order of
milliseconds. The reaction time of all visual systems that I'm aware
of is far faster than 6 seconds as well.

What is correct is this:

You have to understand that the _closed-loop_ time constant is the
output time constant divided by the loop gain.

Does this imply that the output time constant is the result of a
calculation, i.e. the closed loop time constant times the loop gain?
If so, it is still a _model_ parameter, as indeed you say: "the time
constant in the leaky integrator in the model is the full 6 seconds".

There are two possibilities that I see right now:

1. the parameter occurs in the model only, but it has no physical
counterpart. Practice shows that black box (curve fit) models often
have parameters that have no real-world counterpart.

2. the parameter represents an actually existing physiological
process that reacts with the slow speed of about 6 seconds. Since we
wouldn't survive if we reacted at such slow speeds, this implies that
a major function of feedback is to speed things up.

For now, I reject the second possibility. But maybe a more reasonable
explanation can be found...

Greetings,

Hans

[Martin Taylor 971015]

Bill Powers (971014.1804 MDT)]

Martin Taylor (971014) --

Chris, you can simplify all of what Bill says about the "slowing factor"
into a single comment: "The slowing factor serves as a low-pass filter to
mitigate one problem associated with simulating analogue systems on
digital computers."

While that's true in part, it's not really right. ...
... The human system employs an output function that
is best modeled as a leaky integrator, as we have found in numerous tests
of various models (with and without perceptual delays) running at speeds
from 25 to 84 iterations per second. The output time-constant that fits
the data the best at any repetition rate is about 6 seconds. This is
clearly far too long to be associated with the need to smooth digital
calculations: it is 180 iterations at 30/sec.

I agree completely with this. But you will remember an interchange we
had privately some years ago in which we both carefully separated the
"slowing factor" time constant from the loop delay constant, after which
you did agree that the "optimum gain" computed in your Psych Review
article was an artifact of the simulation slowing factor, rather than
of the analogue loop's real behaviour.

The issue is not whether humans use output integrators; it is to be sure
that the simulation technique doesn't lead you into misleading conclusions
about what the analogue system being simulated is doing.

I don't know how the story got started that the slowing factor is needed
only to prevent "digital oscillations." I guess that's just one of those
"academic myths" which, once stated or picked up from a misunderstanding
acquire a life of their own.

I think it comes from the way you presented it in the Psych Review article.
You may not have intended it in this way, but that's the way it comes
across.

The slowing factor is a real parameter of a
human visual-motor tracking system. I hope this makes that clear.

I'd rather say that leaky integrator output functions give good fits to
experimental data, whether they are simulated digitally or implemented
in analogue electronics. Leaky integrators are low-pass filters--or rather,
they are band-pass filters, for which we don't care much about the low
frequency drop-off in this usage.

By the way, one should note that if the output function is a _leaky_
integrator, claims cannot be sustained that the error goes to zero
after a long time of steady reference and disturbance values. But then,
we seldom are exposed to long-term steady disturbances other than gravity,
and reference values usually also change rapidly, so this low-frequency
drop-off in effective loop gain does not matter at all in practice, if the
leak is slow enough.

Martin

[From Bill Powers (971016.1016 MDT)]

Hans Blom, 971016c--

The output time-constant that fits the data the best at any
repetition rate is about 6 seconds.

There are two possibilities that I see right now:

1. the parameter occurs in the model only, but it has no physical
counterpart. Practice shows that black box (curve fit) models often
have parameters that have no real-world counterpart.

2. the parameter represents an actually existing physiological
process that reacts with the slow speed of about 6 seconds. Since we
wouldn't survive if we reacted at such slow speeds, this implies that
a major function of feedback is to speed things up.

This is not a curve-fit model, since the observed time constant is a few
tenths of a second.

A major function of feedback _is_ to speed things up. It is well known that
in a first-order lag control system, the effective time constant is the
time constant of the lag divided by the loop gain. If the time constant of
the lag is 6 seconds and the loop gain is 30, the time constant of a
reaction to a step-disturbance will be about 0.2 seconds. This is easily
observable in simulations and real control systems.

The time constant in the (contracting) muscle is about 50 milliseconds.

The effect of first-derivative feedback from the muscle spindle is to slow
the rate of change of output. This has nothing to do with the time constant
in the spindle itself. It's simply a result of rate feedback, which puts
damping into the system.

How much do you REALLY know about control systems, Hans? Your comments make
me wonder.

Best,

Bill P.

[From Bill Powers (971016.2025 MDT)]

Martin Taylor 971015 --

... The human system employs an output function that
is best modeled as a leaky integrator, as we have found in numerous tests
of various models (with and without perceptual delays) running at speeds
from 25 to 84 iterations per second. The output time-constant that fits
the data the best at any repetition rate is about 6 seconds. This is
clearly far too long to be associated with the need to smooth digital
calculations: it is 180 iterations at 30/sec.

I agree completely with this. But you will remember an interchange we
had privately some years ago in which we both carefully separated the
"slowing factor" time constant from the loop delay constant, after which
you did agree that the "optimum gain" computed in your Psych Review
article was an artifact of the simulation slowing factor, rather than
of the analogue loop's real behaviour.

Yes, the optimum slowing factor for a given gain (not the "optimum gain")
was simply what was required to prevent the computational oscillations. It
represented the least amount of slowing that could conceivably represent
the behavior of a physical system given the iteration time of a program. I
think I would say all that differently now, some 19 years later. The main
point I would make is that the slowing factor prevents runaway by taking
physical time into account. The "optimum" slowing factor is a misleading
idea, because in modeling a real system we always choose a dt small enough
that we never have to make the slowing factor anywhere near that small.
Instead, we can vary the slowing factor to make the model's performance
match that of the real system (in experiments where we find this the
appropriate model). That occurs with a slowing factor many times as large
as the so-called "optimum."

The issue is not whether humans use output integrators; it is to be sure
that the simulation technique doesn't lead you into misleading conclusions
about what the analogue system being simulated is doing.

Yes. That is why we choose the smallest dt we can implement (it depends on
the frame rate of the display, because if the iterations are not
synchronized with the display we get moving dark and light bars on the
screen as the target and cursor are repeatedly erased and redrawn). Since
the time constant we need turns out to be around 6 seconds, and the
closed-loop time constant is something like 0.2 or 0.3 seconds, we are
still comfortably far from the lower limit of the slowing factor even at a
frame rate of 30 per second (25 per second on an old Mac).

As I explained some years ago, in setting up these simulations I have gone
to considerable lengths to be sure that no artifacts are introduced by the
computational method itself. At one point, using an oscilloscope, I tried
iteration times down to 0.001 second, to assure myself that a more
reasonable rate of 30 per second (reasonable for a computer display) would
give the same results. The performance of the model doesn't change
measurably until the iteration rate is around 10 per second or even less;
this is consistent with the well-known bandwidth of human visual-motor
tracking of about 2.5 Hz.

I don't know how the story got started that the slowing factor is needed
only to prevent "digital oscillations." I guess that's just one of those
"academic myths" which, once stated or picked up from a misunderstanding
acquire a life of their own.

I think it comes from the way you presented it in the Psych Review article.
You may not have intended it in this way, but that's the way it comes
across.

OK, then I was the guilty party. I take it back.

The slowing factor is a real parameter of a
human visual-motor tracking system. I hope this makes that clear.

I'd rather say that leaky integrator output functions give good fits to
experimental data, whether they are simulated digitally or implemented
in analogue electronics. Leaky integrators are low-pass filters--or rather,
they are band-pass filters, for which we don't care much about the low
frequency drop-off in this usage.

The bandwith has to extend clear to zero, as it does. The control system
can maintain the controlled variable near the reference level even with a
constant disturbance acting. That requires the loop gain to be maintained
all the way to DC. A leaky integrator is a low-pass filter; your first
guess was right.

If we write the leaky integrator as

o := o + (gain*e - k*o)*dt

(e = error signal, o = output)

we can see that the equilibrium state is reached when k*o = gain*e, or
o = (gain/k)*e. The effective gain is the nominal output gain divided by
the leakage factor. That is the zero-frequency gain. As frequency rises,
the effective gain falls off slowly until the leakage per cycle becomes
much less than the integrative term; then the curve goes as 1/f. At the
lowest frequencies the gain versus frequency curve is almost horizontal.

By the way, one should note that if the output function is a _leaky_
integrator, claims cannot be sustained that the error goes to zero
after a long time of steady reference and disturbance values. But then,
we seldom are exposed to long-term steady disturbances other than gravity,
and reference values usually also change rapidly, so this low-frequency
drop-off in effective loop gain does not matter at all in practice, if the
leak is slow enough.

If the effective zero-frequency gain is 30, a very conservative number, the
error is only 3% of the value of the reference signal with no disturbance
acting, and 97% of the effect of the disturbance is cancelled. That, as
they say, is good enough for government work. A leaky integrator does not
suffer any gain drop-off at low frequencies; on the contrary, the effective
gain rises (slightly) all the way to zero frequency.

Best,

Bill P.

[Martin taylor 9710 17 11:00]

Bill Powers (971016.2025 MDT)

Leaky integrators are low-pass filters--or rather,
they are band-pass filters, for which we don't care much about the low
frequency drop-off in this usage.

The bandwith has to extend clear to zero, as it does. The control system
can maintain the controlled variable near the reference level even with a
constant disturbance acting. That requires the loop gain to be maintained
all the way to DC. A leaky integrator is a low-pass filter; your first
guess was right.

Yes, you are right. I apologize for the error. Fingers typing without
engaging brain, as happens far too often. What you say is obviously correct,
as soon as brain engagement occurs.

Martin

[From Rupert Young (971018.1300 BST)]

(Bill Powers (971014.0745 MDT)

o = leak*(o + (gain*e)/S)

Is this equivalent to yours ? I note that the gain and slow can be combined
into one value here.

Yes, that would be redundant. Also I don't think the signs are right in
that example.

I checked back in the spreadsheet and this equation does seem to be correct.

(Bill Powers (971008.0725 MDT)

If you want to experience the joy of discovery, I suggest that you solve
the above equations for the error signal, using the same simulation
strategy with S set equal to (1 + gain), but now adding a disturbance d
with a value of 10 or 20 or so: the equations with the disturbance are

e = r - p;
o = o + (gain*e - o)/S
p = o + d;

If you like, you can first solve the equations algebraically, writing them as

e = r - p
o = gain*e
p = o + d

... and solving by sucessive substitutions as above. If you solve for the
output as well as for the error, you will learn something about how the
output relates to the disturbance.

But then set up the simulation and spend 15 minutes actually writing down
numbers. The result is quite beautiful.

Not wanting to miss out on an experience of discovering something beautiful
perhaps you could give me a hint as to what equations to use in the simulation.
I did the first bit and, as mentioned earlier, got

      r - d
e = ----------
     1 + gain

and

     gain*(r - d)
o = --------------
      1 + gain

though wasn't quite sure how to use these in the simulation.

Regards,
Rupert

[From Bill Powers (971018.1020 MDT)]

Rupert Young (971018.1300 BST)--

Not wanting to miss out on an experience of discovering something beautiful
perhaps you could give me a hint as to what equations to use in the
simulation. I did the first bit and, as mentioned earlier, got

     r - d
e = ----------
    1 + gain

and

    gain*(r - d)
o = --------------
     1 + gain

though wasn't quite sure how to use these in the simulation.

These equations represent relationships you should see when you run the
simulation -- the steady-state final values of the variables. What I had in
mind, however, was just plugging numbers into these two equations and
seeing how output and error behave when you change gain. Start by setting d
= 0: no disturbance. Then set r to some fixed number like 100, and
calculate the output and error signal for a set of values of gain, like
1,2,4,8,16,32, and 64.

Then set the reference signal to 0 and the disturbance to 100, and run
through the gain values again.

Another thing that's fun is to set the reference signal to 100 and the gain
to 100, and then increase the disturbance from zero until you get zero
output and zero error.

After you've done these calculations and written down a lot of numbers,
you'll start saying, "Well, of course, it has to work that way!" And you
might even think it's beautiful.

Best,

Bill P.

[Hans Blom, 971020b]

(Bill Powers (971016.1016 MDT))

Bill:

The output time-constant that fits the data the best at any
repetition rate is about 6 seconds.

Hans:

There are two possibilities that I see right now:

Bill:

This is not a curve-fit model, since the observed time constant is a
few tenths of a second.

I thought I was just quoting you: "The output time-constant that fits
the data the best at any repetition rate is about 6 seconds." To me
this statement implies that the output time-constant is the result of
fitting some data to some parameter whose value is the result of some
best fit. Now you say the opposite. How am I to understand you?

A major function of feedback _is_ to speed things up.

That's new to me! A control engineer would insist that the delay (or
phase shift) which is introduced by the signal traveling around the
loop before it can be used for feedback must necessarily slow things
down compared to a signal that only has to traverse the forward part
of the path...

It is well known that in a first-order lag control system, the
effective time constant is the time constant of the lag divided by
the loop gain. If the time constant of the lag is 6 seconds and the
loop gain is 30, the time constant of a reaction to a
step-disturbance will be about 0.2 seconds. This is easily
observable in simulations and real control systems.

In practice, it's usually quite difficult -- and often impossible --
to ensure that the control system is dominated by a first-order lag
only. Remember the now outdated 709 op-amp which didn't have this
characteristic, which was only introduced in the 741? First-order lag
is not a natural property of a system, and even in the 741 it was
quite a problem to have the second time constant at a high enough
frequency (now usually > 10 MHz). If it isn't, there is a 180 degrees
phase shift at frequencies where the gain is still greater than 1,
which will result in oscillatory behavior rather than control. Even
in that seemingly simple 741, it is the _high_ frequency (> 1 MHz)
characteristics that determine whether the thing as a whole has a
first-order lag ("leaky integrator") character at _low_ frequencies.
Although what you say above is correct, it appears to me that you put
the cart before the horse...

How much do you REALLY know about control systems, Hans? Your
comments make me wonder.

I frequently wonder myself, Bill... But then again I console myself
with the fact that I did design some successful "real world" control
systems. So all's not lost ;-).

Greetings,

Hans

[From Bill Powers (971020.0810 MDT)]

Hans Blom, 971020b--

Bill:

This is not a curve-fit model, since the observed time constant is a
few tenths of a second.

I thought I was just quoting you: "The output time-constant that fits
the data the best at any repetition rate is about 6 seconds."

Then look again. I said that "a model with a leaky integrator output
function fits the data the best." We do not have any data on the actual
open-loop time constant of the real system; we can observe only the
closed-loop time constant and the loop gain.

A major function of feedback _is_ to speed things up.

That's new to me! A control engineer would insist that the delay (or
phase shift) which is introduced by the signal traveling around the
loop before it can be used for feedback must necessarily slow things
down compared to a signal that only has to traverse the forward part
of the path...

Go back and read H. S. Black's 1934 article in which he showed how negative
feedback could broaden the bandwidth of an amplifier. In most cases, the
delay through circuit components is only a minor consideration compared
with delays due to integrative lags, acceleration of masses, and so on. If
you want an amplifier that has a gain of 10 at 1 MHz, without feedback, you
have to put up with a gain of (for example) 100 at 10 KHz. But a control
system can start with a DC gain of 1000, and using a feedback fraction of
0.99, produce amplification that remains at 10 +/- 0.1 over the entire
spectrum from DC to 1 MHz. For a given desired gain, you can get a much
wider flat bandwidth with feedback than without it -- as well as other
benefits that Black pointed out, such as immunity from large changes in
forward amplifier characteristics. All that was known in 1934.

It is well known that in a first-order lag control system, the
effective time constant is the time constant of the lag divided by
the loop gain. If the time constant of the lag is 6 seconds and the
loop gain is 30, the time constant of a reaction to a
step-disturbance will be about 0.2 seconds. This is easily
observable in simulations and real control systems.

In practice, it's usually quite difficult -- and often impossible --
to ensure that the control system is dominated by a first-order lag
only. Remember the now outdated 709 op-amp which didn't have this
characteristic, which was only introduced in the 741? First-order lag
is not a natural property of a system, and even in the 741 it was
quite a problem to have the second time constant at a high enough
frequency (now usually > 10 MHz). If it isn't, there is a 180 degrees
phase shift at frequencies where the gain is still greater than 1,
which will result in oscillatory behavior rather than control. Even
in that seemingly simple 741, it is the _high_ frequency (> 1 MHz)
characteristics that determine whether the thing as a whole has a
first-order lag ("leaky integrator") character at _low_ frequencies.
Although what you say above is correct, it appears to me that you put
the cart before the horse...

Stabilizing an op-amp merely modifies the specifications of the amplifier
by reducing the upper limit of usable bandwidth. The result is that at low
frequencies one can treat the amplifier as a constant of proportionality.
If you want to make a leaky integrator out of it, you connect its output to
its inverting input through a capacitor paralleled by a resistor, and apply
an input voltage to the same input through another resistor. The maximum
frequency at which the computing element will accurately portray the
behavior of a leaky integrator is then the usable bandwidth of the op-amp
times the tolerable error. If the usable bandwidth is 10 MHz, and the
acceptable error is 0.1%, then you can handle signal variations up to about
10 KHz (rough rule of thumb) without significant loss of accuracy.

How much do you REALLY know about control systems, Hans? Your
comments make me wonder.

I frequently wonder myself, Bill... But then again I console myself
with the fact that I did design some successful "real world" control
systems. So all's not lost ;-).

I've seen only one example of your real-world control systems. Do you have
any references to examples you designed before you learned about "modern
control theory?"

And why am I suspicious about this sudden attack of humility?

Best,

Bill P.