使用 MATLAB 语言定义和更新输入端口数据
您可以创建根级输入端口,并使用 MATLAB® 语言来定义输入数据,以及在不重新构建模型的情况下更新输入数据。
必需文件
该过程具有以下文件依赖关系:
slrt_ex_osc_inport— 一个阻尼振荡器,其输入数据来自输入端口In1,并将多路复用的输出发送至输出端口Out1。要打开此模型,请在 MATLAB 命令行窗口中输入:openExample('slrealtime/SlrtStimulateRootInportByUsingMATLABLanguageExample'); open_system('slrt_ex_osc_inport');
slrt_ex_inport_square.mat— 一个配置为输出方波的 Signal Generator 模块的一秒钟输出。要加载这些数据,请在 MATLAB 命令行窗口中输入:load('slrt_ex_inport_square.mat');slrt_ex_inport_sawtooth.mat— 配置为输出锯齿波的 Signal Generator 模块的一秒输出。要加载这些数据,请在 MATLAB 命令行窗口中输入:load('slrt_ex_inport_sawtooth.mat');
在开始此操作之前,请切换到一个工作文件夹。
将输入端口映射为方波
此过程用于映射输入端口。
打开
slrt_ex_osc_inport。openExample('slrealtime/SlrtStimulateRootInportByUsingMATLABLanguageExample'); model = 'slrt_ex_osc_inport'; open_system(model); myFolder = fullfile(userpath,'temp'); save_system(model,[myFolder '/slrt_ex_osc_inport.slx']);
加载
slrt_ex_inport_square.mat,然后将square赋值给一个临时工作区变量。load('slrt_ex_inport_square.mat'); waveform = square;打开
slrt_ex_osc_inport/In1inport = [model '/In1']; load_system(inport);关闭输入端口数据插值。
set_param(inport,'Interpolate','off');
设置外部输入变量。
set_param(model,'ExternalInput','waveform');
加载外部输入数据。
set_param(model,'LoadExternalInput','on');
现在,您可以构建、下载并运行该实时应用程序了。
slbuild(model); tg = slrealtime('TargetPC1'); load(tg,model); start(tg);在仿真数据检查器中查看信号。
Simulink.sdi.view;
更新输入端口以使用锯齿波
您可以更新输入端口数据,以使用其他数据文件,而无需重新构建实时应用程序。slrt_ex_osc_inport.mldatx 文件必须位于工作文件夹中。
加载
slrt_ex_inport_sawtooth.mat,然后将sawtooth赋值给您在“根输入端口映射器”中使用过的临时变量。load('slrt_ex_inport_sawtooth.mat'); waveform = sawtooth;创建一个应用程序对象。
app_object = slrealtime.Application('slrt_ex_osc_inport');更新应用程序对象。
updateRootLevelInportData(app_object);
将更新后的对象下载到目标计算机并运行它。
tg = slrealtime; load(tg, 'slrt_ex_osc_inport'); start(tg);在仿真数据检查器中查看信号。
Simulink.sdi.view;
另请参阅
Target.Stimulation | Simulink.SimulationData.Dataset