7. Controllability and Observability

7.1 Tests for Controllability and Observability

<< ControlSystems`

ss = 
      StateSpace[{{0, 1}, {-1, -2}}, {{1}, {-1}}, {{1, 0}, {1, 
            1}}]

Controllable[ss]

OutputControllable[ss]

Observable[ss]

Controllable[undefinedsystem]

ControllableSpaceSize[ss]

% == CountStates[ss]

7.2 Controllability and Observability Constructs

system = 
      StateSpace[{{-3, 1, 0}, {-5, 0, 1}, {-3, 0, 
            0}}, {{1}, {2}, {3}}, {{1, 0, 0}}]

ControllabilityMatrix[system]

Rank[%]

Controllable[system]

ObservabilityMatrix[system]

Rank[%]

Observable[system]

StateSpace[{{0.9512, 0}, {0, 0.9048}}, {{4.88, 4.88}, {-0.019, 
          0.0095}}, {{0.01, 0}, {0, 1}}, 
      Sampled -> Period[5. ]]

ControllabilityGramian[%]

7.3 Dual System

StateSpace[{{0, 1}, {a1, a2}}, {{1}, {-1}}, {{1, 0}, {1, 
          1}}]

DualSystem[%]

DualSystem[%%, ComplexVariables -> None]

DualSystem[%%%, ComplexVariables -> {a1}]