Main Content

Scope

Display signals generated during simulation

  • Scope block

Libraries:
Simulink / Commonly Used Blocks
Simulink / Sinks
HDL Coder / Commonly Used Blocks
HDL Coder / Sinks

Description

The Simulink® Scope block and DSP System Toolbox™ Time Scope block display time domain signals.

The two blocks have identical functionality, but different default settings. The Time Scope is optimized for discrete time processing. The Scope is optimized for general time-domain simulation. For a side-by-side comparison, see Simulink Scope Versus DSP System Toolbox Time Scope.

Oscilloscope features:

  • Triggers — Set triggers to sync repeating signals and pause the display when events occur.

  • Cursor Measurements — Measure signal values using vertical and horizontal cursors.

  • Signal Statistics — Display the maximum, minimum, peak-to-peak difference, mean, median, and RMS values of a selected signal.

  • Peak Finder — Find maxima, showing the x-axis values at which they occur.

  • Bilevel Measurements — Measure transitions, overshoots, undershoots, and cycles.

You must have a Simscape™ or DSP System Toolbox license to use the Peak Finder, Bilevel Measurements, and Signal Statistics.

Scope display features:

  • Simulation control — Debug models from a Scope window using Run, Step Forward, and Step Backward toolbar buttons.

  • Multiple signals — Plot multiple signals on the same y-axis (display) using multiple input ports.

  • Multiple y-axes (displays) — Display multiple y-axes. All the y-axes have a common time range on the x-axis.

  • Modify parameters — Modify scope parameter values before and during a simulation.

  • Axis autoscaling — Autoscale axes during or at the end of a simulation. Margins are drawn at the top and bottom of the axes.

  • Display data after simulation — Scope data is saved during a simulation. If a scope is closed at the start of a simulation, when you open the scope after a simulation, the scope displays simulation results for attached input signals.

    Note

    If you have a high sample rate or long simulation time, you may run into issues with memory or system performance because the scope saves data internally. To limit the amount of data saved for scope visualization, use the Limit data points to last, Limit frames to last property.

For information on controlling a scope programmatically, see Control Scope Blocks Programmatically.

Examples

Limitations

  • Do not use scope blocks in a Library. If you place a scope block inside a library block with a locked link or in a locked library, Simulink displays an error when trying to open the scope window. To display internal data from a library block, add an output port to the library block, and then connect the port to a Scope block in your model.

  • If you step through a model, the scope only updates when the scope block runs. This means that the time shown in the status bar may not match the model time.

  • When connected to a constant signal, a scope block may plot a single point.

  • The scope shows gaps in the display when the signal value is NaN.

  • When you visualize multiple frame-based signals in the scope, some samples of signals with a frame size of 1 might not be displayed. To visualize these signals, move the signals with frame size of 1 to a separate scope.

  • Scope displays have limitations in Rapid Accelerator mode. See Behavior of Scopes and Viewers with Rapid Accelerator Mode

  • When the Scope is in a ForEach subsystem, the scope only displays the last index.

Ports

Input

expand all

Connect the signals you want to visualize. You can have up to 96 input ports. Input signals can have these characteristics:

  • Type — Continuous (sample-based) or discrete (sample-based and frame-based).

  • Data type — Any data type that Simulink supports. See Data Types Supported by Simulink.

    This block accepts fixed-point input, but converts it to double for display.

  • Dimension — Scalar, one dimensional (vector), two dimensional (matrix), or multidimensional (array). Display multiple channels within one signal depending on the dimension. See Signal Dimensions and Determine Signal Dimensions.

Input Limitations

  • When the input is a constant signal, the scope plots a single point.

  • The scope shows gaps in the display when the signal value is NaN.

  • When you visualize multiple frame-based signals in the scope, some samples of signals with a frame size of 1 might not be displayed. To visualize these signals, move the signals with frame size of 1 to a separate scope.

Bus Support

You can connect nonvirtual bus and arrays of bus signals to a scope. To display the bus signals, use normal or accelerator simulation mode. The scope displays each bus element signal in the order the elements appear in the bus, from the top to the bottom. Nested bus elements are flattened.

