PeriodicSystems.jl

DocBuild Code on Github.

PeriodicSystems.jl is intended to be a collection of Julia functions for numerical computations related to periodic system representations in the continuous-time form

 dx(t)/dt = A(t)x(t) + B(t)u(t) ,
 y(t)     = C(t)x(t) + D(t)u(t) ,

or in the discrete-time form

 x(t+1)  = A(t)x(t) + B(t)u(t) ,
 y(t)    = C(t)x(t) + D(t)u(t) ,

where x(t), u(t) and y(t) are the system state vector, system input vector and system output vector, respectively, and t is the continuous or discrete time variable. The system matrices satisfy A(t) = A(t+T), B(t) = B(t+T), C(t) = C(t+T), D(t) = D(t+T), i.e., are periodic with period T.

Many control applications are formulated as genuine periodic control problems as for example, satellite attitude control, helicopter forward flight control, orbital stabilization of underactuated systems, etc. Besides that, periodic systems represent a general framework to analyze and design multi-rate sampled-data systems.

The targeted functionality of this package is described in [1] and will cover both continuous-time and discrete-time periodic systems. The following categories of functions are currently implemented:

Building periodic system state-space models

  • PeriodicStateSpace Periodic state space system representation.
  • ps Construction of periodic state-space models.
  • psmrc2d Discretization/resampling of a multirate LTI system.

Basic connections and operations

  • psparallel Parallel connection of periodic systems.
  • psseries Series connection of periodic systems.
  • psappend Appending of periodic systems.
  • pshorzcat Horizontal concatenation of periodic systems.
  • psvertcat Vertical concatenation of periodic systems.
  • psfeedback Periodic output feedback connection.
  • pssfeedback Periodic state feedback connection.
  • pssofeedback Periodic state feedback with state estimator connection.

Discretization of continuous-time periodic systems

  • psc2d Discretization of a continuous-time periodic system.

Conversions to LTI representations

  • psaverage Computation of the averaged LTI system of a continuous-time periodic system.
  • psteval Computation of the time evaluated LTI system of a continuous-time periodic system.
  • ps2fls Computation of a complex frequency-lifted LTI representation of a continuous-time periodic system.
  • ps2frls Computation of a real frequency-lifted LTI representation of a continuous-time periodic system.
  • ps2ls Computation of a time-lifted LTI representation of a discrete-time periodic system.

Periodic system analysis

  • pspole Computation of the poles of a periodic system.
  • pszero Computation of the zeros of a periodic system.
  • isstable Assessment of stability of a periodic system.
  • pshanorm Evaluation of the Hankel-norm of a periodic system.
  • psh2norm Evaluation of the H2-norm of a periodic system.
  • pslinfnorm Evaluation of the L∞/H∞-norm of a periodic system.
  • pstimeresp Time response of a periodic system.
  • psstepresp Step response of a periodic system.

Simplification of periodic system models

Periodic state feedback controller and estimator design

  • pclqr LQ-optimal state feedack stabilization of continuous-time periodic systems.
  • pclqry LQ-optimal state feedack stabilization with output weighting of continuous-time periodic systems.
  • pdlqr LQ-optimal state feedack stabilization of discrete-time periodic systems.
  • pdlqry LQ-optimal state feedack stabilization with output weighting of discrete-time periodic systems.
  • pckeg Kalman estimator gain matrix for continuous-time periodic systems.
  • pckegw Kalman estimator gain matrix for continuous-time periodic systems with noise inputs.
  • pdkeg Kalman estimator gain matrix for periodic systems.
  • pdkegw Kalman estimator gain matrix for periodic systems with noise inputs.

Periodic output feedback controller design

  • pcpofstab_sw Stabilization of continuous-time periodic systems using switching periodic output feedback.
  • pcpofstab_hr Stabilization of continuous-time periodic systems using harmonic output feedback.
  • pdpofstab_sw Stabilization of discrete-time periodic systems using switching periodic output feedback.
  • pdpofstab_hr Stabilization of discrete-time periodic systems using discretized harmonic periodic output feedback.
  • pclqofc_sw LQ-optimal stabilization of continuous-time periodic systems using switching periodic output feedback.
  • pclqofc_hr LQ-optimal stabilization of continuous-time periodic systems using harmonic output feedback.
  • pdlqofc LQ-optimal stabilization of discrete-time periodic systems using periodic output feedback.
  • pdlqofc_sw LQ-optimal stabilization of discrete-time periodic systems using switching periodic output feedback.

Release Notes

Main developer

Andreas Varga

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] A. Varga, MatrixPencils.jl: Matrix pencil manipulation using Julia. Zenodo: https://doi.org/10.5281/zenodo.3894503.

[4] A. Varga, MatrixEquations.jl: Solution of Lyapunov, Sylvester and Riccati matrix equations using Julia. Zenodo: https://doi.org/10.5281/zenodo.3556867.