PeriodicMatrices.jl
PeriodicMatrices.jl provides the basic tools to handle periodic time-varying matrices. The time dependence can be either continuous or discrete.
Periodic matrices appear in many control applications involving periodic phenomena as for example, satellite attitude control, helicopter forward flight control, orbital stabilization of underactuated systems, control of multi-rate sampled-data systems, etc. These problems can be addressed using tools available in the PeriodicSystems package, which is based on the periodic matrix type defined in this package.
A continuous-time periodic matrix can be specified in the following forms:
- periodic matrix function
- Fourier matrix series in cosine-sine form
- periodic matrix time series with uniform time grid
- periodic matrix time series with non-uniform time grid (also known as periodic switching matrix)
- periodic symbolic matrix
- matrix of Fourier series approximations in sine-cosine form
A discrete-time periodic matrix can be specified in the following forms:
- periodic matrix time series with time-varying dimensions with uniform time grid
- periodic matrix time series with time-varying dimensions with non-uniform time grid
- periodic matrix time series with constant dimensions with uniform time grid
- periodic matrix time series with constant dimensions with non-uniform time grid
For a periodic matrix A(t) of period T it is not assumed that T is the minimum value which satisfies the periodicity condition A(t) = A(t+T) for all values of t. To describe matrices having multiple periods, a subperiod Tsub := T/n can be defined, such that A(t) = A(t+Tsub), for all t. This allows a substantial memory saving for some classes of periodic representations.
Several operations on periodic matrices are implemented, such as, inversion, transposing, norms, derivative/shifting, trace. All operations with two periodic matrices such as addition/substraction, multiplication, horizontal/vertical concatenation, block-diagonal appending, allow different, but commensurate, periods/subperiods.
Functions are provided to compute the characteristic multipliers and characteristic exponents of periodic matrices, using methods based on the periodic Schur decomposition of matrix products or structure exploitung fast algorithms. These functions are instrumental to apply Floquet theory to study the properties of solutions of various classes of differential equations (Mathieu, Hill, Meissner) and the stability of linear periodic systems (see PeriodicSystems package).
The following categories of functions are currently implemented:
Constructors for periodic matrices
PeriodicMatrixDiscrete-time periodic matrix representation.PeriodicArrayDiscrete-time periodic array representation.SwitchingPeriodicMatrixDiscrete-time switching periodic matrix representation.SwitchingPeriodicArrayDiscrete-time switching periodic array representation.PeriodicFunctionMatrixContinuous-time periodic function matrix representation.PeriodicSymbolicMatrixContinuous-time periodic symbolic matrix representation.PeriodicTimeSeriesMatrixContinuous-time periodic time series matrix representation.HarmonicArrayContinuous-time harmonic array representation.FourierFunctionMatrixContinuous-time Fourier function matrix representation.PeriodicSwitchingMatrixContinuous-time switching periodic matrix representation.
Periodic matrix conversions
ts2hrConversion of a periodic time series matrix to a harmonic array approximation.pfm2hrConversion of a periodic function matrix to a harmonic array representation.ts2pfmConversion of an interpolated periodic time series matrix to a periodic function matrix.hr2psmConversion of a harmonic array representation to a periodic symbolic matrix.psm2hrConversion of a periodic symbolic matrix into a harmonic array representation.pm2paConversion of a discrete-time periodic matrix object to a periodic array object.ffm2hrConversion of a Fourier function matrix to a harmonic array representation.hr2btBuilding a block Toeplitz matrix approximation of a harmonic (Fourier) array representation.hr2btupdBuilding an updated block Toeplitz matrix approximation of a harmonic (Fourier) array representation.
A comprehensive set of conversions between discrete-time models and between continuous-time models is implemented via the convert function.
Periodic matrix utilities
pseigCharacteristic multipliers of a periodic matrix.pseigsmCharacteristic multipliers of a periodic symbolic matrix.psceigCharacteristic exponents of a periodic matrix.psceighrCharacteristic exponents of a periodic matrix in Harmonic Array representation.psceigfrCharacteristic exponents of a periodic matrix in Fourier Function Matrix representation.psceigsmCharacteristic exponents of a periodic matrix in symbolic representation.monodromyMonodromy matrix of a linear periodic time-varying system of ODE.tvstmState transition matrix of a linear time-varying system of ODE.psreduc_regFast reduction of a lifted regular pencil corresponding to a product of matrices.tvmevalTime response evaluation of a continuous-time periodic matrix.hrevalEvaluation of a harmonic array for a numerical or symbolic time value.hrchopRemoval of the negligible trailing terms of a harmonic representation.hrtruncTruncation of a harmonic representation.pmaverageEvaluation of the time averaged matrix of a continuous-time periodic matrix.
Periodic Schur decompositions
phessPeriodic Hessenberg decomposition of a product of matrices.pschurPeriodic Schur decompositions of products or quotient products of matrices.psordschur!Reordering of periodic Schur decompositions of products or quotient products of matrices.psordschur1!Reordering of periodic Schur decompositions of products or quotient products of square matrices.pgschurGeneralized real periodic Schur decomposition of a formal product of matrices.pgschurGeneralized real periodic Schur decomposition of a formal product of matrices.pgschur!Generalized real periodic Schur decompositions of formal products of matrices (in place computation).pgschurGeneralized real periodic Schur decompositions of formal products of matrices.pgordschur!Reordering of generalized real periodic Schur decompositions a formal products of matrices.
Release Notes
Main developer
License: MIT (expat)
References
[1] A. Varga. A Periodic Systems Toolbox for Matlab. Proc. of IFAC 2005 World Congress, Prague, Czech Republic, 2005.
[2] S. Bittanti and P. Colaneri. Periodic Systems - Filtering and Control, Springer Verlag, 2009.
[3] J. A. Richards. Analysis of Periodically Time-Varying Systems, Springer Verlag, 1983.