Main Content

Model Reducer

Reduce complexity of linear time-invariant (LTI) models

Description

The Model Reducer app lets you compute reduced-order approximations of high-order LTI and sparse LTI models. Working with lower-order models can simplify analysis and control design. Simpler models are also easier to understand and manipulate. You can reduce a plant model to focus on relevant dynamics before designing a controller for the plant. Or, you can use model reduction to simplify a full-order controller.

Using any of the following methods, Model Reducer helps you reduce model order while preserving model characteristics that are important to your application:

  • Balanced truncation — Remove states with relatively small energy contributions.

  • Modal truncation — Discard modes based on their locations or DC contributions.

  • Pole-zero simplification — Eliminate canceling or near-canceling pole-zero pairs.

  • Proper orthogonal decomposition (POD) — Use simulation data to compute and extract the dominant modes (principal components) of the state vector and perform an approximate balanced truncation. (since R2025a)

  • Frequency response fitting — Fit low-order models to the frequency response data of large sparse state-space models. (since R2026a)

  • Zero-pole truncation — Obtain a zero-pole-gain approximation of sparse state-space models in a desired low-frequency band. (since R2026a)

Model Reducer provides response plots and error plots to help ensure that the reduced-order model preserves important dynamics. For more information on model reduction and why it is useful, see Model Reduction Basics.

For an alternative to the Model Reducer app that lets you interactively perform model reduction and generate code for a live script, see the Reduce Model Order task in the Live Editor.

Model Reducer app

Open the Model Reducer App

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

  • MATLAB command prompt: Enter modelReducer.

Parameters

expand all

Specify the model you want to reduce by selecting from the Model drop-down list. The list includes all models currently in the data browser. To get a model from the MATLAB workspace into the data browser, on the Model Reducer tab, click Import Model. You can import any:

  • tf, ss, or zpk model that is proper. The model can be SISO or MIMO, and continuous or discrete.

    • Continuous-time models must not have time delays. To reduce a continuous-time model with time delays, first use pade to approximate the time delays as model dynamics.

    • Discrete-time models can have time delays. For the Balanced Truncation reduction method, the app uses absorbDelay to convert the delay into poles at z = 0 before reducing the model. The additional states are reflected in the response plot and Hankel singular-value plot.

  • Generalized model such as a genss model. The Model Reducer app uses the current or nominal value of all control design blocks in model (see getValue).

  • Sparse state-space models such as sparss and mechss models.

Note

Model Reducer assumes that the model time unit (specified in the TimeUnit property of the model) is seconds. If your model does not have TimeUnit = 'seconds', use chgTimeUnit to convert the model to seconds.

Balanced Truncation and Proper Orthogonal Decomposition (since R2025a) Tabs

Specify the model order reduction criteria, specified as one of the following:

  • Order — Desired order of the reduced-order model, specified as a nonnegative scalar or vector.

  • Maximum error — Maximum approximation error, specified as a nonnegative scalar or vector. The app selects the order using the error bound GsGr < R.Error(r+1) = 2j=r+1nσj which is not exact and not always tight. As a result, smaller orders may still meet the specified Maximum error, so you can try smaller orders when seeking the lowest possible order compatible with Maximum error.

  • Minimum energy — Minimum bound on the normalized energy, specified as a nonnegative scalar or vector. The app discards all the states that have normalized energies lower than the specified value.

  • Maximum loss — Maximum energy loss as a fraction of total energy, specified as a nonnegative scalar or vector. The app selects the lowest order with loss below the specified value.

Any value is permitted that falls between the number of unstable states in the model and the number of states in the original model. If you specify a scalar value, Model Reducer computes and displays the responses of a model of that order. If you specify a vector, Model Reducer computes models of all specified orders and displays their responses on the same plot. To store reduced models in the data browser, click Save Reduced Model.

Specify the comparison plot type.

  • Model response — Plot the model frequency response. This frequency response comparison is a Bode plot for SISO models, and a singular-value plot for MIMO models.

  • Absolute error plot — Plot the frequency response of absolute error GGr.

  • Relative error plot — Plot the frequency response of relative error G1(GGr).

Modal Truncation Tab

Frequency range of interest, specified as a vector of form [Fmin,Fmax]. The algorithm discards all the modes outside this range.

Damping range of interest, specified as a vector of form [ζmin,ζmax]. The algorithm discards all the modes outside this range.

Minimum DC contribution bound for the reduced-order model, specified as a nonnegative scalar. The algorithm discards all the modes with normalized DC contributions smaller than this value.

Specify the comparison plot type.

  • Model response — Plot the model frequency response. This frequency response comparison is a Bode plot for SISO models, and a singular-value plot for MIMO models.

  • Absolute error plot — Plot the frequency response of absolute error GGr.

  • Relative error plot — Plot the frequency response of relative error G1(GGr).

  • Mode locations — Compare the pole locations of original and reduced models.

