Configure a Signal for Logging

Mark a Signal for Logging

Enable logging by marking a signal, using one of the following techniques:

The Simulink® Editor menu options are generally the simplest way to mark signals for logging.

A signal for which you enable logging is a logged signal. By default, Simulink displays a logged signal indicator for each logged signal.

Enable Logging Using Simulink Toolstrip

  1. In the Simulink Editor, select one or more signals.

  2. On the Simulation tab, click Log Signals.

Enable Logging Using Signal Properties

  1. In the Simulink Editor, right-click the signal.

  2. From the context menu, select Properties.

  3. In the Signal Properties dialog box, in the Logging and accessibility tab, select Log signal data.

  4. Click OK.

Alternatively, you can select the Log Selected Signals from the context menu that appears when you right-click the selected signal.

Enable Logging Using the Model Data Editor

The Model Data Editor displays a flat list of signals in your model. You can sort, group, and filter the list. Use this technique to enable logging for:

  • Many signals at once.

  • Signals that are not close to each other in the block diagram.

  • Signals that are difficult to locate in a large model or subsystem hierarchy.

To select signals to log using the Model Data Editor:

  1. Open the Model Data Editor. On the Modeling tab, click the Model Data Editor button.

  2. Select the Signals tab in the Model Data Editor.

  3. Select Instrumentation in the drop-down.

  4. Check the boxes in the Log Data column for signals you would like to log.

For more information about the Model Data Editor, see Configure Data Properties by Using the Model Data Editor.

Programmatic Interface

To enable signal logging programmatically for selected blocks, use the output DataLogging property. Set this property using the set_param command. For example:

  1. At the MATLAB® Command Window, open a model. Type

    vdp
  2. Get the port handles of the signal that you want to log. For example, for the Mu block output port signal.

    ph = get_param('vdp/Mu','PortHandles')
  3. Enable signal logging for the desired output port signal.

    set_param(ph.Outport(1),'DataLogging','on')

    The logged signal indicator appears.

Logging Referenced Model Signals

You can log any logged signal in a referenced model. Use the Signal Logging Selector to configure signal logging for a model reference hierarchy. For details, see Models with Model Referencing: Overriding Signal Logging Settings.

Specify Signal-Level Logging Name

You can specify a signal-level logging name to the object that Simulink uses to store logging data for a signal. Specifying a signal-level logging name can be useful for signals that are unnamed or that share a duplicate name with another signal in the model hierarchy. Specifying signal-level logging names, rather than using the names that Simulink generates, can make the logged data easier to analyze.

To specify a signal-level logging name, use one of the following approaches:

If you do not specify a custom signal-level logging name, Simulink uses the signal name. If the signal does not have a name, the action Simulink uses a blank name.

Note

The signal-level logging name is distinct from the model-level signal logging name. The model-level signal logging name is the name for the object containing all the logged signal data for the whole model. The default model-level signal logging name is logsout. For details about the model-level signal logging name, see Specify a Name for Signal Logging Data.

Signal-Level Logging Name in the Editor

  1. In the Simulink Editor, right-click the signal.

  2. From the context menu, select Signal Properties.

  3. Specify the logging name:

    1. In the Signal Properties dialog box, select the Logging and accessibility tab.

    2. From the Logging name list, select Custom.

    3. Enter the logging name in the adjacent text field.

Signal-Level Logging Name in Model Explorer

  1. In the Model Explorer Model Hierarchy pane, select the node that contains the signal for which you want to specify a logging name.

  2. If the Contents pane does not display the LoggingName property, add the LoggingName property to the current view. For details about column views, see Model Explorer.

  3. Enter a logging name for one or more signals using the LoggingName column.

Signal-Specific Logging Name Specified Programmatically

Enable signal logging programmatically for selected blocks with the output port DataLogging property. Set this property using the set_param command.

  1. At the MATLAB Command Window, open a model. For example, type:

    vdp
  2. Get the port handles of the signal that you want to log. For example, for the Mu block output port signal:

    ph = get_param('vdp/Mu','PortHandles');
  3. Enable signal logging for the desired output port signal:

    set_param(ph.Outport(1),'DataLogging','on');

    The logged signal indicator appears.

  4. Issue commands that use the DataLoggingNameMode and DataLoggingName parameters. For example:

    set_param(ph.Outport(1),'DataLoggingNameMode','Custom');
    set_param(ph.Outport(1),'DataLoggingName','x2_log');

Limit Data Logged

You can limit the amount of data logged for a signal by:

  • Specifying a decimation factor

  • Limiting the number of samples saved to be only the most recent samples

You can limit data logged for a signal by using the Signal Properties dialog box, the Model Explorer, the Signal Logging Selector, or programmatically. The following sections describe the first two approaches.

Use Signal Properties to Limit Logged Data

  1. In the Simulink Editor, right-click the signal.

  2. From the context menu, select Signal Properties.

  3. In the Signal Properties dialog box, click the Logging and accessibility tab. Then select one or both of these options:

    • Limit data points to last

    • Decimation

Use Model Explorer to Limit Data Logged

  1. In the Model Explorer Model Hierarchy pane, select the node that contains the signal for which you want to limit the amount of data logged.

  2. If the Contents pane does not display the DataLoggingDecimation property or the DataLoggingLimitDataPoints property, add one or both of those properties to the current view. For details about column views, see Model Explorer.

  3. To specify a decimation factor, edit the Decimation and DecimateData properties. To limit the number of samples logged, edit the LimitDataPoints property.

Set Sample Time for a Logged Signal

To set the sample time for a logged signal, in the Signal Properties dialog box, use the Sample Time option. This option:

  • Separates design and testing, because you do not need to insert a Rate Transition block to have a consistent sample time for logged signals

  • Reduces the amount of logged data for a continuous time signal, for which setting decimation is not relevant

  • Eliminates the need to postprocess logged signal data for signals with different sample times

Usage Notes

Do not specify a sample time for:

  • Frame-based signals

  • Conditional subsystems (for example, function-call or triggered subsystems) and conditional referenced models, which require an inherited sample time

If you simulate in SIL mode, signal logging ignores the sample times you specify for logged signals.

When you mark a signal for signal logging, Simulink inserts a hidden To Workspace block. When you specify a sample time for a logged signal, Simulink inserts a hidden Rate Transition block and a hidden To Workspace block.

Specifying a sample time for signal logging does not affect the simulation result. However, it is possible that the signal logging output for a logged signal varies depending on whether you specify a sample rate. For example, the interpolation method can differ depending on whether you specify a sample time for signal logging. Suppose that a model includes a continuous signal and the sample time is inherited (-1). The logged output for that signal shows that the interpolation method is linear.

logsout.get(1).Values.DataInfo
tsdata.datametadata
  Package: tsdata

  Common Properties:
               Units: ''
       Interpolation: linear (tsdata.interpolation)

If you change the sample time to be continuous (0), the logged output for that signal shows that the interpolation method is zoh (zero-order hold).

Related Topics