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
|
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 |
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 |
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