Codes of paper 'Wenjian Hao, Bowen Huang, Wei Pan, Di Wu, and Shaoshuai Mou. "Deep Koopman learning of nonlinear time-varying systems." Automatica 159 (2024): 111372.'
Description
- Started on Sep/2021, last revision on Jan/2022.
- Author: Wenjian Hao, PhD, AAE, Purdue University.
- This code is about the first example in the paper, readers can refine the codes accordingly based on their research.
- The goal of this project is to learn the dynamics of various nonlinear time-varying systems (NTVS) for optimal control design purposes.
- If the paper or codes help your research or other projects please cite:
@article{hao2024deep,
title={Deep Koopman learning of nonlinear time-varying systems},
author={Hao, Wenjian and Huang, Bowen and Pan, Wei and Wu, Di and Mou, Shaoshuai},
journal={Automatica},
volume={159},
pages={111372},
year={2024},
publisher={Elsevier}
}
Dependencies
- torch, numpy, os, scipy, matplotlib, joblib, odmd.
Methodologies
- Koopman operator and deep learning.
Usage
- Run main.py to learn and save the learned dynamics, then run the plot_comparison.py for results visualization and comparison.
- Parameters are defined in config.py.
- In folder '/SavedResults/', we include the plots data of the published paper, and '/SavedResults/SavedResults08/' contains the plots data with changing rate \gamma=0.8.
Possible extensions based on this codes
- Change the dynamics by replacing the codes in block 'data generation' of main.py based on your research or projects.
- Add the control inputs following the paper (changes need to be made in utils.py).
- Develop various model-based controllers using the learning dynamics matrices and neural network basis function, see the following paper for the application examples.
@misc{hao2023deep,
title={Deep Koopman Learning of Nonlinear Time-Varying Systems},
author={Wenjian Hao and Bowen Huang and Wei Pan and Di Wu and Shaoshuai Mou},
year={2023},
eprint={2210.06272},
archivePrefix={arXiv},
primaryClass={eess.SY}
}