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
as a
NumPy array
, which in turn is used for computation of the spectral factor.If
None
, it is assumed that is nonsingular, where 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 equationIn the case that
is singular, one can add a small perturbation, see [BU22] (Section 2.2.2).- compute_errors
If
True
, the relative 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.