Contenido principal

Combo Box

Select parameter value from drop-down menu

  • Combo Box block

Libraries:
Simulink / Dashboard

Description

The Combo Box block lets you set the value of a parameter to one of several values. You can define each selectable value and its label through the Combo Box block parameters. Use the Combo Box block with other Dashboard blocks to build an interactive dashboard of controls and indicators for your model.

Double-clicking the Combo Box block does not open its dialog box during simulation and when the block is selected. To edit the block's parameters, you can use the Property Inspector, or you can right-click the block, and then click the Block Parameters button .

Connect Dashboard Blocks

Dashboard blocks do not use ports to connect to model elements. To connect a dashboard block, use connect mode. To enter connect mode on an unconnected block, pause on the block you want to connect and click the Connect button . To enter connect mode on a connected block, select the block, pause on the ellipsis that appears (…), and in the action menu that expands, click the Connect button.

To connect a control block to a parameter in your model or to change the connection of a control block, enter connect mode. Select the block to whose parameter you want to connect. From the list that appears, select the parameter to which you want to connect. Then, pause on the dashboard block and click the Done Connecting button .

The control block cannot connect to a parameter whose value is a variable until you update the model diagram. To connect to a parameter whose value is a variable or to modify the value of a variable that is the value of a connected parameter when the simulation is not running, update the model diagram by pressing Ctrl+D.

You can connect to a parameter with a scalar value or to an element of a matrix or structure. For more information, see Connect Dashboard Blocks to Simulink Model.

You can also connect dashboard blocks to a Stateflow® chart. For more information, see Connect Dashboard Blocks to Stateflow (Stateflow).

This animation shows how to connect the Combo Box block to your model.

An unconnected Combo Box block connects to the Gain parameter of a Gain block.

Parameter Logging

Tunable parameters connected to dashboard blocks are logged to the Simulation Data Inspector, where you can view the parameter values along with logged signal data. You can access logged parameter data in the MATLAB® workspace by exporting the parameter data from the Simulation Data Inspector by using the UI or the Simulink.sdi.exportRun function. For more information about exporting data using the Simulation Data Inspector UI, see Export Data From Simulation Data Inspector to Workspace or File. The parameter data is stored in a Simulink.SimulationData.Parameter object, accessible as an element in the exported Simulink.SimulationData.Dataset.

Examples

expand all

You can use a Combo Box block to set the value of a parameter to one of several choices before or during simulation. For example, in the model comboBoxGain, a Combo Box block is connected to the Gain parameter of a Gain block. The Combo Box block is configured such that you can choose a gain value of 0, 5, 10, or 15.

Block parameters dialog box for the Combo Box block.

Simulate the model. To change the gain value, click the Combo Box block, and select a value from the list.

Animation of the comboBoxGain model during simulation

Extended Examples

Limitations

  • Except for the Dashboard Scope block and the Display block, dashboard blocks can only connect to real scalar signals.

  • You cannot use the Connection table in the Block Parameters dialog box to connect a dashboard block to a block that is commented out. When you connect a dashboard block to a commented block using connect mode, the dashboard block does not display the connected value until the you uncomment the block.

  • Dashboard blocks cannot connect to model elements inside referenced models.

  • When you simulate a model hierarchy, dashboard blocks inside referenced models do not update.

  • Dashboard blocks do not support rapid accelerator simulation.

  • When you connect a dashboard block to a variable or parameter during simulation, the data for that variable or parameter is not logged to the Simulation Data Inspector. To log variable and parameter data to the Simulation Data Inspector, connect the dashboard block to the variable or parameter prior to simulation.

  • When you simulate a model in external mode with the Default parameter behavior set to Inlined, dashboard blocks can appear to change parameter and variable values. However, the change does not propagate to the simulation. For example, Gain blocks display changes made to the Gain parameter using the dashboard blocks, but the Gain value used in the simulation does not change.

Parameters

expand all

Connection

This block is a control block — a block that controls the value of a parameter. Connect the block to the parameter whose value you want to control. You can connect to a parameter with a scalar value, or to an element of a matrix.

Dashboard blocks do not use ports to connect to model elements. To connect a dashboard block, use connect mode, the Simulink® Toolstrip, or the Connection table in the Block Parameters dialog box. For information, see Connect Dashboard Blocks to Simulink Model.

To connect to a parameter with a scalar value using the Connection table:

  1. Select the block.

  2. In the Property Inspector, on the Parameters tab, click Connect or Change.

  3. Select the block to whose parameter value you want to connect.

  4. In the table that appears, select the parameter.

  5. Click Apply.

