Skip to content

forgi86/sysid-neural-continuous

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Continuous-time system identification with neural networks

This repository contains the Python code to reproduce the results of the paper Continuous-time system identification with neural networks by Marco Forgione and Dario Piga.

The following fitting methods for neural dynamical models are implemented and tested

  1. Full simulation error minimization
  2. Truncated simulation error minimization
  3. Soft-constrained integration
  4. One-step prediction error minimization

Folders:

  • torchid: PyTorch implementation several neural dynamical models
  • examples: examples of neural dynamical models identification
  • common: definition of metrics R-square, RMSE, fit index

Three examples are presented:

For the RLC example, the main scripts are:

  • RLC_fit_full: identification with full simulation error minimization
  • RLC_fit_truncated.py: identification with truncated simulation error minimization
  • RLC_fit_soft.py: identification with soft-constrained integration
  • RLC_fit_1step: identification with one-step prediction error minimization
  • RLC_eval_sim.py: evaluation of the identified models in simulation
  • RLC_OE_comparison.m: linear Output Error identification in Matlab (oe method)
  • RLC_subspace_comparison.m: linear subspace identification in Matlab (n4sid method)

Similar scripts are provided for the other examples.

Software requirements:

Simulations were performed on a Python 3.7 conda environment with

  • numpy
  • scipy
  • matplotlib
  • pandas
  • sympy
  • pytorch (version 1.4.0)
  • numba
  • nodepy
  • tensorboard

These dependencies may be installed through the commands:

conda install numpy numba scipy sympy pandas matplotlib ipython
conda install pytorch torchvision cpuonly -c pytorch
pip install tensorboard nodepy

Citing

If you find this project useful, we encourage you to

  • Star this repository ⭐
  • Cite the paper
@article{forgione2021a,
  title={Continuous-time system identification
  with neural networks: Model structures and fitting criteria},
  author={Forgione, M. and Piga, D.},
  journal={European Journal of Control},
  volume={59},
  pages={69--81},
  year={2021},
  publisher={Elsevier}
}

About

Continuous-time system identification with neural networks

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages