Main Content

Descriptor State-Space

Model linear implicit systems

  • Descriptor State-Space block

Libraries:
Simulink / Continuous

Description

The Descriptor State-Space block allows you to model linear implicit systems that can be expressed in the formEx˙=Ax+Bu where E is the mass matrix of the system. When E is nonsingular and therefore invertible, the system can be written in its explicit form x˙=E1Ax+E1Bu and modeled using the State-Space block.

When the mass matrix E is singular, one or more derivatives of the dependent variables of the system are not present in the equations. These variables are called algebraic variables. Differential equations that contain such algebraic variables are called differential algebraic equations. Their state space representation is of the form

Ex˙=Ax+Buy=Cx+Du

where the variables have the following meanings:

  • x is the state vector

  • u is the input vector

  • y is the output vector

Ports

Input

expand all

Real-valued input signal of type double whose width matches the number of columns in the B and D matrices.

This port has direct feedthrough when:

  • You set the Direct Feedthrough parameter to True.

  • You set the Direct Feedthrough parameter to Auto and the software determines that the block has direct feedthrough.

Data Types: double

Output

expand all

Real-valued input vector of type double whose width is the number of rows in the C and D matrices.

Data Types: double

Parameters

expand all

Specify the mass matrix E as a real-valued n-by-n matrix, where n is the number of states in the system. E must be the same size as A. E can be singular or non-singular.

Programmatic Use

Block Parameter: E
Type: string | character vector
Values: scalar | matrix
Default: '1'

Specify the matrix coefficient A as a real-valued n-by-n matrix, where n is the number of states in the system. A must be the same size as E.

Programmatic Use

Block Parameter: A
Type: string | character vector
Values: scalar | matrix
Default: '1'

Specify the matrix coefficient B as a real-valued n-by-m matrix, where n is the number of states in the system and m is the number of inputs.

Programmatic Use

Block Parameter: B
Type: string | character vector
Values: scalar | vector | matrix
Default: '1'

Specify the matrix coefficient C as a real-valued r-by-n matrix, where n is the number of states in the system and r is the number of outputs.

Programmatic Use

Block Parameter: C
Type: string | character vector
Values: scalar | vector | matrix
Default: '1'

Specify the matrix coefficient D as a real-valued r-by-m matrix, where r is the number of outputs of the system and m is the number of inputs to the system.

Programmatic Use

Block Parameter: D
Type: string | character vector
Values: scalar | vector | matrix
Default: '1'

Specify initial condition of the block states. The minimum and maximum values are bound by the Output minimum and Output maximum block parameters.

Tip

Simulink® software does not allow the initial condition of this block to be inf or NaN.

Dependencies

To enable this parameter, set the Initial condition source to internal.

Programmatic Use

Block Parameter: InitialCondition
Type: character vector, string
Values: scalar | vector | matrix
Default: '0'

Specify whether the block has direct feedthrough. A block has direct feedthrough when the value of one or more output signals directly depends on the value of one or more input signals.

  • True — The output signal value directly depends on the input signal value.

  • False — The output signal value does not directly depend on input signal value.

  • Auto — The software determines whether the output signal value directly depends on the input signal value based on the characteristics of the matrices.

When the system this block implements a system with more than 500 continuous states, specifying this parameter as True or False might speed up the simulation.

Programmatic Use

Block Parameter: DirectFeedthrough
Type: string | character vector
Values: 'True' | 'False''Auto'
Default: 'True'

For Simulink Control Design™ workflows, linearize the system represented by the Descriptor State-Space block to a sparse model during linearization.

Disable this parameter to linearize the system to a non-sparse explicit state-space model.

Variable-step solvers use absolute and relative tolerances when choosing the step size to determine whether the error in state calculations is acceptable.

To inherit the absolute tolerance from the Absolute tolerance configuration parameter, specify this parameter value as auto or -1.

To specify an absolute tolerance for this block that overrides the value specified for the Absolute tolerance configuration parameter:

  • Enter a real, positive scalar value to use to compute all block states.

  • Enter a real vector with dimensions that match the dimensions of the continuous states for the block.

Programmatic Use

Block Parameter: AbsoluteTolerance
Type: string | character vector
Values: 'auto' | '-1' | positive, real scalar | vector of positive, real scalars
Default: 'auto'

Use this parameter to optionally assign names to the states of this block. The names you assign apply only to the states of this block.

  • To use default state names, leave this field blank ('').

  • To assign a single name to a single state, enter the name between quotes. For example, to name a single state position, enter "position".

  • To assign names to multiple states, specify this parameter value as a cell array of character vectors. Each name in the cell array must be unique. For example, to assign the names a, b, and c, enter {'a','b','c'}.

  • To specify the names using a MATLAB variable, enter the name of the variable without quotes. For example, to use the variable names to specify the state names, enter names.

You can specify a number of names that is less than the number of states in the block. In this case, the state names are used for multiple states, and the number of states must divide evenly into the number of state names. For example, when you specify two names for a block that has four states, the first name is used for the first two states, and the second name is used for the last two states.

Programmatic Use

Block Parameter: ContinuousStateAttributes
Type: string | character vector
Values: ' ' | user-defined
Default: ' '

Block Characteristics

Data Types

double

Direct Feedthrough

noa

Multidimensional Signals

no

Variable-Size Signals

no

Zero-Crossing Detection

no

a Direct feedthrough characteristics for this block depend on block parameter values.

Extended Capabilities

Version History

Introduced in R2018b