主要内容

本页采用了机器翻译。点击此处可查看英文原文。

控制和更新输入端口对实时应用程序的激励

您可以使用Target.Stimulation对象和函数,将数据流传输到 Speedgoat® 目标计算机上某个实时应用程序的输入端口。该函数可让您控制单个或所有输入端口的激励,并观察激励状态。

要将数据加载到输入端口中,例如可以使用 timeseries 函数等方法创建一个时间序列对象。将对象加载到输入端口中。在激励开始前或激励过程中,请勿暂停或停止对输入端口的激励。暂停或停止会引发激励错误。

要在实时应用程序中控制或监视输入端口的激励:

  • 使用 start 函数启动对特定输入端口或所有输入端口的激励。

  • 使用 pause 函数暂停特定输入端口或所有输入端口的激励。

  • 使用 stop 函数停止对特定输入端口或所有输入端口的激励。

  • 使用 getStatus 函数获取输入端口的激励状态。

  • 使用 reloadData 函数将数据加载到特定的输入端口。

使用 MATLAB 语言激励根输入端口

本示例演示了如何使用“激励”对象及相关函数对模型中的根输入端口进行激励:

  • start

  • stop

  • getStatus

  • reloadData

  • pause

创建目标对象并连接

为默认目标计算机创建目标对象,并连接到目标计算机。在命令行窗口中,输入:

tg = slrealtime;
connect(tg);

打开模型并映射输入端口到 Wave 数据

打开模型 slrt_ex_osc_inport。将模型保存到工作文件夹中。将该输入端口映射为使用方波数据。对于输入端口 In1,插值功能已关闭。

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);

编译模型并下载实时应用程序

构建、下载并运行该实时应用程序。

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

激励根输入端口数据

开始对第 1 号输入端口进行根输入激励。打开 Scope 模块并查看结果。

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

暂停对输入端口 1 的根输入激励。

pause(tg.Stimulation,[1]);

停止并重新启动第 1 输入端口的激励。

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

检查输入端口的激励状态。

getStatus(tg.Stimulation,'all');

创建一个时间序列对象,将数据加载到输入端口中。

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

为期 10 秒创建对象 u。将其加载到输入端口 1。在加载数据之前,应停止对输入端口的激励。

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

使用重新加载的数据,开始对第 1 号输入端口进行根输入激励。打开 Scope 模块并查看结果。

start(tg.Stimulation,[1]);

您还可以从 Parquet 格式文件中重新加载数据。停止对第 1 号输入端口的激励,并重新加载该端口的数据。

stop(tg.Stimulation,[1]);
reloadData(tg.Stimulation,[1],'slrt_ex_inport_square.parquet');

停止实时应用程序并关闭模型。

stop(tg);
bdclose(model);

另请参阅

|