Let's say I have the standard, time-invariant, linear control theory problem below:



Incidentally, this is a digital control theory problem, so it's really discrete. I've glossed over this detail so far, but I would ultimately like to achieve dead-beat control.

Let's initially propose the vector representations

$ \mathbf{x}= \begin{bmatrix} x \\ \dot{x} \\ y \\ \dot{y} \\ \theta \\ \dot{\theta} \end{bmatrix} \quad \mathbf{u}=\begin{bmatrix} F \\ \ddot{\theta} \end{bmatrix} $

where $x,y$ represent position in the plane and $\theta$ an angular heading.

Given are the nonlinear differential equations (where $b$ is a friction constant):



Problem 1. $F$ is in my case a binary switch (off or on). It can only be 0 or 1. I would like my controller to be aware of this. I've tried researching bang-bang controllers but examples there usually only involve one variable, whereas I have a mix of a binary switch and a continuous variable $\theta$.

One solution is to simply pretend it is continuous, and output 1 if $F>0.5$, and 0 if $F<0.5$. Or do some stochastic mix. This feels like it's prone to slow response and extremely local planning however. Is there any research or methodology I can read about where this is analyzed?

Perhaps this can be made into a dynamic programming problem to find the smallest number of (discrete) steps to control $\mathbf{x},\dot{\mathbf{x}}$ to desired values?

Problem 2. Is there a way I can linearize the equations above (rough approximations can be OK) into the classic control theory form above? (See Problem 1 for constraints on $F$). Perhaps by introducing some new dummy variables?


  • 1
    $\begingroup$ Since $\ddot{\theta}$ is an input (it can be chosen freely), then this only implies that $\theta(t)$ can be anything, as long as it is twice differentiable. But in continues time for a small time step you could find such a $\theta(t)$ such that on average during that time period the applied force $\vec{F}$ can have any magnitude between zero and one (Newton) (either by fast switching of F or fast rotation of $\theta$). Or do you also have constraints on how fast $F$ can switch and $\theta$ can accelerate/rotate? Otherwise you just have the following inequality constraint $\|\vec{F}\|\leq1$. $\endgroup$ – Kwin van der Veen Dec 7 '16 at 23:56
  • $\begingroup$ Yes, there are two constraints: $|\ddot{\theta}|\le K$ where $K$ is some constant, and $F=\{0,1\}$. Indeed, if there wasn't the first constraint, then effectively $||\vec{F}||\le 1$ as you said. Unfortunately, that's not the case here and that's why I'm exploring ideas to make the controller aware of these odd constraints. $\endgroup$ – bombax Dec 8 '16 at 0:50
  • $\begingroup$ Incidentally, there are currently no constraints on how fast $F$ can switch. $\endgroup$ – bombax Dec 8 '16 at 0:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.