Main Content

Linear System Analyzer

Analyze time and frequency responses of linear time-invariant (LTI) systems


The Linear System Analyzer app lets you analyze time and frequency responses of LTI systems. Using this app, you can:

  • View and compare the response plots of SISO and MIMO systems, or of several linear models at the same time.

  • Generate time response plots such as step, impulse, and time response to arbitrary inputs.

  • Generate frequency response plots such as Bode, Nyquist, Nichols, singular-value, and pole-zero plots.

  • Inspect key response characteristics, such as rise time, maximum overshoot, and stability margins.

Available Plots

Linear System Analyzer can generate the following response plots:

  • Step response

  • Impulse response

  • Simulated time response to specified input signal

  • Simulated time response from specified initial conditions (state-space models only)

  • Bode diagram (magnitude and phase, or magnitude alone)

  • Nyquist plot

  • Nichols plot

  • Singular value plot

  • Pole/zero map and I/O pole/zero map

Linear System Analyzer app

Open the Linear System Analyzer App

  • MATLAB® Toolstrip: On the Apps tab, under Control System Design and Analysis, click the app icon.

  • MATLAB command prompt: Enter linearSystemAnalyzer.

Programmatic Use

expand all

linearSystemAnalyzer opens the Linear System Analyzer app with no LTI systems to analyze. To specify a system to analyze, select File > Import.

linearSystemAnalyzer(sys1,sys2,...,sysn) opens Linear System Analyzer and displays the step response of one or more dynamic system models, sys1, sys2, ..., sysn. Such models include:

  • Numeric LTI models such as tf, zpk, or ss models.

  • Identified models such as idtf, idss, or idproc (requires System Identification Toolbox™ software).

  • Generalized LTI models such as genss or uss models. For generalized LTI models without uncertainty, Linear System Analyzer plots the response of the nominal value of the model. For generalized models with uncertainty, the app plots the responses of 20 random samples of the uncertain system. (Uncertain models require Robust Control Toolbox™ software.)

linearSystemAnalyzer(sys1,LineSpec1,sys2,LineSpec2...,sysn,LineSpecn) specifies the line style, marker, and color of each response plot. Specify plot styles using one, two, or three characters. For example, the following code uses red asterisks for the response of sys1, and a magenta dotted line for the response of sys2.


For more information about configuring this argument, see the LineSpec input argument of the plot function.

linearSystemAnalyzer(plottype,___) opens Linear System Analyzer and displays the response types specified by plottype. You can use this syntax with any of the previous input argument combinations. The plottype argument can be any one of the following:

  • 'step' — Step response.

  • 'impulse' — Impulse response.

  • 'lsim' — Linear simulation plot. When you use this plot type, the Linear Simulation Tool dialog box prompts you to specify an input signal for the simulation.

  • 'initial' — Initial condition plot (state-space models only). You can use the extras argument to specify the initial state. If you do not, the Linear Simulation Tool dialog box opens and prompts you to specify an initial state for the simulation.

  • 'bode' — Bode diagram.

  • 'bodemag' — Bode magnitude diagram.

  • 'nyquist' — Nyquist plot.

  • 'nichols' — Nichols plot.

  • 'sigma' — Singular value plot. (See sigma).

  • 'pzmap' — Pole/zero map.

  • 'iopzmap' — Pole/zero map of each input/output pair of the LTI system.

To open Linear System Analyzer with multiple response plots, use a cell array of up to six of these plot types for the plottype input argument. For example, the following command opens the app with a step response plot and a Nyquist plot for the system sys.


linearSystemAnalyzer(plottype,sys1,sys2,...,sysn,extras) specifies additional input arguments specific to the type of response plot. extras can be one or more of the input arguments available for the function corresponding to the plot type except the plotoptions and dataoptions arguments. For example, suppose plottype is 'step'. Then, extras enables you to use the additional arguments that you could use with the step command, such as the desired final time, Tfinal. Thus, the following command opens the app with a step response plot of sys, with a final time of Tfinal.


If plottype is 'initial', you can use extras to supply the initial conditions x0, and other arguments such as Tfinal. For example:


To determine appropriate arguments for extras, see the reference pages of the functions corresponding to each plot type, such as step, bode, or initial.

h = linearSystemAnalyzer(___) returns a handle to the Linear System Analyzer figure. You can use this syntax with any of the previous combinations of input arguments. Use the handle to modify previously opened Linear System Analyzer instances, as described in the next two syntaxes.

linearSystemAnalyzer('clear',h) clears the plots and data from the Linear System Analyzer corresponding to handle h. To clear multiple app instances at once, set h to a vector of handles.

linearSystemAnalyzer('current',sys1,sys2,...,sysn,h) adds the responses of the systems sys1, sys2, ..., sysn to the Linear System Analyzer corresponding to handle h. To update multiple app instances at once, set h to a vector of handles. If the new systems have different I/O dimensions from the currently displayed systems, the app clears the existing responses and displays only the new ones.

Version History

Introduced in R2015a