无需重建模型即可对文件日志数据进行调优降采样
本示例演示了如何在实时应用程序中调整 File Log 模块的降采样参数,而无需重新构建模型。Application 对象的方法 getAllFileLogBlocks、getFileLogDecimation 和 setFileLogDecimation 用于更改应用程序 MLDATX 文件的分采样值。可以在目标计算机上再次运行该应用程序,以观察模型中连接到 File Log 模块的信号经过更新后的降采样情况。
创建目标对象并连接
为默认目标计算机创建目标对象,并连接到目标计算机。在命令行窗口中,输入:
tg = slrealtime; connect(tg);
打开、编译和下载模型
打开模型 slrt_ex_filelogtunabledecimation>。该模型使用 File Log 模块在目标计算机上记录数据。对于 File Log 模块,降采样默认设置为 1。在 MATLAB 命令行窗口中,输入:
model = 'slrt_ex_filelogtunabledecimation'; open_system(model); modelSTF = getSTFName(tg); set_param(model,"SystemTargetFile",modelSTF);

构建顶层模型并将其下载到目标计算机上。
配置为非详细输出构建。
构建并下载应用程序。
set_param(model,'RTWVerbose','off'); set_param(model,'StopTime','5'); evalc('slbuild(model)'); load(tg,model);
关闭模型
bdclose(model);
运行实时应用程序
在目标计算机上运行该实时应用程序。等待应用程序停止运行。
start(tg); pause(7);
Importing Log file 1 of 1 ...
在仿真数据检查器中查看信号
Simulink.sdi.view;

设置 File Log 模块降采样
使用 Application 对象,将各模块的 File Log 块降采样率设置为相同的值。创建 Application 对象。
appObj = slrealtime.Application(model);
使用 getAllFileLogBlocks 函数在应用程序中获取 File Log 模块。
fileLogBlocks = appObj.getAllFileLogBlocks;
使用 getFileLogDecimation 函数获取模块的文件日志降采样设置。这两个模块的设置均为 1。
oldDecimation = appObj.getFileLogDecimation(fileLogBlocks);
使用 setFileLogDecimation 函数将这两个模块的抽取率均设置为 5。
appObj.setFileLogDecimation(fileLogBlocks, 5);
确认新的抽取值已设置为 5。
newDecimation = appObj.getFileLogDecimation(fileLogBlocks);
在目标计算机上重新加载应用程序并重新运行
load(tg,model); start(tg); pause(7);
Importing Log file 1 of 1 ...
在仿真数据检查器中查看新信号
Simulink.sdi.view;

设置 File Log 模块降采样
使用 Application 对象,将各模块的 File Log 块降采样率设置为不同的值。创建 Application 对象
appObj = slrealtime.Application(model);
使用 getAllFileLogBlocks 函数在应用程序中获取 File Log 模块。
fileLogBlocks = appObj.getAllFileLogBlocks;
使用 getFileLogDecimation 函数获取模块的文件日志降采样设置。这两个模块的设置均为 1。
oldDecimation = appObj.getFileLogDecimation(fileLogBlocks);
使用 setFileLogDecimation 函数将这两个模块的抽取率均设置为 5。
appObj.setFileLogDecimation(fileLogBlocks, [1 2]);
确认新的抽取值已设置为 5。
newDecimation = appObj.getFileLogDecimation(fileLogBlocks);
重新加载实时应用程序并重新运行
load(tg,model); start(tg); pause(7);
Importing Log file 1 of 1 ...
在仿真数据检查器中查看信号
Simulink.sdi.view;
