Main Content

Set Data Properties

When you create Stateflow® charts in Simulink®, you can modify data properties in the Property Inspector or the Model Explorer.

To use the Property Inspector:

  1. In the Modeling tab, under Design Data, select Symbols Pane and Property Inspector.

  2. In the Symbols pane, select the data object.

  3. In the Property Inspector, edit the data properties.

To use the Model Explorer:

  1. In the Modeling tab, under Design Data, select Model Explorer.

  2. In the Model Hierarchy pane, select the parent of the data object.

  3. In the Contents pane, select the data object.

  4. In the Dialog pane, edit the data properties.

You can also modify these properties programmatically by using Stateflow.Data objects. For more information about the Stateflow programmatic interface, see Overview of the Stateflow API.

Properties vary according to the scope and type of the data object. For many data properties, you can enter expressions or parameter values. Using parameters to set properties for many data objects simplifies maintenance of your model because you can update multiple properties by changing a single parameter.

Stateflow Data Properties

You can set these data properties in:

  • The Properties tab of the Property Inspector.

  • The General tab of the Model Explorer.

Name

Name of the data object. For more information, see Guidelines for Naming Stateflow Objects.

Scope

Location where data resides in memory, relative to its parent.

SettingDescription
Local

Data defined in the current chart only.

Constant

Read-only constant value that is visible to the parent Stateflow object and its children.

Parameter

Constant whose value is defined in the MATLAB® base workspace or derived from a Simulink block parameter that you define and initialize in the parent masked subsystem. The Stateflow data object must have the same name as the MATLAB variable, Simulink data dictionary entry, or the Simulink parameter. For more information, see Share Parameters with Simulink and the MATLAB Workspace.

Input

Input argument to a function if the parent is a graphical function, truth table, or MATLAB function. Otherwise, the Simulink model provides the data to the chart through an input port on the Stateflow block. For more information, see Share Input and Output Data with Simulink.

Output

Return value of a function if the parent is a graphical function, truth table, or MATLAB function. Otherwise, the chart provides the data to the Simulink model through an output port on the Stateflow block. For more information, see Share Input and Output Data with Simulink.

Data Store Memory

Data object that binds to a Simulink data store, which is a signal that functions like a global variable. All blocks in a model can access that signal. This binding allows the chart to read and write to the Simulink data store, sharing global data with the model. The Stateflow object must have the same name as the Simulink data store. For more information, see Access Data Store Memory from a Chart.

Temporary

Data that persists during only the execution of a function. You can define temporary data only for graphical functions, truth tables, or MATLAB functions in charts that use C as the action language.

Port

Index of the port associated with the data object. This property applies only to input and output data. See Share Input and Output Data with Simulink.

Update method

Specifies whether a variable updates in discrete or continuous time. This property applies only when the chart is configured for continuous-time simulation. See Continuous-Time Modeling in Stateflow.

Data must resolve to signal object

Specifies that output or local data explicitly inherits properties from Simulink.Signal objects of the same name in the MATLAB base workspace or the Simulink model workspace. The data can inherit these properties:

  • Size

  • Complexity

  • Type

  • Unit

  • Minimum value

  • Maximum value

  • Initial value

  • Storage class

  • Sampling mode (for Truth Table block output data)

This option is available only when you set the model configuration parameter Signal resolution to a value other than None. For more information, see Resolve Data Properties from Simulink Signal Objects.

Size

Size of the data object. The size can be a scalar value or a MATLAB vector of values.

  • To specify a scalar, set the Size property to 1 or leave the field blank.

  • To specify an n-by-1 column vector, set the Size property to n.

  • To specify a 1-by-n row vector, set the Size property to [1 n].

  • To specify an n-by-m matrix, set the Size property to [n m].

  • To specify an n-dimensional array, set the Size property to [d1 d2dn], where di is the size of the ith dimension.

  • To configure a Stateflow data object to inherit its size from the corresponding Simulink signal or from its definition in the chart, specify a size of –1.

The scope of the data object determines what sizes you can specify. Stateflow data store memory inherits all its properties, including its size, from the Simulink data store to which it is bound. For all other scopes, size can be scalar, vector, or a matrix of n-dimensions. For more information, see Specify Size of Stateflow Data.

