Simulink.sdi.createRun

Create a run in the Simulation Data Inspector

Description

example

runID = Simulink.sdi.createRun creates an empty, unnamed run in the Simulation Data Inspector repository and returns the run ID. You can use Simulink.sdi.getRun to get a Simulink.sdi.Run object for the run, which allows you to add metadata and signals to the run.

example

runID = Simulink.sdi.createRun(runName) creates an empty run named runName.

example

runID = Simulink.sdi.createRun(var) creates a run named var containing the data in the workspace variable var.

example

runID = Simulink.sdi.createRun(runName,'vars',var,var2,...,varn) creates a run named runName containing data from one or more variables in the base workspace. The signals in the run take their names from the variable names.

example

runID = Simulink.sdi.createRun(runName,'namevalue',sourceNames,sigValues) creates a run named runName with the data in the cell array sigValues. The cell array of sourceNames specifies names to use as the source for the sigValues data.

example

runID = Simulink.sdi.createRun(runName,'file',filename) creates a run with data from the MAT, CSV, MDF, or Microsoft® Excel® file specified by filename.

[runID,runIndex] = Simulink.sdi.createRun(___) returns the run ID and run index for the run created in the Simulation Data Inspector repository.

[runID,runIndex,signalIDs] = Simulink.sdi.createRun(___) returns the run ID, run index within the Simulation Data Inspector, and the signal IDs for the signals in the run.

Examples

collapse all

You can programmatically import data into the Simulation Data Inspector by creating a run from data in the base workspace or a file. This example creates data in the workspace and then illustrates several methods of creating a Simulation Data Inspector run containing the data.

Create Data

Create data in the workspace. The Simulation Data Inspector supports time series data in many formats. This example creates data using the timeseries and Simulink.SimulationData.Dataset formats and saves the data in a MAT-file.

Create a sine signal and a cosine signal, and store the data for each signal in a timeseries object with a descriptive name.

time = 0:0.2:20;

sine_vals = sin(2*pi/5*time);
sine_ts = timeseries(sine_vals,time);
sine_ts.Name = 'Sine, T=5';

cos_vals = cos(2*pi/8*time);
cos_ts = timeseries(cos_vals,time);
cos_ts.Name = 'Cosine, T=8';

You can use the Dataset format to group related signal data together in a single object. The Dataset format is the default format for logged data and is supported for loading simulation input data. Create a Dataset object that contains the sinusoid timeseries data.

sinusoids_ds = Simulink.SimulationData.Dataset;
sinusoids_ds = addElement(sinusoids_ds,cos_ts);
sinusoids_ds = addElement(sinusoids_ds,sine_ts);

Scale each signal by a factor of 2 and create a Dataset object to contain the signal data for the results.

doubSine = 2*sine_ts;
doubCos = 2*cos_ts;

doubSinusoids_ds = Simulink.SimulationData.Dataset;
doubSinusoids_ds = addElement(doubSinusoids_ds,doubSine);
doubSinusoids_ds = addElement(doubSinusoids_ds,doubCos);

Finally, save the timeseries data to a MAT-file.

save sinusoids.mat sine_ts cos_ts

Open the Simulation Data Inspector

Open the Simulation Data Inspector so you can see the runs you create in each section.

Simulink.sdi.view

Create a Run Using a Simulink.sdi.Run Object

You can import your data into a run in the Simulation Data Inspector by creating an empty run and then adding data to the run from the workspace or a file. Depending on your task, you can use the Simulink.sdi.Run.create function or the Simulink.sdi.createRun function to create the empty run. The Simulink.sdi.Run.create function returns the Simulink.sdi.Run object for the new run, and the Simulink.sdi.createRun function returns the run ID for the new run.

This example creates an empty run using the Simulink.sdi.Run.create function, gives the run a meaningful name and description, and then adds the sine and cosine timeseries data using the add function.

sinusoidsRun = Simulink.sdi.Run.create;
sinusoidsRun.Name = 'Sinusoids';
sinusoidsRun.Description = 'Sine and cosine signals of different frequencies';

add(sinusoidsRun,'vars',sine_ts,cos_ts)

This example uses the Simulink.sdi.createRun function to create a new run in the Simulation Data Inspector called My Waves and then uses the Simulink.sdi.addToRun function to add the sine and cosine timeseries data to the run.

runID = Simulink.sdi.createRun('My Waves');
signalID = Simulink.sdi.addToRun(runID,'vars',sine_ts,cos_ts);

