Main Content

Check passivity of linear systems

returns
a logical value of 1 (`pf`

= isPassive(`G`

)`true`

) if the dynamic system
model `G`

is passive, and a logical value of 0
(`false`

) otherwise. A system is *passive* if
all its I/O trajectories (*u*(*t*),*y*(*t*)) satisfy:

$${\int}_{0}^{T}y{\left(t\right)}^{T}u\left(t\right)dt}>0,$$

for all *T* > 0.
Equivalently, a system is passive if its frequency response is positive
real, which means that for all *ω* >
0,

$$G\left(j\omega \right)+G{\left(j\omega \right)}^{H}>0$$

(or the discrete-time equivalent). If `G`

is
a model array, then `isPassive`

returns a logical
array of the same array dimensions as `G`

, where
each entry in the array reflects the passivity of the corresponding
entry in `G`

.

For more information about the notion of passivity, see About Passivity and Passivity Indices.

returns
1 (`pf`

= isPassive(`G`

,`nu`

,`rho`

)`true`

) if `G`

is passive with
index `nu`

at the inputs, and index `rho`

at
the outputs. Such systems satisfy:

$${\int}_{0}^{T}y{\left(t\right)}^{T}u\left(t\right)dt}>\nu {\displaystyle {\int}_{0}^{T}u{\left(t\right)}^{T}u\left(t\right)dt}+\rho {\displaystyle {\int}_{0}^{T}y{\left(t\right)}^{T}y\left(t\right)dt},$$

for all *T* > 0.

Use

`rho`

= 0 to check whether a system is*input passive*with index`nu`

at the inputs.Use

`nu`

= 0 to check whether a system is*output passive*with index`rho`

at the outputs.

For more information about input and output passivity, see About Passivity and Passivity Indices.

`[`

also
returns the relative index for the corresponding passivity bound (see `pf`

,`R`

] =
isPassive(`G`

,___)`getPassiveIndex`

). `R`

measures
the amount by which the passivity property is satisfied (`R`

<
1) or violated (`R`

> 1). You can use this syntax
with any of the previous combinations of input arguments.

`getPassiveIndex`

| `getPeakGain`

| `getSectorCrossover`

| `getSectorIndex`

| `passiveplot`

| `sectorplot`