Настройте и оптимизируйте модель с помощью блоков мастера строения

Embedded Coder® программное обеспечение предоставляет библиотеку блоков и скриптов Configuration Wizard, которая поможет настроить и оптимизировать генерацию кода из моделей.

Библиотека блоков мастера строения

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

БлокОписание
Custom MATLAB fileОбновляйте активные параметры конфигурации родительской модели с помощью пользовательского файла
ERT (optimized for fixed-point)Обновляйте активные параметры конфигурации родительской модели для генерации кода с фиксированной точкой ERT
ERT (optimized for floating-point)Обновляйте активные параметры конфигурации родительской модели для генерации кода с плавающей точкой ERT
GRT (debug for fixed/floating-point)Обновляйте активные параметры конфигурации родительской модели для генерации кода с фиксированной или плавающей точкой GRT с включенной отладкой
GRT (optimized for fixed/floating-point)Обновляйте активные параметры конфигурации родительской модели для генерации кода с фиксированной или плавающей точкой GRT

Когда вы добавляете один из предустановленных блоков Мастера строения к вашей модели и дважды кликаете его, предопределенный MATLAB® файловый скрипт конфигурирует параметры активной конфигурации модели без ручного вмешательства. Предустановленные блоки оптимально конфигурируют параметры для одного из следующих случаев:

  • Генерация кода с фиксированной точкой с целевым объектом ERT

  • Генерация кода с плавающей точкой с целевым объектом ERT

  • Генерация кода с фиксированной точкой или с плавающей точкой с включенными параметрами отладки TLC с целевой точкой GRT.

  • Генерация кода с фиксированной точкой или с плавающей точкой с целью GRT

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

Можно также настроить блоки Строения Wizard, чтобы вызвать процесс сборки после настройки модели.

Добавление блока мастера строения

Блоки Строения Wizard доступны в библиотеке блоков Embedded Coder. Чтобы использовать блок мастера строения:

  1. Откройте модель, которую вы хотите сконфигурировать.

  2. Откройте библиотеку блоков Embedded Coder путем ввода команды rtweclib.

  3. Дважды щелкните значок Мастера строения. Откроется вложенный раздел Мастера строения.

  4. Выберите блок Строения Wizard, который вы хотите использовать, и перетащите его в модель. Эта модель содержит ERT (optimized for fixed-point) Блок мастера строения.

  5. Если необходимо, чтобы блок мастера Строения активировал процесс сборки после строения, щелкните правой кнопкой мыши блок мастера Строения в модели и выберите Mask > Mask Parameters из контекстного меню. Затем выберите процесс Invoke build после параметра конфигурации. Не изменяйте Настройте модель для параметров блоков, если вы не хотите создать пользовательский блок и скрипт. В этом случае см. раздел Создание блока мастера пользовательское строение.

  6. Нажмите кнопку Применить (Apply) и закройте диалоговое окно Параметры маски (Mask Parameters).

  7. Сохраните модель.

Используйте блоки мастера строения для настройки модели

После добавления блока Строения Wizard к модели, чтобы сконфигурировать модель, дважды кликните блок. Скрипт, связанный с блоком, устанавливает параметры активной конфигурации модели, которые имеют отношение к генерации кода (включая выбор целевого объекта). Вы можете увидеть, что параметры изменились, открывая диалоговое окно Параметров конфигурации и исследуя настройки параметра.

Если вы выбрали параметр Invoke build process after блок Configuration, скрипт также инициирует генерацию кода и процесс build.

Примечание

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

Создайте пользовательский блок мастера строения

Блок мастера пользовательского строения и связанный с ним скрипт файла MATLAB, matlabroot/ toolbox/coder/simulinkcoder_core/rtwsampleconfig.m, предоставьте начальную точку для индивидуальной настройки.

Настройка блока мастера строения

Настройте пользовательский блок мастера строения и соедините его со скриптом. Если вы хотите использовать блок в более чем одном режиме, рекомендуется создать Simulink® библиотеку, содержащую блок.

