ml_dt_ss_bt

Balanced truncation for standard discrete-time systems.

Contents

Syntax

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

Description

This function computes the balanced truncation for a standard discrete-time system of the form

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

Therefore, the two standard discrete-time Lyapunov equations

   A*P*A' - P + B*B' = 0,
   A'*Q*A - Q + C'*C = 0

are solved for the system Gramians P and Q. As result, a reduced-order system of the form

   x(t+1) = 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 the r-th order transfer function Gr it holds

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

with Hsv, a vector containing the Hankel singular values of the system.

Note: 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
dlyapdlopts
structure, containing the optional parameters for the computation of the discrete-time Lyapunov equations, see ml_dlyapdl_smith_fac
default: struct()
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'
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()
stabdsylvopts
structure, containing the optional parameters for the Sylvester equation solver used for the decomposition into stable and anti-stable system parts, see ml_dsylv_smith
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 absolute 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
AbsErrBound
{!}
computed error bound for the absolute error of the reduced-order model in H-infinity norm
Hsv
a vector, containing the computed Hankel singular values
infoADTF
structure, containing information about the additive decomposition of the system into its stable and anti-stable parts, see ml_dt_ss_adtf
infoDLYAPDL
structure, containing information about the continuous-time dual Lyapunov equations solver, see ml_dlyapdl_sgn_fac
Ns
{!}
Dimension of the stable part of the reduced-order model
Nu
Dimension of the anti-stable part of the reduced- order model
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, Model reduction based on spectral projection methods, in: P. Benner, V. Mehrmann, D. Sorensen (Eds.), Dimension Reduction of Large-Scale Systems, Vol. 45 of Lect. Notes Comput. Sci. Eng., Springer, Berlin/Heidelberg, Germany, 2005, pp. 5--45. https://doi.org/10.1007/3-540-27909-1_1

See Also

ml_dt_dss_bt | ml_morlabopts