harold.controllability_matrix

harold.controllability_matrix(G, compress=False)

Computes the Kalman controllability and the transformation matrix. The algorithm is the literal computation of the controllability matrix with increasing powers of A.

Numerically, this test is not robust and prone to errors.

Parameters:
  • G (State, tuple) – System or a tuple of (n,n), (n,m) arraylike
  • compress (bool, optional) – If set to True, then the returned controllability matrix is row compressed, and in case of uncontrollable modes, has that many zero rows.
Returns:

  • Cc ((n,nm) ndarray) – Kalman Controllability Matrix
  • T ((n,n) ndarray, tuple) – The transformation matrix such that T^T * Cc is row compressed and the number of zero rows at the bottom corresponds to the number of uncontrollable modes.
  • r (int) – Numerical rank of the controllability matrix