Main Content

Signal Editor

Display, create, edit, and switch interchangeable scenarios

  • signal editor block

Libraries:
Simulink / Sources

Description

The Signal Editor block displays, creates, and edits interchangeable scenarios, which contain signals. Signals can be:

  • MATLAB® timeseries objects. timeseries objects cannot have empty Data properties.

  • timetable objects. timetable objects cannot represent multiple variables.

  • Structure of MATLAB timeseries or timetable objects.

  • Two-dimensional matrices.

The block creates one port for each signal.

To create and edit scenarios and the signals contained in the scenarios, click Open Signal Editor (). You can also use the Signal Editor block to switch scenarios in and out of models.

The Signal Editor block supports MAT files that contain signals as one or more scalar Simulink.SimulationData.Dataset objects.

Create and Edit Scenarios and Signals

To create and edit scenarios and the signals contained in them, start the Signal Editor tool by clicking . The Signal Editor tool enables you to easily manipulate signals in these ways:

  • Create and edit multiple signals in multiple data sets. By default, Signal Editor creates timeseries format data.

  • Use signal notations to create more complicated signals using MATLAB® expressions. You can use the Author and Insert dialog box or manually enter simple MATLAB expressions in the tabular area.

  • Use existing scenarios to get existing data sets for which you can edit and create signals.

  • Create and edit multidimensional signals.

For more information on the Signal Editor tool, see Create and Edit Signal Data.

Programmatic Interactions

To programmatically get the total number of scenarios and signals in the Signal Editor block, use the get_param NumberOfScenarios and NumberOfSignals properties. These properties contain the values as character vectors. To convert these values to doubles, use the str2double function.

To programmatically enable the Signal Editor block to label output signal lines, set the set_param PreserveSignalName to 'on' (default). For example:

set_param(gcb,'PreserveSignalName','on')

For more information on programmatic interactions, see Replace Programmatic Use of signalbuilder.

Import and Export

The Signal Editor supports custom file types, such as Microsoft® Excel®, by letting you:

Migrating from Signal Builder Blocks

You can port Signal Builder block configurations to the Signal Editor block using the signalBuilderToSignalEditor function. For more information, see Replace Signal Builder Block with Signal Editor Block and Migrate from Signal Builder Block to Signal Editor Block.

Fast Restart

The Signal Editor block supports fast restart. With fast restart enabled, you can still:

  • Change the active scenario.

  • Change the active signal.

    While you can change the active signal, you cannot edit the signal properties in the block.

  • Start the Signal Editor user interface and edit data.

Examples

Limitations

The Signal Editor block does not support:

  • Function-calls

  • Ground signals

The Signal Editor block supports dynamic strings. It does not support strings with maximum length. In addition, strings in the Signal Editor block cannot output:

  • Non-scalar MATLAB strings.

  • String data that contains missing values.

  • String data that contains non-ASCII characters.

Ports

Output Arguments

expand all

One or more signals, returned as a scalar, vector, matrix, or array. The block creates one port per signal.

The port label depends on the associated variable in the data set MAT file.

Data Types: single | double | half | int8 | int16 | int32 | uint8 | uint16 | uint32 | string | Boolean | fixed point | enumerated | bus

Parameters

expand all

To start the Signal Editor user interface, click Open Signal Editor . To see the signal data changes from the Signal Editor user interface, click the Save button in the Signal Editor user interface toolstrip.

Programmatic Use

To start the Signal Editor user interface, use the signalEditor function. For more information. see Signal Editor.

Data set file, specified as character vector, containing one or more scalar Simulink.SimulationData.Dataset objects. Do not use a file name from one locale in a different locale. When using the block on multiple platforms, consider specifying just the MAT file name and having the MAT file be on the MATLAB path.

Dependencies

  • If untitled.mat does not exist in the current folder, these parameters are disabled:

    • Active scenario

    • Signals

    • Output a bus signal

    • Unit

    • Sample time

    • Interpolate data

    • Enable zero-crossing detection

    • Form output after final data value by

  • To create a MAT file, click . This button starts the Signal Editor user interface, which lets you create and edit scenario MAT files.

