ml_dt_ss_lqgbt
LQG balanced truncation for standard systems.
Contents
Syntax
[Ar, Br, Cr, Dr, info] = ml_dt_ss_lqgbt(A, B, C, D) [Ar, Br, Cr, Dr, info] = ml_dt_ss_lqgbt(A, B, C, D, opts)
[rom, info] = ml_dt_ss_lqgbt(sys) [rom, info] = ml_dt_ss_lqgbt(sys, opts)
Description
This function computes the linear-quadratic Gaussian balanced truncation for a standard system of the form
x(t+1) = A*x(t) + B*u(t), (1) y(t) = C*x(t) + D*u(t). (2)
Therefor, the two discrete-time algebraic Riccati equations
A*P*A' - P + B*B' - (A*P*C' + B*D') * inv(C*P*C' + Rb) * (A*P*C' + B*D')' = 0, A'*Q*A - Q + C'*C - (B'*Q*A + D'*C)' * inv(B*Q*B' + Rc) * (B'*Q*A + D'*C) = 0,
are solved for the Gramians P and Q, with
Rb = I + D*D', Rc = I + D'*D.
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 with the (right) coprime factorization G = N*inv(M) and the r-th order transfer function Gr with the (right) coprime factorization Gr = Nr*inv(Mr) it holds
||[N; M] - [Nr; Mr]||_{\infty} <= 2 * (Hsv(r+1)/sqrt(1 + Hsv(r+1)^2) + ... + Hsv(n)/sqrt(1 + Hsv(n)^2)),
with Hsv the vector containing the characteristic LQG singular values of the system.
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 p x n
- D - matrix from (2) with dimensions p 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 p x n |
D | matrix from (2) with dimensions p x m |
- opts - structure, containing the following optional entries:
Parameter | Meaning |
Beta | nonnegative scalar, used as shift of the in Bass' algorithm for better conditioning default: 0.1 |
daredlopts | structure, containing the optional parameters for the Riccati equation structure-preserving doubling solver, only used if RiccatiSolver = 'sda', see ml_daredl_sda_fac default: struct() |
dareopts | structure, containing the optional parameters for the computation of the continuous-time algebraic Riccati equations, only used if RiccatiSolver = 'newton', see ml_dare_nwt_fac default: struct() |
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)) + Nu |
OrderComputation {!} | character array, determining the method for the computation of the size of the reduced-order model
|
RiccatiSolver | character array, determining the solver for the dual Riccati equations
|
stabmethodopts | structure, containing the optional parameters for the Smith iteration based Lyapunov equation solver used for the stabilization, only used if RiccatiSolver = 'newton', see ml_dlyap_smith default: struct() |
stabsignmopts | structure, containing the optional parameters for the matrix sign function used for the decomposition into stable and anti-stable system parts, only used if RiccatiSolver = 'newton', see ml_signm 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 absolute error bound if 'tolerance' is set for OrderComputation default: 1.0e-02 |
UnstabDim | integer, dimension of the deflating anti-stable subspace in the control and filter Riccati equations, only used if RiccatiSolver = 'newton', 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
- Ar - matrix of (3) with dimensions r x r
- Br - matrix of (3) with dimensions r x m
- Cr - matrix of (4) with dimensions p x r
- Dr - matrix of (4) with dimensions p 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 p x r |
D | matrix from (4) with dimensions p x m |
- info - structure, containing the following information:
Entry | Meaning |
AbsErrBound {!} | computed error bound for the absolute error of the (right) coprime factorization in H-infinity norm |
Hsv | a vector, containing the computed characteristic LQG singular values |
infoDARE_C | structure, containing information about the Newton solver for the regulator Riccati equation, see ml_dare_nwt_fac |
infoDARE_O | structure, containing information about the Newton solver for the filter Riccati equation, see ml_dare_nwt_fac |
infoDAREDL | structure, containing information about the structure-preserving doubling solver for the dual Riccati equations, see ml_daredl_sda_fac |
infoPARTSTAB_C | structure, containing information about the partial stabilization used for the controllability Riccati equation, see ml_dt_ss_partstab |
infoPARTSTAB_O | structure, containing information about the partial stabilization used for the observability Riccati equation, see ml_dt_ss_partstab |
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