Bang Bang Control
en.wikipedia.org
en.wikipedia.org
To put it another way, traction factors a lot more heavily into the best route around a corner and therefore demands fewer instances of full-on/full-off throttle and braking that you describe.
In racing, it is "cheap" in the sense of a sort of cost function based on response time.
Lutz.
So who's the "typical reader"? Web designers? Startup founders?
Bonus ironic jab/useful information combo: https://simple.wikipedia.org/wiki/Hysteresis
You mean for Hacker News, or Wikipedia? There's actually a Wikipedia article about that (https://en.wikipedia.org/wiki/Wikipedia:Readers_first), but a good rule of thumb is that articles should be written for the layperson except where that would impact accuracy. I think Styrophone's explanations above demonstrate that this particular article could be a lot clearer without sacrificing accuracy.
"Plant" is a legacy term referring to the device or system acting on the state you're trying to control. Sticking with thermostats, the plant is the heating element.
A straightforward way to think of hysteresis is that the output depends on the history of the input. A simple example of hysteresis in a temperature controller would be to turn off heat if the temperature rises above threshold A, but only turn on heat if the temperature falls below threshold B.
"These controllers may be realized in terms of any element that provides hysteresis" -- This is indeed awkward phrasing, since it could be read as though the property of hysteresis is fundamental to create a bang-bang controller. In fact, using hysteresis is "just" a best practice. Strictly speaking, you could make a hot water heater that turns heat on and off based on a single hard temperature threshold as measured by a thermometer, and it would work. However, any noise in the system will make the output jittery and cause unnecessary cycles. Having a "heat off" threshold higher than the "heat on" threshold makes for smoother transitions.
Specialities mangle language. It's just the way the world is.
They're everywhere - A/D are PWM, class D amps are PWM, power supplies...
But I calculate a pulse width - how long the valve should be opened for in order to correct the error.
For a turbine deflector loop it might execute every 1s with a minimum pulse time of 50ms and a maximum pulse time of 1s.
For the weir control it might execute every 60s with a minimum pulse time of 300ms and a maximum pulse time of 20s, because the weir continues to move after the output is de-energized and the response of the water level over the weir depends on the area of the body of water behind the weir.
I set a gain that determines how long the output is energized (the pulse width) for a given magnitude error.
In my case the actuators are still discrete so the signal stays as a pulse train, it is not filtered up to be a continuous time signal.
[0]: https://www.google.ca/#tbm=isch&q=obermeyer+weir [1]: https://www.google.ca/#q=pelton+turbine+deflector&tbm=isch
Feedforward control is unusual. In feedback control, you look at the error and try to zero it out. Usually, there's some lag in the system, which leads to undershoot, overshoot, oscillation, and all the usual problems of feedback systems. Maxwell (yes, that Maxwell) figured all this out in 1868, and his little paper "On Governors" defined linear control theory for a century.[1]
Feedforward control, though, is about measuring disturbance inputs, predicting what's going to happen, and adjusting controllable inputs so that the error remains near zero. An example is a heating system with an input for outside temperature as well as inside temperature. When the outside gets cold, the heating plant will be cranked up in advance of the inside getting cold. This is essential if the system being controlled has a lot of lag, like a big building's heating system.
Adaptive feedforward control is automatically identifying how the inputs affect the outputs by watching everything for a while. It's thus a form of machine learning. For the heating system example, a good controller might learn that a 10 degree drop outside means a 5 degree drop inside 1 hour later. It might also learn that the heating hot water temperature rises at 30 degrees an hour when the boiler is at full power. Such info can be used to decide to crank up the boiler half an hour after the outside temperature drops, so heating water will be available just when it's needed. This is a basic form of machine learning.
One big difference from the machine learning community is that controls people demand error bounds on their control algorithms. So the machine learning techniques used tend to be the ones ameninable to error analysis. Support vector machines, yes; deep neural nets, not so much.
[1] https://commons.wikimedia.org/wiki/File%3AOn_Governors.pdf
Convolution integral, Laplace transform, Z transform, frequency domain, impulse response, step response, digital filters... it's all amazing.