Robotics

Practical Robotics for Engineers #4: Controllability


categories: robotics, automation & robotics, control theory

New sub-topic in the series: control theory in state space. Before you design any controller — pole placement, LQR, a Luenberger observer, whatever — there's a question you have to answer first, and it's easy to skip past because it sounds abstract: can your control input actually reach every part of the system's behavior at all?


What controllability actually means, and why you check it

Controllability asks: using the control signal $$u(t)$$, can you drive the system from any starting state $$x(0)$$ to any target state $$x(t_f)$$ in finite time? If the answer is no, the system is hiding at least one internal state variable that your input has zero influence over — no matter how cleverly you design $$u(t)$$, that variable does its own thing. Concretely: if you try to design a state-feedback controller (LQR, pole placement) for an uncontrollable system, the math will simply fail for those hidden states — there's no physical way for a controller to stabilize a variable it can't touch. This is why controllability is always the first thing you check, before you invest any time in a controller design.
Task: checking controllability of a general 2nd-order system

A linear time-invariant system is written in state-space form $$\dot{x}(t) = Ax(t) + Bu(t)$$. For a general second-order dynamic system, the matrices are: $$A = \begin{bmatrix} 0 & 1 \\ -a_0 & -a_1 \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\ b_0 \end{bmatrix}$$

Step 1 — build the controllability matrix K. For a system of dimension $$n=2$$, the controllability matrix is assembled column by column: the input matrix itself, then the system matrix applied to it, $$K=\begin{bmatrix}B & AB\end{bmatrix}$$. The intuition: $$B$$ is where the input can push the state directly (one time-step in); $$AB$$ is where that push can reach one step of the system's own dynamics later; for higher-order systems you'd keep going, $$A^2B$$, $$A^3B$$, etc., until you've covered every direction the input can eventually reach. $$AB = \begin{bmatrix} 0 & 1 \\ -a_0 & -a_1 \end{bmatrix}\begin{bmatrix} 0 \\ b_0 \end{bmatrix} = \begin{bmatrix} b_0 \\ -a_1 b_0 \end{bmatrix}$$ $$K = \begin{bmatrix} 0 & b_0 \\ b_0 & -a_1 b_0 \end{bmatrix}$$

Step 2 — apply the Kalman rank criterion. The system is fully controllable if and only if $$\text{rank}(K)=n$$ — for a square $$2\times2$$ matrix, that's the same as saying its columns aren't parallel, i.e. $$\det(K)\neq0$$: $$\det(K) = (0\cdot(-a_1b_0)) - (b_0\cdot b_0) = -b_0^2$$ $$\det(K)\neq0 \iff b_0\neq0$$ In plain terms: as long as the input actually enters the system at all ($$b_0\neq0$$), this particular system is controllable — which makes physical sense, since with only one input channel feeding a chain of two integrators, that single non-zero entry is the only thing that could ever break the connection between the input and the second state variable.
Controllability doesn't tell you how to control a system — it only tells you whether it's possible before you spend any effort trying. Next post: back to the 2R arm from a couple posts ago, this time asking a related but different question — not "can I get there," but "which joint configurations make the arm temporarily lose a direction of motion no matter what the motors do." Thank you for reading!


Read more
Administrator

This post was written by the administrator

Recent Posts

Proof Problems in Mathematics The Beginning Integrals, Course Practical Physics for Engineers IT Matura Course | Algorithms IT Matura Course | Databases IT Matura Course | Theory IT Matura Course | Spreadsheet

Archive

Year 2022

Comments