# Documentation

## Uncertain State-Space Models (uss)

Uncertain systems (`uss`) are linear systems with uncertain state-space matrices and/or uncertain linear dynamics. Like their certain (i.e., not uncertain) counterpart, the `ss` object, they are often built from state-space matrices using the `ss` command. In the case where some of the state-space matrices are uncertain elements (uncertain Control Design Blocks), the result will be a uncertain state-space (`uss`) object.

Combining uncertain systems with uncertain systems (with the `feedback` command, for example) usually leads to an uncertain system. Not-uncertain systems can be combined with uncertain systems. Usually the result is an uncertain system.

The nominal value of an uncertain system is a `ss` object, which is familiar to Control System Toolbox™ software users.

### Properties of uss Objects

Create a `uss` object and view the properties.

```p1 = ureal('p1',10,'pe',50); p2 = ureal('p2',3,'plusm',[-.5 1.2]); p3 = ureal('p3',0); A = [-p1 p2;0 -p1]; B = [-p2;p2+p3]; C = [1 0;1 1-p3]; D = [0;0]; sys = ss(A,B,C,D); % Create uss model get(sys) ```
``` a: [2x2 umat] b: [2x1 umat] c: [2x2 umat] d: [2x1 double] e: [] StateName: {2x1 cell} StateUnit: {2x1 cell} NominalValue: [2x1 ss] Uncertainty: [1x1 struct] InternalDelay: [0x1 double] InputDelay: 0 OutputDelay: [2x1 double] Ts: 0 TimeUnit: 'seconds' InputName: {''} InputUnit: {''} InputGroup: [1x1 struct] OutputName: {2x1 cell} OutputUnit: {2x1 cell} OutputGroup: [1x1 struct] Name: '' Notes: {} UserData: [] SamplingGrid: [1x1 struct] ```

The properties `a, b, c, d`, and `StateName` behave in exactly the same manner as in Control System Toolbox `ss` objects. The properties `InputName`, `OutputName`, `InputGroup` and `OutputGroup` behave in exactly the same manner as all of the Control System Toolbox objects (`ss`, `zpk`, `tf`, and `frd`).

The `NominalValue` is a Control System Toolbox `ss` object, and hence all methods for `ss` objects are available. For instance, compute the poles and step response of the nominal system.

```pole(sys.NominalValue) ```
```ans = -10 -10 ```
```step(sys.NominalValue) ```

Just as with the `umat` class, the `Uncertainty` property is a structure containing the uncertain elements. Direct access to the elements is facilitated through `Uncertainty`. Check the `Range` of the uncertain element named `'p2'` within `sys`, then change its left endpoint.

```sys.Uncertainty.p2.range ```
```ans = 2.5000 4.2000 ```
```sys.Uncertainty.p2.range(1) = 2; ```