The Simulation Data Inspector can compare the data and metadata for runs and individual
signals you import from the workspace or a file or log in a simulation. You can analyze
comparison results using tolerances, and you can control aspects of the comparison through
comparison settings. This example illustrates the basic steps to perform a comparison using
the Simulation Data Inspector UI. For more information about tolerance calculations and the
comparison settings, see How the Simulation Data Inspector Compares Data. For information about programmatic comparisons, see
Simulink.sdi.compareRuns
, Simulink.sdi.compareSignals
and Inspect and Compare Data Programmatically.
The runs and signals used in this example are relatively small and simple. When you compare long signals or runs containing many signals, the Simulation Data Inspector displays incremental progress indicators during the comparison, and the Compare button becomes a Cancel button you can click to cancel the comparison at any point. For hierarchical data, the Results column in the comparison view summarizes the results on each hierarchical node.
This example uses the data generated in Inspect Simulation Data.
This example continues from Inspect Simulation Data. You can also use this script to generate the data required for the example.
load_system('slexAircraftExample') % Configure signals to log Simulink.sdi.markSignalForStreaming('slexAircraftExample/Pilot', 1, 'on') Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model', 3, 'on') Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model', 4, 'on') % Change Pilot signal to sine set_param('slexAircraftExample/Pilot', 'WaveForm', 'sine') % Simulate model sim('slexAircraftExample') % Change Pilot signal to square set_param('slexAircraftExample/Pilot', 'WaveForm', 'square') % Simulate Model sim('slexAircraftExample')
You can compare signals to analyze the relationship between the inputs and outputs of a
model. For example, compare the Stick
input signal to the output signal,
alpha, rad
. Then specify tolerance values to analyze the result.
To compare the alpha, rad
signal to the Stick
signal:
Navigate to the Compare pane.
To view a list of signals available for comparison, expand the Baseline drop-down and select Signals.
Select Stick (Run 1: slexAircraftExample)
.
Select alpha, rad (Run 1: slexAircraftExample)
from the
Compare to drop-down.
Click Compare.
Alternatively, you can select the Baseline and Compare to signals through the context menu by right-clicking the signal in the Inspect pane.
The signals are not identical, so they do not match within the absolute, relative, and time tolerances, all set to 0 by default.
Looking at the top plot in the comparison view, you can see the alpha,
rad
signal lags the Stick
signal. For signal comparisons,
the Simulation Data Inspector uses tolerance values specified for the
Baseline signal. Add a time tolerance to the
Stick
signal to account for the lag.
Select the Stick
signal and enter 0.5
in the
Time Tolerance field of the Properties pane.
When you specify a tolerance for a Baseline signal, its
Override Global Tolerance field automatically changes to
yes
. When you click away from the Time Tolerance
field, the comparison runs again, using the signal-level tolerance you specified. If you
want to use global tolerance values for the signal, click the Override Global
Tolerance field and select no
from the drop-down.
The Simulation Data Inspector draws the tolerance band around the plotted Baseline signal and around the signed difference signal displayed in the bottom subplot. The bar along the top of the difference plot shows regions within tolerance and out of tolerance for the comparison in green and red.
The time tolerance covers the phase difference between the two signals, but the comparison still includes regions out of tolerance due to the amplitude difference. You can add a magnitude tolerance as either an Absolute Tolerance or Relative Tolerance.
To add an absolute tolerance to the Stick
signal, enter
0.05
into the Absolute Tolerance field in the
properties pane. With the combination of the absolute and time tolerances, the signal
comparison passes.
Note
The Simulation Data Inspector draws the tolerance region with the most lenient interpretation of the specified tolerances for each point. For more information on how the Simulation Data Inspector calculates the tolerance band, see Tolerance Specification.
You can also use the Simulation Data Inspector to compare all the signals in a run to all the signals in another run. Run comparisons can provide useful information about the effects of changing model parameters. For example, change the frequency cutoff of the filter for the control stick input signal. Then, evaluate the effect on the logged signals using the Simulation Data Inspector.
Click the Model Explorer button to access the Model Workspace
variables.
Change the value of Ts
in the Model
Workspace from 0.1
to 1
and close
the Model Explorer.
Simulate the model with the new filter.
In the Compare pane in the Simulation Data Inspector, expand the Baseline drop-down, and select Runs.
From the list of runs, select Run 2:
slexAircraftExample
.
Expand the Compare to drop-down and select Run 3:
slexAircraftExample
.
Click Compare.
The Compare pane lists all signals from the compared runs and summarizes the results of the comparison in the Results column. In this example, all three signals aligned, and none matched within the specified tolerance values, all of which are set to zero.
Note
The Simulation Data Inspector only compares signals from the
Baseline run that align with a signal from the Compare
To run. If a signal from the Baseline run does not
align with a signal from the Compare To run, the signal is listed
in the Compare pane with a warning. . For more information on signal alignment, see Signal Alignment.
To plot comparison data, select the signal you want to view in the
Compare pane. Here, the top plot shows the q,
rad/sec
signals from the Baseline and Compare
To runs. The bottom plot shows the difference between the signals and a
graphical representation of the tolerance.
To qualify signals in the run comparison, you can add global tolerances to the
comparison. Change the Global Time Tolerance to
0.75
and the Global Abs Tolerance to
0.075
, and click the Compare button to run the
comparison. The Simulation Data Inspector draws the tolerance band around the
Baseline signal and on the signed difference plot on the lower half
of the graphical viewing area. With the new tolerance values, the Stick
and q, rad/sec
signals pass the comparison.
View the alpha, rad
signal to analyze the comparison's out of
tolerance regions. Click the arrow buttons in the tool strip to navigate through the out of tolerance regions.
Two cursors on the plot show the beginning and end of the first out of tolerance region.
You can use your keyboard arrows to explore the signal and tolerance values throughout
each out of tolerance region. To view the next out of tolerance region, click the right
arrow button in the tool strip.
To resolve the out of tolerance regions, you can choose to modify the global tolerance
values or to add a signal specific tolerance to the alpha, rad
signal
using the signal properties.