.Modelica_LinearSystems2.StateSpace.Internal.isControllableSISO

Information

This function is to calculate whether a SISO state space system is controllable or not. Therefore, it is transformed to lower controller Hessenberg form
               | *    *     0   ...  0 |               | 0 |
               | .    .     .    .   . |               | . |
 Q*A*Q ' = H = | *   ...   ...   *   0 |,    Q*b = q = | . |,   c*Q = ( *, ..., * )
               | *   ...   ...   *   * |               | 0 |
               | *   ...   ...   *   * |               | * |

Note, that
rank(b, A*b, ..., An-1*b) = rank(q, H*q, ..., Hn-1*q)
and that
(q, H*q, ..., Hn-1*q)
is a lower triangular matrix and has full rank if and only if none of the elements in the diagonal is zero. That is, that neither qn or hi,i+1, i = 1,..., n-1 may be zero.

Interface

encapsulated function isControllableSISO
  import Modelica_LinearSystems2;
  import Modelica_LinearSystems2.StateSpace;
  input StateSpace ss "State space system";
  output Boolean controllable;
end isControllableSISO;

Generated at 2024-11-22T19:25:38Z by OpenModelicaOpenModelica 1.24.2 using GenerateDoc.mos