To log nonvirtual bus signals with a scope, set the Save format parameter to Dataset. You can use any Save format to log virtual bus signals.

Data Types: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus
Complex Number Support: Yes

Properties

expand all

Configuration Properties

The Configuration Properties dialog box controls various properties about the scope displays. From the scope menu, select View > Configuration Properties.

Main

Select this check box to open the scope window when simulation starts.

Programmatic Use

See OpenAtSimulationStart.

Select this check box to display the block path in addition to the block name.

Specify number of input ports on a Scope block, specified as an integer. The maximum number of input ports is 96.

Programmatic Use

See NumInputPorts.

Specify number and arrangement of displays. The maximum layout is 16 rows by 16 columns.

To expand the layout grid beyond 4 by 4, click within the dialog box and drag. Maximum of 16 rows by 16 columns.

Animated GIF of changing the layout from one display to three displays

If the number of displays is equal to the number of ports, signals from each port appear on separate displays. If the number of displays is less than the number of ports, signals from additional ports appear on the last display. For layouts with multiple columns and rows, ports are mapped down then across.

Programmatic Use

See LayoutDimensions.

Specify the time interval between updates of the scope display. This property does not apply to floating scopes and scope viewers. For a more detailed explanation of sample time with the scope, see Sample Time with Scope Blocks

Programmatic Use

See SampleTime.

  • Elements as channels (sample based) - Process each element as a unique sample.

  • Columns as channels (frame based) - Process signal values in a channel as a group of values from multiple time intervals. Frame-based processing is available only with discrete input signals.

Programmatic Use

See FrameBasedProcessing.

  • Auto - If Title and Y-label properties are not specified, maximize all plots.

  • On - Maximize all plots. Values in Title and Y-label are hidden.

  • Off - Do not maximize plots.

Programmatic Use

See MaximizeAxes.

Time
  • Auto — Difference between the simulation start and stop times.

    The block calculates the beginning and end times of the time range using the Time display offset and Time span properties. For example, if you set the Time display offset to 10 and the Time span to 20, the scope sets the time range from 10 to 30.

  • User defined — Enter any value less than the total simulation time.

  • One frame period — Use the frame period of the input signal to the Time Scope block. This option is only available when the Input processing parameter is set to Columns as channels (frame based).

Programmatic Use

See TimeSpan.

Specify how to display data beyond the visible x-axis range.

You can see the effects of this option only when plotting is slow with large models or small step sizes.

  • Wrap — Draw a full screen of data from left to right, clear the screen, and then restart drawing the data from the left.

  • Scroll — Move data to the left as new data is drawn on the right. This mode is graphically intensive and can affect run-time performance.

Programmatic Use

See TimeSpanOverrunAction.

  • Metric — Display time units based on the length of Time span.

  • Seconds — Display time in seconds.

  • None — Do not display time units.

Programmatic Use

See TimeUnits.

Offset the x-axis by a specified time value, specified as a real number or vector of real numbers.

For input signals with multiple channels, you can enter a scalar or vector:

  • Scalar — Offset all channels of an input signal by the same time value.

  • Vector — Independently offset the channels.

Programmatic Use

See TimeDisplayOffset.

Specify how x-axis (time) labels display:

  • All — Display x-axis labels on all y-axes.

  • None — Do not display labels. Selecting None also clears the Show time-axis label check box.

  • Bottom displays only — Display x-axis label on the bottom y-axis.

Dependencies

To enable this property, set:

The Active display property determines which display is affected.

Programmatic Use

See TimeAxisLabels.

Select this check box to show the x-axis label for the active display

Dependencies

To enable this property, set Time-axis labels to All or Bottom Displays Only.

The Active display property determines which display is affected.

Programmatic Use

See ShowTimeAxisLabel.

Display

Selected display. Use this property to control which display is changed when changing style properties and axes-specific properties.

Specify the desired display using a positive integer that corresponds to the column-wise placement index. For layouts with multiple columns and rows, display numbers are mapped down and then across.

Programmatic Use

See ActiveDisplay.

Title for a display. The default value %<SignalLabel> uses the input signal name for the title.

Dependency

The Active display property determines which display is affected.

Programmatic Use

See Title.

