SLICOT Basic Systems and Control Toolbox: Performance Results
Extensive performance evaluation of the implemented basic systems and control software has been performed to assess the accuracy and efficiency. The results have been compared with standard techniques incorporated in MATLAB. Before Release 7, many SLICOT codes, including Sylvester, Lyapunov, and Riccati solvers were several fold faster than the corresponding MATLAB solvers. Starting with Release 7, MATLAB includes much improved solvers, comparable with SLICOT. Actually, since Release 7, MATLAB Lyapunov and Sylvester solvers call SLICOT routines.
For illustrative purposes, several results for (block) Toeplitz matrices and associated linear systems are presented. The SLICOT solvers are compared with the available, standard techniques incorporated in MATLAB (namely, the M-function chol, and the linear system solving operators / and \), which do not exploit the problem structure, as well as with the MATLAB implementation of the same fast algorithms for block Toeplitz matrices (the M-function toepinv). Random data sets are used, but positivity is forced. The coefficient matrices are nxk-by-nxk symmetric block Toeplitz matrices BT, with k taking values in [1 2 20 50], and n obtained by dividing 1000 to k, hence nxk = 1000 ; k is the blocksize, and n is the number of the blocks. Also, the linear systems Y BT = C and BT X = B (C = B') are solved, the matrix B having nrhs columns, with nrhs also taking values in [1 2 20 50].
The speed-up factors for factorizations can be seen by clicking here, and the speed-up factors for solutions can be seen by clicking here. Specifically, the two diagrams show the ratios of the execution times of SLICOT fstoep MEX-file to MATLAB toepinv and \ or / operators, respectively. There are four problems for factorization (first diagram), for k = 1, 2, 20, and 50, and 16 problems for solution (second diagram), since all values of nrhs have been tried for each value of k. Both the systems BT X = B, or their transposed counterparts, Y BT = C, have been solved. R and L are the computed upper and lower Cholesky factors of BT and inv(BT), respectively, and Ti is an approximate inverse of BT, obtained using its computed generator, G, and U = chol(BT). The results have been obtained on a PC machine at 500 Mhz, without optimized BLAS. The errors and residuals for fstoep are slightly larger than for standard MATLAB functions, but essentially the same.
This email address is being protected from spambots. You need JavaScript enabled to view it. March 10, 2005; Updated November 5, 2013
SLICOT Basic Systems and Control Toolbox: MATLAB MEX- and M-functions
For maximum convenience, easy-to-use interface M-functions are included in the Basic Systems and Control 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 tables contain lists of the main M-functions for basic computations in linear systems analysis and synthesis:
Solution of Lyapunov and Sylvester equations
sllyap | Solution of continuous-time Lyapunov equations |
slstei | Solution of Stein equations |
slstly | Solving stable continuous-time Lyapunov equations for the Cholesky factor of the solution |
slstst | Solving stable Stein equations for the Cholesky factor of the solution |
slsylv | Solution of Sylvester equations |
sldsyl | Solution of discrete-time Sylvester equations |
Solution of generalized Lyapunov and Sylvester equations
slgely | Solution of generalized continuous-time Lyapunov equations |
slgest | Solution of generalized Stein equations |
slgsly | Solving stable generalized continuous-time Lyapunov equations for the Cholesky factor of the solution |
slgsst | Solving stable generalized Stein equations for the Cholesky factor of the solution |
slgesg | Solution of generalized Sylvester system of equations |
Solution of Riccati equations
slcares | Solution of continuos-time algebraic Riccati equation (CARE) with Schur method |
slcaresc | Solution of CARE with refined Schur method and condition estimation |
slcaregs | Solution of CARE with generalized Schur method on an extended matrix pencil |
sldares | Solution of discrete-time algebraic Riccati equation (DARE) with Schur method |
sldaresc | Solution of DARE with refined Schur method and condition estimation |
sldaregs | Solution of DARE with generalized Schur method on an extended matrix pencil |
sldaregsv | Solution of DARE with generalized Schur method on a symplectic pencil |
Solution of generalized Riccati equations
slgcare | Solution of generalized continuos-time algebraic Riccati equation (CARE) with generalized Schur method |
slgdare | Solution of generalized discrete-time algebraic Riccati equation (DARE) with generalized Schur method |
Condition estimation for Lyapunov and Riccati equations
lyapcond | Condition estimation for a Lyapunov equation |
steicond | Condition estimation for a Stein equation |
carecond | Condition estimation for a CARE |
darecond | Condition estimation for a DARE |
Controllability/observability/minimal realization
slconf | Controllability staircase form of a system |
slobsf | Observability staircase form of a system |
slminr | Minimal realization of a system |
Similarity transformations
slsbal | Balancing the system matrix of a state-space system |
slsrsf | Reduction of the state matrix of a state space system to a real Schur form |
slsorsf | Reduction of the state matrix of a state space system to an ordered real Schur form |
slsdec | Additive spectral decomposition of a system with respect to a given stability domain |
Factorization of transfer matrices
lcf | Left coprime factorization with prescribed stability degree |
rcf | Right coprime factorization with prescribed stability degree |
lcfid | Left coprime factorization with inner denominator |
rcfid | Right coprime factorization with inner denominator |
System inter-connections
slosfeed | Closed-loop system for a mixed output and state feedback control law |
slofeed | Closed-loop system for an output feedback control law |
System norms
slH2norm | H2/L2 norm of a system |
slHknorm | Hankel-norm of a stable projection of a system |
slinorm | L-infinity norm of a system |
slstabr | Complex stability radius |
Canonical forms and system transformations for descriptor systems
slgconf | Controllability staircase form |
slgobsf | Observability staircase form |
slgminr | Irreducible form of a system |
slgsbal | Balancing the system matrix of a descriptor system |
slgsHes | Reduction of the pair (A,E) of a descriptor system to a generalized Hessenberg form |
slgsQRQ | Transformation to a QR- or RQ-coordinate form |
slgsrsf | Transformation to a real generalized Schur form |
slgsSVD | Transformation to a singular value decomposition (SVD) or SVD-like coordinate form |
Poles and zeros
nrank | Normal rank of the transfer-function matrix of a standard system |
polzer | Normal rank, poles, zeros, and the Kronecker structure of the system pencil for a standard or descriptor system |
slpole | Poles of a standard or descriptor system |
slzero | Normal rank, zeros, and the Kronecker structure of the system pencil for a standard or descriptor system |
Kalman filter
convKf | One recursion of the conventional Kalman filter equations |
srcf | Combined measurement and time update of one iteration of the time-varying or time-invariant Kalman filter in the Square Root Covariance Form |
srif | Combined measurement and time update of one iteration of the time-varying or time-invariant Kalman filter in the Square Root Information Form |
Benchmarks
ctdsx | Benchmark examples for time-invariant, continuous-time, dynamical systems |
dtdsx | Benchmark examples for time-invariant, discrete-time, dynamical systems |
ctlex | Benchmark examples of (generalized) continuous-time Lyapunov equations |
dtlex | Benchmark examples of (generalized) discrete-time Lyapunov equations |
Special numerical linear algebra computations
bdiag | Block diagonalization of a general matrix or a matrix in real Schur form |
persch | Periodic Hessenberg or periodic Schur decomposition of a matrix product |
Hameig | Eigenvalues of a Hamiltonian matrix using square-reduced approach |
habalance | Symplectic scaling of a Hamiltonian matrix |
haconv | Storage representation conversions for a Hamiltonian matrix |
haeig | Eigenvalues of a Hamiltonian matrix using HAPACK approach |
hapvl | Paige-Van Loan's form of a Hamiltonian matrix |
haschord | Reordering the Schur form of a Hamiltonian matrix |
hastab | Complete stable/unstable invariant subspace of a Hamiltonian matrix |
hasub | Selected stable/unstable invariant subspace of a Hamiltonian matrix |
haurv | Symplectic URV form of a general 2n-by-2n matrix |
haurvps | Symplectic URV/periodic Schur form of a Hamiltonian matrix |
shbalance | Symplectic scaling of a skew-Hamiltonian matrix |
shconv | Storage representation conversions for a skew-Hamiltonian matrix |
sHHeig | Eigenvalues of skew-Hamiltonian/(skew-)Hamiltonian matrix pencils |
sHHstab | Complete stable right deflating subspace (and a companion subspace, for pencils in factored form) |
sHHurvps | Generalized symplectic URV/periodic Schur form of a skew-Hamiltonian/(skew-)Hamiltonian matrix pencil |
TLS | Solution of the Total Least Squares problem using a singular value decomposition (SVD) approach or a Partial SVD (PSVD) approach |
Structured matrix factorizations
fstchol | Factorization of a symmetric positive definite (block) Toeplitz matrix T, and solution of associated linear systems, given the first (block) row / column of T |
fstgen | Factorization of a symmetric positive definite (block) Toeplitz matrix T, computation of the generator of its inverse, inv(T), and/or solution of associated linear systems using the Cholesky factor of inv(T), given the first (block) row / column of T |
fstsol | Solution of linear systems X T = B / T X = B, where T is a symmetric positive definite (block) Toeplitz matrix, given the first (block) row / column of T |
fstupd | Factorization and/or updating a factorization of a symmetric positive definite (block) Toeplitz matrix T, and solution of associated linear systems, given the first (block) row / column of T |
fstqr | Orthogonal-triangular decomposition of a (block) Toeplitz matrix T and solution of associated linear least-squares problems, given the first (block) row and (block) column of T |
fstlsq | Solution of the linear least-squares problems min(B - T X) or finding the minimum norm solution of T' Y = C, where T is a (block) Toeplitz matrix with full column rank, given the first (block) column and the first (block) row of T |
fstmul | Matrix-vector products x = T b for a (block) Toeplitz matrix T, given the first (block) column and the first (block) row of T |
Data analysis
sincos | Sine or cosine transform of a real signal |
slHart | Discrete Hartley transform of a real signal |
slconv | Convolution of two real signals using either fast Fourier transform (FFT) or Hartley transform |
sldeconv | Deconvolution of two real signals using either FFT or Hartley transform |
slwindow | Anti-aliasing window applied to a real signal |
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 basic systems analysis and synthesis:
linmeq | Solution of linear matrix equations |
genleq | Solution of generalized linear matrix equations |
aresol | Solution of Riccati equations |
aresolc | Solution of Riccati equations with condition and forward error bound estimates |
garesol | Solution of generalized (descriptor) Riccati equations |
arecond | Condition estimate and forward errors for Lyapunov and algebraic Riccati equations |
arebench | Benchmark examples for algebraic Riccati equations |
condis | Continuous-time - discrete-time bilinear transformation |
sysconn | Inter-connections of two systems given in state-space |
sysfconn | Closed-loop system corresponding to the output, or mixed output and state, feedback control law |
invert | Dual or inverse of a linear (descriptor) system |
deadbeat | Minimum norm feedback matrix performing deadbeat control on a matrix pair |
polass | Partial pole assignment |
syscom | Controllability/observability/minimal realization |
systra | System similarity transformation |
gsyscom | Controllable, observable, or irreducible form |
gsystra | Equivalence transformations for descriptor systems |
isprpr | Properness test for the transfer function of a descriptor system |
specfact | Spectral factorization of a real polynomial |
cfsys | Factorization of transfer matrices |
syscf | State-space representation of a system from the factors of its left or right coprime factorization |
slmexp | Matrix exponential and its integral |
ldsimt | Output response of a linear discrete-time system |
Hnorm | System norms and complex stability radius |
linorm | L-infinity norm of a system |
polezero | Normal rank, poles, zeros, and the Kronecker structure of the system pencil for a standard or descriptor system |
polezeroz | Normal rank, poles, zeros, and the Kronecker structure of the system pencil for a standard or descriptor system with complex matrices |
Kfiltupd | Combined measurement and time update of one iteration of the Kalman filter |
bldiag | Block-diagonalization of a matrix |
perschur | Periodic Hessenberg or periodic Schur decomposition of a matrix product |
Hamileig | Eigenvalues of a Hamiltonian matrix using the square-reduced approach |
hapack_haeig | Eigenvalues of a Hamiltonian matrix using the HAPACK approach |
HaeigZ | Eigenvalues of a complex Hamiltonian matrix using the HAPACK approach |
symplURV | Eigenvalues and generalized symplectic URV decomposition of a skew-Hamiltonian/Hamiltonian pencil in factored form |
symplURVZ | Eigenvalues and generalized symplectic URV decomposition of a complex skew-Hamiltonian/Hamiltonian pencil in factored form |
skewHamil2eig | Eigenvalues and orthogonal decomposition of a skew-Hamiltonian/skew-Hamiltonian pencil |
skewHamil2feig | Eigenvalues and orthogonal decomposition of a skew-Hamiltonian/skew-Hamiltonian pencil in factored form |
skewHamileig | Eigenvalues and orthogonal decomposition of a skew-Hamiltonian/Hamiltonian pencil |
skewHamileigZ | Eigenvalues of a complex skew-Hamiltonian/Hamiltonian pencil |
skewHamildefl | Eigenvalues of a skew-Hamiltonian/Hamiltonian pencil and the right deflating subspace corresponding to the eigenvalues with strictly negative real part |
skewHamildeflf | Eigenvalues of a skew-Hamiltonian/Hamiltonian pencil in factored form and the right deflating subspace corresponding to the eigenvalues with strictly negative real part |
skewHamildeflZ | Eigenvalues of a complex skew-Hamiltonian/Hamiltonian pencil and the right deflating subspace corresponding to the eigenvalues with strictly negative real part |
skewHamildeflfZ | Eigenvalues of a complex skew-Hamiltonian/Hamiltonian pencil in factored form and the right deflating subspace corresponding to the eigenvalues with strictly negative real part |
TotalLS | Solution of the Total Least Squares problem using a singular value decomposition (SVD) approach or a Partial SVD (PSVD) approach |
fstoep | Factorization of a symmetric positive definite (block) Toeplitz matrix and/or solution of associated linear systems |
fstoeq | QR factorization of a (block) Toeplitz matrix and/or solution of associated linear least-squares systems |
datana | Data analysis |
The MEX-files above provide interfaces to the main user-callable or computational routines for basic systems analysis and synthesis, and cover all functionality available in the corresponding SLICOT routines.
Executable SLICOT MEX-files are provided for recent MATLAB releases running under WINDOWS and Linux. Demonstration packages can also be provided.
This email address is being protected from spambots. You need JavaScript enabled to view it. March 10, 2005; Updated: December 2, 2012
SLICOT System Identification Toolbox
SLICOT System Identification Toolbox includes SLICOT-based MATLAB and Fortran tools for linear and Wiener-type, time-invariant discrete-time multivariable systems. Subspace-based approaches MOESP - Multivariable Output-Error state SPace identification, N4SID - Numerical algorithms for Subspace State Space System IDentification, and their combination, are used to identify linear systems, and to initialize the parameters of the linear part of a Wiener system. All parameters of a Wiener system are then estimated using a specialized Levenberg-Marquardt algorithm.
The main functionalities of the toolbox include:
- identification of linear discrete-time state space systems (A, B, C, D)
- identification of state and output (cross-)covariance matrices for such systems
- estimation of the associated Kalman gain matrix
- estimation of the initial state
- conversion from/to a state-space representation to/from the output normal form parameterization
- identification of discrete-time Wiener systems
- computation of the output response of Wiener systems.
The toolbox main features are:
- computational reliability
- high numerical efficiency, using structure exploiting algorithms and dedicated linear algebra tools
- possible speed-up factors larger then 10 in comparison with the commonly used software tools
- flexibility and easy-of-use
- ability to process multiple (possibly connected) data batches
- standardized interfaces
The programs have been extensively tested on various test examples and are fully documented.
SLICOT Toolboxes for MATLAB are subject to a license fee and require an individual license agreement.Find detailed information here or contact the This email address is being protected from spambots. You need JavaScript enabled to view it. directly.
Vasile Sima, February 2, 2005
SLICOT Model and Controller Reduction Toolbox
SLICOT Model and Controller Reduction Toolbox includes SLICOT-based MATLAB and Fortran tools for computing reduced-order linear models and controllers. The toolbox employs theoretically sound and numerically reliable and efficient techniques, including Balance & Truncate, singular perturbation approximation, balanced stochastic truncation, frequency-weighting balancing, Hankel-norm approximation, coprime factorization, etc.
The main functionalities of the toolbox include:
- order reduction for continuous-time and discrete-time multivariable models and controllers
- order reduction for stable or unstable models/controllers
- additive error model reduction
- relative error model and controller reduction
- frequency-weighted reduction with special stability/performance enforcing weights
- coprime factorization-based reduction of state feedback and observer-based controllers
The toolbox main features are:
- computational reliability using square-root and balancing-free accuracy enhancing
- high numerical efficiency, using latest algorithmic developments, structure exploiting algorithms, and dedicated linear algebra tools
- flexibility and easy-of-use
- enhanced functionality, e.g, for controller reduction
- standardized interfaces
The programs have been extensively tested on various test examples and are fully documented.
- MATLAB MEX- and M-functions
- Fortran Subroutines
- Numerical Results
- Available Reports and Publications
SLICOT Toolboxes for MATLAB are subject to a license fee and require an individual license agreement. Find detailed information here or contact the This email address is being protected from spambots. You need JavaScript enabled to view it. directly.
Andras Varga, March 12, 2002, updated Vasile Sima, March 10, 2005
SLICOT Basic Systems and Control Toolbox
SLICOT Basic Systems and Control Toolbox includes SLICOT-based MATLAB and Fortran tools for solving efficiently and reliably various basic computational problems for linear time-invariant multivariable systems analysis and synthesis. Standard and generalised (descriptor) state space systems are covered.
The main functionalities of the toolbox include:
- similarity and equivalence transformations for standard and descriptor systems
- essential computations with structured matrices, including
- eigenvalues of a Hamiltonian matrix or of a skew-Hamiltonian/Hamiltonian pencil
- Periodic Hessenberg and periodic Schur decompositions
- computations with (block) Toeplitz matrices and systems
- analysis of standard and descriptor systems
- solution of Lyapunov and Riccati equations with condition estimation
- coprime factorization and spectral decomposition of transfer-function matrices
The toolbox main features are:
- computational reliability
- high numerical efficiency using latest algorithmic developments, structure exploiting algorithms, and dedicated linear algebra tools
- flexibility and easy-of-use;
- standardized interfaces
The programs have been extensively tested on various test examples and are fully documented.
SLICOT Toolboxes for MATLAB are subject to a license fee and require an individual license agreement. Find detailed information here or contact the This email address is being protected from spambots. You need JavaScript enabled to view it. directly.
Vasile Sima, March 10, 2005 Updated: November 29, 2010