Extensive performance evaluation of the implemented system identification software has been performed using data sets from the DAISY collection. Accuracy and efficiency comparisons of the SLICOT linear systems identification software and the available subspace-based techniques for 9 applications are presented in the report V. Sima. "SLICOT Linear Systems Identification Toolbox", SLICOT Working Note 2000-4, July 2000. More detailed results for 25 applications are presented in the paper [1]. Click here to see such a timing comparison [2] of the SLICOT slmoen4 with fast QR versus MATLAB 6.5.1 n4sid with QR factorization and default options, but with order = n, 'N4Weight' = 'MOESP', and: (a) 'Cov' := 'CovarianceMatrix' = [ ], 'N4H' := 'N4Horizon' = 'Auto'; (b) 'Cov' = 'None', 'N4H' = 'Auto'; (c) 'Cov' = [ ], 'N4H' = [s s s]; (d) 'Cov' = 'None', 'N4H' = [s s s]. Here n is the chosen order of the system, and s is the number of block rows. Clearly, the use of fast algorithms is very advantageous.

Extensive testing of the implemented Wiener systems identification software has also been performed and some results are described in the report R. Schneider, A. Riedel, V. Verdult, M. Verhaegen, V. Sima. "SLICOT System Identification Toolbox for Nonlinear Wiener Systems", SLICOT Working Note 2002-6, June 2002. Click here to see the timing results [3] for 22 applications (also considered above), using wident and widentc (with options for Cholesky factorization or conjugate gradients). The representation of the vertical axis (for time) is in a logarithmic scale.

References

  1. V. Sima, D.M. Sima, S. Van Huffel, "High-performance numerical algorithms and software for subspace-based linear multivariable system identification", Journal of Computational and Applied Mathematics, Vol. 170, No. 2 (September 2004), pp. 371 - 397, 2004. ISSN:0377-0427.
  2. V.Sima, "Computational experience with subspace identification tools", 12th Mediterranean Conference on Control and Automation MED'04, June 6-9 2004, Kusadasi, Aydin/Turkey, MED'04 Proceedings (CD-ROM).
  3. V.Sima, "Performance investigation of SLICOT Wiener systems identification toolbox", Proceedings of the 13-th IFAC Symposium on Systems Identification, SYSID 2003, August 27-29, 2003, Rotterdam, The Netherlands, Omnipress, pp. 1345-1350 (CD-ROM).

This email address is being protected from spambots. You need JavaScript enabled to view it. February 2, 2005

  1. W. Favoreel, V. Sima, S. Van Huffel, M. Verhaegen, B. De Moor "Subspace Model Identification of Linear Systems in SLICOT", SLICOT Working Note 1998-6, Sept. 1998.
  2. B. Haverkamp "Efficient Implementation of Subspace Method Identification", Niconet Report 1999-3, Jan. 1999.
  3. A. van den Boom, T. Backx, Y. Zhu "Benchmarks for Identification", NICONET Report 1999-19, July 2000.
  4. V. Sima "SLICOT Linear Systems Identification Toolbox", SLICOT Working Note 2000-4, July 2000.
  5. R. Schneider, A. Riedel, V. Verdult, M. Verhaegen, V. Sima "SLICOT System Identification Toolbox for Nonlinear Wiener Systems", SLICOT Working Note 2002-6, June 2002.

This email address is being protected from spambots. You need JavaScript enabled to view it. February 2, 2005

The Fortran routines for linear systems identification are aimed to estimate state space models and covariance matrices of linear discrete-time multivariable systems, using the available input-output data sequences. The main features and options are:

  • two algorithmic subspace-based approaches:
    • MOESP - Multivariable Output-Error state SPace identification
    • N4SID - Numerical algorithms for Subspace State Space System IDentification
    • and their combination
  • standard or fast techniques for data compression (including abilities to exploit the block-Hankel structure)
  • multiple (possibly connected) data batches processing
  • availability of both, fully documented drivers and computational routines
  • the use of structure exploiting algorithms and dedicated linear algebra tools
  • optionally, the quality of the intermediate results can be assessed by inspecting the associated condition numbers.

