spaconred
Controller reduction by frequency-weighted Singular Perturbation Approximation (SPA). Given a plant G and a stabilizing controller K, determine a reduced order controller Kr such that the closed-loop system is stable and closed-loop performance is retained.
The algorithm tries to minimize the frequency-weighted error where V and W denote output and input weightings.
Inputs
LTI model of the plant. It has m inputs, p outputs and n states.
LTI model of the controller. It has p inputs, m outputs and nc states.
The desired order of the resulting reduced order controller Kr. If not specified, ncr is chosen automatically according to the description of key ’order’.
Optional pairs of keys and values. "key1", value1, "key2", value2
.
Optional struct with keys as field names.
Struct opt can be created directly or
by function options
. opt.key1 = value1, opt.key2 = value2
.
Outputs
State-space model of reduced order controller.
Struct containing additional information.
The order of the obtained reduced order controller Kr.
The order of the alpha-stable part of original controller K.
The Hankel singular values of the alpha-stable part of K. The ncs Hankel singular values are ordered decreasingly.
Option Keys and Values
The desired order of the resulting reduced order controller Kr. If not specified, ncr is chosen automatically such that states with Hankel singular values info.hsvc > tol1 are retained.
Order reduction approach to be used as follows:
Use the square-root Singular Perturbation Approximation method.
Use the balancing-free square-root Singular Perturbation Approximation method. Default method.
Specifies the type of frequency-weighting as follows:
No weightings are used (V = I, W = I).
Use stability enforcing left (output) weighting
Use stability enforcing right (input) weighting
Use stability and performance enforcing weightings Default value.
Specifies whether K is a positive or negative feedback controller:
Use positive feedback controller. Default value.
Use negative feedback controller.
Specifies the ALPHA-stability boundary for the eigenvalues of the state dynamics matrix K.A. For a continuous-time controller, ALPHA <= 0 is the boundary value for the real parts of eigenvalues, while for a discrete-time controller, 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 controllers and 1 for discrete-time controllers.
If ’order’ is not specified, tol1 contains the tolerance for determining the order of the reduced controller. For model reduction, the recommended value of tol1 is c*info.hsvc(1), where c lies in the interval [0.00001, 0.001]. Default value is info.ncs*eps*info.hsvc(1). If ’order’ is specified, the value of tol1 is ignored.
The tolerance for determining the order of a minimal realization of the ALPHA-stable part of the given controller. TOL2 <= TOL1. If not specified, ncs*eps*info.hsvc(1) is chosen.
Specifies the choice of frequency-weighted controllability Grammian as follows:
Choice corresponding to standard Enns’ method [1]. Default method.
Choice corresponding to the stability enhanced modified Enns’ method of [2].
Specifies the choice of frequency-weighted observability Grammian as follows:
Choice corresponding to standard Enns’ method [1]. Default method.
Choice corresponding to the stability enhanced modified Enns’ method of [2].
Boolean indicating whether equilibration (scaling) should be
performed on G and K prior to order reduction.
Default value is false if both G.scaled == true, K.scaled == true
and true otherwise.
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.
Algorithm
Uses SLICOT SB16AD,
Copyright (c) 2020, SLICOT, available under the BSD 3-Clause
(License and Disclaimer).
Source Code: spaconred