Controllability
From Academic Kids

Controllability is an important property of a control system, and the controllability property plays a crucial role in many control problems, such as stabilization of unstable systems by feedback, or optimal control.
Controllability and observability are dualities of the same problem.
Roughly, the concept of controllability denotes the ability to move a system around in its entire configuration space using only certain admissible manipulations. The exact definition varies slightly within the framework or the type of models applied.
The following are examples of variations of controllability notions which have been introduced in the systems and control literature,:
 State controllability.
 Output controllability
 Controllability in the behavioural framework
Contents 
State controllability
The states of a system is a collection of variables that at any given time completely describes the system. In particular, no information on the past of a system will help in predicting the future, if the states at the present time are known.
Thus state controllability is usually taken to mean that it is possible  by admissible inputs  to steer the states from any initial value to any final value within some time window.
Note that controllability does not mean that once you reach a state that you will be able to keep it there, merely that you can reach that state.
Linear state controllability
For a discrete linear statespace system the state equation is
 <math>\textbf{x}(k+1) = A\textbf{x}(k) + B\textbf{u}(k)<math>
Where <math>A<math> is an NxN matrix. The test for controllability is that the matrix
 <math>C = \begin{bmatrix}B; AB; A^{2}B; ...; A^{N1}B\end{bmatrix}<math>
has full rank (i.e., <math>rank = N<math>). The rationale for this test is that if <math>N<math> columns of <math>C<math> are linearly independent then each of the <math>N<math> states is reachable by proper inputs.
Example (N=2)
For example, consider the case when <math>N=2<math>. If <math>\begin{bmatrix}A; AB\end{bmatrix}<math> has rank 2full rankthen <math>A<math> and <math>AB<math> are linearly independent and span the entire plane. If the rank is 1 then both <math>A<math> and <math>AB<math> are collinear and cannot possible span the plane.
Assume that the initial state is zero.
At time <math>k=0<math>: <math>x(1) = A\textbf{x}(0) + B\textbf{u}(0) = B\textbf{u}(0)<math>
At time <math>k=1<math>: <math>x(2) = A\textbf{x}(1) + B\textbf{u}(1) = AB\textbf{u}(0) + B\textbf{u}(1)<math>
At time <math>k=0<math> all of the reachable states are on the line formed by the vector <math>B<math>.
At time <math>k=1<math> all of the reachable states are linear combinations of <math>AB<math> and <math>B<math>.
If the system is controllable then these two vectors can span the entire plane and can be done so for time <math>k=2<math>.
The assumption made that the initial state is zero is merely for convenience.
Clearly if all states can be reached from the origin then any state can be reached from another state (merely a shift in coordinates).
This example holds for all positive <math>N<math>, but the case of <math>N=2<math> is easier to visualize.
Analogy for example of N=2
Consider an analogy to the previous example system. You are sitting in your car on an infinite, flat plan and facing north. The goal is to reach any point in the plane by driving a distance in a straight line, come to a full stop, turn, and driving another distance, again, in a straight line. If your car has no steering then you can only drive straight, which means you can only drive on a line (in this case the northsouth line since you started facing north). The lack of steering case would be analogous to when the rank of <math>C<math> is 1 (the two distances you drove are on the same line).
Now, if your car did have steering then you could easily drive to any point in the plane and this would be the analogous case to when the rank of <math>C<math> is 2.
If you change this example to N=3 then the analogy would be flying in space.
You are allowed to:
 fly in a straight line
 come to a full stop
 turn in any direction
 fly in a straight line
 come to a full stop
 turn in any direction
 fly in a straight line
 come to a full stop
Although the 3dimensional case is harder to visualize, the concept of controllability is still analogous.
Output controllability
Output controllability means the ability to manipulate the outputs of a system by admissible inputs. For a system with several outputs, it might not be possible to manipulate these outputs independently by the admissible inputs, in which case the system is not output controllable.
Controllability in the behavioural framework
In the socalled behavioural system theoretic approach, due to Willems (see people in systems and control) the models considered do not directly define an inputoutput structure. In this framework systems are described by admissible trajectories of a collection of variables, some of which might be interpreted as inputs or outputs.
A system is then defined to be controllable in this setting, if any past part of a behaviour (state trajectory) can be concatenated with any future part of a behaviour with which it share the current state in such a way that the concatenation is contained in the behaviour, i.e. is part of the admissible system behaviour.