Programmatic Use

Block Parameter: Filename
Type: character vector
Values: character vector
Default: 'untitled.mat'

Active scenario, specified as a character vector. The specified MAT file must exist. You can switch the active scenario as necessary.

If you create this block by using the signalBuilderToSignalEditor function or the Check model for Signal Builder blocks Upgrade Advisor check to convert a Signal Builder block to a Signal Editor block, the active scenario name is the dataset variable name in the MAT-file. However, if you pause on this parameter, the original Signal Builder group name is displayed.

Dependencies

To enable this parameter, ensure that the specified MAT file exists.

Programmatic Use

Block Parameter: ActiveScenario
Type: character vector | numeric
Values: character vector | index value
Default: 'Scenario'

Signal to configure, specified as a signal name. This signal is considered the active signal. The MAT file must exist before you can configure signals.

To enable this parameter, ensure that the specified MAT file exists.

Tip

Do not use the set_param function to set the active signal property name-value argument ('ActiveSignal') in combination with another Name-Value pair argument for the Signal Editor block.

Dependencies

This parameter has no effect when the Apply signal properties to all signals parameter is selected.

Programmatic Use

Block Parameter: ActiveSignal
Type: character vector | numeric
Values: character vector | index vector
Default: 'Signal 1'

Option to apply the specified signal properties:

On

To apply the specified signal properties to the active signal in all scenarios, select this parameter.

Off

To apply signal properties only in the current active scenario, clear this parameter.

To enable this parameter, ensure that the specified MAT-file exists.

Dependencies

If the Apply signal properties to all signals parameter is also selected, the block applies the signal properties to all signals in all scenarios.

Programmatic Use

Block Parameter: ApplySigPropsToAllScenarios
Type: character vector
Values: 'off' | 'on'
Default: 'on'

Option to apply the specified signal properties:

On

To apply the specified signal properties to all the signals in the active scenario, select this parameter. There is no concept of an active signal.

Off

To not apply signal property to all signals, clear this parameter.

To enable this parameter, ensure that the specified MAT file exists.

Dependencies

If the Apply signal properties to all scenarios parameter is also selected, the block applies the signal properties to all signals in all scenarios.

Programmatic Use

Block Parameter: ApplySigPropsToAllSignals
Type: character vector
Values: 'off' | 'on'
Default: 'off'

Configure signal as a bus:

On

Configure signal as a bus.

Off

Do not configure signal as a bus.

The specified MAT file must exist.

Tip

Select this check box only if the active signal is a MATLAB structure whose fields are the same as an existing bus object, or create a new matching bus object. If you select this check box for an active signal that is not a MATLAB structure, simulation returns an error.

Dependencies

  • Selecting Output a bus signal enables the Select bus object parameter.

  • To enable this parameter, ensure that the specified MAT file exists.

Programmatic Use

Block Parameter: IsBus
Type: character vector
Values: 'off' | 'on'
Default: 'off'

Select or enter the bus object name. To edit the bus object or create a bus object using the Data Type Assistant, click >>. The active signal must be a MATLAB structure whose fields are the same as this bus object. The specified MAT file must exist.

Dependencies

To enable this parameter, ensure that the specified MAT file exists.

Programmatic Use

Block Parameter: OutputBusObjectStr
Type: character vector
Values: bus object name
Default: 'Bus: BusObject'

Select the bus object name. If you do not have a bus object, create one by clicking Edit, which starts the Type Editor. For more information, see Create Simulink Bus Objects.

Physical unit of the signal, specified as an allowed unit. To specify a unit, begin typing in the text box. As you type, the parameter displays potential matching units. For more information, see Unit Specification in Simulink Models. For a list of supported units, see Allowed Unit Systems.

To constrain the unit system, click the link to the right of the parameter:

  • If a Unit System Configuration block exists in the component, its dialog box opens. Use that dialog box to specify allowed and disallowed unit systems for the component.

  • If a Unit System Configuration block does not exist in the component, the model Configuration Parameters dialog box displays. Use that dialog box to specify allowed and disallowed unit systems for the model.

