Rise time, settling time, and other step response characteristics


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


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.

This command requires Control System Toolbox™ license.


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

See Also


Introduced in R2006a

Was this topic helpful?