Toggle signal legend. The names listed in the legend are the signal names from the model. For signals with multiple channels, a channel index is appended after the signal name. Continuous signals have straight lines before their names, and discrete signals have step-shaped lines.

From the legend, you can control which signals are visible. This control is equivalent to changing the visibility in the Style properties. In the scope legend, click a signal name to hide the signal in the scope. To show the signal, click the signal name again. To show only one signal, right-click the signal name, which hides all other signals. To show all signals, press Esc.

Note

The legend only shows the first 20 signals. Any additional signals cannot be controlled from the legend.

Dependency

The Active display property determines which display is affected.

Programmatic Use

See ShowLegend.

Select this check box to show grid lines.

Dependency

The Active display property determines which display is affected.

Programmatic Use

See ShowGrid.

  • On — Display magnitude and phase plots. If the signal is real, plots the absolute value of the signal for the magnitude. The phase is 0 degrees for positive values and 180 degrees for negative values. This feature is useful for complex-valued input signals. If the input is a real-valued signal, selecting this check box returns the absolute value of the signal for the magnitude.

  • Off — Display signal plot. If the signal is complex, plots the real and imaginary parts on the same y-axis.

Dependency

The Active display property determines which display is affected.

Programmatic Use

See PlotAsMagnitudePhase.

Specify the minimum value of the y-axis as a real number.

Tunable: Yes

Dependency

If you select Plot signals as magnitude and phase, this property only applies to the magnitude plot. The y-axis limits of the phase plot are always [-180 180].

The Active display property determines which display is affected.

Programmatic Use

See YLimits.

Specify the maximum value of the y-axis as a real number.

Tunable: Yes

Dependency

If you select Plot signals as magnitude and phase, this property only applies to the magnitude plot. The y-axis limits of the phase plot are always [-180 180].

The Active display property determines which display is affected.

Programmatic Use

See YLimits.

Specify the text to display on the y-axis. To display signal units, add (%<SignalUnits>) to the label. At the beginning of a simulation, Simulink replaces (%SignalUnits) with the units associated with the signals.

Example: For a velocity signal with units of m/s, enter Velocity (%<SignalUnits>).

Dependency

If you select Plot signals as magnitude and phase, this property does not apply. The y-axes are labeled Magnitude and Phase.

The Active display property determines which display is affected.

Programmatic Use

See YLabel.

Logging

Select this property to limit data saved by the scope internally. When you select this property and set the Input processing parameter to:

  • Elements as channels (sample based) –– The scope saves the last n data points and the name of this property is Limit data points to last. n is the scalar value you specify in this property text box.

  • Columns as channels (frame based) –– The scope saves the last n data frames and the name of this property is Limit frames to last.

When you select this property and specify a scalar value, the scope limits the data values plotted and saved to a MATLAB® variable specified in Variable name.

In some cases, selecting this property can have the effect of plotting signals for less than the entire time range of a simulation (for example if your sample time is small). If the scope plots a portion of your signals, consider increasing the number of data points to save.

When you clear this property, the scope saves all the data. You can visualize the entire data in the scope after the simulation finishes. For simulations with Stop time set to inf, consider selecting this property.

Note

If you do not select this property and you have a high sample rate or long simulation time, you can run into issues with memory or system performance.

Programmatic Use

See DataLoggingLimitDataPoints and DataLoggingMaxPoints.

Select this property to plot and log (save) scope data every Nth data point or frame, where N is the decimation factor you specify in this property text box. A value of 1 buffers all the data values.

When you select this property and specify a scalar value, the scope limits the data values plotted and saved to a MATLAB variable specified in Variable name.

When you set the Input processing parameter to:

  • Elements as channels (sample based) –– The scope plots and logs data every Nth data point. The name of this property is Decimation.

  • Columns as channels (frame based) ––- The scope plots and logs data every Nth frame. The name of this property is Decimate frames.

When you clear this property, the scope saves all the scope data.

Programmatic Use

See DataLoggingDecimateData and DataLoggingDecimation.

Select this check box to enable logging and enable the Variable name and Save format properties. This property does not apply to floating scopes and scope viewers.

For an example of saving signals to the MATLAB Workspace using a Scope block, see Save Simulation Data Using Scope Block.