A list of the implemented Fortran routines with links to the associated .html documentation is given in the following table, where * denotes auxiliary routines:

IB01AD Input-output data preprocessing and finding the system order
IB01BD Estimating the system matrices, covariances, and Kalman gain
IB01CD Estimating the initial state and the system matrices B and D
IB01MD * Upper triangular factor in the QR factorization of the concatenated input and output block-Hankel matrices
IB01ND * Singular value decomposition giving the system order
IB01OD * Estimating the system order
IB01OY * User's confirmation of the system order
IB01PD * Estimating the system matrices and covariances
IB01PX * Estimating the matrices B and D of a system using Kronecker products
IB01PY * Estimating the matrices B and D of a system exploiting the special structure
IB01QD * Estimating the initial state and the matrices B and D of a system, using A, C, and the input-output data sequences
IB01RD * Estimating the initial state of a system, using (A, B, C, D), and the input-output data sequences

The Fortran routines for Wiener systems are aimed to estimate the parameters of discrete-time multivariable Wiener systems, using the available input-output data sequences. The main features and options are:

  • an efficient three step procedure:
    • find an approximate linear model, using a combination of MOESP and N4SID
    • approximate the nonlinear part, modelled as a single layer neural network, using the simulated output of the estimated linear system and the available input-output data
    • optimize the parameters of the whole system by a Levenberg-Marquardt algorithm, using the initialization provided by the previous two steps
  • the use of the output normal form of the linear model
  • a Levenberg-Marquardt algorithm using block QR factorization with column pivoting, which is a specialized, structure-exploiting, LAPACK-based implementation of the approach used in the MINPACK package (Argonne National Laboratory, U.S.A.)
  • by suitable reordering of the parameters, the Jacobian matrices of the whole system are in a block diagonal form, with an additional right block column
  • option for rank determinations by incremental condition estimation.

A list of the implemented Fortran routines with links to the associated .html documentation is given in the following table:

