Сконфигурируйте интерфейс данных для кода, сгенерированного для модели.
Управляйте именем, типом данных и классом хранения данных сигналов и параметров в сгенерированном коде.
Понимание способов представлять и использовать данные и сигналы в моделях.
Знакомство с представлением данных создает как объекты данных.
Способность считать код С.
rtwdemo_throttlecntrl_datainterface
файл модели
Большинство языков программирования требует что вы данные declare перед использованием его. Объявление указывает следующую информацию:
Атрибут данных | Описание |
---|---|
Осциллограф | Область программы, которая имеет доступ к данным |
Длительность | Период, в который данные являются резидентным объектом в памяти |
Тип данных | Объем памяти выделяется для данных |
Инициализация | Начальное значение, указатель на память или NULL. Если вы не вводите начальное значение, большинство компиляторов присваивает нулевое значение или нулевого указателя. |
Следующие типы данных поддерживаются для генерации кода.
Поддерживаемые типы данных
Имя | Описание |
---|---|
double | Плавающая точка двойной точности |
single | Плавающая точка с одинарной точностью |
int8 | 8-битное целое число со знаком |
uint8 | 8-битное целое число без знака |
int16 | 16-битное целое число со знаком |
uint16 | 16-битное целое число без знака |
int32 | 32-битное целое число со знаком |
uint32 | 32-битное целое число без знака |
Типы данных с фиксированной точкой | 8-, 16-, 32-битные размеры слова |
storage class является осциллографом и длительностью элемента данных. Для получения дополнительной информации о классах памяти, смотрите Настройку генерации кода C для Элементов Интерфейса модели.
В моделях Simulink® и графиках Stateflow®, следующие методы доступны для объявления данных: data objects и direct specification. Этот пример использует метод объекта данных. Оба метода позволяют полный контроль над типом данных и классом памяти. Можно смешать эти два метода в одной модели.
В MATLAB® и окружении Simulink, можно использовать объекты данных в различных способах. Этот пример фокусируется на следующих типах объектов данных:
Сигнал
Параметр
Шина
Чтобы сконфигурировать данные взаимодействуют через интерфейс для вашей модели с помощью метода объекта данных, в базовом рабочем пространстве MATLAB, вы задаете объекты данных. Затем сопоставьте их со своей моделью Simulink или встроенной диаграммой Stateflow. Когда вы создаете свою модель, процесс сборки использует связанные объекты данных базового рабочего пространства в сгенерированном коде.
Можно установить значения свойств объекта данных, которые включают:
Тип данных
Класс памяти
Значение (параметры)
Начальное значение (сигналы)
Идентификатор (задают другое имя в сгенерированном коде),
Размерность (обычно наследованный для параметров)
Сложность (наследованный для параметров)
Модуль (физический модуль измерения)
Минимальное значение
Максимальное значение
Описание (раньше документировал ваши объекты данных — не влияет на симуляцию или генерацию кода),
Можно создать и смотреть объекты данных базового рабочего пространства путем ввода команд в командное окно MATLAB или при помощи Model Explorer. Чтобы исследовать объекты данных сигнала базового рабочего пространства, используйте эти шаги:
Открытый rtwdemo_throttlecntrl_datainterface
и сохраните копию как throttlecntrl_datainterface
в перезаписываемом месте на вашем пути MATLAB.
Открытый Model Explorer.
Выберите Base Workspace.
Выберите 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'
Чтобы просмотреть другие объекты сигнала, в Model Explorer, кликают по имени объекта или в командном окне MATLAB, вводят имя объекта. Эта таблица суммирует характеристики объектов для некоторых объектов данных в этой модели.
Характеристики объектов | pos_cmd_one | pos_rqst | P_InErrMap | ThrotComm * | ThrottleCommands * |
---|---|---|---|---|---|
Описание | Выход верхнего уровня | Вход верхнего уровня | Калибровочный параметр | Структура output верхнего уровня | Соедините шиной определение |
Тип данных | 'double' | 'double' | 'auto' | 'auto' | Структура |
Класс памяти | Экспортируемая глобальная переменная | Импортированный указатель экстерна | Постоянный | Экспортируемая глобальная переменная | 'none' |
* ThrottleCommands
задает объект Bus; ThrotComm
инстанцирование шины. Если шина является невиртуальной шиной, сигнал генерирует структуру в коде С.
Можно использовать определение шины (ThrottleCommands
) инстанцировать нескольких экземпляров структуры. В диаграмме модели объект шины появляется как широкая линия с центральными тире, как показано.
Можно создать объекты данных для именованных сигналов, состояний и параметров. Чтобы сопоставить объект данных с построением, построение должно иметь имя.
Чтобы найти построения, для которых можно создать объекты данных, используйте Мастер Объекта данных. Этот инструмент находит построения и затем создает объекты для вас. Модель включает два сигнала, которые не сопоставлены с объектами данных: fbk_1
и pos_cmd_two
.
Найти сигналы и создать объекты данных для них:
В Редакторе Simulink, во вкладке Modeling, под Design, нажимают Data Object Wizard. Диалоговое окно Data Object Wizard открывается.
Чтобы найти построения кандидата, нажмите Find. Построения fbk_1
и pos_cmd_two
появитесь в диалоговом окне.
Чтобы выбрать оба построения, нажмите Select All.
В таблице, под Class, убеждаются, что каждый предложенный объект данных использует класс Simulink.Signal
. Чтобы изменить класс объектов, нажмите Change Class.
Чтобы создать объекты данных, нажмите Create. Построения fbk_1
и pos_cmd_two
удалены из диалогового окна.
Закройте мастер объекта данных.
В панели Contents Model Explorer найдите недавно созданные объекты fbk_1
и pos_cmd_two
.
Включите сигналу появиться в сгенерированном коде.
В Редакторе Simulink щелкните правой кнопкой по pos_cmd_one
сигнальная линия и выбирает Properties. Диалоговое окно Signal Properties открывается.
Убедитесь, что вы выбираете параметр Signal name must resolve to Simulink signal object.
Включите объектное разрешение сигнала для сигналов в модели. В командном окне MATLAB, введите:
disableimplicitsignalresolution('throttlecntrl_datainterface')
Сохраните и закройте throttlecntrl_datainterface
.
В моделях контроллеров дросселя типы данных установлены в double
. Поскольку программное обеспечение Simulink использует double
тип данных для симуляции, не ожидайте изменения в поведении модели, когда вы запустите сгенерированный код. Вы проверяете этот эффект путем выполнения тестовой обвязки.
Прежде чем вы запустите свою тестовую обвязку, обновите ее, чтобы включать throttlecntrl_datainterface
модель.
Примечание
Следующая процедура требует лицензии Stateflow.
Открытый throttlecntrl_datainterface
.
Откройте свою копию тестовой обвязки, throttlecntrl_testharness
.
Щелкните правой кнопкой по Unit_Under_Test
Блок Model и выбирает Block Parameters (ModelReference).
Установите Model name на throttlecntrl_datainterface
. Нажмите OK.
Обновите диаграмму модели тестовой обвязки.
Симулируйте тестовую обвязку.
Получившийся график показывает, что различие между золотыми и симулированными версиями модели остается нуль.
Сохраните и закройте throttlecntrl_testharness
.
Объекты данных существуют в отдельном файле из модели в базовом рабочем пространстве. Чтобы сохранить данные вручную, в командном окне MATLAB, вводят save
.
Разделение данных из модели предоставляет следующие преимущества:
Одна модель, несколько наборов данных:
Использование различных значений параметров, чтобы изменить поведение алгоритма управления (например, для допускающих повторное использование компонентов с различными калибровочными значениями)
Использование различных типов данных, чтобы изменить предназначенное оборудование (например, для и фиксированной точки с плавающей точкой предназначался для оборудования),
Многоуровневые модели, один набор данных:
Обмен данными между моделями в системе
Осуществляя обмен данными между проектами (например, передача, механизм и контроллеры колеса могут использовать тот же набор данных сообщения CAN),
Можно объявить данные в моделях Simulink и диаграммах Stateflow при помощи объектов данных или прямой спецификации.
От Model Explorer или из командной строки в командном окне MATLAB, справьтесь (создайте, просмотрите, сконфигурируйте, и так далее), данные о базовом рабочем пространстве.
Мастер Объекта данных обеспечивает быстрый способ создать объекты данных для построений, таких как сигналы, шины и параметры.
Сконфигурируйте объекты данных явным образом, чтобы появиться по наименованию в сгенерированном коде.
Разделение данных из модели предоставляет несколько преимуществ.