detectable = StateSpace.Analysis.isDetectable(ss, method)
This function checks whether a state space system is detectable or not.
A system is detectable for the continuous-time case if all of the unobservable eigenvalues have negative real part.
Therefore, a observable system is always detectable.
To check detectability, staircase algorithm is used to separate the observable subspace from the unobservable subspace. Then, the unobservable poles are checked to be stable, i.e. to have negative real parts.
Modelica_LinearSystems2.StateSpace ss=Modelica_LinearSystems2.StateSpace( A=[-1, 1, 1;0, 1, 1;0,0,1], B=[0;0;1], C=[0,1,0], D=[0]); Boolean detectable; algorithm detectable := Modelica_LinearSystems2.StateSpace.Analysis.isDetectable(ss); // detectable = true
encapsulated function isDetectable import Modelica_LinearSystems2; import Modelica_LinearSystems2.StateSpace; input StateSpace ss "State space system"; output Boolean detectable "= true, if system is detectable"; end isDetectable;
Date | Author | Comment |
---|---|---|
2010-05-31 | Marcus Baur, DLR-RM | Realization |