ml_ct_ss_prbt
Positive-real balanced truncation for standard systems.
Contents
Syntax
[Ar, Br, Cr, Dr, info] = ml_ct_ss_prbt(A, B, C, D) [Ar, Br, Cr, Dr, info] = ml_ct_ss_prbt(A, B, C, D, opts)
[rom, info] = ml_ct_ss_prbt(sys) [rom, info] = ml_ct_ss_prbt(sys, opts)
Description
This function computes the positive-real balanced truncation for a positive-real standard system of the form
x'(t) = A*x(t) + B*u(t), (1) y(t) = C*x(t) + D*u(t). (2)
Therefore, the two positive-real Riccati equations
A*P + P*A' + (P*C' - B) * inv(D + D') * (P*C' - B)' = 0, A'*Q + Q*A + (B'*Q - C)' * inv(D + D') * (B'*Q - C) = 0,
are solved for the Gramians P and Q. As result, a reduced-order positive-real 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 the r-th order transfer function Gr it holds
||inv(G + D') - inv(Gr + D')||_{\infty} <= 2 * ||R||_{2}^2 * (Hsv(r+1) + ... + Hsv(n)),
with Hsv, a vector containing the characteristic positive-real singular values of the system, and R^2 = inv(D + D').
Note: In case of a rank-deficient D + D' term, an epsilon regularization is performed, which replaces the D during the computations with an identity matrix scaled by a given epsilon.
Input
- 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
- sys - structure or state-space object, containing the standard system's matrices:
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 |
- opts - structure, containing the following optional entries:
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 + D' term for epsilon regularization by multiplying with an identity matrix of appropriate size default: 1.0e-03 |
Method {!} | character array, determining algorithm for the computation of the reduced-order model
|
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)) |
OrderComputation {!} | character array, determining the method for the computation of the size of the reduced-order model
|
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
|
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 |
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
- Ar - matrix of (3) with dimensions r x r
- Br - matrix of (3) with dimensions r x m
- Cr - matrix of (4) with dimensions m x r
- Dr - matrix of (4) with dimensions m x m
- rom - structure or state-space object, with the following entries:
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 |
- info - structure, containing the following information:
Entry | Meaning |
Hsv | a vector, containing the computed characteristic positive-real singular values |
infoCAREDL | structure, containing information about the sign function solver for the dual Riccati equations, see ml_caredl_sgn_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 |
N {!} | Dimension 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
See Also