这个示例展示了如何应用显式分区来增强使用Simulink real生成的实时应用程序的并发执行。金宝app
金宝appSimulink real通金宝app过模型的隐式划分或显式划分来支持并发执行。这个例子展示了模型子系统中任务的显式划分与使用Simulink实时分析工具执行任务之间的关系。金宝app
模型的例子slrt_ex_mds_and_tasks
以0.001秒的采样速率运行。
要运行调整了0.01秒采样率的模型,在运行示例之前更改采样额定。在MATLAB命令窗口中,输入:
t = 0.01;
顶级模型中的显式分区发生在subsystem1中。
open_system (fullfile (matlabroot,“工具箱”,“slrealtime”,“例子”,“slrt_ex_mds_subsystem1”));
顶级模型中的显式分区发生在subsystem2中。
open_system (fullfile (matlabroot,“工具箱”,“slrealtime”,“例子”,“slrt_ex_mds_subsystem2”));
打开模型slrt_ex_mds_and_tasks
.模型被映射到七个线程:Model1_R1
,Model1_R2
,Model1_R3
,Model1_R4
,Model2_R1
,Model2_R3
,Model2_R4
.
这些线程以样本速率运行Ts
,2 * Ts
,3 * Ts
,4 * Ts
,Ts
,3 * Ts
,4 * Ts
.
mdl =“slrt_ex_mds_and_tasks”;open_system (fullfile (matlabroot,“工具箱”,“slrealtime”,“例子”mdl));
要应用显式分区,在Simulink编辑器中金宝app实时选项卡上,单击硬件设置,然后选择解算器>配置任务.选择任务和映射
节点。
构建、下载并运行模型。
set_param (mdl“RTWVerbose”,“关闭”);slbuild (mdl);tg = slrealtime;负载(tg、mdl);开启TET监控slrtTETMonitor;在目标计算机上启动分析器startProfiler (tg);开始(tg);暂停(2);停止(tg);
### srrt_ex_mds_subsystem1的模型引用代码生成目标是最新的。### slrt_ex_mds_subsystem2的模型引用代码生成目标是最新的。###为'slrt_ex_mds_and_tasks'生成的代码是最新的,因为没有发现结构、参数或代码替换库更改。###创建MLDATX ..\slrt_ex_mds_and_tasks. ###创建MLDATX ..mldatx Build Summary 0 of 3 models built (3 models already up to date)构建时间:0h 0m 11.164s
分析数据显示了多核目标计算机上每个线程的执行时间。
profData = tg.getProfilerData;profData.plot;
在目标计算机上处理数据…从目标计算机传输数据…警告:无法识别的函数或变量'CloneDetectionUI.internal.CloneDetectionPerspective.register'。在主机上处理数据…
bdclose (“所有”);