This approach to dimension reduction of linear/bilinear control systems is based on the idea of finding an optimal (low-dimensional) system that approximates as closely as possible the transfer function/matrix of the original (high-dimensional) system. As explained in detail in [1], the method builds on solving a generalized Sylvester equation by the Bilinear Iterative Rational Krylov Algorithm (BIRKA). It aims at the construction of bilinear reduced-order models that are (locally) optimal with respect to the bilinear H2-norm. Based on the idea of iterative correction, the algorithm can be seen as a suitable extension of its linear analogue (IRKA). Locally ℋ2-optimal reduced-order models fulfill an abstract Hermite-type interpolation condition for the Volterra series of the bilinear control system. Similar as in the linear case, these optimality conditions can also be stated in terms of (generalized) linear matrix equations. This in turn allows to construct the required projection subspaces as solutions to certain generalized Sylvester equations.
The MATLAB function qm_H2model.m can be found here
Note that qm_H2model.m works only with objects of the main classes given in the following table:
class name | description |
---|---|
ket | state vecors, in eigen/energy representation |
rho | density matrices, in eigen/energy representation |
The following input parameter is required when calling the function qm_H2model.m
parameter | description |
---|---|
dim | dimensionality of reduced model equations |
As input this function requires matrices A,B,N,C,D along with vectors xi, xe etc which are typically generated using our function qm_abncd for the LvNE setting. These data are read from input data file ket_0.mat or rho_0.mat for TDSE or LvNE simulations, respectively.
As output this function produces reduced matrices A,B,N,C,D along with vectors xi, xe etc which are written to output data file ket_hn_0.mat or rho_hn_0.mat where n indicates the size after reduction. This can subsequently be used as input for the bilinear control problem in reduced dimensionality by running qm_propa or its optimal control variant implemented in qm_optimal.
For more details on this dimension reduction, see this page of our WavePacket central wiki.
BIRKA iteration scheme, see [1]
Two options for stabilizing A-matrix: EVS and SSU
Two options for solving generalized Sylvester equations: by iterative method or by biconjugate gradient method
Note that function qm_init should be run previously in order to initialize all variables in use. Of particular interest are the following structures:
Wiki: Reference.Classes.Main
Wiki: Reference.Classes.ket_rho
Wiki: Reference.Files.Main
Wiki: Reference.Programs.Main
Wiki: Reference.Programs.qm_abncd
Wiki: Reference.Programs.qm_init
Wiki: Reference.Programs.qm_optimal
Wiki: Reference.Programs.qm_propa
Wiki: Reference.Variables.reduce
Wiki: Users.Matlab.Main