此示例演示如何应用显式分区来增强使用Simulink real time生成的实时应用程序的并发执行。万博1manbetx
万博1manbetxSimulink 万博1manbetxReal Time通过使用模型的隐式分区或显式分区来支持并发执行。对于显式分区,Simulink实时用户通过使用引用模型、Simulink子系统或Simulink支持的其他选项对根级别模型进行分区。有关并发执行的模型分区的更多信息,请参阅:
模型的隐式和显式划分(万博1manbetxSimulink)
在Simulink中实现任务并行万博1manbetx(万博1manbetxSimulink)
在Simulink中实现数据并行万博1manbetx(万博1manbetxSimulink)
使用显式分区对模型进行分区(万博1manbetxSimulink)
此示例显示了模型子系统中任务的显式分区与使用Simulink实时评测工具执行任务之间的关系。万博1manbetx
示例模型dxpcmds6t
以0.001秒的采样率运行。
要以0.01秒的调整采样率运行模型,请在运行示例之前更改采样率。在MATLAB命令窗口中,键入:
Ts=0.01;
打开模型dxpcmds6t
。模型映射到七个线程:模型1_R1
,模型1_R2
,模型1_R3
,模型1_R4
,模型2_R1
,模型2_R3
和模型2_R4
.
这些线程以的采样率运行Ts
,2*Ts
,3*Ts
,4*Ts
,Ts
,3*Ts
和4*Ts
.
mdl=“dxpcmds6t”; 打开系统(完整文件(matlabroot、,“工具箱”,“rtw”,“目标”,“xpc”,“xpcdemos”,mdl);
顶层模型中的显式分区发生在子系统中系统1
和系统2
.
开放式系统([mdl,“/System1”]);
开放式系统([mdl,“/System2”]);
要应用显式分区,请在Simulink编辑器中万博1manbetx实时选项卡,单击硬件设置,然后选择解算器>配置任务. 选择任务和映射
节点。
构建、下载并运行模型。
设置参数(mdl,“RTWVerbose”,“关”);rtwbuild (mdl);tg = slrt (“TargetPC1”)加载(tg,mdl);启动记录器(tg);启动(tg);暂停(2);停止(tg);
###启动模型dxpcmd万博1manbetxs6t的Simulink实时生成过程“dxpcmds6t”的生成代码是最新的,因为未找到结构、参数或代码替换库更改。成功完成模型dxpcmds6t的生成过程:dxpcmds6t创建的MLDATX..\dxpcmds6t.MLDATX
分析数据显示多核目标计算机上每个线程的执行时间
profData=tg.getProfilerData;profData.plot;
正在处理数据,请稍候。。。
bdclose(“全部”);