[From Bruce Abbott (2014.02.01.1040 EST)]
[Martin Taylor 2014.01.31.23.53] –
[From Bruce Abbott (2014.01.31.1915 EST)]
The recent discussion of feedforward versus feedback control systems, together with Rick Marken’s prompting, led me to create a demonstration program that shows off the advantage of feedforward control. The program was modified from the TrackAnalyze demo that is included in the suite of programs that accompany LCS III, and works in exactly the same way with one small difference: There is now a pair of radio buttons that can be set for either feedback or feedforward control.
MT: Bruce, I’m afraid I don’t see the point of this demo. What it looks like to me is that in the “feedforward” phase you are tracking normally with no lag, because the output and disturbance are both being delayed equally. The fitted model may have a controlled variable that is delayed, but so far as I understand it, the human does not. I don’t see where feedforward or prediction comes into it. Maybe I’m not looking at it the way you see it.
MT: Am I missing something, that you and Rick both think the problem ought to arise when there’s no environmental feedback delay and the effects of both output and disturbance are equally delayed in perception? That would be a most unusual situation in the real world, where perception usually is much faster than the effect of output on the environmental variable. In the computer-simulated world, we often make the “cursor” respond instantaneously to the mouse, but that’s not the usual case in everyday life.
I hope the diagram below will clarify:

In Ashby’s feedforward controller (top diagram), the potential disturbance to a variable, x, is sensed before it reaches x. A mechanism (left box) converts the disturbance waveform into an appropriately scaled action waveform. The disturbance impinges on x after some delay and the counteracting action is applied to x at the same time. The controlled variable is simply x plus any residual error.
This feedforward system will work even if there is essentially no delay, so long as the action can be applied approximately in phase with the disturbance (similar to the delays present in the output of a feedback control system relative to variations in the disturbance). For the demo, I used a 1 second delay to emphasize the advantage of having advance information about the disturbance when delays are present.
For the demo, I did not have a way to get inside the participant’s nervous system and create the function shown in the left box of the Ashby controller. So instead, I had the participant act as a negative feedback control system to keep the cursor tracking the target. It’s important to keep in mind that in this case the target is supposed to represent the disturbance that is being sensed by the participant in advance of its arrival at the variable x that is to be controlled. To the extent that the participant accurately follows the target, the participant’s cursor movements will provide output actions that can be subtracted from x just as in the Ashby feedforward controller. The primary variable to be controlled here is x; this is achieved by acting to control the cursor position relative to the disturbance. Controlling the latter is the only the means by which x is controlled. The negative feedback controller (left box) is here being treated as equivalent to the input-output device of the Ashby-style feedforward control system.
In retrospect, I should have made the variable x explicit in the demo, to make it clear that it is x that is the variable to be controlled; controlling the target-cursor relationship is just the means through which this control over x is achieved. I could have made x follow its own waveform, completely different from that of the disturbance, while the participant’s actions almost completely oppose the disturbance’s effect on x.
In the “feedback” mode provided by the demo, the actions produced by the control system are delayed to simulate a situation in which control is sluggish. By the time the participant’s actions begin to have an influence on the CV, the disturbance value has changed, so that the action is not properly opposing the disturbance. The feedforward controller, by sensing the state of the disturbance in advance of its effects on the CV, allows actions to be developed early enough to compensate for the delay in the effects of those actions on the CV, thus allowing for good control despite these delays.
Bruce