The specified MAT file must exist.

Dependencies

To enable this parameter, ensure that the specified MAT file exists.

Programmatic Use

Block Parameter: Unit
Type: character vector
Values: 'inherit' | supported physical unit
Default: 'inherit'

Time interval between samples, specified in seconds. The specified MAT file must exist.

Dependencies

To enable this parameter, ensure that the specified MAT file exists.

Programmatic Use

Block Parameter: SampleTime
Type: character vector
Values: -1 | sample time in seconds
Default: '0'

Linearly interpolate data at time hits for which no corresponding workspace data exist. The specified MAT file must exist.

The Signal Editor block linearly interpolates:

On

Linearly interpolate at time hits for which no corresponding workspace data exist, select this option.

Off

The current output equals the output at the most recent time for which data exists.

The Signal Editor block interpolates by using the two corresponding workspace samples:

  • For double data, linearly interpolates the value by using the two corresponding samples

  • For Boolean data, uses false for the first half of the time between two time values and true for the second half

  • For a built-in data type other than double or Boolean:

    • Upcasts the data to double

    • Performs linear interpolation (as described for double data)

    • Downcasts the interpolated value to the original data type

When you load enumerated, fixed-point, variable-size signal, or string data, clear the Interpolate data parameter.

The block uses the value of the last known data point as the value of time hits that occur after the last known data point.

To determine the block output after the last time hit for which data is available, combine the settings of these parameters:

  • Interpolate data

  • Form output after final data value by

For details, see the Form output after final data value by parameter.

Dependencies

To enable this parameter, ensure that the specified MAT file exists.

Programmatic Use

Block Parameter: Interpolate
Type: character vector
Values: 'off' | 'on'
Default: 'off'

If you select Enable zero-crossing detection, the Signal Editor block detects a zero crossing when the input array contains multiple entries for the same time value. For example, suppose that the block loads this input data:

time:     0 1 2 2 3
signal:   2 3 4 5 6

At time 2, a zero crossing occurs because of the discontinuity in the input data. For more information, see Zero-Crossing Detection.

When you load input data for a bus, the Signal Editor block detects zero crossings for all leaf bus elements.

This block supports zero-crossing detection only in simulations that use a variable-step solver. When you use a fixed-step solver for simulation, the software does not detect or locate zero crossings for this block.

The specified MAT file must exist.

Dependencies

To enable this parameter, ensure that the specified MAT file exists.

Programmatic Use

Block Parameter: ZeroCross
Type: character vector
Values: 'off' | 'on'
Default: 'off'

To determine the block output after the last time hit for which workspace data is available, combine the settings of these parameters:

  • Interpolate data

  • Form output after final data value by

This table lists the block output, based on the values of the two options.

Setting for Form Output After Final Data Value BySetting for Interpolate DataBlock Output After Final Data

Extrapolation

On

Extrapolated from final data value

Off

Error

Setting to zero

On

Zero

Off

Zero

Holding final value

On

Final value from workspace

Off

Final value from workspace

For example, the block uses the last two known data points to extrapolate data points that occur after the last known point if you:

  • Select Interpolate data.

  • Set Form output after final data value by to Extrapolation.

The specified MAT file must exist.

Dependencies

To enable this parameter, ensure that the specified MAT file exists.

Programmatic Use

Block Parameter: OutputAfterFinalValue
Type: character vector
Values: 'Setting to zero' | 'Extrapolation' | 'Holding final value'
Default: 'Setting to zero'

Block Characteristics

Data Types

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

Direct Feedthrough

no

Multidimensional Signals

yes

Variable-Size Signals

no

Zero-Crossing Detection

yes

Extended Capabilities

PLC Code Generation
Generate Structured Text code using Simulink® PLC Coder™.

Fixed-Point Conversion
Design and simulate fixed-point systems using Fixed-Point Designer™.

Version History

Introduced in R2017b

expand all