Set Data Properties
When you create Stateflow^{®} charts in Simulink^{®}, you can specify data properties in either the Property Inspector or the Model Explorer.
To use the Property Inspector:
In the Modeling tab, under Design Data, select Symbols Pane and Property Inspector.
In the Symbols pane, select the data object.
In the Property Inspector pane, edit the data properties.
To use the Model Explorer:
In the Modeling tab, under Design Data, select Model Explorer.
In the Contents pane, select the data object.
In the Message pane, edit the data properties.
You can also specify data 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 main and Advanced sections 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.
Setting  Description 

Local  Data defined in the current chart only. 
Constant  Readonly 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 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 continuoustime simulation. See ContinuousTime 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
by1 column vector, set the Size property ton
.To specify a 1by
n
row vector, set the Size property to[1
.n
]To specify an
n
bym
matrix, set the Size property to[
.n
m
]To specify an
n
dimensional array, set the Size property to[
, whered_{1}
d_{2}
⋯d_{n}
]d_{i}
is the size of thei
^{th} 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 ndimensions. 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 dimensions during simulation. This option is available for input and output data only when you enable the chart property Support variablesize arrays. For more information, see Declare VariableSize Data in Stateflow Charts.
Complexity
Specifies whether the data object accepts complex values.
Setting  Description 

