Unbounded Variable-Size Signal Basic Operations
This example shows how to use unbounded variable-size signals in Simulink® modeling. For more information about the general concept of unbounded variable-size signals, see Unbounded Variable-Size Signals.
This model describes how to configure blocks to use unbounded variable-size signals.
open_system('ex_boundedsignals')
To display the signal dimensions, in the Simulink Editor, on the Debug tab, select Information Overlays and click Signal Dimensions.
The following sections describe how to configure the Inport block, MATLAB Function block, Simulink Signal object and Simulink Bus object to use unbounded variable-size signals.
Configure Inport Block to Generate Unbounded Variable-Size Signals
In the block dialog box:
On the Signal Attributes tab, set the appropriate values of Port dimensions as
Inf
. For Variable-size signal, selectYes
to allow variable-size signals.On the Execution tab, specify Sample time explicitly and clear Interpolate data.
For example, the Inport1
block connected to the input port of the Selector block is configured to generate an unbounded variable-size signal with dimension [Inf 6]
, data type uint16
, and sample time 1
. You can configure all the other Inport blocks similarly to generate unbounded variable-size signals. In this example, configure the Inport2
block and Inport3
block to generate unbounded variable-size signals with sample time 1
and dimensions [Inf Inf]
and [Inf Inf Inf]
respectively.
To use an unbounded variable-size signal as index signal to the Selector block, replace the Constant block with an Inport block. Configure the Inport block to generate the index signal with dimension Inf
, data type uint16
and sample time 1
. Also, for the Selector block, in the Block Parameters dialog box, select Number of input dimensions as 2
, Index Option as Index vector (dialog)
as [3 4 5]
.
Configure MATLAB Function Block to Support Unbounded Variable-Size Signals
Specify the size of a variable-size input/output signal associated with the MATLAB Function block. To interactively configure the MATLAB Function block, in the Simulink Editor, on the Modeling tab, from the Design gallery, select Model Explorer. From the Model Explorer window, select the MATLAB Function. Set the dimension in Size to [Inf 6
] and select Variable size.
Configure Simulink Signal Object to Support Unbounded Variable-Size Signals
Specify the size of a variable-size Simulink.Signal
object as unbounded. To programmatically configure the signals, in the Simulink Editor, on the Modeling tab, select Model Settings > Model Properties. In the Model Properties dialog box, on the Callbacks tab, select PreLoadFcn to edit the Simulink.Signal
object properties.
For the signal object:
Set
Dimensions
value toInf
.Set
DimensionsMode
toVariable
.
Configure Simulink Bus Object to Support Unbounded Variable-Size Signals
Specify the size of a variable-size Simulink.Bus
object as unbounded. To programmatically configure the bus elements, in the Simulink Editor, on the Modeling tab, select Model Settings > Model Properties. In the Model Properties dialog, on the Callbacks tab, select PreLoadFcn to edit the Simulink.BusElement
object properties.
For each bus element:
Set appropriate dimensions to infinity by setting
Dimensions
value toInf
.Set
DimensionsMode
toVariable
.
Configure Data Store for Unbounded Variable-Size Signals
To Configure the Data Store Memory block to store bus object A
, in the Data Store Memory dialog box, on the Signal Attributes tab, set Data type to Bus:A
.
Compile the Model and Verify Signal Dimensions
Once you configure the blocks and Simulink objects, update (Ctrl+D) the model. Save (Ctrl+S) the model in the working folder and close it. Re-open the model for the updated properties of Simulink.BusElement
and Simulink.Signal
objects to be effective.
To verify if the model components are properly configured to support unbounded variable-size signals, check the signal dimensions. To display the signal dimensions, in the Simulink Editor, on the Debug tab, click Information Overlays and select Signal Dimensions.
Set Model Configuration Parameters for Simulation
In the Simulink Editor, on the Modeling tab, select Model Settings. In the Configuration Parameters dialog box:
On the Solver tab, check that the solver is set to
auto
(default). Otherwise, selectauto
/discrete
.On the Data Import/Export tab, check that the Format is set to
Dataset
(default).On the Simulation Target tab, set Language as
C++
. In Advanced parameters section, check that Dynamic memory allocation in MATLAB functions is selected.
Set Up Data Logging
To log the output signals from the Data Store Read block, use the Outport block. In this case, the output signals sig1
and sig3
are Simulink bus elements.
See Also
Selector | MATLAB Function | Bus Creator | Bus Selector | Inport