Создайте объекты данных для генерации кода с мастером объекта данных

Чтобы задать опции генерации кода для сигнальных линий, параметров блоков и состояний в модели, можно использовать объекты данных, которые вы храните в словаре данных или рабочей области. Для основной информации об объектах данных смотрите Объекты данных (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;

Смотрите также

|

Похожие темы