Reachability in depth: the Gramian computed, the minimum-energy input and the PBH test
The Gramian of the double integrator computed step by step, the input that moves the state and the proof that it is the minimum-energy one, the cost of being quick, a discrete-time example and the Popov-Belevitch-Hautus test.
https://www.electronics-engineering.com/en/reachability-in-depth-gramian-minimum-energy/
This page goes deeper into the lesson on reachability and controllability: it computes the Gramian in full on an example, the double integrator, derives the input that moves the state and proves that it is the minimum-energy one, shows the cost of being quick, solves a discrete-time example in the minimum number of steps and applies the PBH test to find the mode that the input cannot see.
The Gramian computed by hand: the double integrator
The best way to understand the Gramian is to compute it in full once. Take the double integrator, a unit mass pushed by a force:
is the position,
the velocity,
the force.
![]()
Step 1: Kalman’s test.
, so
, with determinant
: rank 2, the system is reachable.
Step 2: the exponential. Since
, the series stops at the second term:
, and therefore
.
Step 3: the Gramian. Integrate the product of the vector with its transpose:
![Rendered by QuickLaTeX.com \[ W(T) = \int_0^T \begin{pmatrix} \tau \\ 1 \end{pmatrix}\begin{pmatrix} \tau & 1 \end{pmatrix}d\tau = \int_0^T \begin{pmatrix} \tau^2 & \tau \\ \tau & 1 \end{pmatrix}d\tau = \begin{pmatrix} T^3/3 & T^2/2 \\ T^2/2 & T \end{pmatrix} \]](https://www.electronics-engineering.com/wp-content/ql-cache/quicklatex.com-41f97bc4d76d01796ed5eeba33de5b1b_l3.png)
The determinant is
, positive for every
: the Gramian is invertible, as the theorem promises. The inverse is
![]()
Step 4: the input. We want to move the mass by
and leave it at rest:
. Then
. With
we have
, and the input given by the Gramian formula is
![]()
A linearly decreasing force: it pushes forward in the first half and brakes in the second, symmetrically.
Step 5: the check. Integrating twice from zero initial conditions:
![Rendered by QuickLaTeX.com \[ x_2(t) = \frac{6d}{T^2}\left(t - \frac{t^2}{T}\right),\qquad x_1(t) = d\left(3\frac{t^2}{T^2} - 2\frac{t^3}{T^3}\right) \]](https://www.electronics-engineering.com/wp-content/ql-cache/quicklatex.com-4d4de2652e2b83ed7a56302f4b380556_l3.png)
and at
:
,
. The transfer succeeds exactly.

Why it is the minimum-energy input
The energy spent by this input can be computed without integrating
: substituting
,
![Rendered by QuickLaTeX.com \[ E = \int_0^T u^Tu\,dt = x_f^TW^{-1}\left(\int_0^T e^{A(T-t)}BB^Te^{A^T(T-t)}dt\right)W^{-1}x_f = x_f^TW(T)^{-1}x_f \]](https://www.electronics-engineering.com/wp-content/ql-cache/quicklatex.com-3d2800332c5fea83a9be3cdc941f77d4_l3.png)
In our example
.
Theorem. Among all the inputs that bring the state from 0 to
in a time
, the Gramian one has the minimum energy.
Proof. Let
be another input performing the same transfer. By Lagrange’s formula the difference
must produce a zero final state:
. The energy is
![]()
The cross term is
. What remains is
, with equality only for
. ∎

The practical meaning. Halving the allowed time multiplies the energy by 8 and the peak force
by 4. This is why a system that is reachable “in theory” may not be so in practice: actuators have limits, and a nearly singular Gramian (directions of the state that the input moves with difficulty) turns into huge inputs.
A discrete-time example: arriving in n steps
The system
with
![]()
is the sampled double integrator (position and velocity, with the step as the unit of time).
,
, determinant
: reachable, so every state is reached in at most two steps.
We want
. From the solution formula
![]()
Check:
(the mass has gained speed),
. In one step it would be impossible:
only changes the velocity. In discrete time the minimum number of steps is tied to the rank of the partial matrices
, and it is the principle of deadbeat control (lesson on digital control).
The PBH test on an example
Take again the two tanks in parallel from the example in the lesson,
,
. The only eigenvalue is
, and
![]()
has rank 1: the test fails at
. The vector
, which annihilates the matrix from the left (
and
), points to the combination of the state that the input cannot see: exactly the level difference
, which evolves on its own with the mode
.
Common mistakes
- Computing the determinant when
is not square: with
inputs
is
, and what counts is the rank, not the determinant (which does not exist). - Stopping at
with
: all powers up to
are needed. - Confusing reachability and stability: an unstable system can be perfectly reachable (and therefore stabilizable by feedback), a stable one may not be.
- Bringing
in: reachability depends only on
and
; the output concerns observability. - Thinking that time matters in continuous time: if the system is reachable, it is so in any time
; the time only changes the “price”, that is the energy
.
Exercises on the topic, from Kalman’s test to the minimum energy, are on the exercise page linked at the top.





