ml_ct_dss_prbt

Positive-real balanced truncation for descriptor systems.

Contents

Syntax

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

Description

This function computes the generalized positive-real balanced truncation for a positive-real descriptor system of the form

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

Therefore, first an additive decomposition of the system is performed using the matrix disk function, such that

        [ Ei  0 ]       [ Ai  0 ]                        [ Ci ]
   E2 = [       ], A2 = [       ], B2 = [ Bi, Bp ], C2 = [    ],
        [ 0  Ep ]       [ 0  Ap ]                        [ Cp ]

with (Ei, Ai, Bi, Ci, D) belonging to the polynomial part and (Ep, Ap, Bp, Cp, 0) belonging to the strictly proper part. Now, the two generalized positive-real Riccati equations

   Ap*Pp*Ep' + Ep*Pp*Ap'
       + (Ep*Pp*Cp' + Bp) * inv(R) * (Ep*Pp*Cp' + Bp)' = 0,
   Ap'*Qp*Ep + Ep'*Qp*Ap
       + (Bp'*Qp*Ep + Cp)' * inv(R) * (Bp'*Qp*Ep + Cp) = 0

are solved for the reduction of the strictly proper part, with

   R = M + M',

where M = D - Ci * inv(Ai) * Bi. Also, the two generalized discrete-time Lyapunov equations

   Ai*Pi*Ai' - Ei*Pi*Ei' - Bi*Bi' = 0,
   Ai'*Qi*Ai - Ei'*Qi*Ei - Ci'*Ci = 0

are solved for the reduction of the polynomial part. As result, a reduced-order system of the form

   Er*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 the reduced-order transfer function Gr with an r-th order strictly proper part it holds

   ||inv(G + M') - inv(Gr + M')||_{\infty} <= 2 * ||R||_{2}^2
       * (Hsvp(r+1) + ... + Hsvp(n)),

with Hsvp, a vector containing the proper characteristic positive-real singular values of the system, and R^2 = inv(M + M').

Note: In case of a rank-deficient M + M' term, an epsilon regularization is performed, which replaces the M during the computations with an identity matrix scaled by a given epsilon.

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 m x n
D
matrix from (2) with dimensions m x m
E
matrix from (1) with dimensions n x n

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()
DecompEig
positive scalar, overestimation of the absolute value of the largest finite eigenvalue of s*E - A, if set, replaces the computation with DecompTol
default: []
DecompTol
nonnegative scalar, tolerance multiplied with the largest singular value of E to determine the smallest non-quasi-zero singular value of E
default: log(n)*eps
Epsilon
positive scalar, used in the case of a non-full-rank M + M' term for epsilon regularization by multiplying with an identity matrix of appropriate size
default: 1.0e-03
gdlyapdlopts
structure, containing the optional parameters for the computation of the generalized discrete-time Lyapunov equations, see ml_gdlyapdl_smith_fac
default: struct()
ImproperTrunc
{!}
nonnegative scalar, tolerance multiplied with the largest proper Hankel singular value of the system to truncate the improper part, if 0 no improper balanced truncation is performed
default: log(n)*eps
Index
nonnegative integer, index of the descriptor system used to set an upper bound on the size of the reduced improper part, Inf if unknown
default: Inf
infdecopts
structure, containing the optional parameters for the decomposition of the finite and infinite parts of the system using the disk function and subspace extraction method, see ml_disk and ml_getqz
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(Hsvp)) + Ni
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'
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

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 m x r
D
matrix from (4) with dimensions m x m
E
matrix from (3) with dimensions r x r

Entry
Meaning
Hsvi
a vector, containing the computed Hankel singular values of the improper part of the system
Hsvp
a vector, containing the computed characteristic positive-real singular values of the proper part of the system
infoCAREDL
structure, containing information about the sign function solver for the dual Riccati equations, see ml_caredl_sgn_fac
infoADTF
structure, containing information about the additive decomposition of the system into its infinite and finite parts, see ml_ct_dss_adtf
infoGDLYAPDL
structure, containing information about the generalized discrete-time Lyapunov equation solver for the improper Gramians, see ml_gdlyapdl_smith_fac
infoPCARE_C
structure, containing information about the continuous-time algebraic positive Riccati equation solver for the controllability Gramian, see ml_pcare_nwt_fac
infoPCARE_O
structure, containing information about the continuous-time algebraic positive Riccati equation solver for the observability Gramian, see ml_pcare_nwt_fac
InvAbsErrBound
{!}
computed error bound for the absolute error of the inverse transfer functions in H-infinity norm
M
matrix with dimensions m x m, polynomial part of zeroth order and used in the error bound (or term from the epsilon regularization)
Ni
{!}
Dimension of the improper part in the reduced- order model
Np
{!}
Dimension of the proper part in 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

T. Reis, T. Stykel, Positive real and bounded real balancing for model reduction of descriptor systems, Internat. J. Control 83 (1) (2010) 74--88. https://doi.org/10.1080/00207170903100214

See Also

ml_ct_ss_prbt | ml_morlabopts