NonSysId: Nonlinear System Identification with Improved Model Term Selection for NARMAX Models
NonSysId: Nonlinear System Identification with Improved Model Term Selection for NARMAX Models - Published in JOSS (2025)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 7 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Repository
A MatLab package for System Identification using linear and nonlinear auto-regresive models (N)AR, (N)ARX and (N)ARMAX models
Basic Info
Statistics
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
NonSysId: Nonlinear System Identification with Improved Model Term Selection for NARMAX Models
An open-source MATLAB package for system identification of ARX, NARX and (N)ARMAX models, featuring improved term selection and robust long-term simulation capabilities.
Authors: Rajintha Gunawardena1, Zi-Qiang Lang2, Fei He1 1. Centre for Computational Science and Mathematical Modelling, Coventry University, Coventry CV15FB, UK. 2. School of Electrical and Electronic Engineering, The University of Sheffield, Western Bank, Sheffield S10 2TN, UK.
Overview 📖
NonSysId is a MATLAB package designed for the identification of nonlinear dynamic systems using (N)AR(MA)X models. It incorporates an enhanced Orthogonal Forward Regression (OFR) algorithm, iterative-OFR (iOFR), and PRESS-statistic based criterion to improve model term selection and ensure robust long-term predictions. The package is particularly suited for applications where separate validation datasets are difficult to obtain, such as real-time fault diagnosis and electrophysiological studies.
Features
- Iterative OFR (iOFR): Improves term selection by iterating through multiple orthogonalisation paths to produce parsimonious models.
- Simulation-based Model Selection: Ensures simulation stability and enhances long-term prediction accuracy.
- PRESS-statistic Integration: Includes a PRESS-statistic based term selection criterion that aims to minimise the leave-one-out cross-validation error. Therefore, the model can be validated without requiring separate validation datasets.
- Reduced Computational Time (RCT): Optimized procedures to accelerate model term selection for complex NARX models.
Getting Started 🚀
Prerequisites
- MATLAB R2017a or later.
- Required MATLAB Toolboxes:
- Signal Processing Toolbox (required if using earlier than Matlab 2019a, for correlation analysis).
- Parallel Computing Toolbox (required for accelerating system identification procedures).
Installation
Clone the repository:
bash git clone https://github.com/raj-gun/NonSysId.gitor manually download the folder 'NonSysId'.In Matlab, either;
- add the folder 'NonSysId' to the Matlab path permanently using the 'pathtool' (https://uk.mathworks.com/help/matlab/ref/pathtool.html).
- or use the 'addpath' command in the Matlab script to add the folder 'NonSysId' and use the functions within (https://uk.mathworks.com/help/matlab/ref/addpath.html).
Documentation
Brief documentation explaining the main functions and a code structure for identifying a model, simulating and validating an identified model is given in the doc folder.
Examples
- Basic use of identifying a SISO NARX model from real data, see the example in
Examples/Electro-mechanical system. - An example of identifying a MISO NARX model is shown in
Examples/Hysteresis_model_MISO.
Paper
If you are using the NonSysId package for academic purposes, kindly reference our pre-print paper as follows:
NonSysId: A nonlinear system identification package with improved model term selection for NARMAX models
Rajintha Gunawardena, Zi-Qiang Lang, Fei He
DOI: 10.48550/arXiv.2411.16475
@misc{10.48550/arXiv.2411.16475,
title={NonSysId: A nonlinear system identification package with improved model term selection for NARMAX models},
author={Rajintha Gunawardena and Zi-Qiang Lang and Fei He},
year={2024},
eprint={2411.16475},
archivePrefix={arXiv},
primaryClass={eess.SY},
url={https://arxiv.org/abs/2411.16475},
}
References
[1] M. Korenberg, S. Billings, Y. Liu, and P. McIlroy, “Orthogonal parameter estimation algorithm for non-linear stochastic systems,” Int. J. Control, vol. 48, no. 1, pp. 193–210„ 1988.
[2] S. Chen, S. Billings, and W. Luo, “Orthogonal least squares methods and their application to non-linear system identification,” Int. J. Control, vol. 50, no. 5, pp. 1873–1896„ 1989.
[3] S. Billings, Nonlinear System Identification: NARMAX Methods In The Time, Frequency, And Spatio-Temporal Domains, vol. 13. Chichester, UK: John Wiley & Sons, Ltd, 2013.
[4] S. B. Yuzhu Guo, L.Z. Guo and H.-L. Wei, “An iterative orthogonal forward regression algorithm,” International Journal of Systems Science, vol. 46, no. 5, pp. 776–789, 2015.
[5] X. Hong, P. Sharkey, and K. Warwick, “Automatic nonlinear predictive model-construction algorithm using forward regression and the press statistic,” IEE Proceedings-Control Theory and Applications, vol. 150, no. 3, pp. 245–254, 2003.
[6] L. Ljung, System identification. Springer, 1998.
Owner
- Login: raj-gun
- Kind: user
- Repositories: 1
- Profile: https://github.com/raj-gun
JOSS Publication
NonSysId: Nonlinear System Identification with Improved Model Term Selection for NARMAX Models
Authors
Centre for Computational Science and Mathematical Modelling, Coventry University, Coventry CV1 5FB, UK
Tags
System Identification NARX NARMAX Orthogonal Least Squares Time-series Nonlinear dynamicsGitHub Events
Total
- Issues event: 11
- Watch event: 4
- Issue comment event: 2
- Public event: 1
- Push event: 257
- Fork event: 1
Last Year
- Issues event: 11
- Watch event: 4
- Issue comment event: 2
- Public event: 1
- Push event: 257
- Fork event: 1
Issues and Pull Requests
Last synced: 5 months ago
All Time
- Total issues: 8
- Total pull requests: 0
- Average time to close issues: 5 months
- Average time to close pull requests: N/A
- Total issue authors: 2
- Total pull request authors: 0
- Average comments per issue: 0.25
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 8
- Pull requests: 0
- Average time to close issues: 5 months
- Average time to close pull requests: N/A
- Issue authors: 2
- Pull request authors: 0
- Average comments per issue: 0.25
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- JAuriol81 (7)
- brivadis (1)