You can specify data size through a MATLAB expression that evaluates to a valid size specification. For more information, see Specify Data Size by Using Expressions and Specify Data Properties by Using MATLAB Expressions.

Variable size

Specifies that the data object changes size during simulation. This option is available only when you enable the chart property Support variable-size arrays. For more information, see Declare Variable-Size Data in Stateflow Charts.

Complexity

Specifies whether the data object accepts complex values.

SettingDescription
OffData object does not accept complex values.
OnData object accepts complex values.
InheritedData object inherits the complexity setting from a Simulink block.

The default value is Off. For more information, see Complex Data in Stateflow Charts.

First index

Index of the first element of the data array. The first index can be any integer. The default value is 0. This property is available only for C charts.

Type

Type of data object. To specify the data type:

Additionally, in the Model Explorer, you can open the Data Type Assistant by clicking the Show data type assistant button . Specify a data Mode, and then specify the data type based on that mode. For more information, see Specify Scope and Type of Stateflow Data.

Note

If you enter an expression for a fixed-point data type, you must specify scaling explicitly. For example, you cannot enter an incomplete specification such as fixdt(1,16) in the Type field. If you do not specify scaling explicitly, an error appears when you try to simulate your model.

Lock data type against Fixed-Point tools

Prevents replacement of the current fixed-point type with an autoscaled type chosen by the Fixed-Point Tool (Fixed-Point Designer). For more information, see Iterative Fixed-Point Conversion Using the Fixed-Point Tool (Fixed-Point Designer).

Unit (e.g., m, m/s^2, N*m)

Specifies physical units for input and output data. For more information, see Specify Units for Stateflow Data.

Initial value

Initial value of the data object. For constant data, this property is called Constant value. The options for specifying this property depend on the scope of the data object.

ScopeSpecify for Initial Value
Local

Expression or parameter defined in the Stateflow hierarchy, MATLAB base workspace, or Simulink masked subsystem. Specify whether Initial value is an expression or parameter by using the Initialize method data property.

Constant

Constant value or expression. The expression is evaluated when you update the chart. The resulting value is used as a constant for running the chart.

When you leave the Constant value field blank, numeric data resolves to a default value of 0. For enumerated data, the default value typically is the first one listed in the enumeration section of the definition. You can specify a different default enumerated value in the methods section of the definition. For more information, see Define Enumerated Data Types.

ParameterYou cannot enter a value. The chart inherits the initial value from the parameter.
InputYou cannot enter a value. The chart inherits the initial value from the Simulink input signal at the designated port.
Output

Expression or parameter defined in the Stateflow hierarchy, MATLAB base workspace, or Simulink masked subsystem. Specify whether Initial value is an expression or parameter by using the Initialize method data property.

Data Store MemoryYou cannot enter a value. The chart inherits the initial value from the Simulink data store to which it resolves.

The time of initialization depends on the data parent and scope of the Stateflow data object.

Data Parent

Scope

Initialization Time

Chart

Input

Not applicable

Output, Local

Start of simulation or when chart reinitializes as part of an enabled Simulink subsystem

State with History Junction

Local

Start of simulation or when chart reinitializes as part of an enabled Simulink subsystem

State without History Junction

Local

State entry

Function (graphical, truth table, and MATLAB functions)

Input, Output

Function-call invocation

Local

Start of simulation or when chart reinitializes as part of an enabled Simulink subsystem

For more information on using an expression to specify an initial value, see Specify Data Properties by Using MATLAB Expressions.

Initialize method

Specifies the initialization method for local and output data objects.

  • Expression — Assign an expression as the initial value of the data object.

    When you do not specify the Initial value property, numeric data initializes to a default value of 0. For enumerated data, the default value typically is the first one listed in the enumeration section of the definition. You can specify a different default enumerated value in the methods section of the definition. For more information, see Define Enumerated Data Types.

  • Parameter — Assign a variable in the MATLAB workspace as the initial value of the data object. If you do not specify the Initial value field, Stateflow searches for a MATLAB variable with the same name as the data object.

The default setting is Expression.

Note

The Property Inspector does not support initializing buses when you set this property to Expression. For more information, see Initialize Stateflow Buses.

