Чтобы задать опции генерации кода для сигнальных линий, параметров блоков и состояний в модели, можно использовать объекты данных, которые вы храните в словаре данных или рабочей области. Для основной информации об объектах данных смотрите Объекты данных (Simulink).
Можно использовать Мастер Объекта данных, чтобы создать объекты данных для:
Новые или существующие модели, которые не используют объекты данных.
Существующие модели, в которые вы добавили сигнальные линии или блоки.
Этот пример показывает, как использовать Мастер Объекта данных, чтобы создать и сконфигурировать объекты данных для генерации кода от встроенного пакета Simulink.
Откройте модель rtwdemo_basicsc в качестве примера.
open_system('rtwdemo_basicsc')

Модель создает числовые переменные в базовом рабочем пространстве. Блоки в образцовом использовании эти переменные, чтобы установить значения параметров (такие как параметр Усиления блока Gain). Некоторые сигналы и состояния блока в модели имеют явные имена, такие как input1.
В модели выберите Code> Data Objects> Data Object Wizard.

В Мастере Объекта данных нажмите Find. Мастер предлагает, чтобы создание Simulink.Parameter возразило, чтобы заменить переменные, и создание Simulink.Signal возражает, чтобы представлять сигналы и состояния.

Мастер находит только сигналы, параметры, хранилища данных, и утверждает, чей класс памяти установлен в Auto. Например, если вы используете диалоговое окно Signal Properties, чтобы задать класс памяти кроме Auto для сигнальной линии, мастер не предлагает объект данных.
Нажмите Select All.
Нажмите Create. Объекты данных появляются в базовом рабочем пространстве.
Для получения дальнейшей информации об опциях, которые можно выбрать в Мастере Объекта данных, смотрите, Создают Объекты данных для Модели Используя Мастер Объекта данных (Simulink).
Классы памяти определяют, как сгенерированный код использует переменные, чтобы представлять сигналы, параметры и состояния. Для объектов данных от встроенного пакета Simulink классом памяти по умолчанию является Auto. Чтобы задать классы памяти для новых объектов данных, можно использовать Model Explorer.
Откройте Model Explorer.
В панели Иерархии модели выберите Base Workspace.

В панели Содержимого, от выпадающего Представления Столбца списка, выбирают Storage Class.
Выберите все новые объекты данных. Например, выберите объект input1, содержите Сдвиг и выберите объект X.
Установите свойство StorageClass для всех объектов данных к ExportToFile. Изменить класс памяти для всех выбранных объектов, в столбце StorageClass, нажатии кнопки любом из объектов. В выпадающем списке выберите ExportToFile. Изменение, которое вы вносите, распространяет ко всем выбранным объектам.
Задайте свойство HeaderFile для всех объектов как myExportedHdrFile.h.
В модели, Параметры конфигурации набора> Генерация кода> Системный конечный файл к ert.tlc. С этой установкой генератор кода соблюдает пользовательские классы памяти, такие как ExportToFile.
Сгенерируйте код из модели.
### Starting build procedure for model: rtwdemo_basicsc ### Successful completion of build procedure for model: rtwdemo_basicsc
В отчете генерации кода просмотрите сгенерированный файл myExportedHdrFile.h. Файл содержит объявления extern для глобальных переменных, которые соответствуют объектам данных.
/* Exported data declaration */ /* Declaration for custom storage class: ExportToFile */ extern int8_T K1; extern real_T K2; extern real32_T LOWER; extern real32_T T1Break[11]; extern real32_T T1Data[11]; extern real32_T T2Break[3]; extern real32_T T2Data[9]; extern real32_T UPPER; extern real32_T X; extern real32_T input1; extern real32_T input2; extern real32_T input3; extern real32_T input4; extern boolean_T mode; extern real32_T output;
Просмотрите файл rtwdemo_basicsc.c. Файл содержит определения для глобальных переменных. Код присваивает числовые значения для переменных, которые соответствуют объектам параметра.
/* Exported data definition */
/* Definition for custom storage class: ExportToFile */
int8_T K1 = 2;
real_T K2 = 3.0;
real32_T LOWER = -10.0F;
real32_T T1Break[11] = { -5.0F, -4.0F, -3.0F, -2.0F, -1.0F, 0.0F, 1.0F, 2.0F,
3.0F, 4.0F, 5.0F } ;
real32_T T1Data[11] = { -1.0F, -0.99F, -0.98F, -0.96F, -0.76F, 0.0F, 0.76F,
0.96F, 0.98F, 0.99F, 1.0F } ;
real32_T T2Break[3] = { 1.0F, 2.0F, 3.0F } ;
real32_T T2Data[9] = { 4.0F, 16.0F, 10.0F, 5.0F, 19.0F, 18.0F, 6.0F, 20.0F,
23.0F } ;
real32_T UPPER = 10.0F;
real32_T X;
real32_T input1;
real32_T input2;
real32_T input3;
real32_T input4;
boolean_T mode;
real32_T output;
Simulink.Parameter | Simulink.Signal