harold.observability_matrix

harold.observability_matrix(G, compress=False)

Computes the Kalman controllability and the transformation matrix. The algorithm is the literal computation of the observability 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 observability matrix is row compressed, and in case of unobservability modes, has that many zero rows.
Returns:

  • Co (ndarray) – Kalman observability matrix with shape (nm x n)
  • T ((n,n) ndarray) – The transformation matrix such that T.T @ Cc is row compressed and the number of zero rows on the right corresponds to the number of unobservable modes.
  • r (int) – Numerical rank of the observability matrix