Specify the comparison plot type.

  • DC contribution — Bar chart of normalized DC contributions.

  • Mode location — Plot the location of the poles.

  • Mode damping and natural frequency — Plot the damping and natural frequencies of the poles.

Pole-Zero Simplification Tab

Specify the model you want to reduce by selecting from the Model drop-down list. The list includes all models currently in the data browser. To get a model from the MATLAB workspace into the data browser, on the Model Reducer tab, click Import Model. You can import any:

  • tf, ss, or zpk model that is proper. The model can be SISO or MIMO, and continuous or discrete.

    • Continuous-time models must not have time delays. To reduce a continuous-time model with time delays, first use pade to approximate the time delays as model dynamics.

    • Discrete-time models can have time delays. For the Balanced Truncation reduction method, the app uses absorbDelay to convert the delay into poles at z = 0 before reducing the model. The additional states are reflected in the response plot and Hankel singular-value plot.

  • Generalized model such as a genss model. The Model Reducer app uses the current or nominal value of all control design blocks in model (see getValue).

Set the tolerance for pole-zero cancellation by using the slider or entering a value in the text box. The value determines how close together a pole and zero must be for Model Reducer to eliminate them from the reduced model. Moving the slider to the left or entering a smaller value in the text box simplifies the model less, by canceling fewer poles and zeros. Moving the slider to the right, or entering a larger value, simplifies the model more by canceling poles and zeros that are further apart.

For more information, see Pole-Zero Simplification.

Specify the comparison plot type.

  • Model response — Plot the model frequency response. This frequency response comparison is a Bode plot for SISO models, and a singular-value plot for MIMO models.

  • Absolute error plot — Plot the frequency response of absolute error GGr.

  • Relative error plot — Plot the frequency response of relative error G1(GGr).

Frequency Response Fitting Tab

Since R2026a

Enable this option to return a stable state-space model. Stability is encoded in the frequency response, but coarse frequency sampling may lose this information and the software may produce unstable fits. When you enable this option, the software enforces stability on the model, but this can degrade the fit quality. You can rectify this by increasing the frequency grid density near the underdamped poles (resonances in the frequency response). However, the more frequency points you have, the longer it takes to evaluate the frequency response.

The software ignores this option if the fit is improper.

When you enable this option, the software applies balanced truncation on the initial fit to eliminate redundant dynamics. By default, the software is not guaranteed produce a minimal order fit especially for multi-input multi-output models. Therefore, enable this option to minimize the fit order.

Specify the comparison plot type.

  • Model response — Plot the model frequency response. This frequency response comparison is a Bode plot for SISO models, and a singular-value plot for MIMO models.

  • Absolute error plot — Plot the frequency response of absolute error GGr.

  • Relative error plot — Plot the frequency response of relative error G1(GGr).

Zero-Pole Truncation Tab

Since R2026a

Minimum roll-off slope, specified as a nonpositive scalar or matrix.

  • Use a scalar value for SISO models or when the slope is uniform for all input-output pairs for MIMO models.

  • Use a matrix when the slope is different for each input-output pair for MIMO models.

For example, Roll-off slope of -2 ensures the gain rolls off at a rate of at least –40 dB/decade (the roll-off rate of 1/s2).

Specify the comparison plot type.

  • Model response — Plot the model frequency response. This frequency response comparison is a Bode plot for SISO models, and a singular-value plot for MIMO models.

  • Absolute error plot — Plot the frequency response of absolute error GGr.

  • Relative error plot — Plot the frequency response of relative error G1(GGr).

Programmatic Use

modelReducer opens the Model Reducer app with no models in the data browser. To import a model from the MATLAB workspace, click Import Model.

modelReducer(model) opens app and imports the specified LTI model. model can be a:

  • tf, ss, or zpk model that is proper. The model can be SISO or MIMO, and continuous or discrete.

    • Continuous-time models must not have time delays. To reduce a continuous-time model with time delays, first use pade to approximate the time delays as model dynamics.

    • Discrete-time models can have time delays. For the Balanced Truncation reduction method, the app uses absorbDelay to convert the delay into poles at z = 0 before reducing the model. The additional states are reflected in the response plot and Hankel singular-value plot.

  • Generalized model such as a genss model. The Model Reducer app uses the current or nominal value of all control design blocks in model (see getValue).

  • Sparse state-space models such as sparss and mechss models.

modelReducer(model1,...,modelN) opens the app and imports the specified models.

modelReducer(sessionFile) opens the app and loads a previously saved session. sessionFile is the name of a session data file in the current working directory or on the MATLAB path.

To save session data to disk, in the Model Reducer app, on the Model Reducer tab, click Save Session. The saved session data includes the current plot configuration and all models in the data browser.

More About

expand all

Version History

Introduced in R2016a

expand all

See Also

Functions

Live Editor Tasks