I've been hunting around for an alternative to Matlab's System Identification Toolbox, but the commonality of the terms "system" and "identification" are confounding the search.

Are there any standalone libraries that are written for this purpose? (in C++, C#, Python, etc.)

  • $\begingroup$ Are you looking for any specific algorithms? My experience with most MATLAB toolboxes is that I'll use a handful of functions from them, at most. You might have better success with a more targeted search. $\endgroup$ – Jason R Dec 8 '11 at 2:04
  • $\begingroup$ @JasonR Very true. I've found tools in other languages specific to time series in general, but specific items like the Hammerstein-Wiener Models (which I'm not even sure that I'll need, but still) have been difficult to pin down. Websites on many of these models also tend to cite the System Identification Toolbox. I may put an answer together with what I've found so far. $\endgroup$ – jonsca Dec 9 '11 at 0:10

The System Identification Toolbox contains facilities for

  • Linear system identification and determination of transfer function
  • Non-linear "black-box" models
  • ODE parameter estimation
  • Time series identification

One of the more promising substitutes for all of this functionality would be to use R. Two packages that incorporate some of the time series functionality are the Time Series Utilities and Analysis package and the Flexible Modeling Environment for Inverse Modelling, Sensitivity, Identifiability, Monte Carlo Analysis. Also sharing these functions was the Time Series Analysis and Control package

An option for the transfer function calculation and manipulation (which attempts to be a substitute for the Matlab Control Systems toolbox, which overlaps with the System ID one significantly) is the Control Systems Library for Python, but the CSL doesn't have any functions for dealing with system identification, just the ability to manipulate transfer functions (thanks to JasonS for pointing this out). The Ch Control System Toolkit allows one to model linear systems and determine the transfer function.

I'm sure there are other examples, but they may take some digging to uncover.

| improve this answer | |
  • $\begingroup$ Thanks for the pointer to Control Systems Library for Python. It doesn't seem to have any system ID features, however. $\endgroup$ – Jason S Jun 19 '14 at 16:44
  • $\begingroup$ @JasonS I haven't looked at this stuff for quite some time, but I'll try to come up with a better package (surely there's something out there by this point). While the CSL doesn't have any explicit functions for system identification, it does have a Python class for dealing with transfer functions. I think maybe I'll clarify the answer with that. $\endgroup$ – jonsca Jun 19 '14 at 17:02

SIDPAC is a freely available program from software.nasa.gov. It is targeted toward aircraft system id problems however the underlying methods are applicable to other problem types.

| improve this answer | |
  • $\begingroup$ Hi Charlie, it doesn't seem to be available anymore on their site. Do you have a direct link? $\endgroup$ – jonsca Jun 18 '19 at 0:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.