Main Content

Uncertain state-space model

Use `uss`

model objects to represent uncertain dynamic systems.

The two dominant forms of model uncertainty are:

Uncertainty in parameters of the underlying differential equation models (uncertain state-space matrices)

Frequency-domain uncertainty, which often quantifies model uncertainty by describing absolute or relative uncertainty in the frequency response (uncertain or unmodeled linear dynamics)

`uss`

model objects can represent dynamic systems with either or both
forms of uncertainty. You can use `uss`

to perform robust stability and
performance analysis and to test the robustness of controller designs.

There are several ways to create a `uss`

model object,
including:

Use

`tf`

with one or more uncertain real parameters (`ureal`

). For example:`p = ureal('p',1); usys = tf(p,[1 p]);`

For another example, see Transfer Function with Uncertain Coefficients.

Use

`ss`

with uncertain state-space matrices (`umat`

). For example:`p = ureal('p',1); A = [0 3*p; -p p^2]; B = [0; p]; C = ones(2); D = zeros(2,1); usys = ss(A,B,C,D);`

For another example, see Uncertain State-Space Model.

Combine numeric LTI models with uncertain elements using model interconnection commands such as

`connect`

,`series`

, or`parallel`

, or model arithmetic operators such as *, +, or -. For example:sys = tf(1,[1 1]); p = ureal('p',1); D = ultidyn('Delta',[1 1]); usys = p*sys*(1 + 0.1*D);

For another example, see System with Uncertain Dynamics.

Convert a double array or a numeric LTI model to

`uss`

form using`usys = uss(sys)`

. In this case, the resulting`uss`

model object has no uncertain elements. For example:M = tf(1,[1 1 1]); usys = uss(M);

Use

`ucover`

to create a`uss`

model whose range of possible frequency responses includes all responses in an array of numeric LTI models. The resulting model expresses the range of behaviors as dynamic uncertainty (`ultidyn`

).

Most functions that work on numeric LTI models also work on `uss`

models. These include model interconnection functions such as
`connect`

and `feedback`

, and linear analysis
functions such as `bode`

and `stepinfo`

. Some
functions that generate plots, such as `bode`

and
`step`

, plot random samples of the uncertain model to give you a
sense of the distribution of uncertain dynamics. When you use these commands to return
data, however, they operate on the nominal value of the system only.

In addition, you can use functions such as `robstab`

and
`wcgain`

to perform robustness and worst-case analysis of
uncertain systems represented by `uss`

models. You can also use tuning
functions such as `systune`

for robust controller tuning.

The following lists contain a representative subset of the functions you can use with
`uss`

models.