Сконфигурируйте интерфейс данных для кода, созданного для модели.
Управление именем, типом данных и классом хранения данных сигналов и параметров в сгенерированном коде.
Понимание способов представления и использования данных и сигналов в моделях.
Знакомство с представлением конструкций данных в виде объектов данных.
Возможность чтения кода C.
rtwdemo_throttlecntrl_datainterface файл модели
Для большинства языков программирования перед использованием необходимо объявить данные. В объявлении указывается следующая информация:
| Атрибут данных | Описание |
|---|---|
| Объем | Регион программы, имеющий доступ к данным |
| Продолжительность | Период, в течение которого данные находятся в памяти |
| Тип данных | Объем памяти, выделенной для данных |
| Инициализация | Начальное значение, указатель на память или NULL. Если начальное значение не указано, большинство компиляторов присваивают нулевое значение или нулевой указатель. |
Для создания кода поддерживаются следующие типы данных.
Поддерживаемые типы данных
| Имя | Описание |
|---|---|
double | Плавающая точка с двойной точностью |
single | Плавающая точка с одинарной точностью |
int8 | Целое число со знаком 8 бит |
uint8 | Беззнаковое 8-разрядное целое число |
int16 | Знаковое 16-разрядное целое число |
uint16 | Беззнаковое 16-разрядное целое число |
int32 | Подписанное 32-разрядное целое число |
uint32 | Беззнаковое 32-разрядное целое число |
| Типы данных с фиксированной точкой | 8-, 16-, 32-разрядные длины слов |
Класс хранения - это область и продолжительность элемента данных. Дополнительные сведения о классах хранения см. в разделе Конфигурация генерации кода C для элементов интерфейса модели.
В моделях Simulink ® и диаграммах Stateflow ® для объявления данных доступны следующие методы: объекты данных и прямая спецификация. В этом примере используется метод объекта данных. Оба метода обеспечивают полный контроль над типом данных и классом хранения. Эти два метода можно смешивать в одной модели.
В среде MATLAB ® и Simulink можно использовать объекты данных различными способами. В этом примере рассматриваются следующие типы объектов данных:
Сигнал
Параметр
Автобус
Для конфигурирования интерфейса данных для модели с использованием метода объекта данных в базовой рабочей области MATLAB определяются объекты данных. Затем свяжите их с моделью Simulink или встроенной диаграммой Stateflow. При построении модели процесс построения использует связанные базовые объекты данных рабочей области в созданном коде.
Можно задать следующие значения свойств объекта данных:
Тип данных
Класс хранения
Значение (параметры)
Начальное значение (сигналы)
Идентификатор (определите другое имя в сгенерированном коде)
Размер (обычно наследуется для параметров)
Сложность (унаследована для параметров)
Единица измерения (физическая единица измерения)
Минимальное значение
Максимальное значение
Описание (используется для документирования объектов данных - не влияет на моделирование или создание кода)
Базовые объекты данных рабочей области можно создавать и проверять, вводя команды в окне команд MATLAB или используя обозреватель моделей. Чтобы исследовать базовые объекты данных сигналов рабочей области, выполните следующие действия.
Открытый rtwdemo_throttlecntrl_datainterface и сохраните копию как throttlecntrl_datainterface в доступном для записи расположении на пути MATLAB.
Откройте обозреватель моделей.
Выберите «Базовая рабочая область».
Выберите pos_cmd_one сигнальный объект для просмотра.

Можно также просмотреть определение сигнального объекта. В окне команд MATLAB введите pos_cmd_one:
pos_cmd_one =
Signal with properties:
CoderInfo: [1x1 Simulink.CoderInfo]
Description: 'Throttle position command from the first PI controller'
DataType: 'double'
Min: -1
Max: 1
Unit: ''
Dimensions: -1
DimensionsMode: 'auto'
Complexity: 'auto'
SampleTime: -1
InitialValue: '0'
Чтобы просмотреть другие сигнальные объекты, в обозревателе моделей щелкните имя объекта или в окне команды MATLAB введите имя объекта. Эта таблица суммирует характеристики объектов для некоторых объектов данных в этой модели.
| Признаки объекта | pos_cmd_one | pos_rqst | P_InErrMap | ThrotComm* | ThrottleCommands* |
|---|---|---|---|---|---|
| Описание | Выходные данные верхнего уровня | Вход верхнего уровня | Калибровочный параметр | Структура вывода верхнего уровня | Определение шины |
| Тип данных | Дважды | Дважды | Автомобиль | Автомобиль | Структура |
| Класс хранения | Экспортировано глобально | Импортированный внешний указатель | Постоянный | Экспортировано глобально | Ничего |
* ThrottleCommands определяет объект Bus; ThrotComm представляет собой экземпляр шины. Если шина представляет собой невиртуальную шину, сигнал генерирует структуру в коде C.
Можно использовать определение шины (ThrottleCommands) для создания экземпляра нескольких экземпляров структуры. На схеме модели объект шины отображается в виде широкой линии с центральными тире, как показано на рисунке.