Чтобы начать, сделайте копию примера скрипта для последующей индивидуальной настройки:

  1. Чтобы сохранить пользовательский скрипт, создайте папку. Эта папка не должна быть нигде в структуре папки MATLAB (то есть не должна находиться под matlabroot).

    Пример относится к этой папке следующим /my_wizards.

  2. Добавьте папку в путь MATLAB. Сохраните путь к будущим сеансам.

  3. Скопируйте пример скрипта rtwsampleconfig.m в папке matlabroot/ toolbox/rtw/rtw (открыто) к /my_wizards папка, которую вы создали. Затем переименуйте скрипт. В этом примере используется имя my_configscript.m.

  4. Откройте пример скрипта в редакторе MATLAB. Прокрутите файл до конца и введите следующую строку кода:

    disp('Custom Configuration Wizard Script completed.');

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

  5. Сохраните скрипт и закройте редактор MATLAB.

Следующая задача - создать библиотеку Simulink и добавить к ней пользовательский блок.

  1. Откройте библиотеку блоков Embedded Coder и подзаголовок Строения Wizards, как описано в разделе «Добавление блока мастера Строения».

  2. На вкладке Library выберите New > Library. На начальной странице Simulink выберите пустую библиотеку. Откроется пустое окно библиотеки.

  3. Выберите блок Custom MATLAB file из вложенного списка Мастера строения и перетащите его в пустое окно библиотеки.

  4. Чтобы отличить пользовательский блок от исходного, отредактируйте метку Custom MATLAB file под блоком.

  5. На вкладке Library выберите Save > Save as. Сохраните библиотеку в /my_wizards папка, под вашим именем библиотеки по выбору. На этом рисунке библиотека сохранена как ex_custom_button и блок помечен my_wizard MATLAB-file.

Следующая задача - связать пользовательский блок с пользовательским скриптом:

  1. Щелкните правой кнопкой мыши блок в модели и выберите Mask > Mask Parameters из контекстного меню. Для меню Configure the model for задано значение Custom. Когда Custom выбран, Configuration function поле редактирования включено, чтобы можно было ввести имя пользовательского скрипта.

  2. В Configuration function поле введите имя пользовательского скрипта. (Не вводите .m расширение имени файла, неявное.)

  3. По умолчанию параметр Invoke build process after configuration очищается. Вы можете изменить значение по умолчанию для пользовательского блока, выбрав эту опцию. Пока оставьте этот параметр очищенным.

  4. Нажмите кнопку Применить (Apply) и закройте диалоговое окно Параметры маски (Mask Parameters).

  5. Сохраните библиотеку.

  6. Закройте библиотеку блоков Embedded Coder и вложенный раздел Строения Wizards. Оставьте пользовательскую библиотеку открытой для использования в следующей задаче.

Протестируйте свой блок и скрипт в модели.

  1. Откройте vdp модель путем ввода команды:

    vdp
  2. Откройте диалоговое окно Параметры конфигурации (Configuration Parameters) и просмотрите параметры, щелкнув Code Generation в списке на левой панели диалогового окна.

  3. Наблюдайте за этим vdp сконфигурировано по умолчанию для целевого устройства GRT. Закройте диалоговое окно Параметры конфигурации.

  4. Выберите пользовательский блок из пользовательской библиотеки. Перетащите блок в vdp модель.

  5. В vdp дважды кликните пользовательский блок.

  6. В окне MATLAB отображается тестовое сообщение, которое вы ранее добавили к своему скрипту:

    Custom Configuration Wizard Script completed.

    Тестовое сообщение указывает, что пользовательский блок выполнил скрипт.

  7. Снова откройте диалоговое окно Параметры конфигурации и снова просмотрите панель Code Generation. Теперь модель сконфигурирована для целевого устройства ERT.

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

Создайте скрипт мастера строения

Создайте пользовательский скрипт Строения Wizard путем копирования и изменения примера скрипта, rtwsampleconfig.m.

Функция строения.  Скрипт примера реализует одну функцию без возврата значения. Функция принимает один аргумент cs:

function rtwsampleconfig(cs)

Аргумент cs - указатель на проприетарный объект, содержащий информацию об активной конфигурации модели. Программа Simulink получает этот указатель и передает его в функцию строения при двойном клике по блоку Configuration Wizard.

