主要内容

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

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

另请参阅

主题