Можно создавать объекты данных для именованных сигналов, состояний и параметров. Чтобы связать объект данных с конструкцией, конструкция должна иметь имя.
Для поиска конструкций, для которых можно создавать объекты данных, используйте Мастер объектов данных. Этот инструмент находит конструкции, а затем создает объекты для пользователя. Модель включает два сигнала, которые не связаны с объектами данных: fbk_1 и pos_cmd_two.
Чтобы найти сигналы и создать для них объекты данных:
В редакторе Simulink на вкладке «Моделирование» в разделе «Проект» выберите «Мастер объектов данных». Откроется диалоговое окно Мастер объектов данных.
Чтобы найти конструкции-кандидаты, нажмите кнопку «Найти». Конструкции fbk_1 и pos_cmd_two появится в диалоговом окне.
Чтобы выбрать обе конструкции, нажмите «Выбрать все».
В таблице в разделе Класс убедитесь, что каждый предлагаемый объект данных использует класс. Simulink.Signal. Чтобы изменить класс объектов, щелкните Изменить класс (Change Class).
Чтобы создать объекты данных, нажмите кнопку Создать. Конструкции fbk_1 и pos_cmd_two удаляются из диалогового окна.
Закройте мастер объектов данных.
На панели Содержимое (Contents) Обозревателя моделей (Model Explorer) найдите вновь созданные объекты. fbk_1 и pos_cmd_two.
Включить отображение сигнала в сгенерированном коде.
В редакторе Simulink щелкните правой кнопкой мыши значок pos_cmd_one и выберите Свойства. Откроется диалоговое окно Свойства сигнала (Signal Properties).
Убедитесь, что выбран параметр Signal name должен разрешаться в параметр Simulink signal object.

Включение разрешения сигнальных объектов для сигналов в модели. В окне команд MATLAB введите:
disableimplicitsignalresolution('throttlecntrl_datainterface')Сохранить и закрыть throttlecntrl_datainterface.
В модели контроллера дросселя для типов данных установлено значение double. Поскольку программное обеспечение Simulink использует double тип данных для моделирования, не ожидайте изменений в поведении модели при запуске созданного кода. Этот эффект можно проверить, запустив тестовый электрический жгут.
Перед запуском тестового электрического жгута обновите его, включив throttlecntrl_datainterface модель.
Примечание
Для выполнения следующей процедуры требуется лицензия Stateflow.
Открытый throttlecntrl_datainterface.
Откройте копию тестового жгута, throttlecntrl_testharness.
Щелкните правой кнопкой мыши Unit_Under_Test
Блок модели и выберите Параметры блока (Model Reference).
Задать для имени модели значение throttlecntrl_datainterface. Нажмите кнопку ОК.
Обновите схему модели тестового кабеля.
Смоделировать тестовый жгут.
Полученный график показывает, что разница между золотым и моделируемым вариантами модели остаётся нулевой.

Сохранить и закрыть throttlecntrl_testharness.
Объекты данных существуют в отдельном файле от модели в базовой рабочей области. Для сохранения данных вручную в окне команд MATLAB введите save.
Отделение данных от модели обеспечивает следующие преимущества:
Одна модель, несколько наборов данных:
Использование различных значений параметров для изменения поведения алгоритма управления (например, для многократно используемых компонентов с различными значениями калибровки)
Использование различных типов данных для изменения целевого аппаратного обеспечения (например, для аппаратного обеспечения с плавающей и фиксированной точками)
Несколько моделей, один набор данных:
Совместное использование данных моделями в системе
Обмен данными между проектами (например, трансмиссия, двигатель и контроллеры колес могут использовать один и тот же набор данных сообщений CAN)
Объявить данные в моделях Simulink и диаграммах Stateflow можно с помощью объектов данных или прямой спецификации.
В обозревателе моделей или в командной строке в окне команд MATLAB управление (создание, просмотр, настройка и т. д.) базовыми данными рабочей области.
Мастер объектов данных предоставляет быстрый способ создания объектов данных для таких конструкций, как сигналы, шины и параметры.
Настройте явное отображение объектов данных по имени в сгенерированном коде.
Разделение данных на модели дает несколько преимуществ.