Create a Run from a Workspace Variable

You can create a run from a single variable in the workspace. After creating the run, you can add additional data, or you can create another run to contain your other data. The variable you use to create the run can be a timeseries object with data that corresponds to only one signal, or it can be a Dataset object that contains several signals.

When you use this syntax to create a run from a single workspace variable, the run takes the same name as the object used to create it.

runID = Simulink.sdi.createRun(sine_ts);

The Simulink.sdi.createRun function returns the run ID for the run it creates. You can use the Simulink.sdi.getRun function to access the Run object for the run.

sineRun = Simulink.sdi.getRun(runID);
sineRun.Name
ans = 
'Sine, T=5'

Create a Run from Multiple Workspace Variables

When your data exists in multiple variables in your workspace, you can use the Simulink.sdi.createRun function with the vars option to import the data from multiple variables into a single run in the Simulation Data Inspector. You can also use this syntax to create a run for a single variable that uses a name you specify.

This example creates a run called My Sinusoids that contains data for the sine and cosine timeseries objects.

runID = Simulink.sdi.createRun('My Sinusoids','vars',sine_ts,cos_ts);

Create a Run and Specify Source Names

You can use the namevalue option of the Simulink.sdi.createRun function to create a run and specify names for the signals in the run. This syntax can be particularly helpful when you import individual leaf signals from hierarchical data.

This example creates a run containing the data for both the Dataset objects. Each Dataset object contains data for more than one signal, so the imported run data has hierarchy. The name-value syntax in this example specifies a name for the hierarchical node that corresponds to each Dataset object.

runID = Simulink.sdi.createRun('Waves','namevalue',{'Sinusoids',...
    'BigSinusoids'},{sinusoids_ds,doubSinusoids_ds});

Create a Run from Data in a File

You can also use the Simulink.sdi.createRun function to import data into the Simulation Data Inspector from a file. Use the file option to import the data in the simusoids.mat file.

runID = Simulink.sdi.createRun('Wave Data','file','sinusoids.mat');

This example shows how to access signal data when you create a run in the Simulation Data Inspector.

Generate Data for Run

For this example, create timeseries data for sine and cosine signals.

% Create timeseries workspace data
time = linspace(0, 20, 101);

sine_vals = sin(2*pi/5*time);
sine_ts = timeseries(sine_vals,time);
sine_ts.Name = 'Sine, T=5';

cos_vals = cos(2*pi/8*time);
cos_ts = timeseries(cos_vals,time);
cos_ts.Name = 'Cosine, T=8';

Create a Run and Return Signal IDs

You can use the Simulink.sdi.createRun syntax with multiple return arguments to get the signal IDs more directly instead of accessing the signal IDs through a Simulink.sdi.Run object.

[runID,runIndex,sigIDs] = Simulink.sdi.createRun('Sinusoids','vars',...
    sine_ts,cos_ts);

cosID = sigIDs(2);
cosSig = Simulink.sdi.getSignal(cosID);

Modify Signal Properties and View in the Simulation Data Inspector

You can use the Simulink.sdi.Signal object to view and modify signal properties and to plot signals in the Simulation Data Inspector.

cosSig.Checked = true;
cosSig.AbsTol = 0.05;
Simulink.sdi.view
cosSig.Name

Input Arguments

collapse all

Name for the run in the Simulation Data Inspector.

Example: 'Baseline Simulation'

Variable in the base workspace containing the data you want to create a run for in the Simulation Data Inspector. The Simulation Data Inspector requires an associated time vector for your data. Simulink.sdi.createRun supports all loading and logging data formats, including timeseries and Simulink.SimulationData.Dataset.

Provide one var argument when var is the only argument and one or more var arguments when you specify 'vars' for the second argument.

Example: myData

Cell array of character vectors in which each element is the name of the source for data in the run. Provide a sigNames input when you specify 'namevalue' for the second argument.

Example: {'sig1','sig2'}

Cell array of variables containing signal data for the run. Provide a sigValues input when you specify 'namevalue' for the second argument.

Example: {var1,var2}

File name of the file containing your run data. Provide a filename input when you specify 'file' for the second argument. You can create a run from a MAT, CSV, or Microsoft Excel file. You can also create a run from an MDF-file with an mdf, mf4, mf3, data, or dat file extension.

Example: 'simulation.mat'

Output Arguments

collapse all

Run identifier for the new run.

Index of the new run in the Simulation Data Inspector repository.

Vector containing the signal IDs for the signals in the run.

Introduced in R2011b