ObservabilityMatrix[ssm]
gives the observability matrix of the state-space model ssm.
ObservabilityMatrix
ObservabilityMatrix[ssm]
gives the observability matrix of the state-space model ssm.
Details
- For a standard state-space model:
-

continuous-time system 
discrete-time system - The observability matrix is given by
, where
is the dimension of
. - For a descriptor state-space model:
-

continuous-time system 
discrete-time system - The slow and fast subsystems can be decoupled as described in KroneckerModelDecomposition:
-

slow subsystem 
fast subsystem 
output equation - ObservabilityMatrix returns a pair of matrices
, based on the decoupled slow and fast subsystems. The matrices
and
are defined as follows, where
is the dimension of
, and
is the nilpotency index of
. -

slow subsystem 
fast subsystem - The observability matrices only exist for descriptor systems in which Det[λ e-a]≠0 for some λ.
Examples
open all close allBasic Examples (1)
Scope (2)
The observability matrix of a continuous-time system:
ObservabilityMatrix[StateSpaceModel[{{{0, 1}, {-10, -2}}, {{2}, {6}}, {{1, 0}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]]//MatrixFormA singular system returns two matrices:
om = ObservabilityMatrix[StateSpaceModel[{{{0., -1., 0., 0.}, {-3., 0., 0., 0.}, {10., 0., 0., -1.}, {0., 1., 1., 1.}},
{{0.}, {0.}, {0.}, {-1.}}, {{0., 0., 1., 2.}}, {{0.}}, {{-0.5, 0., 0., 0.}, {0., 0., -1., 0.},
{0., 0., 0., 0.}, {0., 0., 0., 0.}}}, SamplingPeriod -> None, SystemsModelLabels -> None]];MatrixForm /@ omProperties & Relations (3)
A system is observable if and only if its observability matrix has full rank:
ssm = StateSpaceModel[{{{1, -3, -1}, {-1, -2, 2}, {-1, 2, -2}}, {{1}, {-1}, {0}}, {{1, 1, 0}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];q = ObservabilityMatrix[ssm];{ObservableModelQ[ssm], MatrixRank[q] == Length[q]}The observability matrix of a discrete-time system does not depend on the sampling period:
ObservabilityMatrix[StateSpaceModel[{{{-3, 1, 0}, {-5, 0, 1}, {-3, 0, 0}}, {{1}, {2}, {3}}, {{1, 0, 0}}, {{0}}},
SamplingPeriod -> τ, SystemsModelLabels -> None]]//MatrixFormA descriptor system gives one matrix for the slow subsystem and one for the fast subsystem:
ssm = StateSpaceModel[{{{-1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{1}, {1}, {1}}, {{1, 2, 0}}, {{0}},
{{1, 0, 0}, {0, 0, 0}, {0, 1, 0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];
{qs, qf} = ObservabilityMatrix[ssm]Complete observability requires both matrices to be full rank:
{ObservableModelQ[ssm], MatrixRank[qf] === Length[qf]}Observability of the slow subsystem is determined by the first matrix:
{ObservableModelQ[{ssm, "Slow"}], MatrixRank[qs] === Length[qs]}Related Guides
Text
Wolfram Research (2010), ObservabilityMatrix, Wolfram Language function, https://reference.wolfram.com/language/ref/ObservabilityMatrix.html (updated 2012).
CMS
Wolfram Language. 2010. "ObservabilityMatrix." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2012. https://reference.wolfram.com/language/ref/ObservabilityMatrix.html.
APA
Wolfram Language. (2010). ObservabilityMatrix. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ObservabilityMatrix.html
BibTeX
@misc{reference.wolfram_2026_observabilitymatrix, author="Wolfram Research", title="{ObservabilityMatrix}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/ObservabilityMatrix.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_observabilitymatrix, organization={Wolfram Research}, title={ObservabilityMatrix}, year={2012}, url={https://reference.wolfram.com/language/ref/ObservabilityMatrix.html}, note=[Accessed: 12-June-2026]}