isproper
Determine if dynamic system model is proper
Syntax
B = isproper(sys)
B = isproper(sys,'elem')
[B,sysr] = isproper(sys)
Description
B = isproper(sys)
returns
a logical value of 1
(true
)
if the dynamic system model sys
is proper and a
logical value of 0
(false
) otherwise.
A proper model has relative degree ≤ 0 and is causal.
SISO transfer functions and zero-pole-gain models are proper if the
degree of their numerator is less than or equal to the degree of their
denominator (in other words, if they have at least as many poles as
zeroes). MIMO transfer functions are proper if all their SISO entries
are proper. Regular state-space models (state-space models having
no E
matrix) are always proper. A descriptor state-space
model that has an invertible E
matrix is always
proper. A descriptor state-space model having a singular (non-invertible) E
matrix
is proper if the model has at least as many poles as zeroes.
If sys
is a model array, then B
is 1
if
all models in the array are proper.
B = isproper(sys,'elem')
checks each model
in a model array sys
and returns a logical array
of the same size as sys
. The logical array indicates
which models in sys
are proper.
[B,sysr] = isproper(sys)
also returns an
equivalent model sysr
with fewer states (reduced
order) and a non-singular E
matrix, if sys
is
a proper descriptor state-space model with a non-invertible E
matrix.
If sys
is not proper, sysr = sys
.
Examples
References
[1] Varga, Andràs. "Computation of irreducible generalized state-space realizations." Kybernetika 26.2 (1990): 89-106.
Version History
Introduced before R2006a