Reduce complexity of linear time-invariant (LTI) models in the Live Editor
To add the Reduce Model Order task to a live script in the MATLAB Editor:
On the Live Editor tab, select Task > Reduce Model Order.
In a code block in your script, type a relevant keyword, such as
reduce
, balred
, or minreal
.
Select Reduce Model Order
from the suggested command
completions.
Model
— Model to reduceChoose the model to reduce. The list of available models includes proper
tf
, ss
, or zpk
models
in the MATLAB workspace. The model can be SISO or MIMO, and continuous or discrete.
Continuous-time models cannot 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 task uses absorbDelay
to convert the delay
into poles at z = 0 before reducing the model.
Note
Reduce Model Order assumes that the model time
unit (specified in the TimeUnit
property of the model) is seconds.
For the Balanced Truncation
and Mode
Selection
methods, if your model does not have TimeUnit =
'seconds'
, use chgTimeUnit
to convert the model to
seconds.
Method
— Model reduction methodBalanced Truncation
(default) | Mode Selection
| Pole-Zero Simplification
For each method, the Reduce Model Order task gives you controls and plots that help you ensure that your reduced model preserves dynamics that are important for your application.
Balanced Truncation
— Compute a lower order
approximation of your model by removing states with relatively small energy
contributions. To use this method, specify the number of states (order) in the
reduced model. The Hankel singular-value plot visualizes the relative energy
contribution of each state in the original model. The task discards states with
lower energy than the state you select in this plot. This method generates code that
uses the balred
command.
For discrete-time model that has time delays, Reduce Model
Order uses absorbDelay
to convert the delay
into poles at z = 0 before reducing the model by balanced
truncation. The additional states are reflected in the response plot and Hankel
singular-value plot.
Mode Selection
— Select modes by specifying a
frequency range of interest. The task discards dynamics that fall outside the region
you specify on the frequency-response plot. This method generates code that uses the
freqsep
command.
Pole-Zero Simplification
— Eliminate canceling or
near-canceling pole-zero pairs. The task discards pole-zero pairs that cancel with
the threshold specified by the Tolerance parameter. Increase
the tolerance to discard more states. This method generates code that uses the
minreal
command.
Reduced Order
— Number of states in reduced modelSpecify the number of states in the reduced-order model. You can use any value that falls between the number of unstable states in the model and the number of states in the original model. For more information, see Balanced Truncation Model Reduction.
Preserve DC Gain
— Match DC gain of reduced model to that of original modelMatch the DC gain of the reduced model to that of the original model. Select Preserve DC Gain when the DC behavior of the model is important in your application. Clear the parameter to get better matching of higher frequency behavior. For more information, see Balanced Truncation Model Reduction.
Frequency Range
— Limit analysis to specified frequenciesBy default, Reduce Model Order analyzes 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, Reduce Model Order determines which states are the low-energy states to truncate based on their energy contribution within the specified frequency range only.
To limit the analysis of state contributions to a particular frequency range, check
Frequency range. Then, drag the vertical cursors on the response
plot to specify the frequency range of interest. Alternatively, enter the minimum and
maximum frequencies in the text boxes. The unit is rad/s
. If your
model does not have TimeUnit = 'seconds'
, use chgTimeUnit
to convert the model to seconds.
Comparison Plot
— How to compare original and reduced modelsModel response
(default) | Absolute error
| Relative error
Reduce Model Order shows you a comparison of the frequency responses between the original and reduced models. You can use this plot to monitor the match between the original and reduced-order models while you experiment with model-reduction parameter values. Available comparison plots are:
Model response
— Frequency response of the original
and reduced models, shown as a Bode plot for SISO models and a singular-value plot
for MIMO models.
Absolute error plot
— Singular values of
G-Gr
, where G
is the original model and
Gr
is the current reduced model. (For SISO models, the
singular-value plot is the magnitude of the frequency response.)
Relative error plot
— Singular values of
(G-Gr)/G
. This plot is useful when the model has very high or
very low gain in the region that is important to your application. In such regions,
absolute error can be misleading.
Cutoff Frequency
— Frequency range in which to preserve dynamicsSpecify the lower and upper bounds of the frequency range in which to preserve dynamics. You can also use the vertical cursors on the response plot to specify the range. Reduce Model Order discards dynamics outside the specified range.
For more information about this method, see Mode-Selection Model Reduction.
Comparison Plot
— How to compare original and reduced modelsModel response
(default) | Absolute error
| Relative error
Reduce Model Order shows you a comparison of the frequency responses between the original and reduced models. You can use this plot to monitor the match between the original and reduced-order models while you experiment with model-reduction parameter values. Available comparison plots are:
Model response
— Frequency response of the original
and reduced models, shown as a Bode plot for SISO models and a singular-value plot
for MIMO models.
Absolute error plot
— Singular values of
G-Gr
, where G
is the original model and
Gr
is the current reduced model. (For SISO models, the
singular-value plot is the magnitude of the frequency response.)
Relative error plot
— Singular values of
(G-Gr)/G
. This plot is useful when the model has very high or
very low gain in the region that is important to your application. In such regions,
absolute error can be misleading.
Tolerance
— Margin for pole-zero cancellationSpecify the margin for pole-zero cancellation. Pole-zero pairs that cancel within this tolerance are removed from the reduced model. You can use the slider to change the tolerance and observe the results in a response plot.
Output Plot
— Type of response plot to generateNone
(default) | Step
| Impulse
| Bode
| ...Reduce Model Order generates code that shows the response of the original and reduced systems on the plot type you specify. Available plots include:
Step response
Impulse response
Bode plot
Singular value (sigma) plot
Pole-zero plot