15
$\begingroup$

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.)

$\endgroup$
2
  • $\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
    Commented Dec 8, 2011 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
    Commented Dec 9, 2011 at 0:10

2 Answers 2

8
$\begingroup$

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.

$\endgroup$
3
  • $\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
    Commented Jun 19, 2014 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
    Commented Jun 19, 2014 at 17:02
  • $\begingroup$ I realize this is a very old question, but as I’m looking into this now, I’ve recently been using SysIdentPy, a python package for exactly this. sysidentpy.org $\endgroup$
    – J. Tylka
    Commented Apr 9, 2021 at 11:44
2
$\begingroup$

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.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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