Ваш пользовательский скрипт должен соответствовать этому прототипу. Ваш код должен использовать cs как объект «черного ящика», который передает информацию в активную конфигурацию модели и из него.

Доступ к параметрам конфигурации модели.  Чтобы задать параметры или получить значения параметров, используйте Simulink set_param и get_param функций.

Имена опций передаются в set_param и get_param как векторы символов, задающие имя внутренней опции. Имя внутренней опции может отличаться от метки опции в пользовательском интерфейсе (для примера - диалоговое окно Параметров конфигурации). Пример строению сопровождает каждую set_param и get_param вызов с комментарием, который коррелирует внутренние имена опций с метками опций пользовательского интерфейса. Для примера:

set_param(cs,'LifeSpan','1'); % Application lifespan (days)

Чтобы получить текущую настройку опции в активной конфигурации модели, вызовите get_param. Пройдите в cs объект как первый аргумент, за которым следует внутреннее имя опции. Например, следующий фрагмент кода проверяет настройку опции Create code generation report:

if strcmp(get_param(cs, 'GenerateReport'), 'on')
    ...

Чтобы установить опцию в активной конфигурации модели, вызовите set_param. Пройдите в cs объект как первый аргумент, за которым следуют одна или несколько пар параметр/значение, которые задают имя внутренней опции и ее значение. Например, следующий фрагмент кода отключает опцию Support absolute time:

set_param(cs,'SupportAbsoluteTime','off');

Выберите цель.  Строение мастера скрипта должен выбрать целевое строение. В качестве примера скрипта используется цель ERT по умолчанию. Скрипт сначала сохраняет переменные вектора символов, которые соответствуют необходимому Системному целевому файлу, Template make-файлу и настройкам команды Make:

stf = 'ert.tlc';
tmf = 'ert_default_tmf';
mc  = 'make_rtw';

Вы выбираете системный целевой файл путем передачи cs объект и stf вектор символов в switchTarget функция:

switchTarget(cs,stf,[]);

Установите шаблон make-файла и сделайте команду опции при помощи set_param вызовы:

set_param(cs,'TemplateMakefile',tmf);
set_param(cs,'MakeCommand',mc);

Чтобы выбрать цель, ваш пользовательский скрипт должен настроить переменные вектора символов stf, tmf, и mc и передайте их на вызовы.

Получение информации о цели и конфигурации модели.  Следующие служебные функции и свойства предусмотрены, чтобы ваш код мог получить информацию о текущей цели и конфигурации модели с cs объект:

  • isValidParam(cs, 'option'): The option аргумент является внутренним именем опции. isValidParam возвращает true, если option доступ к нему можно получить с помощью get_param функция в контексте активной конфигурации модели.

  • getPropEnabled(cs, 'option'): The option аргумент является внутренним именем опции. Возвращает true, если это option включено (то есть доступно для записи).

  • IsERTTarget Свойство: Ваш код может обнаружить, получен ли выбранный на данный момент целевой объект от ERT, проверяя IsERTTarget свойство, следующим образом:

      isERT = strcmp(get_param(cs,'IsERTTarget'),'on');

Можно использовать эту информацию, чтобы определить, должен ли скрипт конфигурировать параметры ERT, например:

if isERT
  set_param(cs,'ZeroExternalMemoryAtStartup','off');
  set_param(cs,'ZeroInternalMemoryAtStartup','off');
  set_param(cs,'InitFltsAndDblsToZero','off');
  set_param(cs,'NoFixptDivByZeroProtection','on')
end

Активируйте скрипт мастера строения из командной строки

Строение мастера можно запустить из командной строки MATLAB.

Перед вызовом скрипта необходимо открыть модель и создать экземпляр cs объект, который передается в качестве аргумента скрипту. После запуска скрипта можно вызвать процесс сборки с помощью slbuild команда. Следующий пример открывает, конфигурирует и создает модель.

open my_model;
cs = getActiveConfigSet ('my_model');
rtwsampleconfig(cs);
slbuild('my_model');

Похожие темы