sss - Sparse State-Space and System Analysis Toolbox
What is sss?
sss is a MATLAB toolbox to model and analyze large-scale dynamical systems in state-space.
sss expands the capabilities of the Control System Toolbox by allowing the definition of sparse state space (sss) objects as well as analysis function (such as bode, step, isstable etc.) tailored to exploit the sparsity of the system matrices. This results in a very efficient use of memory and computational resources.
By using sss, it is possible to define dynamic system objects with state-space dimensions far higher than O(10^4), which is generally the limit for MATLAB built-in ss and dss objects.
sss can be used in combination with the sssMOR toolbox, which contains classic and state-of-the-art model order reduction (MOR) algorithms that capture the dynamics of large-scale systems in reduced order models of significantly smaller size.
Exploiting sparsity of large-scale systems
The accurate modeling of dynamical systems often results in a large number of state variables and differential equations describing the system behavior over time. This is often the case, for instance, when discretizing partial differential equations in space over a fine grid or in the large-scale integration of electrical circuits.
If the dynamics are linear, which is often the case at least in a region around the operating point, then the system can be modeled using state-space equations of the form:
Note that in a large-scale setting, the state space dimension N can grow quite large, easily above an order of magnitude of O(10^4). This poses a big challenge on the numerical treatment of such models, in first place due to memory limitations. In fact, storing a system of order O(10^5) using the built-in commands ss and dss would require over 80 GB of memory and is for most standard computers unfeasible.
Fortunately, large-scale systems are generally modeled by sparse matrices, i.e. matrices that have only a small number of nonzero entries compare to their size. This fact is shown in the following figure for a selection of benchmark problems (from left: iss, gyroscope, rail):
Functionality of the toolbox
In the following we provide a short, non-exhaustive list of functions included in the toolbox. Many function names may sound familiar, as they correspond to built-in functions that have been reinvented to exploit the sparsity of sss models.
Modeling | Analysis |
---|---|
|
|
To learn more about the toolbox, you can...
- read our introductory paper "sss & sssMOR: Analysis and reduction of large-scale dynamic systems in MATLAB" published in at-Automatisierungstechnik.
- have a look at the poster we presented at the KoMSO Challenge Workshop "Reduced-Order Modeling for Simulation and Optimization: Powerful Algorithms as Key Enablers for Scientific Computing"
- download the toolbox and use the MATLAB doc to read our extensive documentation.
- have a look (or fork) our public development repository on GitHub.
Download and set up the sss Toolbox
Download v2.00, released 06 September 2017 (changelog)
File | MATLAB version | Description |
sss Toolbox.zip | R2014b or newer | toolbox file (.mltbx) + setup |
sss Toolbox (raw).zip | R2014a or older | raw files (.m), add manually to path |
Getting Started
After installation, start the "runme" function to download benchmark models and additional third-party software.
To open the documentation, type "doc" in the MATLAB Command Window. You will find it at the bottom right corner under Supplemental Software.
To open our demo, type "sss_gettingStarted" in the Command Window.
Release Notes
sss Toolbox was developed in MATLAB 2016b. It has been tested for compatibility with MATLAB R2014a, R2015b, R2016b and R2017a on Windows. Previous MATLAB versions lack some of the capabilities exploited in sss, therefore its full functionality cannot be guaranteed for previous versions (though most functions may still work).
See also the GitHub and MATLAB Central pages for additional comments and information.
Newsletter
Sign up for our newsletter to stay up to date with new releases and publications.
Notes
sss is free, open-source software distributed under BSD license to provide functions for large-scale dynamical systems and foster the exchange of software and algorithms in academia.
sss is developed in GitHub. The repository is public to allow for an easier exchange and common development of the functions. For comments, questions or submissions, please contact our team at morlab@...
Following third-party software is recommended in combination with sss:
- M-M.E.S.S., Matrix equation sparse solver, available from MPI Mageburg. It is released under GNU General Public License.