BalancedTruncationOptions
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
InputWeight
— Input weight
[]
(default) | dynamic system model | matrix
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 , 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 = []
.
OutputWeight
— Output weight
[]
(default) | dynamic system model | matrix
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 , 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 = []
.
Algorithm
— Model reduction algorithm
"absolute"
(default) | "relative"
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 ."relative"
— Minimize the relative error .
Relative error gives a better match across frequencies while absolute error emphasizes areas with most gain.
Regularization
— Regularization level
"auto"
(default) | nonegative scalar
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.
FreqIntervals
— Frequency interval restriction of Gramians
[]
(default) | two-column matrix
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, whereTs
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.
TimeIntervals
— Time interval restriction of Gramians
[]
(default) | two-column matrix
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
— Offset for stable/unstable boundary
1e-8
(default) | positive scalar
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.
SepTol
— Maximum loss of accuracy in stable/unstable decomposition
10
(default) | positive scalar
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 R2023bR2024b: Set balancing algorithm using Algorithm
property, renamed from Goal
The Goal
property is now called Algorithm
. The
behavior of this property remains the same. There are no plans to remove support for
existing references to Goal
.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)