sssMOR - Sparse State-Space and Model Order Reduction Toolbox
What is sssMOR?
sssMOR is a MATLAB toolbox for large-scale dynamical systems in state-space. It provides both classic and state-of-the-art model reduction algorithms that capture the relevant dynamics of the high order system in models of significantly lower dimension.
By defining large-scale models with sss and subsequently reducing them with sssMOR, it is possible to drastically reduce the memory and computational requirements involved in the simulation, optimization and control design for large-scale models.
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):
Therefore, it is possible to use the sss toolbox to exploit this sparsity and efficiently model and analyze high dimensional systems MATLAB.
Motivation for Model Order Reduction
Even when using sss functions to exploit the sparsity, computations such as simulations, optimization and control design based on the full order models (FOM) will require a substantial amount of time, provided they can be carried through at all.
For this reason, in the large-scale setting we often seek reduced order models (ROM) of much smaller dimension that capture the relevant dynamics.
For linear systems, this is generally done by applying Petrov-Galerkin projections of the form:
There are several ways to compute the projection matrices depending on what properties of the FOM should be preserved.
sssMOR contains some classic reduction methods such as modal truncation, balanced truncation and rational Krylov subspace methods. At the same time, it implements well-known state-of-the-art algorithms like the iterative rational Krylov algorithm (IRKA) as well as some more recent algorithms such as CUmulative REduction framework (CURE), the Stability-Preserving, Adaptive Rational Krylov algorithm (SPARK) and Confined IRKA (CIRKA).
Functionality of the toolbox
In the following we provide a short, non-exhaustive list of functions included in the toolbox.
Classic | State-Of-The-Art |
---|---|
|
|
In addition, sssMOR comes with the sssMOR App, a Graphical User Interface (MATLAB, exe) supporting the basic functionality of the sss and sssMOR toolboxes
- load large-scale models as sss-objects
- model order reduction with interactive selection of reduction parameters
- quantitative and qualitative analysis of sss-models
- comparison of full and reduced order model
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"
- Execute our live demo presented at the 2nd EU-MORNET Exploratory Workshop in Luxemburg (.mlx, .pdf)
- 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 sssMOR Toolbox
Download v2.00, released 06 September 2017 (changelog)
File | MATLAB version | Description |
---|---|---|
sssMOR Toolbox.zip | R2014b or newer | sss & sssMOR toolbox files (.mltbx) + setup |
sssMOR Toolbox (raw).zip | R2014a or older | sss & sssMOR raw files (.m), add manually to path |
sssMORAppInstaller_web.exe | - | standalone version of the sssMOR App |
Getting Started
After installation, run 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 "sssMOR_gettingStarted" in the Command Window.
Release Notes
sssMOR was developed in MATLAB R2015b and R2016b. It has been tested for compatibility with MATLAB R2014a, R2015b, R2016b and R2017a on Windows. Note that on R2014a, the function uniquetol was not defined and hence all functions depending on it will not work. Furher, 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 page for additional comments and information.
Newsletter
Sign up for our newsletter to stay up to date with new releases and publications.
Notes
sssMOR 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.
sssMOR 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@...