Main Content

BalancedTruncationOptions

R2026b

Options for model order reduction with balanced truncation

Since R2023b

    Description

    This object contains model order reduction options of ordinary (nonsparse) linear time-invariant models, and is contained in the Options property of a BalancedTruncation object R created using reducespec. To configure these options, use dot notation, for example, R.Options.Algorithm = "relative".

    For the full workflow, see Task-Based Model Order Reduction Workflow.

    Properties

    expand all

    Input weight for input scaling and frequency weighting, specified as a matrix or dynamic system model.

    Set the InputWeight and OutputWeight properties to control the frequency-weighted error ‖WL(G−Gr)WR‖, where G and Gr are the full-order and reduced-order models, respectively. WL (output weight) and WR (input weight) must be linear time-invariant models of compatible size and have high gain in frequency bands of interest and low gain elsewhere. Doing so emphasizes the accuracy of the reduced-order model in a particular frequency band.

    This property is ignored when R.Options.Algorithm is "relative", which corresponds to WL = inv(G) and WR = [].

    Output weight for output scaling and frequency weighting, specified as a matrix or a dynamic system model.

    Set the InputWeight and OutputWeight properties to control the frequency-weighted error ‖WL(G−Gr)WR‖, where G and Gr are the full-order and reduced-order models, respectively. WL (output weight) and WR (input weight) must be linear time-invariant models of compatible size and have high gain in frequency bands of interest and low gain elsewhere. Doing so emphasizes the accuracy of the reduced-order model in a particular frequency band.

    This property is ignored when R.Options.Algorithm is "relative", which corresponds to WL = inv(G) and WR = [].

    Options for initial condition matching, specified as:

    • [] — The model order reduction algorithm performs standard balanced truncation without initial-condition matching. This is the default behavior.

    • Matrix X0 — This option seeks to preserve the response to specific initial conditions. The reduced-order model approximates the response to initial conditions in the subspace spanned by X0 to the same degree of accuracy as the input/output response.

    • "auto" — This option seeks to approximate the response to most initial conditions as well as the I/O response. The algorithm automatically selects initial condition directions based on the dominant modes of the observability Gramian of the stable subsystem, using the energy threshold specified in the InitialConditionThreshold property. The selected basis is returned in the InitialCondition property of the processed BalancedTruncation object.

    The initial-condition matching feature is supported only when the Algorithm property is set to "absolute". It is not available for time- or frequency-limited balanced truncation or balanced truncation with relative error control.

    Threshold for the automatic selection of the initial-condition subspace, specified as a positive scalar no greater than one. When the InitialCondition property is set to "auto", the algorithm seeks to preserve the initial response (see initial) for the initial conditions that contribute most to the output energy:

    ∫0∞‖y(t)‖2=x0TXox0=‖Lox0‖2

    where y(t) is the free response to the initial condition x0 and Lo is a Cholesky factor of the observability Gramian Xo (see the Lo of BalancedTruncation).

    An initial condition x0 is included when ||Lox0|| is greater or equal than InitialConditionThreshold*||Lo||. The selected directions therefore correspond to dominant singular values of Lo greater than InitialConditionThreshold*||Lo||.

    Model reduction algorithm, specified as either "absolute"' or "relative". Use this option to select the balancing algorithm and control the type of reduced-order model Gr.

    • "absolute" — Minimize the absolute error ‖G−Gr‖∞.

    • "relative" — Minimize the relative error ‖G−1(G−Gr)‖∞.

    Relative error gives a better match across frequencies while absolute error emphasizes areas with most gain.

    Regularization level, specified as "auto" or a nonnegative scalar value. When you set Algorithm to "relative", the software balances the model [sys,α*I] instead of sys. Set this option to "auto" to let the algorithm pick a suitable regularization level α value. Specify a value α ≥ 0 to override this default.

    This regularization value helps provide a well-defined relative error at all frequencies.

    Frequency intervals for computing frequency-limited Hankel singular values, specified as a matrix with two columns. Each row specifies a frequency interval [fmin,fmax], where fmin and fmax are nonnegative frequencies, expressed in the frequency unit of the model. When identifying low-energy states to truncate, the software computes state contributions to system behavior in these frequency ranges only. For example:

    • To restrict the computation to the range between 3 rad/s and 15 rad/s, assuming the frequency unit of the model is rad/s, set FreqIntervals to [3,15].

    • To restrict the computation to two frequency intervals, 3–15 rad/s and 40–60 rad/s, use [3,15;40,60].

    • To specify all frequencies below a cutoff frequency fcut, use [0,fcut].

    • To specify all frequencies above the cutoff, use [fcut,Inf] in continuous time, or [fcut,pi/Ts] in discrete time, where Ts is the sample time of the model.

    The default value, [], imposes no frequency limitation and is equivalent to [0,Inf] in continuous time or [0,pi/Ts] in discrete time. However, if you specify a TimeIntervals value other than [], then this limit overrides FreqIntervals = []. If you specify both a TimeIntervals value and a FreqIntervals value, then the computation uses the union of these intervals.

    When the Method input argument in getrom is set to "matchDC" (the default value), then the balanced truncation algorithm attempts to match the DC gain of the original and reduced models, even if the specified frequency intervals exclude 0. This behavior might reduce the quality of the match in the specified intervals. To improve the match within frequency intervals that exclude 0, set Method to "truncate".

    If both the frequency and time intervals do include DC, you can still set Method to "truncate" to improve the match at other frequencies and times.

    Time intervals for computing time-limited Hankel singular values, specified as a matrix with two columns. Each row specifies a time interval [tmin,tmax], where tmin and tmax are nonnegative times, expressed in the time unit of the model. When identifying low-energy states to truncate, the software computes state contributions to the system’s impulse response in these time intervals only. For example:

    • To restrict the computation to the range between 3 s and 15 s, assuming the time unit of the model is seconds, set TimeIntervals to [3,15].

    • To restrict the computation to two time intervals, 3–15 s and 40–60 s, use [3,15; 40,60].

    • To specify all times from zero up to a cutoff time tcut, use [0,tcut]. To specify all times after the cutoff, use [tcut,Inf].

    The default value, [], imposes no time limitation and is equivalent to [0,Inf]. However, if you specify a FreqIntervals value other than [], then this limit overrides Timeintervals = []. If you specify both a TimeIntervals value and a FreqIntervals value, then the computation uses the union of these intervals.

    When the Method input argument in getrom is set to "matchDC" (the default value), then the balanced truncation algorithm attempts to match the DC gain of the original and reduced models, even if the specified frequency intervals exclude 0. This behavior might reduce the quality of the match in the specified intervals. To improve the match within frequency intervals that exclude 0, set Method to "truncate".

    If both the frequency and time intervals do include DC, you can still set Method to "truncate" to improve the match at other frequencies and times.

    Offset for the stable/unstable boundary, specified as a positive scalar value. In the stable/unstable decomposition, the stable term includes only poles satisfying

    • Re(s) < -Offset × max(1,|Im(s)|) (continuous time)

    • |z| < 1 - Offset (discrete time)

    Increase the value of Offset to treat poles close to the stability boundary as unstable.

    Maximum accuracy loss factor in stable and unstable decomposition, specified as a positive scalar. For models with unstable poles, the algorithm first extracts the stable dynamics using the transformations TL, TR. Use SepTol to control the decomposition accuracy. Increasing SepTol helps separate nearby stable and unstable modes at the expense of accuracy. For more information, see stabsep.

    Version History

    Introduced in R2023b

    expand all