Сконфигурируйте и оптимизируйте модель с блоками мастера настройки

Программное обеспечение Embedded Coder® обеспечивает библиотеку блоков Мастера Настройки и скриптов, чтобы помочь вам сконфигурировать и оптимизировать генерацию кода из своих моделей.

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

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

БлокОписание
Пользовательский файл MATLABОбновите активные параметры конфигурации родительской модели при помощи пользовательского файла
ERT (оптимизированный для фиксированной точки)Обновите активные параметры конфигурации родительской модели для генерации фиксированной точки ERT
ERT (оптимизированный для с плавающей точкой)Обновите активные параметры конфигурации родительской модели для генерации кода с плавающей точкой ERT
GRT (отлаживают для фиксированного/с плавающей точкой),Обновите активные параметры конфигурации родительской модели для зафиксированного GRT - или генерация кода с плавающей точкой с отладкой активированного
GRT (оптимизированный для фиксированного/с плавающей точкой)Обновите активные параметры конфигурации родительской модели для зафиксированного GRT - или генерация кода с плавающей точкой

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

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

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

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

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

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

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

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

Блоки Мастера Настройки доступны в библиотеке блоков Embedded Coder. Использовать блок Configuration Wizard:

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

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

  3. Дважды кликните значок Мастеров Настройки. Подбиблиотека Configuration Wizards открывается.

  4. Выберите блок Configuration Wizard, что вы хотите использовать и перетащить его в вашу модель. Эта модель содержит блок ERT (optimized for fixed-point) Configuration Wizard.

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

  6. Нажмите Apply и закройте диалоговое окно Mask Parameters.

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

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

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

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

Примечание

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

Создайте блок мастера пользовательской конфигурации

Блок Custom Configuration Wizard и связанный скрипт файла MATLAB, matlabroot/toolbox/rtw/rtw/rtwsampleconfig.m, обеспечивают отправную точку для индивидуальной настройки.

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

Настройте блок Wizard пользовательской конфигурации и соедините его со скриптом. Если вы хотите использовать блок больше чем в одном режиме, желательно создать библиотеку 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 и подбиблиотеку Configuration Wizards, как описано в Добавляют Блок Мастера Настройки.

  2. Выберите New> Library из меню File окна подбиблиотеки Configuration Wizards. Пустое окно библиотеки открывается.

  3. Выберите Пользовательский блок файла MATLAB от подбиблиотеки Configuration Wizards и перетащите его в пустое окно библиотеки.

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

  5. Выберите Save as из меню File нового окна библиотеки. Сохраните библиотеку в папку /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 и подбиблиотеку Configuration Wizards. Оставьте свою пользовательскую библиотеку открытой для использования в следующей задаче.

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

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

    vdp
  2. Откройте диалоговое окно Configuration Parameters и просмотрите параметры путем нажатия на Code Generation в списке на левой панели диалогового окна.

  3. Заметьте, что vdp сконфигурирован, по умолчанию, для цели GRT. Закройте диалоговое окно Configuration Parameters.

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

  5. В модели vdp дважды кликните свой авторский блок.

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

    Custom Configuration Wizard Script completed.

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

  7. Вновь откройте диалоговое окно Configuration Parameters и просмотрите панель Code Generation снова. Модель теперь сконфигурирована для цели ERT.

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

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

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

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

function rtwsampleconfig(cs)

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

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

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

Имена опции передаются в set_param и get_param как векторы символов, задающие внутреннее имя опции. Внутреннее имя опции может отличаться от метки опции на пользовательском интерфейсе (например, диалоговое окно Configuration Parameters). Настройка в качестве примера сопровождает каждый 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 в качестве первого аргумента, сопровождаемого одной или несколькими парами параметра/значения, которые задают внутреннее имя опции и его значение. Например, следующая выборка кода выключает Поддержку абсолютная опция времени:

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

Выберите Цель.  Скрипт Мастера Настройки должен выбрать целевую настройку. Скрипт в качестве примера использует цель ERT в качестве значения по умолчанию. Скрипт сначала хранит переменные вектора символов, которые соответствуют необходимому Системному конечному файлу, 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'): аргумент option является внутренним именем опции. isValidParam возвращает true, если option является допустимой опцией в контексте активной конфигурации модели.

  • getPropEnabled(cs, 'option'): аргумент 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 передать в в качестве аргумента к скрипту. После выполнения скрипта можно вызвать процесс сборки с командой rtwbuild. Следующий пример открывает, конфигурирует и создает модель.

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

Похожие темы