Limit range

Range of acceptable values for this data object. Stateflow charts use this range to validate the data object during simulation.

  • Minimum — The smallest value allowed for the data item during simulation. You can enter an expression or parameter that evaluates to a numeric scalar value.

  • Maximum — The largest value allowed for the data item during simulation. You can enter an expression or parameter that evaluates to a numeric scalar value.

The smallest value that you can set for Minimum is -inf. The largest value that you can set for Maximum is inf.

You can specify the minimum and maximum values through a MATLAB expression. For more information, see Specify Data Properties by Using MATLAB Expressions.

Note

A Simulink model uses the Maximum and Minimum properties to calculate best-precision scaling for fixed-point data types. Before you select Calculate Best-Precision Scaling, specify a minimum or maximum value. For more information, see Calculate best-precision scaling.

Fixed-Point Data Properties

In the Model Explorer, when you set the Data Type Assistant Mode to Fixed point, the Data Type Assistant displays fields for specifying additional information about your fixed-point data.

Data Type Assistant showing the fields used to specify fixed-point data.

Signedness

Specifies whether the fixed-point data is Signed or Unsigned. Signed data can represent positive and negative values. Unsigned data represents positive values only. The default setting is Signed.

Word length

Specifies the bit size of the word that holds the quantized integer. Large word sizes represent large values with greater precision than small word sizes. The default value is 16.

  • Word length can be any integer from 0 through 128 for chart-level data of these scopes:

    • Input

    • Output

    • Parameter

    • Data Store Memory

  • For other Stateflow data, word length can be any integer from 0 through 32.

You can specify the word length through a MATLAB expression. For more information, see Specify Data Properties by Using MATLAB Expressions.

Scaling

Specifies the method for scaling your fixed-point data to avoid overflow conditions and minimize quantization errors. The default method is Binary point scaling.

SettingDescription
Binary point

If you select this mode, the Data Type Assistant displays the Fraction length field, which specifies the binary point location.

Fraction length can be any integer. The default value is 0. A positive integer moves the binary point left of the rightmost bit by that amount. A negative integer moves the binary point farther right of the rightmost bit.

Slope and bias

If you select this mode, the Data Type Assistant displays fields for entering the Slope and Bias for the fixed-point encoding scheme.

Slope can be any positive real number. The default value is 1.0.

Bias can be any real number. The default value is 0.0.

You can enter slope and bias as expressions that contain parameters you define in the MATLAB base workspace.

Whenever possible, use binary-point scaling to simplify the implementation of fixed-point data in generated code. Operations with fixed-point data that use binary-point scaling are performed with simple bit shifts and eliminate expensive code implementations required for separate slope and bias values. For more information about fixed-point scaling, see Scaling (Fixed-Point Designer).

You can specify Fraction length, Slope, and Bias through a MATLAB expression. For more information, see Specify Data Properties by Using MATLAB Expressions.

Data type override

Specifies whether to inherit the data type override setting of the Fixed-Point Tool that applies to this model. If the data does not inherit the model-wide setting, the specified data type applies.

Calculate best-precision scaling

Specifies whether to calculate the best-precision values for Binary point and Slope and bias scaling, based on the values in the Minimum and Maximum properties.

To calculate best-precision scaling values:

  1. Specify Maximum and Minimum properties.

  2. Click Calculate Best-Precision Scaling.

The best-precision scaling values are displayed in the Fraction length field or the Slope and Bias fields. For more information, see Maximize Precision (Fixed-Point Designer).

Note

The Maximum and Minimum properties do not apply to Constant and Parameter scopes. For Constant, Simulink software calculates the scaling values based on the Initial value setting. The software cannot calculate best-precision scaling for data of Parameter scope.

Fixed-point details

Displays information about the fixed-point data type that is defined in the Data Type Assistant:

  • Minimum and Maximum show the same values that you specify in the Minimum and Maximum properties.

  • Representable minimum, Representable maximum, and Precision show the minimum value, maximum value, and precision that the fixed-point data type can represent.

If the value of a field cannot be determined without first compiling the model, the Fixed-point details subpane shows the value as Unknown.

Fixed-point details subpane showing the maximum and minimum values for the data object data.

