Main Content

sminDAE

Reduce algebraic states in sparse state-space models while preserving sparsity

Since R2024b

    Description

    rsys = sminDAE(sys) reduces the number of algebraic states in the sparse model sys while preserving sparsity. The sparsity of the dynamic portion of (A,E) or (M,C,K) is unchanged and fill-in in the remaining matrices is kept in check.

    In canonical DAE form:

    E11x˙1=A11x1+A12x2+B1u0=A21x1+A22x2+B2u,

    the algebraic states are the entries of x2. In general, sys has algebraic states if E or M is singular. Such models represent differential algebraic equations (DAEs).

    example

    rsys = sminDAE(sys,FillFactor) also specifies the acceptable amount of fill-in.

    Examples

    collapse all

    This example shows how to use sminDAE to reduce algebraic states in sparse models.

    For this example, consider a sparse state-space model containing extra algebraic states. Load the model.

    load sysDAE.mat
    size(sys)
    Sparse state-space model with 1 outputs, 1 inputs, and 17 states.
    

    Typically, signal-based connections and physical interfaces between model components gives rise to differential algebraic equation (DAE) models where some internal signals and forces become extra states To see if you can eliminate these states while preserving sparsity, you can use sminDAE.

    rsys = sminDAE(sys)
    Sparse continuous-time state-space model with 1 outputs, 1 inputs, and 15 states.
    
    Use "spy" and "showStateInfo" to inspect model structure. 
    Type "help sparssOptions" for available solver options for this model.
    

    For this model, the function eliminates two states. Compare the response of two models.

    bodeplot(sys,rsys,"--",logspace(-3,3,100))

    MATLAB figure

    Input Arguments

    collapse all

    Sparse state-space model, specified as a sparss or mechss model object.

    For sparss models, the function finds the maximal subset of algebraic states that it can eliminate without destroying sparsity. The sparsity of the dynamic portion of A and E matrices is unchanged and fill-in in the remaining matrices is kept in check.

    For mechss models, the function preserves the sparsity of the dynamic part of M,C, and K matrices and limits fill-in elsewhere.

    Acceptable fill-in amount, specified as a scalar. By default, the function uses 0.25 FillFactor (25% additional nonzero entries). Increasing this value trades fewer states for less sparsity.

    Output Arguments

    collapse all

    Reduced model with fewer algebraic states, returned as a model of same type as sys.

    Version History

    Introduced in R2024b