Параллельное выполнение на Real-Time™ Simulink ®

В этом примере показано, как применить явное разбиение для улучшения параллельного выполнения приложения реального времени, которое вы генерируете с помощью Simulink Real-Time.

Simulink Real-Time поддерживает параллельное выполнение с помощью неявного разбиения или явного разбиения моделей. В этом примере показана связь между явным разбиением задач в подсистемах модели и выполнением задач с помощью инструмента профилирования Simulink Real-Time.

Пример модели slrt_ex_mds_and_tasks запускается со скоростью дискретизации 0,001 секунды.

Чтобы запустить модель с скорректированной частотой дискретизации 0,01 секунды, измените выборку с рейтингом перед запуском примера. В Командном Окне MATLAB введите:

Ts = 0,01;

Откройте, создайте и загрузите модель

Явное разбиение в модели верхнего уровня происходит в подсистеме 1.

open_system(fullfile(matlabroot,'toolbox','slrealtime','examples','slrt_ex_mds_subsystem1'));

Явное разбиение в модели верхнего уровня происходит в подсистеме 2.

open_system(fullfile(matlabroot,'toolbox','slrealtime','examples','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,'toolbox','slrealtime','examples',mdl));

Чтобы применить явное разбиение, в редакторе Simulink, на вкладке Real-Time, щелкните Оборудованием Settings, а затем выберите Решатель > Configure Tasks. Выберите Tasks and Mapping узел.

Создайте, загрузите и запустите модель.

set_param(mdl,'RTWVerbose','off');
slbuild(mdl);
tg = slrealtime;
load(tg,mdl);
% Open TET Monitor
slrtTETMonitor;
% Start profiler on the target computer
startProfiler(tg);
start(tg);
pause(2);
stop(tg);
### Starting serial model reference simulation build
### Model reference simulation target for slrt_ex_mds_subsystem1 is up to date.
### Model reference simulation target for slrt_ex_mds_subsystem2 is up to date.
### Starting serial model reference code generation build
### Successful completion of build procedure for: slrt_ex_mds_subsystem1
### Successful completion of build procedure for: slrt_ex_mds_subsystem2
### Generated code for 'slrt_ex_mds_and_tasks' is up to date because no structural, parameter or code replacement library changes were found.
### Successful completion of build procedure for: slrt_ex_mds_and_tasks
### Created MLDATX ..\slrt_ex_mds_and_tasks.mldatx

Build Summary

0 of 3 models built (3 models already up to date)
Build duration: 0h 0m 14.687s

Отображение данных профилирования

Данные профилирования показывают время выполнения каждого потока на многоядерном целевом компьютере.

profData = tg.getProfilerData;
profData.plot;
Processing data on target computer ...
Transferring data from target computer ...
Processing data on host computer ...
 

Просмотрите информацию TET модели на мониторе TET

Закройте модель

bdclose('all');