Documentation Center

  • Trial Software
  • Product Updates


Plot step response and return plot handle


h = stepplot(sys)
stepplot(..., plotoptions)
stepplot(..., dataoptions)


h = stepplot(sys) plots the step response of the dynamic system model sys. It also returns the plot handle h. You can use this handle to customize the plot with the getoptions and setoptions commands. Type

help timeoptions 

for a list of available plot options.

For multiinput models, independent step commands are applied to each input channel. The time range and number of points are chosen automatically.

stepplot(sys,Tfinal) simulates the step response from t = 0 to the final time t = Tfinal. Express Tfinal in the system time units, specified in the TimeUnit property of sys. For discrete-time systems with unspecified sampling time (Ts = -1), stepplot interprets Tfinal as the number of sampling intervals to simulate.

stepplot(sys,t) uses the user-supplied time vector t for simulation. Express t in the system time units, specified in the TimeUnit property of sys. For discrete-time models, t should be of the form Ti:Ts:Tf, where Ts is the sample time. For continuous-time models, t should be of the form Ti:dt:Tf, where dt becomes the sample time of a discrete approximation to the continuous system (see step). The stepplot command always applies the step input at t=0, regardless of Ti.

To plot the step responses of multiple models sys1,sys2,... on a single plot, use:




You can also specify a color, line style, and marker for each system, as in


stepplot(AX,...) plots into the axes with handle AX.

stepplot(..., plotoptions) customizes the plot appearance using the options set, plotoptions. Use timeOptions to create the options set.

stepplot(..., dataoptions) specifies options such as the step amplitude and input offset using the options set, dataoptions. Use stepDataOptions to create the options set.


Example 1

Use the plot handle to normalize the responses on a step plot.

sys = rss(3);
h = stepplot(sys);
% Normalize responses.

Example 2

Compare the step response of a parametric identified model to a non-parametric (empirical) model, and view their 3-σ confidence regions.

load iddata1 z1

for parametric model

sys1 = ssest(z1,4); 

non-parametric model

sys2 = impulseest(z1);
t = -1:0.1:5;
h = stepplot(sys1,sys2,t);

The non-parametric model sys2 shows higher uncertainty.

Example 3

Plot the step response of a nonlinear (Hammerstein-Wiener) model using a starting offset of 2 and step amplitude of 0.5.

load twotankdata
z = iddata(y, u, 0.2, 'Name', 'Two tank system');  
sys = nlhw(z, [1 5 3], pwlinear, poly1d);

dataoptions = stepDataOptions('InputOffset', 2, 'StepAmplitude', 0.5);

More About

expand all


You can change the properties of your plot, for example the units. For information on the ways to change properties of your plots, see Ways to Customize Plots.

See Also

| | |

Was this topic helpful?