Embedded Coder® программное обеспечение обеспечивает библиотеку блоков Мастера Настройки и скриптов, чтобы помочь вам сконфигурировать и оптимизировать генерацию кода из своих моделей.
Библиотека обеспечивает блок Configuration 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 в качестве примера, который можно адаптировать к требованиям.
Можно также настроить блоки Мастера Настройки, чтобы вызвать процесс сборки после конфигурирования модели.
Блоки Мастера Настройки доступны в библиотеке блоков Embedded Coder. Использовать блок Configuration Wizard:
Откройте модель, которую вы хотите сконфигурировать.
Откройте библиотеку блоков Embedded Coder путем ввода команды rtweclib
.
Дважды кликните значок Мастеров Настройки. Подбиблиотека Configuration Wizards открывается.
Выберите блок Configuration Wizard, что вы хотите использовать и перетащить его в вашу модель. Эта модель содержит ERT (optimized for fixed-point)
Блок Configuration Wizard.
Если вы хотите, чтобы блок Configuration Wizard вызвал процесс сборки после настройки, щелкните правой кнопкой по блоку Configuration Wizard по своей модели и выберите Mask > Mask Parameters из контекстного меню. Затем выберите процесс сборки Invoke после параметра конфигурации. Не изменяйте Конфигурировать модель для параметров блоков, если вы не хотите создать пользовательский блок и скрипт. В этом случае смотрите, Создают Блок Мастера Пользовательской конфигурации.
Нажмите Apply и закройте диалоговое окно Mask Parameters.
Сохраните модель.
После того, как вы добавляете блок Configuration Wizard в свою модель, чтобы сконфигурировать вашу модель, дважды кликнуть блок. Скрипт, сопоставленный с блоком, устанавливает параметры активной конфигурации модели, которые относятся к генерации кода (включая выбор цели). Вы видите, что параметры изменились путем открытия диалогового окна Configuration Parameters и исследования установок параметров.
Если вы выбрали процесс сборки Invoke после того, как параметр блока Configuration, скрипт также инициирует генерацию кода и процесс сборки.
Примечание
Чтобы обеспечить быстрый способ переключиться между настройками, можно добавить больше чем один блок Configuration Wizard в модель.
Блок Custom Configuration Wizard и связанный скрипт файла MATLAB,
, обеспечьте начальную точку для индивидуальной настройки.matlabroot
/toolbox/coder/simulinkcoder_core/rtwsampleconfig.m
Настройте блок Wizard пользовательской конфигурации и соедините его со скриптом. Если вы хотите использовать блок больше чем в одном режиме, желательно создать Simulink® библиотека, чтобы содержать блок.
Чтобы начаться, сделайте копию скрипта в качестве примера для более поздней индивидуальной настройки:
Чтобы сохранить ваш пользовательский скрипт, создайте папку. Эта папка не должна быть нигде в структуре папок MATLAB (то есть, это не должно находиться под
).matlabroot
Пример называет эту папку /my_wizards
.
Добавьте папку в путь MATLAB. Сохраните путь для будущих сеансов.
Скопируйте скрипт в качестве примера rtwsampleconfig.m
в папке
(открытый) для matlabroot
/toolbox/rtw/rtw/my_wizards
папка, которую вы создали. Затем переименуйте скрипт. Этот пример использует имя my_configscript.m
.
Откройте скрипт в качестве примера в редактор MATLAB. Прокрутите в конец файла и введите следующую строку кода:
disp('Custom Configuration Wizard Script completed.');
Этот оператор используется позже в качестве теста, чтобы видеть, что ваш пользовательский блок выполнил скрипт.
Сохраните свой скрипт и закройте редактор MATLAB.
Следующая задача состоит в том, чтобы создать Библиотеку Simulink и добавить пользовательский блок в него.
Откройте библиотеку блоков Embedded Coder и подбиблиотеку Configuration Wizards, как описано в Добавляют Блок Мастера Настройки.
На вкладке Library выберите New> Library. От начальной страницы Simulink выберите Blank Library. Пустое окно библиотеки открывается.
Выберите блок Custom MATLAB file из подбиблиотеки Configuration Wizards и перетащите его в пустое окно библиотеки.
Чтобы отличить ваш пользовательский блок от оригинала, отредактируйте метку Custom MATLAB file под блоком.
На вкладке Library выберите Save> Save as. Сохраните библиотеку в /my_wizards
папка, под вашим предпочтительным именем библиотеки. В этом рисунке библиотека сохранена как ex_custom_button
и блок помечен my_wizard MATLAB-file
.
Следующая задача состоит в том, чтобы соединить пользовательский блок с пользовательским скриптом:
Щелкните правой кнопкой по блоку по своей модели и выберите Mask > Mask Parameters из контекстного меню. Меню Configure the model for установлено в Custom
. Когда Custom
выбран, поле редактирования Configuration function включено так, чтобы можно было ввести имя пользовательского скрипта.
В поле Configuration function введите имя своего пользовательского скрипта. (Не вводите .m
расширение файла, которое неявно.)
По умолчанию параметр Invoke build process after configuration очищен. Можно изменить значение по умолчанию для пользовательского блока путем выбирания этой опции. На данный момент оставьте этот параметр очищенным.
Нажмите Apply и закройте диалоговое окно Mask Parameters.
Сохраните библиотеку.
Закройте библиотеку блоков Embedded Coder и подбиблиотеку Configuration Wizards. Оставьте свою пользовательскую библиотеку открытой для использования в следующей задаче.
Протестируйте свой блок и скрипт в модели.
Откройте vdp
модель путем ввода команды:
vdp
Откройте диалоговое окно Configuration Parameters и просмотрите параметры путем нажатия на Code Generation в списке на левой панели диалогового окна.
Наблюдайте тот vdp
сконфигурирован, по умолчанию, для цели GRT. Закройте диалоговое окно Configuration Parameters.
Выберите свой пользовательский блок из вашей пользовательской библиотеки. Перетащите блок в vdp
модель.
В vdp
модель, дважды кликните свой пользовательский блок.
В окне MATLAB вы видите, что тест передает это, вы ранее добавили к своему скрипту:
Custom Configuration Wizard Script completed.
Тестовое сообщение указывает, что пользовательский блок выполнил скрипт.
Вновь откройте диалоговое окно Configuration Parameters и просмотрите панель Code Generation снова. Модель теперь сконфигурирована для цели ERT.
Прежде, чем применить дальнейшие редактирования к вашему пользовательскому скрипту, продолжите к следующему разделу узнавать об операции и соглашениях скриптов Мастера Настройки.
Создайте свой скрипт Мастера пользовательской конфигурации путем копирования и изменения скрипта в качестве примера, rtwsampleconfig.m
.
Функция конфигурирования. Скрипт в качестве примера реализует одну функцию без возвращаемого значения. Функция берет отдельный аргумент cs
:
function rtwsampleconfig(cs)
Аргумент cs
указатель на собственный объект, который содержит информацию об активной конфигурации модели. Программное обеспечение Simulink получает этот указатель и передает его в функции конфигурирования, когда вы дважды кликаете блок Configuration Wizard.
Ваш пользовательский скрипт должен соответствовать этому прототипу. Ваш код должен использовать cs
как “черный ящик” возражают что информация о передачах против и от активной конфигурации модели.
Доступ к Параметрам Конфигурации модели. Чтобы установить параметры или получить значения параметров, используйте Simulink set_param
и 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
может быть получен доступ при помощи get_param
функция в контексте активной конфигурации модели.
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
возразите, чтобы передать в в качестве аргумента к скрипту. После выполнения скрипта можно вызвать процесс сборки с slbuild
команда. Следующий пример открывает, конфигурирует и создает модель.
open my_model; cs = getActiveConfigSet ('my_model'); rtwsampleconfig(cs); slbuild('my_model');