To connect to a parameter whose value is specified as a variable or to change the value of a connected variable, you must first update the model diagram. To update the model diagram, press Ctrl+D.

You can also connect dashboard blocks to a Stateflow chart. For more information, see Connect Dashboard Blocks to Stateflow (Stateflow).

Programmatic Use

You can programmatically connect a control block to a parameter. Define a Simulink.HMI.ParamSourceInfo object that represents the parameter. Then, set the value of the Binding parameter to the object. To set the value of the Binding parameter, use the set_param function.

For example, suppose the model named vdp contains a Push Button block named myButton and an Integrator block named x1. To connect the Push Button block to the Initial Condition parameter of the Integrator block, use this code.

blockPath1 = "vdp/myButton";
blockPath2 = "vdp/x1";

myObj = Simulink.HMI.ParamSourceInfo;
myObj.BlockPath = Simulink.BlockPath(blockPath2);
myObj.ParamName = 'InitialCondition';

set_param(blockPath1,Binding=myObj)
Parameter: Binding
Values: Simulink.HMI.ParamSourceInfo object

Example: set_param(gcb,Binding=myObj)

Main

You can use an enumerated data type that pairs a numeric value with each enumeration to configure the state values and labels for the block. To specify the states for the block using an enumerated data type, first select the Enumerated Data Type option. Then, specify the name of the enumerated data type in the text box. The definition for the specified enumerated data type must be saved on the MATLAB path or in the base workspace.

Example: myEnumType

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

Set the value of the parameter UseEnumeratedDataType to "on" and the value of the parameter EnumeratedDataType to the name of the enumerated data type.

Parameter: UseEnumeratedDataType
Values: 'off' (default) | "on" | "off"

Example: set_param(gcb,UseEnumeratedDataType="on")

Parameter: EnumeratedDataType
Values: name of enumerated data type
Data Types: string | char

Example: set_param(gcb,EnumeratedDataType="myEnumType")

Position of the block label. When the block is connected to an element in the model, the label is the name of the connected element.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

Parameter: LabelPosition
Values: 'Hide' (default) | "Hide" | "Bottom" | "Top"

Example: set_param(gcb,LabelPosition="Top")

Set of states from which to select a value for the connected parameter. Each State consists of a State Value and a State Label.

  • State Value — Value assigned to the connected variable or parameter when you select the state with the corresponding Label.

  • State Label — Label for each state. You can use the Label to display the value the connected parameter takes when the switch is positioned at the bottom, or you can enter a descriptive text label.

Click the + button to add additional States.

The default configuration for the block includes these States.

State ValueState Label
0Label1
1Label2
2Label3

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

Specify the value of the States parameter as a 3-by-1 array of structures, where each structure represents a state. Each structure contains these fields:

  • Value — Value the block assigns to the connected parameter

  • Label — Label on the switch, specified as a character vector

For example, suppose you want the currently selected switch block to have the following states. The first state has the label Reverse,and assigns a value of -5 to the connected parameter. The second state has the label Forward and assigns a value of 5 to the connected parameter. To implement these states, use this code.

state1.Value = -5;
state1.Label = 'Reverse';
state2.Value = 5;
state2.Label = 'Forward';
myStates = [state1 state2];

set_param(gcb,States=myStates)
Parameter: States
Values: 3-by-1 struct array, where each struct has the fields Value and Label

Example: set_param(gcb,States=myStates)

Format

Block background opacity, specified as a scalar value between 0 and 1. When the specified value is 1, the background is fully opaque.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

Parameter: Opacity
Values: '1' (default) | scalar with values between 0 and 1 formatted as string or character vector

Example: set_param(gcb,Opacity="0.5")

Block foreground color, including the text. You can select a color from a palette of standard colors or specify a custom color.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

Parameter: ForegroundColor
Values: [r g b] vector with values between 0 and 1 formatted as a string or character vector

Example: set_param(gcb,ForegroundColor="[1 0 1]")

Block background color. You can select a color from a palette of standard colors or specify a custom color.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

Parameter: BackgroundColor
Values: [r g b] vector with values between 0 and 1 formatted as a string or character vector

Example: set_param(gcb,BackgroundColor="[1 0 1]")

Block Characteristics

Data Types

double | half | integer | single

Direct Feedthrough

no

Multidimensional Signals

no

Variable-Size Signals

no

Zero-Crossing Detection

no

Extended Capabilities

expand all

Version History

Introduced in R2017b

expand all