使用模拟数据检查器(SDI)进行数据记录
本例展示了如何使用Simulink®Real-Time™信号数据金宝app日志和仿真数据检查器。在模型执行期间记录信号。在运行结束时,仿真数据检查器界面显示信号。这个例子展示了如何使用命令行从仿真数据检查器界面获取信号。
打开、构建和下载模型
打开模型slrt_ex_soc_dist
.该模型通过在传染病爆发时保持社会距离来校准控制工作。
打开模型。
模型=“slrt_ex_soc_dist”;mdlOpen = 0;系统= find_system(“类型”,“block_diagram”);如果all(~strcmp(model, systems)) mdlOpen = 1;open_system (fullfile (matlabroot,“工具箱”,“slrealtime”,“例子”,“slrt_ex_soc_dist.slx”));结束
建立模型并下载到目标计算机:
为非详细构建进行配置。
构建和下载应用程序。
set_param(模型,“RTWVerbose”,“关闭”);evalc (“slbuild(模型));
关闭打开的模型。
如果(mdlOpen) bdclose(模型);结束
运行模型评估疫情期间不保持社交距离的影响
使用Simulink金宝app实时对象变量,tg
,加载并启动模型,修改模型参数。
Tg = slrealtime;负载(tg、模型);setparam (tg,'',“soc_dist_level”1);setparam (tg,'',“thresh_int_level”1);开始(tg);而~ strcmp (tg.status,“停止”)暂停(5);结束停止(tg);
更新参数并重新评估疫情期间保持社交距离的影响
使用Simulink金宝app实时对象变量,tg
,加载并启动模型,修改模型参数
Tg = slrealtime;负载(tg、模型);setparam (tg,'',“soc_dist_level”, 0.2);setparam (tg,'',“thresh_int_level”, 0.2);开始(tg);而~ strcmp (tg.status,“停止”)暂停(5);结束停止(tg);
在仿真数据检查器中显示信号
要查看绘制的信号数据,请打开模拟数据检查器。
金宝appSimulink.sdi.view
从仿真数据检查器中检索和绘制信号数据
您还可以使用这些命令从SDI检索信号数据并绘制数据。
得到所有的奔跑
获取运行信息
接收信号。
获取信号对象。
只取感染组值。
把信号画出来。
结果表明,保持社交距离可以减少住院人数
runIds = 金宝appSimulink.sdi.getAllRunIDs();为i = 1:length(runIds) run = 金宝appSimulink.sdi.getRun(runIds(i));getsignalidsbyname (“住院”);如果~isempty(signalID) signalObj = 金宝appSimulink.sdi.getSignal(signalID);signalArray(:,i) = signalObj.Values(:,1).Data;timeValues = 100*(signalObj.Values(:,1).Time);情节(时间价值,signalArray);drawnow;结束结束网格在;包含(“时间以天计算”);ylabel (“住院的人”);