Main Content

Control and Update Stimulation of Inports to Real-Time Application

You can stream data to the inports of a real-time application on a Speedgoat® target computer by using the Target.Stimulation object and functions. The functions enables you to control inport stimulation for individual or all inports and observe stimulation status.

To load data to the inports, create a time series object by using, for example the timeseries function. Load the object into the inport. Do not pause or stop the stimulation of inports before or during the stimulation. A pause or stop generates a stimulation error.

To control or observe stimulation of inports in a real-time application:

  • Start the stimulation of a specific inport or all inports by using the start function.

  • Pause the stimulation of a specific inport or all inports by using the pause function.

  • Stop the stimulation of a specific inport or all inports by using the stop function.

  • Get the status of stimulation of inports by using the getStatus function.

  • Load data to specific inports by using the reloadData function.

Stimulate Root Inport by Using MATLAB Language

This example shows how to stimulate root inports in a model by using the Stimulation object and related functions:

  • start

  • stop

  • getStatus

  • reloadData

  • pause

Create Target Object and Connect

Create a Target object for the default target computer and connect to the target computer. In the Command Window, type:

tg = slrealtime;
connect(tg);

Open Model and Map Inport to Wave Data

Open model slrt_ex_osc_inport. Save the model to a working folder. Map the inport to use square wave data. For inport In1, interpolated is off.

model = ('slrt_ex_osc_inport');
open_system(model);
load('slrt_ex_inport_square.mat');
waveform = square;
set_param(model,'ExternalInput','waveform');
set_param(model,'LoadExternalInput','on');
set_param(model,'StopTime','Inf');
modelSTF = getSTFName(tg);
set_param(model,"SystemTargetFile",modelSTF);

Build Model and Download Real-Time Application

Build, download, and execute the real-time application.

evalc('slbuild(model)');
load(tg,model);

Stimulate Root Inport Data

Start root inport stimulation of inports 1. Open Scope block and observe results.

start(tg.Stimulation,[1]);
start(tg);

Pause root inport stimulation of inport 1.

pause(tg.Stimulation,[1]);

Stop and start the stimulation of inport 1.

stop(tg.Stimulation,[1]);
start(tg.Stimulation,[1]);

Check the status of stimulation of the inports.

getStatus(tg.Stimulation,'all');

Create a time-series object to load data to an inport.

sampleTime = 0.1;
endTime = 10;
numberOfSamples = endTime * 1/sampleTime + 1;
timeVector = (0:numberOfSamples) * sampleTime;
u = timeseries(timeVector*10,timeVector);

Object u is created for 10 seconds. Load it to the inport 1. Stimulation of an inport should be stopped before loading data.

stop(tg.Stimulation,[1]);
reloadData(tg.Stimulation,[1],u);

Stop real-time application and close model.

stop(tg);
bdclose(model);

See Also

|