Off  Data object does not accept complex values. 
On  Data object accepts complex values. 
Inherited  Data 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:
From the Type dropdown list, select a builtin type.
In the Type field, enter an expression that evaluates to a data type. Use one of these expressions:
A call to the
fixdt
(Simulink) function to create aSimulink.NumericType
(Simulink) object that describes a fixedpoint or floatingpoint data type. See Specify FixedPoint Data.A call to the
type
operator to specify the type of previously defined data. See Derive Data Types from Other Data Objects.A
Simulink.AliasType
(Simulink) object that defines a data type alias in the MATLAB base workspace. See Specify Data Types by Using a Simulink Alias.
For more information, see Specify Data Properties by Using MATLAB Expressions.
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 Type of Stateflow Data.
Note
If you enter an expression for a fixedpoint 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 FixedPoint Tools
Prevents replacement of the current fixedpoint type with an autoscaled type chosen by the FixedPoint Tool (FixedPoint Designer). For more information, see Iterative FixedPoint Conversion Using the FixedPoint Tool (FixedPoint 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.
Scope  Specify for Initial Value 

Local  Expression or parameter defined in the Stateflow hierarchy, MATLAB base workspace, or Simulink masked subsystem. To specify the initial value when you leave the Initial value field blank, open the Model Explorer or the Data
properties dialog box and set the Initial value dropdown list to
The default setting is

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 
Parameter  You cannot enter a value. The chart inherits the initial value from the parameter. 
Input  You 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. To specify the initial value when you leave the Initial value field blank, open the Model Explorer or the Data
properties dialog box and set the Initial value dropdown list to
The default setting is

Data Store Memory  You 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  Functioncall 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.
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 Limit range properties to calculate bestprecision scaling for fixedpoint data types. Before you select Calculate BestPrecision Scaling, specify a minimum or maximum value. For more information, see Calculate BestPrecision Scaling.
Add to Watch Window
Enables watching the data values in the Stateflow Breakpoints and Watch window. For more information, see View Data in the Breakpoints and Watch Window.
FixedPoint 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 fixedpoint data.
Signedness
Specifies whether the fixedpoint 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 chartlevel 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 fixedpoint data to avoid overflow conditions and
minimize quantization errors. The default method is Binary point
scaling.
Setting  Description 

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 fixedpoint 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 binarypoint scaling to simplify the implementation of fixedpoint data in generated code. Operations with fixedpoint data that use binarypoint scaling are performed with simple bit shifts and eliminate expensive code implementations required for separate slope and bias values. For more information about fixedpoint scaling, see Scaling (FixedPoint 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 FixedPoint Tool that applies to this model. If the data does not inherit the modelwide setting, the specified data type applies.
Calculate BestPrecision Scaling
Specifies whether to calculate the bestprecision values for Binary
point
and Slope and bias
scaling, based on the values
in the Minimum and Maximum
fields in the Limit range section.
To calculate bestprecision scaling values:
Specify Limit range properties.
Click Calculate BestPrecision Scaling.
The bestprecision scaling values are displayed in the Fraction length field or the Slope and Bias fields. For more information, see Maximize Precision (FixedPoint Designer).
Note
The Limit range 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 bestprecision scaling for data of
Parameter
scope.
Show FixedPoint Details
Displays information about the fixedpoint data type that is defined in the Data Type Assistant:
Minimum
andMaximum
show the same values that appear in the corresponding Minimum and Maximum fields in the Limit range section.Representable minimum
,Representable maximum
, andPrecision
show the minimum value, maximum value, and precision that the fixedpoint data type can represent.
If the value of a field cannot be determined without first compiling the model,
the Fixedpoint details subpane shows the value as
Unknown
.
The values displayed by the Fixedpoint details subpane do not automatically update if you change the values that define the fixedpoint data type. To update the values shown in the Fixedpoint 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 Fixedpoint details subpane indicates any error resulting from the fixedpoint data type specification. For example, this figure shows two errors.
The row labeled Maximum
indicates that the value specified in the
Maximum field of the Limit range section is not
representable by the fixedpoint data type. To correct the error, make one of these
modifications so the fixedpoint data type can represent the maximum value:
Decrease the value in the Maximum field of the Limit range section.
Increase Word length.
Decrease Fraction length.
The row labeled Minimum
shows the error Cannot
evaluate
because evaluating the expression MySymbol
, specified in
the Minimum field of the Limit range section, does
not return a numeric value. When an expression does not evaluate successfully, the
Fixedpoint 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 Logging section of the Property Inspector.
The Logging tab of the Model Explorer.
Log Signal Data
Saves the data value to the MATLAB base workspace during simulation. For more information, see Log Simulation Output for States and Data.
Test Point
Designates the data as a test point. A test point is a signal that you can observe in a Floating Scope block in a model. Data objects can be test points if:
Scope is
Local
.Parent is not a Stateflow machine.
Data type is not
ml
.
For more information, see Monitor Test Points in Stateflow Charts.
Logging Name
Specifies the name associated with logged signal data. Simulink software uses the signal name as its logging name by default. To specify a custom
logging name, select Custom
from the list box and enter the new name
in the adjacent edit field.
Limit Data Points to Last
Limits the amount of data logged to the most recent samples.
Decimation
Limits the amount of data logged by skipping samples. For example, a decimation factor of 2 saves every other sample.
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. You can enter brief descriptions of data in the hierarchy.
Document Link
Link to online documentation for the data object. You can enter a web URL address or a MATLAB command that displays documentation in a suitable online format, such as an HTML file or 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.
Property  Default Value  

Size 
 
First Index  0  
Initial Value  0.0  
Limit Range  Minimum  inf 
Maximum  inf  
FixedPoint Data Properties  Word length  16 
Fraction length  0  
Slope  1.0  
Bias  0.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:
Limit Range: Minimum and Maximum
FixedPoint Data Properties: Word length, Fraction length, Slope, and Bias
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  Function  Description 

Size  size  Returns the size of a data object 
Type  type  Returns the type of a data object 
fixdt (Simulink)  Returns a Simulink.NumericType object that describes a fixedpoint
or floatingpoint data type  
fi (FixedPoint Designer)  Returns a fixedpoint numeric object  
Minimum  min  Returns the smallest element or elements of an array 
Maximum  max  Returns 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
fi
(FixedPoint Designer)  fixdt
(Simulink)  max
 min
 size
 Simulink.AliasType
(Simulink)  Simulink.NumericType
(Simulink)