При конфигурировании модели для генерации кода можно определить и настроить параметры для настройки, например, для калибровки. Типы параметров, которые можно настроить, перечислены в этой таблице.
| Тип параметра | Описание |
|---|---|
| Параметр модели | Параметр, определенный в модели, например параметр в рабочем пространстве модели. |
| Внешний параметр | Параметр, определенный как объект в основной рабочей области или в словаре данных. |
Чтобы настроить параметр для генерации кода, необходимо связать параметр с объектом данных. Например, перед конфигурированием переменной MATLAB для создания кода в обозревателе моделей преобразуйте переменную в объект параметра.
При открытии модели в приложении Simulink Coder параметры модели, связанные с объектами данных, отображаются в редакторе сопоставлений кода. В редакторе можно настроить параметры для генерации кода. Если модель использует внешние параметры, их можно добавить в редактор сопоставлений кодов, щелкнув значок Refresh ссылка справа от имени параметра. Эта связь инициирует схему обновления и в режиме редактора добавляет внешние параметры, используемые моделью.
Сконфигурируйте данные параметров для:
Сделайте данные доступными для взаимодействия во время выполнения созданного кода.
Минимизируйте объем данных, хранящихся в памяти.
Передача данных параметров в интерфейс модели, чтобы другие компоненты и системы могли получить доступ к этим данным.
Улучшение читаемости и прослеживаемости созданного кода.
Чтобы управлять возможностью настройки параметров в модели, можно получить доступ к параметру конфигурации модели Поведение параметра по умолчанию с помощью 'Auto' will be tunable/inline ссылка на вкладке «Значения по умолчанию» редактора сопоставлений кодов. Например, эту ссылку можно использовать для настройки параметров в следующих случаях:
Уточнение параметров во время быстрого прототипирования
Калибровка параметров
Оптимизация параметров для производственного кода
Для создания кода в примерах показано, как настроить параметры модели и аргументы параметров модели для модели. rtwdemo_configrpinterface. Можно настроить сопоставления кода с помощью редактора сопоставлений кода или интерфейса программирования сопоставлений кода (coder.mapping.api.CodeMapping).
По умолчанию параметры в модели отображаются в сгенерированном коде как поля глобальной структуры данных с именем .На основе требований к интерфейсу кода решите, следует ли настраивать генерацию данных параметров. Если настройки не настроены, генератор кода определяет необходимость исключения или изменения представления параметров в сгенерированном коде в целях оптимизации. При настройке настроек решите:model_P
Настройка конфигурации по умолчанию
Если модель включает значительное количество параметров категории, которые должны быть настраиваемыми (например, более 10), более эффективно настроить параметры этой категории с помощью настройки по умолчанию, а затем переопределить эту настройку для особых случаев. Если модель включает несколько параметров данной категории, которые имеют уникальные требования к источнику, именованию или размещению, рассмотрите возможность индивидуальной настройки параметров.
Объявление и обработка данных параметров модели в сгенерированном коде
Как отдельные глобальные переменные
Считывание данных параметров модели из глобальных переменных, определенных во внешнем коде
Как вызовы функций доступа. Требуется встроенный кодер ®
Дополнительные сведения об этих параметрах см. в разделе Управление данными и функциональным интерфейсом в сгенерированном коде.
Другие соображения для параметров модели включают в себя необходимость:
Параметры имен в сгенерированном коде с использованием имен параметров в модели или уникальных идентификаторов кода.
Поддержка условий препроцессора, определяемых флагами или параметрами компилятора. Требуется встроенный кодер. См. раздел Использование исполнительных моделей для создания кода, использующего условия препроцессора C (встроенный кодер).
Включить static квалификатор типа в определениях и объявлениях глобальных переменных, например, для предотвращения конфликтов имен. Требуется встроенный кодер. См. раздел Предотвращение конфликтов имен путем настройки элемента данных как статического (встроенный кодер).
Включить const, volatile, или const и volatile квалификатор типа в определениях и объявлениях глобальных переменных. Требуется встроенный кодер. См. раздел Защита глобальных данных с помощью квалификаторов типа const и volative (Embedded Coder).
Создать макрос (#define) или код, использующий макрос, определенный во внешнем файле заголовка. Требуется встроенный кодер. См. раздел Определения макросов (# define) (Встроенный кодер).
Создайте глобальную структуру данных с указанным именем. Требуется встроенный кодер. См. раздел Организация данных в структуры в сгенерированном коде (встроенный кодер).
Поместите данные параметров в определенную область памяти. Требуется встроенный кодер. См. раздел Управление данными и размещением функций в памяти путем вставки прагматиков (встроенный кодер).
Список требований к интерфейсу, относящихся к параметрам, имеющим соответствующие классы хранения и свойства класса хранения, см. в разделе Выбор класса хранения и свойств класса хранения для хранилищ данных.
Требования к параметрам для примера модели rtwdemo_configrpinterface являются:
По умолчанию параметры модели сохраняются в созданном коде для настройки. Не оптимизируйте код, встроив параметры.
Применить префикс mp_ к именам переменных, представляющих параметры модели.
Для этого примера настройте параметры модели в rtwdemo_configrpinterface в соответствии с этими требованиями к созданию кода.
Настройки генерации кода по умолчанию для параметров могут уменьшить усилия по подготовке модели к генерации кода, особенно если модель имеет значительное количество параметров, с которыми необходимо взаимодействовать во время выполнения сгенерированного кода. Один раз выберите настройки конфигурации, и генератор кода применит эти настройки к параметрам в модели. Simulink ® сохраняет конфигурацию по умолчанию как часть модели.
Рекомендуется настроить параметры генерации кода по умолчанию для параметров модели, если модель использует несколько параметров для одной и той же категории, не имеющих уникальных требований.
В этом примере показано, как использовать редактор сопоставления кодов для настройки параметров модели по умолчанию для rtwdemo_configrpinterface модели. Настройте параметры модели так, чтобы они были настраиваемыми и определялись и объявлялись в создаваемом коде как отдельные глобальные переменные.
Открыть rtwdemo_configrpinterface модели. Сохраните копию модели в доступном для записи расположении.

Откройте приложение Simulink Coder.
На вкладке Код C выберите Интерфейс кода > Сопоставления кодов по умолчанию.
В редакторе сопоставлений кодов в разделе «Параметры» выберите категорию «Параметры модели». Текст ссылки 'Auto' will be inlined указывает, что генератор кода по умолчанию настроен на встроенные параметры модели. Для этого примера необходимо, чтобы параметры модели были настраиваемыми. Щелкнуть 'Auto' will be inlined.
В диалоговом окне Параметры конфигурации модели (Model Configuration Parameters) задайте для параметра конфигурации модели Поведение параметра по умолчанию (Default parameter behavior) значение Tunable. Сохраните изменения и закройте диалоговое окно. В редакторе сопоставлений кодов текст ссылки изменяется на 'Auto' will be tunable.
В окне Сопоставления кода (Code Mappings), в котором по-прежнему выбрана категория Параметры модели (Model parameters), установите класс хранения в значение ExportedGlobal.

Сохраните модель.
Для генерации кода можно сконфигурировать отдельные параметры. Например, если модель имеет два параметра одной категории с уникальными требованиями к созданию кода, настройте параметры по отдельности. Кроме того, если настроить параметры по умолчанию для категории параметров, можно переопределить эти параметры для определенных параметров.
Если модель удовлетворяет хотя бы одному из этих критериев, рассмотрите возможность настройки параметров генерации кода по отдельности.
Использует несколько параметров одной и той же категории, которые имеют уникальные требования к источнику, именованию или размещению.
Использует несколько параметров той же категории.
Имеет конфигурацию по умолчанию для категории параметров, и необходимо переопределить конфигурацию для некоторых конкретных параметров.
В этом примере показано, как с помощью редактора сопоставлений кодов применить настройки класса хранения по умолчанию для параметров модели к параметрам K1, Table1, и Table2 в модели rtwdemo_configinterface. Для этих параметров настраиваются идентификаторы кода. Можно указать идентификаторы генерации кода, например для интеграции, без изменения конструкции модели.
Если это еще не сделано, выполните шаги в разделе Настройка параметров генерации кода по умолчанию.
Разверните узел «Параметры модели». По умолчанию класс хранения для каждого параметра имеет значение Auto. Использовать конфигурацию модели по умолчанию, определяющую класс хранения ExportedGlobal.
Чтобы избежать оптимизации и заставить генератор кода использовать конфигурацию по умолчанию, задайте для класса хранения значение Model default.
Чтобы переопределить конфигурацию по умолчанию, укажите класс хранения, соответствующий требованиям к созданию кода для этого параметра.
В редакторе сопоставлений кодов в разделе «Параметры модели» выберите параметры K1, Table1, и Table2. Задайте для класса хранения значение Model default: ExportedGlobal.

Настройка идентификаторов кода для параметров модели с именами, включающими префикс mp_. В редакторе сопоставлений кодов выберите параметр модели K1. В инспекторе свойств разверните узел «Код». Задайте для свойства класса хранения Identifier значение mp_K1. Для параметров Table1 и Table2, задайте для параметра Identifier значение mp_Table1 и mp_Table2.

Сохраните модель.
Создайте и просмотрите код. Например, найдите определения данных для параметра модели mp_K1 в rtwdemo_configrpinterface.c.
int8_T mp_K1 = 2;
Найдите, где используется параметр в пошаговой функции точки входа.
if (mode) {
output = (real_T)mp_K1 * dout_Table1;
} else {
output = dstate_X;
}
Для автоматизации конфигурирования параметров для генерации кода используйте интерфейс программирования для отображения кода. Например, при создании пользовательских библиотек блоков или части тестовой среды приложения используйте интерфейс программирования для автоматизации настройки данных.
В этом примере показано, как настроить параметры модели по умолчанию для rtwdemo_configrpinterface модели. Настройте параметры модели так, чтобы они были настраиваемыми и определялись и объявлялись в создаваемом коде как отдельные глобальные переменные. Применить настройки класса хранения по умолчанию для параметров модели к параметрам K1, Table1, и Table2. Настройте идентификаторы кода для этих параметров.
Откройте пример модели.
open_system('rtwdemo_configrpinterface')
Задать для параметра конфигурации модели Поведение параметра по умолчанию значение Tunable.
model='rtwdemo_configrpinterface';
set_param(model,'DefaultParameterBehavior','Tunable');
Создать объект cm путем вызова функции coder.mapping.api.get. Объект сохраняет конфигурацию генерации кода для элементов данных в модели. rtwdemo_configrpdefaults.
cm = coder.mapping.api.get('rtwdemo_configrpinterface');Настройка параметров модели по умолчанию путем вызова функции setDataDefault. Для аргументов укажите следующие значения:
Объект, возвращенный coder.mapping.api.get
ModelParameters для категории по умолчанию
Имя свойства StorageClass со значением свойства ExportedGlobal
setDataDefault(cm,'ModelParameters','StorageClass','ExportedGlobal');
Проверьте конфигурацию по умолчанию для параметров модели. Выдать вызовы getDataDefault которые указывают объект, возвращенный coder.mapping.api.get, категория ModelParameters, и StorageClass.
getDataDefault(cm,'ModelParameters','StorageClass')
ans =
'ExportedGlobal'
Применение конфигурации по умолчанию для параметров модели к параметрам K1, Table1, и Table2 .
По умолчанию Simulink устанавливает класс хранения для отдельных параметров равным Auto. Когда класс хранения данных Auto, генератор кода:
Определяет необходимость исключения данных из созданного кода в целях оптимизации.
При сохранении данных определяет способ эффективного представления данных в сгенерированном коде с учетом настроек конфигурации по умолчанию.
Настройка генератора кода для применения настроек параметров модели по умолчанию к параметрам K1, Table1, и Table2. Для каждого параметра вызовите функцию setModelParameter. Укажите объект, возвращенный coder.mapping.api.get, имя параметра, имя свойства StorageClass, и значение свойства Model default.
setModelParameter(cm,'K1','StorageClass','Model default'); setModelParameter(cm,'Table1','StorageClass','Model default'); setModelParameter(cm,'Table2','StorageClass','Model default');
Проверка изменений конфигурации для параметров K1, Table1, и Table2 с помощью вызовов функции getModelParameter.
getModelParameter(cm,'K1','StorageClass')
ans =
'Model default'
getModelParameter(cm,'Table1','StorageClass')
ans =
'Model default'
getModelParameter(cm,'Table2','StorageClass')
ans =
'Model default'Сконфигурируйте идентификаторы кода для параметров модели. Для каждого параметра вызовите функцию setModelParameter. Укажите объект, возвращенный coder.mapping.api.get, имя параметра, имя свойства Identifierи одно из этих значений свойств.
| Параметр модели | Идентификатор кода |
|---|---|
K1 | mp_K1 |
Table1 | mp_Table1 |
Table2 | mp_Table2 |
setModelParameter(cm,'K1','Identifier','mp_K1'); setModelParameter(cm,'Table1','Identifier','mp_Table1'); setModelParameter(cm,'Table2','Identifier','mp_Table2');
Проверьте изменения конфигурации параметров модели с помощью вызовов функции getModelParameter.
getModelParameter(cm,'K1','Identifier')
ans =
'mp_K1'
getModelParameter(cm,'Table1','Identifier')
ans =
'mp_Table1'
getModelParameter(cm, 'Table2', 'Identifier')
ans =
'mp_Table2'
Сохраните модель.
Создайте и просмотрите код. Например, найдите определения данных для параметра модели mp_K1 в rtwdemo_configrpinterface.c.
int8_T mp_K1 = 2;
Найдите, где используется параметр в пошаговой функции точки входа.
if (mode) {
output = (real_T)mp_K1 * dout_Table1;
} else {
output = dstate_X;
}
В зависимости от требований к созданию кода выберите один из этих классов хранения, чтобы настроить создание кода для параметров модели. Только для констант Default применяется. Только для аргументов параметров модели Auto, Default, и Model default применить.
| Требования | Класс хранения |
|---|---|
| Активизируйте оптимизацию, потенциально создавая более эффективный код. | Авто (только отдельные сопоставления) |
| Для элементов данных, которые не могут быть оптимизированы, представляют данные как поле стандартной структуры данных. | По умолчанию (только сопоставление по умолчанию) |
| Предотвращение исключения оптимизации хранилища для элемента данных и использование сопоставления по умолчанию для категории элементов данных. | Модель по умолчанию (только отдельные сопоставления), Dictionary Default (Только отдельные сопоставления) |
| Создание определения и объявления глобальной переменной. | ExportedGlobal |
| Создание кода, считывающего и записывающего в глобальную переменную или указатель глобальной переменной, определенный внешним кодом. | ImportedExtern, ImportedExternPointer |
Список доступных классов хранения может включать другие классы хранения для конкретного проекта, определенные в словаре встроенного кодера. При наличии специальных требований, не удовлетворяющих указанным классам хранения, и наличии программного обеспечения Embedded Coder можно определить класс хранения. См. раздел Определение классов хранения, разделов памяти и шаблонов функций для архитектуры программного обеспечения (встроенный кодер).
Для отдельного параметра модели используйте свойство класса хранения Identifier, чтобы настроить имя переменной, представляющей параметр в сгенерированном коде.
Редактор сопоставлений кода | coder.mapping.api.CodeMapping