harold.hessenberg_realization

harold.hessenberg_realization(G, compute_T=False, form='c', invert=False, output='system')

A state transformation is applied in order to get the following form where A is a Hessenberg matrix and B (or C if ‘form’ is set to ‘o’ ) is row/col compressed

[x x x x x|x x]
[x x x x x|0 x]
[0 x x x x|0 0]
[0 0 x x x|0 0]
[0 0 0 x x|0 0]
[---------|---]
[x x x x x|x x]
[x x x x x|x x]
Parameters:
  • G (State, Transfer, 3-tuple) – A system representation or the A, B, C matrix triplet of a State realization. Static Gain models are returned unchanged.
  • compute_T (bool, optional) – If set to True, the array that would bring the system into the desired form will also be returned. Default is False.
  • form (str, optional) – The switch for selecting between observability and controllability Hessenberg forms. Valid entries are c and o.
  • invert (bool, optional) – Select which side the B or C matrix will be compressed. For example, the default case returns the B matrix with (if any) zero rows at the bottom. invert option flips this choice either in B or C matrices depending on the “form” switch.
  • output (str, optional) – In case only the resulting matrices and not a system representation is needed, this keyword can be used with the value 'matrices'. The default is 'system'. If 3-tuple is given and ‘output’ is still ‘system’ then the feedthrough matrix is taken to be 0.
Returns:

  • Gh (State, tuple) – A realization or the matrices are returned depending on the ‘output’ keyword.
  • T (ndarray) – If ‘compute_T’ is set to True, the array for the state transformation is returned.