stepinfo

Rise time, settling time, and other step response characteristics

Syntax

`S = stepinfo(y,t,yfinal)S = stepinfo(y,t)S = stepinfo(y)S = stepinfo(sys)S = stepinfo(...,'SettlingTimeThreshold',ST)S = stepinfo(...,'RiseTimeLimits',RT)`

Description

`S = stepinfo(y,t,yfinal)` takes step response data `(t,y)` and a steady-state value `yfinal` and returns a structure `S` containing the following performance indicators:

• `RiseTime` — Rise time

• `SettlingTime` — Settling time

• `SettlingMin` — Minimum value of `y` once the response has risen

• `SettlingMax` — Maximum value of `y` once the response has risen

• `Overshoot` — Percentage overshoot (relative to `yfinal`)

• `Undershoot` — Percentage undershoot

• `Peak` — Peak absolute value of `y`

• `PeakTime` — Time at which this peak is reached

For SISO responses, `t` and `y` are vectors with the same length NS. For systems with NU inputs and NY outputs, you can specify `y` as an NS-by-NY-by-NU array (see `step`) and `yfinal` as an NY-by-NU array. `stepinfo` then returns a NY-by-NU structure array `S` of performance metrics for each I/O pair.

`S = stepinfo(y,t)` uses the last sample value of `y` as steady-state value `yfinal`. `S = stepinfo(y)` assumes `t = 1:ns`.

`S = stepinfo(sys)`computes the step response characteristics for an LTI model `sys` (see `tf`, `zpk`, or `ss` for details).

`S = stepinfo(...,'SettlingTimeThreshold',ST)` lets you specify the threshold `ST` used in the settling time calculation. The response has settled when the error ```|y(t) - yfinal|``` becomes smaller than a fraction `ST` of its peak value. The default value is `ST=0.02` (2%).

`S = stepinfo(...,'RiseTimeLimits',RT)` lets you specify the lower and upper thresholds used in the rise time calculation. By default, the rise time is the time the response takes to rise from 10 to 90% of the steady-state value (`RT=[0.1 0.9]`). Note that `RT(2)` is also used to calculate `SettlingMin` and `SettlingMax`.

Examples

Step Response Characteristics of Fifth-Order System

Create a fifth order system and ascertain the response characteristics.

```sys = tf([1 5],[1 2 5 7 2]); S = stepinfo(sys,'RiseTimeLimits',[0.05,0.95]) ```

These commands return the following result:

```S = RiseTime: 7.4454 SettlingTime: 13.9378 SettlingMin: 2.3737 SettlingMax: 2.5201 Overshoot: 0.8032 Undershoot: 0 Peak: 2.5201 PeakTime: 15.1869```