Programmatic Use

See DataLogging.

Specify a variable name for saving scope data in the MATLAB workspace. This property does not apply to floating scopes and scope viewers.

Dependency

To enable this property, select Log data to workspace.

Programmatic Use

See DataLoggingVariableName.

Select variable format for saving data to the MATLAB workspace. This property does not apply to floating scopes and scope viewers.

  • Dataset — Save data as a Dataset object, by default a timeseries object.

  • Structure With Time — Save data as a structure with associated time information.

  • Structure — Save data as a structure.

  • Array — Save data as an array with associated time information. This format does not support variable-size data.

Dependency

To enable this property, select Log data to workspace.

Programmatic Use

See DataLoggingSaveFormat.

Axes Scaling Properties

The Axes Scaling dialog controls the axes limits of the scope. To open the Axes Scaling properties, in the scope menu, select Tools > Axes Scaling > Axes Scaling Properties.

  • Manual — Manually scale the y-axis range with the Scale Y-axis Limits toolbar button.

  • Auto — Scale the y-axis range during and after simulation. Selecting this option displays the Do not allow Y-axis limits to shrink check box. If you want the y-axis range to increase and decrease with the maximum value of a signal, set Axes scaling to Auto and clear the Do not allow Y-axis limits to shrink check box.

  • After N Updates — Scale y-axis after the number of time steps specified in the Number of updates text box (10 by default). Scaling occurs only once during each run.

Programmatic Use

See AxesScaling.

Allow y-axis range limits to increase but not decrease during a simulation.

Dependency

To use this property, set Axes scaling to Auto.

Set this property to delay auto scaling the y-axis.

Dependency

To use this property, set Axes scaling to After N Updates.

Programmatic Use

See AxesScalingNumUpdates.

  • On — Scale axes when simulation stops.

  • Off — Scale axes continually.

Dependency

To use this property, set Axes scaling to Auto.

Specify the percentage of the y-axis range used for plotting data. If you set this property to 100, the plotted data uses the entire y-axis range.

Specify where to align plotted data along the y-axis data range when Y-axis Data range is set to less than 100 percent.

  • Top — Align signals with the maximum values of the y-axis range.

  • Center — Center signals between the minimum and maximum values.

  • Bottom — Align signals with the minimum values of the y-axis range.

Scale x-axis range to fit all signal values. If Axes scaling is set to Auto, the data currently within the axes is scaled, not the entire signal in the data buffer.

Specify the percentage of the x-axis range to plot data on. For example, if you set this property to 100, plotted data uses the entire x-axis range.

Specify where to align plotted data along the x-axis data range when X-axis Data range is set to less than 100 percent.

  • Right — Align signals with the maximum values of the x-axis range.

  • Center — Center signals between the minimum and maximum values.

  • Left — Align signals with the minimum values of the x-axis range.

Style Properties

To open the Style dialog box, from the scope menu, select View > Style.

Background color for the scope.

When you select Auto, the plot type is a line graph for continuous signals, a stair-step graph for discrete signals, and a stem graph for Simulink message signals.

Select the background color for axes (displays) with the first color palette. Select the grid and label color with the second color palette.

Specify whether to use the displayed color of the scope when copying.

When you select File > Copy to Clipboard, the software changes the color of the scope to be printer friendly (white background, visible lines). If you want to copy and paste the scope with the colors displayed, select this check box.

Select active line for setting line style properties.

Show or hide a signal on the plot.

Dependency

The values of Active display and Properties for line determine which line is affected.

Select line style, width, and color.

Dependency

The values of Active display and Properties for line determine which line is affected.

Select marker shape.

Dependency

The values of Active display and Properties for line determine which line is affected.

Block Characteristics

Data Types

Boolean | busa | double | enumerated | fixed point | half | integer | single

Direct Feedthrough

no

Multidimensional Signals

yes

Variable-Size Signals

yes

Zero-Crossing Detection

no

a Virtual bus not supported. Nonvirtual bus supported only in normal and accelerator mode simulation. Data logging for nonvirtual bus supported only in the dataset format.

Extended Capabilities

Version History

Introduced in R2015b