ml_ct_ss_bst

Balanced stochastic truncation for standard systems.

Contents

Syntax

[Ar, Br, Cr, Dr, info] = ml_ct_ss_bst(A, B, C, D)
[Ar, Br, Cr, Dr, info] = ml_ct_ss_bst(A, B, C, D, opts)
[rom, info] = ml_ct_ss_bst(sys)
[rom, info] = ml_ct_ss_bst(sys, opts)

Description

This function computes the balanced stochastic truncation for a standard system of the form

   x'(t) = A*x(t) + B*u(t),                                        (1)
    y(t) = C*x(t) + D*u(t).                                        (2)

Therefore, first the Lyapunov equation

   A*P  + P*A' + B*B' = 0,

is solved for the controllability Gramian P and then, the corresponding Riccati equation

   A'*Q + Q*A + (C - Bw' * Q)' * inv(D*D') * (C - Bw' * Q) = 0

is solved for the Gramian Q, with

   Bw = B*D' + P*C'.

As result, a reduced-order system of the form

   x'(t) = Ar*x(t) + Br*u(t),                                      (3)
    y(t) = Cr*x(t) + Dr*u(t)                                       (4)

is computed, such that for the original transfer function G and and the r-th order transfer function Gr it holds

   ||G - Gr||_{\infty} / ||G||_{\infty}
   <= ((1 + Hsv(r+1))/(1 - Hsv(r+1)) * ...
      * (1 + Hsv(n))/(1 - Hsv(n))) + 1,

with Hsv, a vector containing the characteristic stochastic singular values of the system. If the transfer function is invertible it holds

   ||inv(G)*(G - Gr)||_{\infty}
   <= ((1 + Hsv(r+1))/(1 - Hsv(r+1)) * ...
      * (1 + Hsv(n))/(1 - Hsv(n))) + 1.

Notes:

  1. The equations above are defined for the case of p < m. Otherwise the system is transposed, then reduced and back transposed.
  2. In case of a rank-deficient D term, an epsilon regularization is performed, which replaces the D during the computations with an identity matrix scaled by a given epsilon.
  3. For unstable systems, first an additive decomposition into the stable and anti-stable parts is performed and then only the stable part will be reduced.

Input

Entry
Meaning
A
matrix from (1) with dimensions n x n
B
matrix from (1) with dimensions n x m
C
matrix from (2) with dimensions p x n
D
matrix from (2) with dimensions p x m

Parameter
Meaning
caredlopts
structure, containing the optional parameters for the Riccati equation sign function solver, only used if RiccatiSolver = 'sign', see ml_caredl_sgn_fac
default: struct()
Epsilon
positive scalar, used in the case of a non-full-rank D term for epsilon regularization by multiplying with an identity matrix of appropriate size
default: 1.0e-03
lyapopts
structure, containing the optional parameters for the computation of the continuous-time algebraic Lyapunov equation, see ml_lyap_sgn_fac
Method
{!}
character array, determining algorithm for the computation of the reduced-order model
  • 'sr' - square-root method
  • 'bfsr' - balancing-free square-root method
default: 'sr'
Order
{!}
positive integer, order of the resulting reduced-order model chosen by the user if 'order' is set for OrderComputation
default: min(10,length(Hsv)) + Nu
OrderComputation
{!}
character array, determining the method for the computation of the size of the reduced-order model
  • 'order' - take explicit order
  • 'tolerance' - using absolute error bound
default: 'tolerance'
pcareopts
structure, containing the optional parameters for the computation of the continuous-time algebraic positive Riccati equation, only used if RiccatiSolver = 'newton', see ml_pcare_nwt_fac
default: struct()
RiccatiSolver
character array, determining the solver for the dual Riccati equations
  • 'newton' - Newton iteration
  • 'sign' - dual sign function method
default: 'sign'
stabsignmopts
structure, containing the optional parameters for the matrix sign function used for the decomposition into stable and anti-stable system parts, see ml_signm
default: struct()
stabsylvopts
structure, containing the optional parameters for the Sylvester equation solver used for the decomposition into stable and anti-stable system parts, see ml_sylv_sgn
default: struct()
StoreProjection
{0, 1}, used to disable/enable storing of the computed projection matrices W and T
default: 0
Tolerance
{!}
nonnegative scalar, tolerance used for the computation of the size of the reduced-order model by an relative error bound if 'tolerance' is set for OrderComputation
default: 1.0e-02
UnstabDim
integer, dimension of the deflating anti-stable subspace, negative if unknown
default: -1

Note: Parameters marked with {!} may also be a cell array containing multiple arguments. In this case an cell array of the same size is returned with one entry computed for each input argument and the marked fields of the info struct are cells as well. When multiple arguments are given as cells, they are expected to have the same length.

Output

Entry
Meaning
A
matrix from (3) with dimensions r x r
B
matrix from (3) with dimensions r x m
C
matrix from (4) with dimensions p x r
D
matrix from (4) with dimensions p x m

Entry
Meaning
Hsv
a vector, containing the computed characteristic stochastic singular values
infoADTF
structure, containing information about the additive decomposition of the system into its stable and anti-stable parts, see ml_ct_ss_adtf
infoCAREDL
structure, containing information about the sign function solver for the dual Riccati equations, see ml_caredl_sgn_fac
infoLYAP
structure, containing information about the continuous-time Lyapunov equation sovler for the controllability Gramian, see ml_lyap_sgn_fac
infoPCARE
structure, containing information about the continuous-time algebraic positive Riccati equation for the observability Gramian, see ml_pcare_nwt_fac
Ns
{!}
Dimension of the stable part of the reduced-order model
Nu
Dimension of the anti-stable part of the reduced- order model
RelErrBound
{!}
computed error bound for the relative error of the of the reduced-order model in H-infinity norm
T
{!}
projection matrix used as right state-space transformation to obtain the resulting block system, if opts.StoreProjection == 1
W
{!}
projection matrix used as left state-space transformation to obtain the resulting block system, if opts.StoreProjection == 1

Reference

P. Benner, E. S. Quintana-Orti, G. Quintana-Orti, Efficient numerical algorithms for balanced stochastic truncation, Int. J. Appl. Math. Comput. Sci. 11 (5) (2001) 1123--1150.

See Also

ml_ct_dss_bst | ml_morlabopts