后处理的实时信号流式传输至仿真数据检查器
本示例演示了如何使用 Simulink® Real-Time™ 信号数据日志和“仿真数据检查器”。在模型执行过程中会记录信号。运行结束时,仿真数据检查器接口会显示该信号。本示例演示了如何使用 MATLAB® 函数从“仿真数据检查器”接口获取信号,以便进行后处理。
创建目标对象并连接
为默认目标计算机创建目标对象,并连接到目标计算机。在命令行窗口中,输入:
tg = slrealtime; connect(tg);
打开、编译和下载模型
打开模型 slrt_suspn_3dof。该模型基于不同路面轮廓下路面与悬架之间的交互,对车辆动力学进行仿真。该模型描述了车辆在三个自由度下的动力学行为:垂直位移、横滚和俯仰。Signal Editor 模块将左右轮胎测得的路面横断面数据分别存储为不同的测试组。“路 - 悬架交互”子系统根据路况数据和车辆当前状态,计算作用于车辆四个轮胎位置的悬架力。“车身动力学”子系统利用这些力以及由此产生的俯仰力和横滚力矩,来计算车辆在三个自由度中的运动情况。
打开模型。
model = 'slrt_suspn_3dof'; open_system(model); modelSTF = getSTFName(tg); set_param(model,"SystemTargetFile",modelSTF); set_param(model,'RTWVerbose','off');

编译模型:
evalc('slbuild(model)');
关闭当前打开的模型。
bdclose(model);
运行模型以计算车辆的垂直位移
使用 Target 对象 tg,加载实时应用程序,修改应用程序参数,并启动应用程序。
load(tg,model); setparam(tg,'','Cf',125); start(tg); while ~strcmp(tg.status,'stopped') pause(5); end stop(tg);
Warning: Unable to instrument 'SigGen': Unable to find signal 'SigGen' in application. Warning: Unable to instrument 'XfrFnc': Unable to find signal 'XfrFnc' in application.
更新参数并重新计算车辆的垂直位移
使用 Target 对象 tg,加载实时应用程序,修改应用程序参数,并启动应用程序。
load(tg,model); setparam(tg,'','Cf',2375); start(tg); while ~strcmp(tg.status,'stopped') pause(5); end stop(tg);
Warning: Unable to instrument 'SigGen': Unable to find signal 'SigGen' in application. Warning: Unable to instrument 'XfrFnc': Unable to find signal 'XfrFnc' in application.
在仿真数据检查器中显示信号
要查看已绘制的信号数据,请打开“仿真数据检查器”。
Simulink.sdi.view
从仿真数据检查器中提取并绘制信号数据
您还可以从“仿真数据检查器”中提取信号数据,并使用以下命令对数据进行绘图(后处理)。
获取所有运行
获取运行信息
获取信号
获取信号对象
绘制信号图
结果显示了在不同路面轮廓条件下,路面与悬架之间的交互对车辆动力学的影响。
runIds = Simulink.sdi.getAllRunIDs(); for i = 1:length(runIds) run = Simulink.sdi.getRun(runIds(i)); signalID = run.getSignalIDsByName('vertical_disp'); if ~isempty(signalID) signalObj = Simulink.sdi.getSignal(signalID); signalArray(:,i) = signalObj.Values(:,1).Data; timeValues = signalObj.Values(:,1).Time; plot(timeValues,signalArray); drawnow; end end grid on; title('Response of a 3-DoF Suspension Model'); xlabel('Time (s)'); ylabel('Vehicle vertical displacement (m)');

另请参阅
slrtTETMonitor | SLRT Overload Options