Categories &

Functions List

Function Reference: spaconred

Function File: [Kr, info] = spaconred (G, K, …)
Function File: [Kr, info] = spaconred (G, K, ncr, …)
Function File: [Kr, info] = spaconred (G, K, opt, …)
Function File: [Kr, info] = spaconred (G, K, ncr, opt, …)

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

G

LTI model of the plant. It has m inputs, p outputs and n states.

K

LTI model of the controller. It has p inputs, m outputs and nc states.

ncr

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.

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

Kr

State-space model of reduced order controller.

info

Struct containing additional information.

info.ncr

The order of the obtained reduced order controller Kr.

info.ncs

The order of the alpha-stable part of original controller K.

info.hsvc

The Hankel singular values of the alpha-stable part of K. The ncs Hankel singular values are ordered decreasingly.

Option Keys and Values

’order’, ’ncr’

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.

’method’

Order reduction approach to be used as follows:

’sr’, ’s’

Use the square-root Singular Perturbation Approximation method.

’bfsr’, ’p’

Use the balancing-free square-root Singular Perturbation Approximation method. Default method.

’weight’

Specifies the type of frequency-weighting as follows:

’none’

No weightings are used (V = I, W = I).

’left’, ’output’

Use stability enforcing left (output) weighting

’right’, ’input’

Use stability enforcing right (input) weighting

’both’, ’performance’

Use stability and performance enforcing weightings Default value.

’feedback’

Specifies whether K is a positive or negative feedback controller:

’+’

Use positive feedback controller. Default value.

’-’

Use negative feedback controller.

’alpha’

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.

’tol1’

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.

’tol2’

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.

’gram-ctrb’

Specifies the choice of frequency-weighted controllability Grammian as follows:

’standard’

Choice corresponding to standard Enns’ method [1]. Default method.

’enhanced’

Choice corresponding to the stability enhanced modified Enns’ method of [2].

’gram-obsv’

Specifies the choice of frequency-weighted observability Grammian as follows:

’standard’

Choice corresponding to standard Enns’ method [1]. Default method.

’enhanced’

Choice corresponding to the stability enhanced modified Enns’ method of [2].

’equil’, ’scale’

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