Введение в ускоряющиеся модели

Simulink® Accelerator™ ускоряет выполнение вашей модели путем создания и компиляции кода С, который занимает место интерпретирующего кода, который использует Simulink, когда в Режиме normal mode (то есть, когда Simulink® не находится в Режиме Accelerator). Акселератор Simulink генерирует код С из вашей модели Simulink и вызывает MEX-функцию MATLAB®, чтобы скомпилировать и динамически соединить сгенерированный код с Simulink. Эта генерация кода и процесс компиляции происходят в первый раз, когда вы ускоряете модель и любое время, изменения модели являются достаточно значительными, чтобы потребовать регенерации (например, сложение блока).

Следующий пример, с slAccelDemoF14 моделью, иллюстрирует использование Акселератора Simulink.

Измерение неускоренного времени

Откройте slAccelDemoF14 модель и установите время остановки на 3 000 секунд. Симулируйте модель и измерьте, сколько времени, она берет использованию TIC/TOC.

modelName = 'slAccelDemoF14';
open_system(modelName)
set_param(modelName,'stoptime','3000')
tic
sim(modelName);
toc
Elapsed time is 6.083735 seconds.

Включение акселератора

Чтобы активировать Акселератор Simulink®, в Редакторе Simulink, на вкладке Simulation, под Симулируют, выбирают Accelerator. Можно также выпустить set_param команда в командной строке MATLAB®.

set_param(modelName,'SimulationMode','Accelerator')

Создание временной работающей директории

Начиная с выполнения в ускоренном режиме создает некоторые файлы, первый шаг к временной области.

originalDir = pwd;
tempDir = tempname;
mkdir(tempDir)
cd(tempDir)

Создавание ускоренной модели

Создайте ускоренную модель и симулируйте ее. При выполнении в Режиме Accelerator можно запустить, модель путем выбора работает на вкладке Simulation или путем выполнения команды:

    sim(modelName)

в подсказке MATLAB. В любом случае прогресс процесса генерации кода будет отображен в окне команды MATLAB. Чтобы подавить это отображение переносят sim команду в evalc.

evalc('sim(modelName);');

Симуляция ускоренной модели

Симулируйте модель снова. Заметьте, что симуляция модели запускается намного быстрее на последующих запусках.

tic
sim(modelName);
toc
Elapsed time is 1.471210 seconds.

Изменение настраиваемого параметра и симуляция ускоренной модели

Измените значение одного из настраиваемых параметров в модели и симулируйте модель снова. Заметьте, что ускоренная версия модели не должна быть регенерирована и таким образом, симуляция все еще запускается более быстро в режиме Accelerated, чем в Режиме normal mode.

modelWorkspace = get_param(modelName,'ModelWorkspace');
evalin(modelWorkspace,'Mw=Mw*2;')
tic
sim(modelName);
toc
Elapsed time is 1.334757 seconds.

Чистка

Закройте модель и удалите сгенерированные файлы.

bdclose(modelName)
clear([modelName,'_acc'])
cd(originalDir)
rmdir(tempDir,'s')