Documentation |
Implement discrete-time state space
The Fixed-Point State-Space block implements the system described by
y(n) = Cx(n) + Du(n)
x(n+1) = Ax(n) + Bu(n)
where u is the input, x is the state, and y is the output. Both equations have the same data type.
The matrices A, B, C and D have the following characteristics:
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.
In addition:
The state x must be an n-by-1 vector.
The input u must be an m-by-1 vector.
The output y must be an r-by-1 vector.
The block accepts one input and generates one output. The block determines the input vector width by the number of columns in the B and D matrices. Similarly, the block determines the output vector width by the number of rows in the C and D matrices.
The Fixed-Point State-Space block accepts signals of the following data types:
Floating point
Built-in integer
Fixed point
For more information, see Data Types Supported by Simulink in the Simulink^{®} documentation.
The Main pane of the Fixed-Point State-Space block dialog box appears as follows:
Specify the matrix of states.
Specify the column vector of inputs.
Specify the column vector of outputs.
Specify the matrix for direct feedthrough.
Specify the initial condition for the state.
The Signal Attributes pane of the Fixed-Point State-Space block dialog box appears as follows:
Specify the data type for internal calculations.
Specify the scaling for state equations.
Specify the scaling for output equations.
Select to lock the output data type setting of this block against changes by the Fixed-Point Tool and the Fixed-Point Advisor. For more information, see Use Lock Output Data Type Setting.
Specify the rounding mode for fixed-point operations. For more information, see Rounding. in the Fixed-Point Designer™ documentation.
Select to have overflows saturate to the maximum or minimum value that the data type can represent. Otherwise, overflows wrap.
When you select this check box, saturation applies to every internal operation on the block, not just the output or result. In general, the code generation process can detect when overflow is not possible. In this case, the code generator does not produce saturation code.