A library for Floquet-based stability analysis of periodic dynamical systems.
stablib is a research-oriented library for performing Floquet stability analysis on linear time-periodic (LTP) systems of the form
[ \dot{x}(t) = A(t) x(t), \quad A(t+T)=A(t) ]
The library provides tools to compute:
- The state transition (monodromy) matrix
- Floquet multipliers and exponents
- Modal growth/decay rates
- Natural frequencies of complex LTI systems
- Some post-processing utilities for mode interpretation and visualization
This library is designed with aeroelastic, hydrodynamic, and rotordynamic applications in mind, but is general enough for any periodic linear system.
- Time-domain integration of LTP systems
- Robust computation of the monodromy matrix
- Extraction of Floquet multipliers and exponents
- Modal sorting and stability classification
- Clean, modular architecture for research workflows
- Pythonic
Install stablib directly using pip:
pip install stablib
Ensure the package is available in your Python environment before use.
... on the works
- Define the periodic system matrix
A(t) - Integrate the variational equations over one period
- Construct the monodromy matrix
- Extract Floquet multipliers and exponents
- Post-process modes (growth rates, frequencies, participation)
The examples/ directory includes:
- Canonical LTP systems for benchmarking (Mathiueu's oscillator, Rotation matrix)
- Aeroelastic-inspired periodic systems (5DOF Coleman's edgewise turbine model)
- Generalized A matrix input cases from simulation software (OpenFAST)
Each example is self-contained and intended to be run end-to-end.
- Aeroelastic stability of rotating blades
- Rotor dynamics and periodic structures
- General linear periodic systems
If you use stablib in academic work, please cite:
@software{stablib,
title = {stablib: A Floquet Stability Analysis Library},
author = {Mora Amaro, J.; Branlard, E.; Riva, R.},
year = {2026},
url = {https://github.com/jjmoraa/stablib}
}Contributions are welcome. Please:
- Fork the repository
- Create a feature branch
- Add tests where appropriate
- Submit a pull request
This project is released under the MIT License. See LICENSE for details.
For questions, suggestions, or collaboration inquiries, feel free to open an issue or contact the maintainer directly.