pymor.reductors.spectral_factor
¶
Module Contents¶
- class pymor.reductors.spectral_factor.SpectralFactorReductor(fom, mu=None)[source]¶
Bases:
pymor.core.base.BasicObject
Passivity preserving model reduction via spectral factorization.
See [BU22] (Algorithm 4).
Note
The reductor uses dense computations and converts the full-order model to dense matrices.
Parameters
- fom
The passive full-order
LTIModel
to reduce. The full-order model must be minimal and asymptotically stable.- mu
Methods
Reduce system by reducing its spectral factor.
- reduce(r_fn, X=None, compute_errors=False, check_stability=True)[source]¶
Reduce system by reducing its spectral factor.
Parameters
- r_fn
A callable which takes two arguments
spectral_factor
(LTIModel
),mu
(Parameter values
),
and returns a reduced-order
LTIModel
for the supplied spectral factor.For example, a possible choice to obtain a reduced-order model of order 10 is:
lambda spectral_factor, mu: IRKAReductor(spectral_factor, mu).reduce(10)
or:
lambda spectral_factor, mu: BTReductor(spectral_factor, mu).reduce(10)
The method should preserve asymptotic stability.
- X
A solution to the KYP inequality
\[\begin{split}\begin{bmatrix} -A^T X - X A & C^T - X B \\ C - B^T X & D + D^T \end{bmatrix} \succcurlyeq 0.\end{split}\]as a
NumPy array
, which in turn is used for computation of the spectral factor.If
None
, it is assumed that \(D + D^T\) is nonsingular, where \(D\) is the feed-through matrix of the full-order model. A minimal solution to the KYP inequality is then obtained internally by computing the minimal solution of the Riccati equation\[A^T X E + E^T X A + (C^T - E^T X B) (D + D^T)^{-1} (C - B^T X E) = 0.\]In the case that \(D+D^T\) is singular, one can add a small perturbation, see [BU22] (Section 2.2.2).
- compute_errors
If
True
, the relative \(\mathcal{H}_2\) error of the reduced spectral factor is computed.- check_stability
If
True
, the stability of the reduced spectral factor is checked. The stability is required to guarantee a positive definite solution to the Lyapunov equation in [BU22] in equation (21).
Returns
- rom
Reduced passive
LTIModel
model.