监控 CPU 过载率
SLRT Overload Options 模块输出当前 CPU 超载计数,该计数对应于指定的采样率。
此示例展示了如何设计一个模型,该模型使用 SLRT Overload Options 模块来监测 CPU 过载发生的频率。CPU 过载率信息在调整模型性能时可能有所帮助,尤其当模型可接受较低的 CPU 过载率时。
创建目标对象并连接
为默认目标计算机创建目标对象,并连接到目标计算机。在命令行窗口中,输入:
tg = slrealtime; connect(tg);
打开、构建并运行模型
在 MATLAB 命令行窗口中,输入:
model = 'slrt_ex_overload'; open_system(model); modelSTF = getSTFName(tg); set_param(model,"SystemTargetFile",modelSTF); set_param(model, 'RTWVerbose', 'off');

将速率限制器模块输出端口输出的信号命名为 Rate Limiter,并在仿真数据检查器中记录该信号。
p = get_param('slrt_ex_overload/Rate Limiter','PortHandles'); l = get_param(p.Outport,'Line'); set_param(l,'Name','Rate Limiter'); Simulink.sdi.markSignalForStreaming('slrt_ex_overload/Rate Limiter',1,'on');
构建模型。
evalc('slbuild(model)');
下载应用程序并在目标计算机上运行它。
load(tg,model); start(tg); pause(20); stop(tg);
打开仿真数据检查器
要查看 CPU 过载发生的速率,请打开仿真数据检查器。
在 MATLAB 命令行窗口中,输入:
Simulink.sdi.view;
检查 CPU 过载率数据
在仿真数据检查器中,图显示:
底部上升阶梯信号 - 该信号指示发生的 CPU 过载次数。
顶部上升阶梯信号 - 该信号指示允许的 CPU 过载次数,即(已发生次数 + 2)。
上升斜率 - 该信号指示 CPU 过载发生的速率。当上升斜率超过阶梯信号的顶部上升阶时,CPU 过载率将超过允许范围。

修改 CPU 超负荷率
要修改模型中 CPU 过载的发生率,请修改 Constant2 参数的值。
修改允许的 CPU 超负荷率
要修改模型中可接受的 CPU 过载率,请修改 RisingSlewLimit 参数值。
构建并运行具有变更超额费率的模型
在 MATLAB 命令行窗口中,输入:
load(tg,model);
修改模型中可接受的 CPU 过载率。
tg.setparam('slrt_ex_overload/Rate Limiter','RisingSlewLimit',4);
修改模型中 CPU 过载发生的速率。
tg.setparam('slrt_ex_overload/Constant2','Value',4);
在目标计算机上运行修改后的应用程序。
start(tg); pause(20); stop(tg);
在仿真数据检查器中,比较不同仿真运行中的信号数据,并观察 CPU 过载率的变化。

bdclose(model);