Function File: [Gr, info] = bstmodred (G, …)
Function File: [Gr, info] = bstmodred (G, nr, …)
Function File: [Gr, info] = bstmodred (G, opt, …)
Function File: [Gr, info] = bstmodred (G, nr, opt, …)
Model order reduction by Balanced Stochastic Truncation (BST) method.
The aim of model reduction is to find an LTI system Gr of order
nr (nr < n) such that the input-output behaviour of Gr
approximates the one from original system G.
BST is a relative error method which tries to minimize
$$ || G^{-1} (G-G_r) ||_{\infty} = \min $$
Inputs
- G
- LTI model to be reduced.
- nr
- The desired order of the resulting reduced order system Gr.
If not specified, nr is chosen automatically according
to the description of key ’order’.
- …
- Optional pairs of keys and values.
"key1", value1, "key2", value2.
- opt
- Optional struct with keys as field names.
Struct opt can be created directly or
by function
options. opt.key1 = value1, opt.key2 = value2.
Outputs
- Gr
- Reduced order state-space model.
- info
- Struct containing additional information.
- info.n
- The order of the original system G.
- info.ns
- The order of the alpha-stable subsystem of the original system G.
- info.hsv
- The Hankel singular values of the phase system corresponding
to the alpha-stable part of the original system G.
The ns Hankel singular values are ordered decreasingly.
- info.nu
- The order of the alpha-unstable subsystem of both the original
system G and the reduced-order system Gr.
- info.nr
- The order of the obtained reduced order system Gr.
Option Keys and Values
- ’order’, ’nr’
- The desired order of the resulting reduced order system Gr.
If not specified, nr is the sum of NU and the number of
Hankel singular values greater than
MAX(TOL1,NS*EPS);
nr can be further reduced to ensure that
HSV(NR-NU) > HSV(NR+1-NU).
- ’method’
- Approximation method for the H-infinity norm.
Valid values corresponding to this key are:
- ’sr-bta’, ’b’
- Use the square-root Balance & Truncate method.
- ’bfsr-bta’, ’f’
- Use the balancing-free square-root Balance & Truncate method. Default method.
- ’sr-spa’, ’s’
- Use the square-root Singular Perturbation Approximation method.
- ’bfsr-spa’, ’p’
- Use the balancing-free square-root Singular Perturbation Approximation method.
- ’alpha’
- Specifies the ALPHA-stability boundary for the eigenvalues
of the state dynamics matrix G.A. For a continuous-time
system, ALPHA <= 0 is the boundary value for
the real parts of eigenvalues, while for a discrete-time
system, 0 <= ALPHA <= 1 represents the
boundary value for the moduli of eigenvalues.
The ALPHA-stability domain does not include the boundary.
Default value is 0 for continuous-time systems and
1 for discrete-time systems.
- ’beta’
- Use
[G, beta*I] as new system G to combine
absolute and relative error methods.
BETA > 0 specifies the absolute/relative error weighting
parameter. A large positive value of BETA favours the
minimization of the absolute approximation error, while a
small value of BETA is appropriate for the minimization
of the relative error.
BETA = 0 means a pure relative error method and can be
used only if rank(G.D) = rows(G.D) which means that
the feedthrough matrice must not be rank-deficient.
Default value is 0.
- ’tol1’
- If ’order’ is not specified, tol1 contains the tolerance for
determining the order of reduced system.
For model reduction, the recommended value of tol1 lies
in the interval [0.00001, 0.001]. tol1 < 1.
If tol1 <= 0 on entry, the used default value is
tol1 = NS*EPS, where NS is the number of
ALPHA-stable eigenvalues of A and EPS is the machine
precision.
If ’order’ is specified, the value of tol1 is ignored.
- ’tol2’
- The tolerance for determining the order of a minimal
realization of the phase system (see METHOD) corresponding
to the ALPHA-stable part of the given system.
The recommended value is TOL2 = NS*EPS. TOL2 <= TOL1 < 1.
This value is used by default if ’tol2’ is not specified
or if TOL2 <= 0 on entry.
- ’equil’, ’scale’
- Boolean indicating whether equilibration (scaling) should be
performed on system G prior to order reduction.
Default value is true if
G.scaled == false and
false if G.scaled == true.
Note that for MIMO models, proper scaling of both inputs and outputs
is of utmost importance. The input and output scaling can not
be done by the equilibration option or the prescale function
because these functions perform state transformations only.
Furthermore, signals should not be scaled simply to a certain range.
For all inputs (or outputs), a certain change should be of the same
importance for the model.
BST is often suitable to perform model reduction in order to obtain
low order design models for controller synthesis.
Approximation Properties:
-
Guaranteed stability of reduced models
-
Approximates simultaneously gain and phase
-
Preserves non-minimum phase zeros
-
Guaranteed a priori error bound
$$ || G^{-1} (G-G_r) ||_{\infty} \leq 2 \sum_{j=r+1}^{n} {1+\sigma_j \over 1-\sigma_j} - 1 $$
Algorithm
Uses SLICOT AB09HD,
Copyright (c) 1996-2025, SLICOT, available under the BSD 3-Clause
(License and Disclaimer).
Source Code:
bstmodred