Skip to content

StanfordASL/Opt-SSM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Opt-SSM 🤖🚀

A toolbox for learning optimal projections onto spectral submanifolds

This codebase accompanies the paper Taming High-Dimensional Dynamics: Learning Optimal Projections onto Spectral Submanifolds (arXiv:2504.03157)

Optimal projection onto SSMs can improve over projecting orthogonally!

🛠️ Installation

It is recommended to work in a virtual environment.

First clone the repository:

git clone [email protected]:StanfordASL/Opt-SSM.git
cd Opt-SSM

Install the required package dependencies and the package itself in editable mode using pip:

pip install -r requirements.txt
pip install -e .

Note that SSMLearnPy is currently only compatible with NumPy 1.24.3, so if you have a different version of NumPy installed, you may need to downgrade it. Additionally, we make use of IPOPT, which has to be installed. In case you are using conda, this can be installed using:

conda install conda-forge::ipopt

Finally, we recommend using Gurobi for the solving the MPC, which has to be installed separately. However, one can also use OSQP, which can be set in the run_mpc function in the mpc file.

📘 Usage

Example usage of the OptSSM class:

from utils.ssm import OptSSM

opt_ssm = OptSSM(aut_trajs_obs=aut_trajs_obs,
                 t_split=3.5,
                 SSMDim=5,
                 SSMOrder=2,
                 ROMOrder=2,
                 N_delay=3,
                 ts=ts)

Want to see a complete example? Check out one of the notebooks in the examples directory, e.g. the slow-fast example.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • We thank the authors of the package SSMLearnPy for inspiration
  • Slow-fast and simplified fluid benchmarks are adapted from Learning nonlinear projections for reduced-order modeling of dynamical systems using constrained autoencoders (Chaos, 2023)

📚 Citation

@article{buurmeijer2025optssm,
      author = {Buurmeijer, Hugo and Pabon, Luis and Alora, John Irvin and Roshan, Kaundinya and Haller, George and Pavone, Marco},
      title = {Taming High-Dimensional Dynamics: Learning Optimal Projections onto Spectral Submanifolds},
      year = {2025},
      journal = {arXiv preprint arXiv:2504.03157},
      note = {Submitted to IEEE Conference on Decision and Control (CDC), Rio de Janeiro, 2025},
      }

About

Learning Optimal Projections onto Spectral Submanifolds

Resources

License

Stars

Watchers

Forks

Languages