ml_ct_soss_bt
Balanced truncation for second-order state-space systems.
Contents
Syntax
[Mr, Er, Kr, Bur, Cpr, Cvr, Dr, info] = ml_ct_soss_bt(M, E, K, Bu, Cp, Cv, D) [Mr, Er, Kr, Bur, Cpr, Cvr, Dr, info] = ml_ct_soss_bt(M, E, K, Bu, Cp, Cv, D, opts)
[rom, info] = ml_ct_soss_bt(sys) [rom, info] = ml_ct_soss_bt(sys, opts)
Description
This function computes the balanced truncation for a second-order system of the form
M*x''(t) = -K*x(t) - E*x'(t) + Bu*u(t) (1) y(t) = Cp*x(t) + Cv*x'(t) + D*u(t) (2)
Therefore, the two generalized Lyapunov equations
A*P*E' + E*P*A' + B*B' = 0, A'*Q*E + E'*Q*A + C'*C = 0
are solved for the system Gramians P and Q, where
[ I 0 ] [ 0 I ] [ 0 ] E = [ ], A = [ ], B = [ ], C = [Cp, Cv]. [ 0 M ] [ -K -E ] [ Bu ]
As a result, a reduced-order system of the form
Mr*x''(t) = -Kr*x(t) - Er*x'(t) + Bur*u(t) (3) y(t) = Cpr*x(t) + Cvr*x'(t) + Dr*u(t) (4)
is computed.
Note: The method only allows asymptotically stable second-order systems with invertible mass matrix.
Input
- M - matrix from (1) with dimensions n x n
- E - matrix from (1) with dimensions n x n
- K - matrix from (1) with dimensions n x n
- Bu - matrix from (1) with dimensions n x m
- Cp - matrix from (2) with dimensions p x n
- Cv - matrix from (2) with dimensions p x n
- D - matrix from (2) with dimensions p x m
- sys - structure, containing the second-order system's matrices:
Entry | Meaning |
M | matrix from (1) with dimensions n x n |
E | matrix from (1) with dimensions n x n |
K | matrix from (1) with dimensions n x n |
Bu | matrix from (1) with dimensions n x m |
Cp | matrix from (2) with dimensions p x n |
Cv | 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 |
BalanceType {!} | character array, determining the type of second-order balancing
|
lyapdlopts | structure, containing the optional parameters for the computation of the continuous-time Lyapunov equations, see ml_lyapdl_sgn_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)) |
OrderComputation {!} | character array, determining the method for the computation of the size of the reduced-order model
|
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 if 'tolerance' or 'sum' 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
- Mr - matrix of (3) with dimensions r x r
- Er - matrix of (3) with dimensions r x r
- Bur - matrix of (3) with dimensions r x m
- Cpr - matrix of (4) with dimensions p x r
- Cvr - matrix of (4) with dimensions p x r
- Dr - matrix of (4) with dimensions p x m
- rom - structure, with the following entries:
Entry | Meaning |
M | matrix from (1) with dimensions r x r |
E | matrix from (1) with dimensions r x r |
K | matrix from (1) with dimensions r x r |
Bu | matrix from (1) with dimensions r x m |
Cp | matrix from (2) with dimensions p x r |
Cv | matrix from (2) with dimensions p x r |
D | matrix from (2) with dimensions p x m |
- info - structure, containing the following information:
Entry | Meaning |
Hsv {!} | a vector, containing the computed Hankel singular values, for second-order balancing the position and velocity Hankel singular values are saved in a struct |
infoLYAPDL | structure, containing information about the continuous-time dual Lyapunov equations solver, see ml_lyapdl_sgn_fac |
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
T. Reis, T. Stykel, Balanced truncation model reduction of second-order systems, Math. Comput. Model. Dyn. Syst. 14 (5) (2008) 391--406. https://doi.org/10.1080/13873950701844170
See Also