exponenta event banner

Введение в ускорение моделей

Simulink ® Accelerator™ ускоряет выполнение модели путем создания и компиляции кода C. Этот код C заменяет интерпретирующий код, используемый Simulink в обычном режиме (т.е. когда Simulink ® не находится в режиме Accelerator). Simulink Accelerator генерирует код C из модели Simulink и вызывает функцию MATLAB ® mex для компиляции и динамического связывания сгенерированного кода с Simulink. Этот процесс генерации и компиляции кода происходит при первом ускорении модели, и любое изменение модели является достаточно значительным, чтобы потребовать повторного создания (например, добавления блока).

В следующем примере модель slAccelDemoF14 используется для иллюстрации использования Simulink Accelerator.

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

Откройте модель slAccelDemoF14 и установите время остановки 3000 секунд. Моделирование модели и времени использования TIC/TOC.

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

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

Чтобы активировать ускоритель Simulink ®, в редакторе Simulink на вкладке Simulation в разделе Simulate выберитеAccelerator. Вы также можете выпустить set_param в командной строке MATLAB ®.

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

Создание временной рабочей папки

Поскольку работа в ускоренном режиме создает некоторые файлы, сначала переместитесь во временную область.

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

Построение ускоренной модели

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

    sim(modelName)

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

evalc('sim(modelName);');

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

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

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

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

Измените значение одного из настраиваемых параметров в модели и снова смоделируйте модель. Обратите внимание на то, что ускоренная версия модели не должна генерироваться повторно, поэтому моделирование по-прежнему выполняется быстрее в ускоренном режиме, чем в обычном режиме.

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

Очистка

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

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

Связанные темы