## 1 Introduction  
Attributes of input-output systems, such as controllability, observability or minimality can be assessed by special matrices. These so-called system Gramian matrices, or short system Gramians (Also: Gramman or Gram matrix.), have manifold applications in system theory, control theory and mathematical engineering.  
Originally, Gramian-based methods were developed for linear systems [1]. The empirical Gramian matrices [2] are an extension of Gramian-based methods to nonlinear and parametric systems. This work summarizes the **empirical Gramian** framework (emgr) [3], a compact software toolbox, which implements various types of empirical Gramians as well as the related empirical covariance matrices.  
An important use of empirical Gramian matrices is model order reduction (MOR), utilizing the capability of system Gramians to quantify the input-output importance of the underlying system's states based on controllability and observability. Several variants of Gramian-based model reduction are available, for example:  
* Linear Model Order Reduction [4],
* Robust Model Reduction [5],
* Parametric Model Order Reduction (pMOR) [6],
* Nonlinear Model Order Reduction (nMOR) [2; 7; 8; 9],
* Second-Order System Model Reduction [10],
* Combined State and Parameter Reduction [11].  
Beyond model reduction, (empirical) system Gramians can also be utilized for tasks like:  
* Sensitivity Analysis [12; 13],
* Parameter Identification [14; 15],
* Decentralized Control [16; 17; 18],
* Optimal Sensor Placement [19; 20], Optimal Actuator Placement [21],
* Optimal Control [22], Model Predictive Control [23],
* Nonlinearity Quantification [24; 25].  
In addition, various system invariants and indices are computable using system Gramians, and thus also by empirical Gramians:  
* System gain [12],
* Cauchy index [26; 27],
* Information entropy index [28],
* Nyquist plot enclosed area [29],
* System Frobenius norm and ellipsoid volume [30],
* System \(H_{2}\)-norm [31].  
This wide range of applications and the compatibility to nonlinear systems make empirical Gramians a versatile tool in many system-theoretic computations. Furthermore, the empirical Gramians provide a data-driven method of computation with close relations to proper orthogonal decomposition (POD) and balanced POD (bPOD) [32; 33].  
Various (Matlab) implementations are available for the computation of linear system Gramians by the solution of associated matrix equations, such as the basic sylvester command, the gram, lyap and covar commands from the Matlab Control Toolbox ([[http://mathworks.com/products/control](http://mathworks.com/products/control)]([http://mathworks.com/products/control](http://mathworks.com/products/control))) and Octave Control Package ([[http://octave.sourceforge.net/control](http://octave.sourceforge.net/control)]([http://octave.sourceforge.net/control](http://octave.sourceforge.net/control))). For empirical Gramians, the only other generic implementation, to the author's best knowledge, is [34], which provides only the empirical controllability Gramian and the empirical observability Gramian, but _not_ any empirical cross Gramian (see Sections 3.1.3 and 3.1.4). This makes emgr the unique (open-source) implementation of all three: the empirical controllability Gramian \(W_{C}\), the empirical observability Gramian \(W_{O}\) and the empirical cross Gramian \(W_{X}\) (sometimes also symbolized by \(W_{CO}\) and \(X_{CG}\)).  
Lastly, it is noted that the term _empirical Gramian_ is used as an umbrella term for the original empirical Gramians [2], the empirical covariance matrices [35], modified empirical Gramians [36] or local Gramians [37].