[ANN] PeriodicMatrixEquations.jl - Solvers for periodic differential and difference matrix equations

PeriodicMatrixEquations.jl provides a collection of solvers for several differential and difference periodic matrix equations, which are encountered in the analysis and synthesis of periodic control systems. This package relies on the periodic matrix objects defined in the PeriodicMatrices.jl package and underlies the analysis and synthesis functions of the PeriodicSystems.jl package. PeriodicMatrixEquations.jl extends the MatrixEquations.jl package with solvers covering matrix equations with periodic time-varying matrices. Equations with constant matrices are solved using appropriate solvers from the MatrixEquations.jl package.

The available functions cover both continuous-time and discrete-time settings, by solving, respectively, periodic differential and difference Lyapunov and Riccati equations with real periodic matrices. The available solvers for difference Lyapunov and Riccati equations rely on efficient structure preserving methods using the periodic Schur decomposition of a product of matrices (provided in the SLICOT library or in the PeriodicSchurDecompositions.jl package). Iterative methods are employed to directly compute the Cholesky factors of the solution of the periodic Lyapunov difference equations with non-negative definite solutions.

For the solution of periodic differential equations multiple-point periodic generators are determined first, which are the values of the solutions on an uniform time grid. In the case of differential Lyapunov equations, the multiple-point generators are determined as solutions of appropriate difference periodic Lyapunov equations, while for the differential Riccati equations product representations of transition matrices are used to determine stable invariant subspaces on an uniform time grid. The multiple-pont initial values are then used as initial conditions for high precision integration based evaluation of the solution at values between time grids, or for interpolation purposes for fast evaluation of the solution at arbitrary time values. The implementations of differential matrix equation solvers rely on the high performance ODE solvers available in the OrdinaryDiffEq package. The symplectic solver of the IRKGaussLegendre package is instrumental to integrate linear systems with Hamiltonian dynamics.

A special care has been taken to arrive to the “best” user interface for the diferential equations solvers. Independently of the periodic matrix types appearing in the equations, the resulting type of the solution matrix X is a periodic function matrix representing a special interface to the employed ODE solvers. The solution at an arbitrary time value t can be simply evaluated as X(t) in accordance with the user’s requirements regarding the accurcy of the solution. If high accuracy is desired, the preferred way to evaluate the solution should be via the integration of the appropriate differential equation with an initial condition provided by the periodic generator value at the nearest time grid point. However, if many evaluation points are necessary, this approach can involve a substantial computational effort. Therefore, for moderate and low accuracy requirements, an alternative way is to be preferred, which uses the data interpolation tools of the employed ODE solvers. This is the default option of all solvers and allows fast evaluations of the solution in many time points. To enhance accuracy, the interpolation approach has been combined with the multiple-point initialization approach, by providing multiple interpolation-based solutions on time-grid intervals.

The current release of this package covers primarily the needs of the analysis and synthesis functions available in the PeriodicSystems.jl package. The planned new developments target the implementation of solvers for difference and differential Sylvester equations. These solvers are instrumental for addressing, for example, eigenvalue assigment problems for periodic systems using periodic state feedback. These tools will be also useful to determine stationary (periodic) solutions of linear periodic differential equations with periodic forcing input terms. Another future goal is the enhancement of the solvers of positive Lyapunov equations, via non-iterative structure exploiting solvers in the discrete-time setting, or via implicit solvers, which determine directly the Cholesky factor of the solution using a differential-algebraic equation formulation. The existence of a satisfactory approach for the latter problem still seems to be an open problem. Preliminary tests using both explicit and implicit differential equation solvers led to unsatisfactory results and therefore these special solvers have not been included in the current release. Any help in this direction is most welcome.

10 Likes