The values displayed by the Fixed-point details subpane do not automatically update if you change the values that define the fixed-point data type. To update the values shown in the Fixed-point details subpane, click Refresh Details.

Clicking Refresh Details does not modify the model. It changes only the display. To apply the displayed values, click Apply or OK.

The Fixed-point details subpane indicates any error resulting from the fixed-point data type specification. For example, this figure shows two errors.

Fixed-point details subpane showing two specification errors because the data object has invalid maximum and minimum values.

The row labeled Maximum indicates that the value specified by the Maximum property is not representable by the fixed-point data type. To correct the error, make one of these modifications so the fixed-point data type can represent the maximum value:

  • Decrease the value in the Maximum property.

  • Increase Word length.

  • Decrease Fraction length.

The row labeled Minimum shows the error Cannot evaluate because evaluating the expression MySymbol, specified by the Minimum property, does not return a numeric value. When an expression does not evaluate successfully, the Fixed-point details subpane shows the unevaluated expression (truncating to 10 characters as needed) in place of the unavailable value. To correct this error, define MySymbol in the base workspace to provide a numeric value. If you click Refresh Details, the error indicator and description are removed and the value of MySymbol appears in place of the unevaluated text.

Logging Properties

You can set logging properties for data in:

  • The Properties tab of the Property Inspector.

  • The Logging tab of the Model Explorer.

Log signal data

Whether to enable signal logging. Signal logging saves the values of the data object to the MATLAB workspace during simulation. For more information, see Log Simulation Output for States and Data.

Logging name

Signal name used to log the data object.

  • To use the name of the data object, select Use signal name (default).

  • To specify a different name, select Custom and enter the custom logging name.

Limit data points to last

Whether to limit the number of data points to log to the specified maximum. For example, if you set the maximum number of data points to 5000, the chart logs only the last 5000 data points generated by the simulation.

Decimation

Whether to limit the amount of logged data by skipping samples using the specified decimation interval. For example, if you set a decimation interval of 2, the chart logs every other sample.

Test point

Whether to set the data object as a test point that you can monitor with a floating scope during simulation. You can also log test point values to the MATLAB workspace. For more information, see Monitor Test Points in Stateflow Charts.

Additional Properties

You can set additional data properties in:

  • The Info tab of the Property Inspector.

  • The Description tab of the Model Explorer.

Save final value to base workspace

Assigns the value of the data object to a variable of the same name in the MATLAB base workspace at the end of simulation. This option is available only in the Model Explorer for charts that use C as the action language. For more information, see Model Workspaces (Simulink).

Units

Units of measurement associated with the data object. The unit in this field resides with the data object in the Stateflow hierarchy. This property is available only in the Model Explorer for C charts.

Description

Description of the data object.

Document link

Link to online documentation for the data object. You can enter a web URL address or a MATLAB command that displays documentation as an HTML file or as text in the MATLAB Command Window. When you click the Document link hyperlink, Stateflow evaluates the link and displays the documentation.

Default Data Property Values

When you leave a property field blank, Stateflow assumes a default value.

PropertyDefault Value
Size

−1 (inherited), for inputs, parameters, and function outputs

1 (scalar), for other data objects

First index0
Initial value0.0
Limit rangeMinimum-inf
 Maximuminf
Fixed-Point Data PropertiesWord length16
 Fraction length0
 Slope1.0
 Bias0.0

Specify Data Properties by Using MATLAB Expressions

In the Property Inspector and Model Explorer, you can enter MATLAB expressions as values for these properties:

Expressions can contain a mix of numeric values, constants, parameters, variables, arithmetic operations, parameters, constants, arithmetic operators, and calls to MATLAB functions. For example, you can use these functions to specify data properties.

Property FunctionDescription
SizesizeReturns the size of a data object
TypetypeReturns the type of a data object
fixdt (Simulink)Returns a Simulink.NumericType object that describes a fixed-point or floating-point data type
fi (Fixed-Point Designer)Returns a fixed-point numeric object
MinimumminReturns the smallest element or elements of an array
MaximummaxReturns the largest element or elements of an array

For more information, see Specify Data Size by Using Expressions and Derive Data Types from Other Data Objects.

See Also

Objects

Functions

Tools

Related Topics