I have a system with two inputs (throttle and brake) and one output (speed). How does one design a controller in such a way that the two outputs of the controller (throttle and brake) are never both greater than zero (so that it doesn't accelerate and brake simultaneously)?


  • $\begingroup$ What type of system? In general, I wouldn't recommend such a system. What are the conditions if both are pressed? Should the one that has primarily be chosen overrule the other, or should brake always overrule throttle, or something else? I wouldn't recommend the former, for obvious reasons of safety. I wouldn't recommend the latter either, as it would cause jerky system behaviour. $\endgroup$ Commented Sep 26, 2015 at 18:29
  • $\begingroup$ A system is a mobile platform. Both pressing at the same time shouldn't be happening as you'd just be wasting power for acceleration and ruining your brakes for no reason. The good thing is that one is used for accelerating and the other one for deceleration so I was hoping there's a way to "teach" the regulator that so it doesn't use both simultaneously. $\endgroup$ Commented Sep 26, 2015 at 18:44
  • $\begingroup$ So, again, which should overrule the other in which cases? $\endgroup$ Commented Sep 26, 2015 at 18:48
  • $\begingroup$ Throttle should overrule when accelerating, brake should overrule when decelerating. $\endgroup$ Commented Sep 26, 2015 at 18:54
  • $\begingroup$ Can you draw a block diagram of your system? The way you're describing it seems exactly opposite of what I would expect - input a speed, and the outputs are throttle and brake position. $\endgroup$
    – Chuck
    Commented Sep 26, 2015 at 20:43

2 Answers 2


The system is nonlinear for acceleration. If the desired acceleration value is bigger than 0, use the throttle, if smaller than 0, use the break.

Other than that, you should be fine using a cascaded control loop with an inner acceleration loop and an outer speed control loop. Despite the fact that it has a discontinuity in the acceleration control loop, you should be able to treat it as a linear one if both break and throttle can be set to arbitrary small values, creating a smooth transition between the use of throttle and break at 0 acceleration.


This should be straightforward, because the throttle can never provide negative acceleration and the brake can never provide positive acceleration.

It sounds like you want to create a linear mapping from an input acceleration $(a)$ to a throttle and brake output. If the response of the throttle system for a given velocity $v$ is

$$ f(x_{throttle}) = a $$

(where $a > 0$), and the response of the braking system is

$$ g(y_{brake}) = a $$

(where ($a < 0$ if $v > 0$ and is 0 otherwise), you will just define the controller in a piecewise fashion.

$$ control_{throttle}(a) = \begin{cases} f^{-1}(a) & a \gt 0 \\ 0 & a \le 0 \end{cases} $$ and $$ control_{brake}(a) = \begin{cases}g^{-1}(a) & a \lt 0 \\ 0 & a > 0 \\ C_{parkingbrake} & a = 0 \end{cases} $$


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.