IB03AD Estimating a set of parameters for approximating a Wiener system in a least-squares sense, using a neural network approach and a Levenberg-Marquardt algorithm (Cholesky-based or conjugate gradients solver)
IB03BD Estimating a set of parameters for approximating a Wiener system in a least-squares sense, using a neural network approach and a MINPACK-like Levenberg-Marquardt algorithm
MD03AD Minimizing the sum of the squares of m nonlinear error functions in n variables, x, by a Levenberg-Marquardt algorithm (Cholesky-based or conjugate gradients solver)
MD03BD Minimizing the sum of the squares of m nonlinear error functions in n variables, x, by a MINPACK-like Levenberg-Marquardt algorithm
MB02YD * Solution of a system of linear equations A*x = b, D*x = 0, in the least squares sense, with D a diagonal matrix, given a QR factorization with column pivoting of A
MB04OW * Rank-one update of a Cholesky factorization for a 2-by-2 block matrix
MD03BX * QR factorization with column pivoting and error vector transformation for standard nonlinear least squares problems
MD03BY * Finding the Levenberg-Marquardt parameter for standard nonlinear least squares problems
NF01AD * Computing the output of a Wiener system
NF01AY * Computing the output of a set of neural networks
NF01BD * Computing the Jacobian of a Wiener system
NF01BP * Finding the Levenberg-Marquardt parameter
NF01BQ * Solution of a system of linear equations J*x = b, D*x = 0, in the least squares sense, with D a diagonal matrix, given a block QR factorization with column pivoting of J
NF01BR * Solution of the linear system op(R)*x = b, with op(R) = R or transpose(R), and R block upper triangular stored in a compressed form
NF01BS * Block QR factorization of a structured Jacobian matrix
NF01BU * Computing J'*J + c*I, for the Jacobian J given in a compressed form
NF01BV * Computing J'*J + c*I, for a full Jacobian J (one output variable)
NF01BW * Matrix-vector product x <-- (J'*J + c*I)*x, for J in a compressed form
NF01BX * Matrix-vector product x <-- (A'*A + c*I)*x, for a full matrix A
NF01BY * Computing the Jacobian of the error function for a neural network (for one output variable)
TB01VD * Conversion of a discrete-time system to output normal form
TB01VY * Conversion of the output normal form of a discrete-time system to a state-space representation
TF01MX * Output response of a linear discrete-time system, given a general system matrix (each output is a column of the result)
TF01MY * Output response of a linear discrete-time system, given the system matrices (each output is a column of the result)

The documentation of all routines is also accessible from the SLICOT Library main index (in case of the drivers, or user-callable routines), or from the SLICOT Supporting Routines index (in case of the auxiliary routines, marked with * in the two tables above). The SLICOT Supporting Routines index is also accessible from the main Library index.


This email address is being protected from spambots. You need JavaScript enabled to view it. February 2, 2005; Updated: June 15, 2006

For maximum convenience, easy-to-use interface M-functions are included in the identification toolbox, explicitly addressing some of supported features. Whenever possible, these M-functions allow to work with system objects defined in the MATLAB Control Toolbox.

The following table contains the list of implemented M-functions for linear and Wiener systems:

findR Input-output data preprocessing, using Cholesky or (fast) QR factorization and MOESP or N4SID identification techniques, and estimating the system order
findABCD System matrices and Kalman gain estimation, using MOESP, N4SID, or their combination
findAC Estimating the matrices A and C, using MOESP or N4SID
findBDK Estimating the matrices B, D, and Kalman gain K (given A and C), using MOESP or N4SID
findx0BD Estimating the initial state and/or the matrices B and D, given the matrices A, C, and a set of input-output data
inistate Estimating the initial state, given the system matrices, and a set of input-output data
slmoesp System matrices and the Kalman gain estimation, using MOESP technique
sln4sid System matrices and the Kalman gain estimation, using N4SID technique
slmoen4 System matrices and the Kalman gain estimation, using combined MOESP and N4SID techniques: A and C found via MOESP, and B and D, via N4SID
slmoesm System matrices, the Kalman gain, and initial state estimation, using combined MOESP and system simulation techniques
dsim Output response of a linear discrete-time system (much faster than the MATLAB function lsim)
o2s Conversion of a linear discrete-time system given in the output normal form to a state-space representation
s2o Conversion of a state-space representation of a linear discrete-time system into the output normal form
NNout Output response of a set of neural networks used to model the nonlinear part of a Wiener system

The first five M-functions allow to flexibly identify various system and covariance matrices for linear systems. The M-functions slmoesp, sln4sid, slmoen4, and slmoesm are method-oriented, and they also enable to efficiently estimate models of various orders.

The MEX-functions are more difficult to use than the provided M-functions, but allow a greater flexibility. They are called by the M-functions. The following table contains the list of MEX-files for linear and Wiener systems:

order Input-output data preprocessing, possibly sequentially, and finding an estimate of the system order
sident System matrices, Kalman predictor gain, and covariance matrices estimation, using MOESP, N4SID, or their combination
findBD Estimating the initial state and/or the matrices B and D, using A, C, and the input and output trajectories
ldsim Output response of a linear discrete-time system (much faster than the MATLAB function lsim)
onf2ss Conversion of a linear discrete-time system given in the output normal form to a state-space representation
ss2onf Conversion of a state-space representation of a linear discrete-time system into the output normal form
widentc Estimating a discrete-time model of a Wiener system using a neural network approach and a Levenberg-Marquardt algorithm (with a Cholesky-based, or a conjugate gradients solver)
wident Estimating a discrete-time model of a Wiener system using a neural network approach and a MINPACK-like Levenberg-Marquardt algorithm
Wiener Output response of a Wiener system

The MEX-files above provide interfaces to the main user-callable or computational routines for linear and Wiener systems identification, and cover all functionality available in the corresponding SLICOT identification routines.

Executable SLICOT MEX-files are provided for recent MATLAB releases running under WINDOWS and Linux. Demonstration packages can also be provided.

For purchasing licenses of SLICOT-based MATLAB Toolboxes, please contact the This email address is being protected from spambots. You need JavaScript enabled to view it..


This email address is being protected from spambots. You need JavaScript enabled to view it. February 2, 2005; October 18, 2009

The Fortran routines for model and controller reduction can deal with both stable and unstable continuous- and discrete-time linear multivariable systems using additive or relative error model reduction methods. The main features and options are:

  • several model reduction approaches based on additive or relative error model reduction methods:
    • Balance & Truncate (B&T)
    • Singular perturbation approximation (SPA)
    • Hankel norm approximation (HNA)
    • Balanced stochastic truncation (BST), in conjunction with B&T and SPA
    • Frequency-weighted reduction in conjunction with B&T, SPA, and HNA
  • several controller reduction approaches:
    • Frequency-weighted reduction with special stability/performance enforcing weights
    • Coprime factorization based reduction of state feedback and observer based controllers, in conjunction with B&T and SPA
  • enhanced accuracy algorithms using square-root and balancing-free approaches to model reduction
  • reduction of unstable systems by combining the methods for stable systems with stable coprime factorization or additive spectral decomposition techniques
  • availability of both, fully documented drivers and computational routines
  • the use of structure exploiting algorithms and dedicated linear algebra tools

A list of the implemented Fortran routines with links to the associated .html documentation is given in the following table, where * denotes auxiliary routines:

AB09AD Balance & Truncate model reduction
AB09AX *Balance & Truncate model reduction with state matrix in real Schur form
AB09BD Singular perturbation approximation based model reduction
AB09BX *Singular perturbation approximation based model reduction with state matrix in real Schur form
AB09CD Hankel norm approximation based model reduction
AB09CX *Hankel norm approximation based model reduction with state matrix in real Schur form
AB09DD Singular perturbation approximation formulas
AB09ED Hankel norm approximation based model reduction for the stable part
AB09FD Balance & Truncate model reduction of coprime factors
AB09GD Singular perturbation approximation of coprime factors
AB09MD Balance & Truncate model reduction for the stable part
AB09ND Singular perturbation approximation based model reduction for the stable part
AB09HD Stochastic Balance & Truncate and Singular perturbation approximation model reduction
AB09HX *Stochastic Balance & Truncate and Singular perturbation approximation model reduction with state matrix in real Schur form
AB09HY *Cholesky factors of the controllability and observability Grammians
AB09ID Frequency-weighted Balance & Truncate and Singular perturbation approximation model reduction
AB09IX *Accuracy enhanced balancing related model reduction with state matrix in real Schur form
AB09IY *Cholesky factors of the frequency-weighted controllability and observability Grammians
AB09JD Frequency-weighted Hankel-norm approximation method with invertible proper weights
AB09JV *State-space representation of a projection of a left weighted transfer-function matrix
AB09JW *State-space representation of a projection of a right weighted transfer-function matrix
AB09JX *Check stability/antistability of finite eigenvalues
AB09KD Frequency-weighted Hankel-norm approximation with biproper invertible weights
AB09KX *Stable projection of V*G*W or conj(V)*G*conj(W)
SB16AD Controller reduction using frequency-weighted Balance & Truncate and Singular perturbation approximation methods with special stability/performance preserving frequency weights
SB16AY *Cholesky factors of the frequency-weighted controllability and observability Grammians for controller reduction
SB16BD State-feedback/full-order estimator based controller reduction using coprime factorization with Balance & Truncate and Singular perturbation approximation methods
SB16CD State-feedback/full-order estimator based controller reduction using frequency-weighted coprime factorization with Balance & Truncate method
SB16CY *Cholesky factors of controllability and observability Grammians of coprime factors of a state-feedback controller

The documentation of all routines is also accessible from the SLICOT Library main index (in case of the drivers, or user-callable routines), or from the SLICOT Supporting Routines index (in case of the auxiliary routines, marked with * in the table above). The SLICOT Supporting Routines index is also accessible from the main Library index.


This email address is being protected from spambots. You need JavaScript enabled to view it. March 12, 2002, Updated This email address is being protected from spambots. You need JavaScript enabled to view it. March 10, 2005; Updated: June 15, 2006