NonSysId: Nonlinear System Identification with Improved Model Term Selection for NARMAX Models

Research output: Contribution to journalArticlepeer-review

Abstract

System identification lies at the intersection of control theory, dynamic systems theory andmachine learning, involving the construction of mathematical models of complex dynamic linearor nonlinear systems using input-output data, enabling the prediction of system behaviourand analysis in both time and frequency domains. This approach can model the entiresystem or capture specific dynamics within it. For meaningful analysis, it is essential that themodel accurately reflects the underlying system behaviour. This paper introduces NonSysId,an open-source MATLAB software package designed for nonlinear system identification,specifically focusing on NARMAX models. The software incorporates an advanced termselection methodology that prioritises simulation (free-run) accuracy while preserving modelparsimony. A key feature is the integration of iterative Orthogonal Forward Regression (iOFR)with Predicted Residual Sum of Squares (PRESS) statistic-based term selection, facilitatingrobust model generalisation without the need for a separate validation dataset. Furthermore,techniques for reducing computational overheads are implemented. These features makeNonSysId particularly suitable for real-time applications, such as structural health monitoring,fault diagnosis, and biomedical signal processing, where capturing signals under consistentconditions is challenging, resulting in limited or no validation data.
Original languageEnglish
Article number8028
Number of pages9
JournalJournal of Open Source Software
Volume10
Issue number114
DOIs
Publication statusPublished - 21 Oct 2025

Bibliographical note

Open access CC-BY

Funding

This is supported by EPSRC grant [EP/X020193/1].

Fingerprint

Dive into the research topics of 'NonSysId: Nonlinear System Identification with Improved Model Term Selection for NARMAX Models'. Together they form a unique fingerprint.

Cite this