Implement discrete state-space system
The Discrete State-Space block implements the system described by
where u is the input, x is the state, and y is the output. The matrix coefficients must have these characteristics, as illustrated in the following diagram:
A must be an n-by-n matrix, where n is the number of states.
B must be an n-by-m matrix, where m is the number of inputs.
C must be an r-by-n matrix, where r is the number of outputs.
D must be an r-by-m matrix.
The block accepts one input and generates one output. The width of the input vector is the number of columns in the B and D matrices. The width of the output vector is the number of rows in the C and D matrices. To define the initial state vector, use the Initial conditions parameter.
To specify a vector or matrix of zeros for A, B, C, D,
or Initial conditions, use the
When the matrices A, B,
and C are empty (for example,
the functionality of the block becomes
y(n) = Du(n).
If the Initial conditions vector is also empty,
the block uses an initial state vector of zeros.
The Discrete State Space block accepts and outputs a real signal
more information, see
Data Types Supported by Simulink in
the Simulink® documentation.
The Main tab of the Discrete State-Space block dialog box appears as follows:
Specify the matrix coefficients, as defined in the Description section.
Specify the initial state vector. The default value is
0. Simulink does
not allow the initial states of this block to be
Specify the time interval between samples. See Specify Sample Time in the Simulink documentation.
The State Attributes tab of the Discrete State-Space block dialog box appears as follows:
Use this parameter to assign a unique name to the block state.
The default is
' '. When this field is blank, no
name is assigned. When using this parameter, remember these considerations:
A valid identifier starts with an alphabetic or underscore character, followed by alphanumeric or underscore characters.
The state name applies only to the selected block.
This parameter enables State name must resolve to Simulink signal object when you click Apply.
For more information, see Discrete Block State Naming in Generated Code in the Simulink Coder™ documentation.
Select this check box to require that the state name resolve to a Simulink signal object. This check box is cleared by default.
State name enables this parameter.
Selecting this check box disables Code generation storage class.
Select a package that defines the custom storage class you want to apply. If you have defined any packages of your own, click Refresh. This action adds all user-defined packages on your search path to the package list.
Select custom storage class for state.
Auto is the appropriate storage class for states that you do not need to interface to external code.
model_P initializes the state to
its corresponding value in the workspace.
State is stored in a global variable
the state as an extern variable.
the state as an extern pointer.
A non-editable placeholder storage class is created.
struct declaration is created that embeds
Volatile type qualifier is used in state declaration.
(.h) file containing global variable
declarations is generated with user-specified name.
(.h) files containing
global variable declarations are included.
A static qualifier is generated in front of the state declaration to make the state visible only to the current file.
struct declaration is created to encapsulate
parameter or signal object data.
Volatile type qualifier is used in
Supports specialized function calls to read and write memory.
State name enables this parameter.
The list of valid storage classes differs based on the Package selection.
Setting this parameter to
ImportedExternPointer enables Code
generation storage type qualifier.
Specify a Simulink Coder storage type qualifier. The
' '. When this field is blank, no qualifier
The Simulink Coder product does not check this string for errors. Thus, whatever value you enter appears automatically in the variable declaration.
Setting Code generation storage class to
ImportedExternPointer enables this parameter.
During simulation, the block uses the following values:
The initial value of the signal object to which the state name is resolved
Min and Max values of the signal object
For more information, see Discrete Block State Naming in Generated Code in the Simulink Coder documentation.
Only if D ≠ 0
Specified in the Sample time parameter
Yes, of the initial conditions
Determined by the size of A