Main Content

Model Reducer

Reduce complexity of linear time-invariant (LTI) models

Description

TheModel Reducer应用程序可以计算降维approximations of high-order 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 Reducerhelps you reduce model order while preserving model characteristics that are important to your application:

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

  • Mode Selection — Select modes by specifying a frequency range of interest.

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

Model Reducerprovides 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, seeModel Reduction Basics.

For an alternative to theModel Reducerapp that lets you interactively perform model reduction and generate code for a live script, see theReduce Model Ordertask in the Live Editor.

Open the Model Reducer App

  • MATLAB®Toolstrip: On theAppstab, underControl System Design and Analysis, click the app icon.

  • MATLAB command prompt: EntermodelReducer.

Parameters

Balanced Truncation Tab

Specify the model you want to reduce by selecting from theModeldrop-down list. The list includes all models currently in theData Browser. To get a model from the MATLAB workspace into theData Browser, on theModel Reducertab, clickImport Model. You can import any:

  • tf,ss, orzpkmodel 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 usepadeto approximate the time delays as model dynamics.

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

  • Generalized model such as agenssmodel. TheModel Reducerapp uses the current or nominal value of all control design blocks inmodel(seegetValue).

Note

Model Reducerassumes that the model time unit (specified in theTimeUnitproperty of the model) is seconds. If your model does not haveTimeUnit = 'seconds', usechgTimeUnitto convert the model to seconds.

Specify the number of states in the reduced-order model. 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 single value,Model Reducercomputes and displays the responses of a model of that order. If you specify multiple values,Model Reducercomputes models of all specified orders and displays their responses on the same plot. To store reduced models in theData Browser, click.

For more information, seeBalanced Truncation Model Reduction.

Example:5

Example:4:7

Example:[3,7,10]

You can choose between absolute and relative errors by selecting the appropriate option inError Bound. Setting it toabsolutecontrols the absolute error G G r while setting it torelativecontrols the relative error G 1 ( G G r ) . Relative error gives a better match across frequency while absolute error emphasizes areas with most gain.

For more information, seeBalanced Truncation Model Reduction.

WhenPreserve DC Gainis checked, the DC gain of the reduced model equals the DC gain of the original model. When the DC behavior of the model is important in your application, leave this option checked. Uncheck the option to get better matching of higher-frequency behavior.

For more information, seeBalanced Truncation Model Reduction.

By default,Model Reduceranalyzes Hankel singular values across all frequencies. Restricting this analysis to a particular frequency range is useful when you know the model has modes outside the region of interest to your particular application. When you apply a frequency limit,Model Reducerdetermines which states are the low-energy states to truncate based on their energy contribution within the specified frequency range only.Focus on rangeis only available whenError Boundis set toabsolute.

限制contri状态的分析butions to a particular frequency range, checkFocus on range. Then, drag the vertical cursors on the response plot to specify the frequency range of interest. Alternatively, enter a frequency range in the text box as a vector of the form[fmin,fmax]. Units arerad/TimeUnit, whereTimeUnitis theTimeUnitproperty of the model you are reducing.

Mode Selection Tab

Specify the model you want to reduce by selecting from theModeldrop-down list. The list includes all models currently in theData Browser. To get a model from the MATLAB workspace into theData Browser, on theModel Reducertab, clickImport Model. You can import any:

  • tf,ss, orzpkmodel 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 usepadeto approximate the time delays as model dynamics.

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

  • Generalized model such as agenssmodel. TheModel Reducerapp uses the current or nominal value of all control design blocks inmodel(seegetValue).

For more information, seeMode-Selection Model Reduction.

Note

Reduce Model Orderassumes that the model time unit (specified in theTimeUnitproperty of the model) is seconds. If your model does not haveTimeUnit = 'seconds', usechgTimeUnitto convert the model to seconds.

Enter the frequency of the slowest dynamics to preserve in the reduced model. Poles with natural frequency below this cutoff are eliminated from the reduced model.

Enter the frequency of the fastest dynamics to preserve in the reduced model. Poles with natural frequency above this cutoff are eliminated from the reduced model.

Pole/Zero Simplification Tab

Specify the model you want to reduce by selecting from theModeldrop-down list. The list includes all models currently in theData Browser. To get a model from the MATLAB workspace into theData Browser, on theModel Reducertab, clickImport Model. You can import any:

  • tf,ss, orzpkmodel 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 usepadeto approximate the time delays as model dynamics.

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

  • Generalized model such as agenssmodel. TheModel Reducerapp uses the current or nominal value of all control design blocks inmodel(seegetValue).

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 forModel Reducerto 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 cancelling fewer poles and zeros. Moving the slider to the right, or entering a larger value, simplifies the model more by cancelling poles and zeros that are further apart.

For more information, seePole-Zero Simplification.

Programmatic Use

expand all

modelReduceropens theModel Reducerapp with no models in theData Browser. To import a model from the MATLAB workspace, clickImport Model.

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

  • tf,ss, orzpkmodel 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 usepadeto approximate the time delays as model dynamics.

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

  • Generalized model such as agenssmodel. TheModel Reducerapp uses the current or nominal value of all control design blocks inmodel(seegetValue).

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

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

To save session data to disk, in theModel Reducerapp, on theModel Reducertab, clickSave Session. The saved session data includes the current plot configuration and all models in theData Browser.

Version History

Introduced in R2016a

See Also

Functions

Live Editor Tasks