Термин data type относится к тому, как компьютеры представляют информацию в памяти. Тип данных определяет объем памяти, выделенной для данных, способ кодирования значения данных как шаблона двоичных цифр и операции, доступные для манипулирования данными.
Можно задать тип объекта данных в Property Inspector или в Model Explorer. В поле Type выберите тип из выпадающего списка или введите выражение, которое вычисляет тип данных. Для получения дополнительной информации смотрите Задать свойства данных.
Кроме того, используйте Data Type Assistant, чтобы задать Mode данных и выбрать тип данных на основе этого режима:
В Model Explorer на панели Data нажмите кнопку Show data type assistant.
Выберите Mode из раскрывающегося списка. Список доступных режимов зависит от возможностей объекта данных.
Возможности | Способы |
---|---|
Local | Inherit (доступно только в графиках, которые используют MATLAB® как язык действий), Built in , Fixed point , Enumerated , Bus object , Expression |
Constant | Built in , Fixed point , Expression |
Parameter | Inherit , Built in , Fixed point , Enumerated , Bus object , Expression |
Input | Inherit , Built in , Fixed point , Enumerated , Bus object , Expression |
Output | Inherit , Built in , Fixed point , Enumerated , Bus object , Expression |
Data Store Memory | Inherit |
Укажите дополнительную информацию в зависимости от режима. Помощник по типам данных заполняет поле Type на основе спецификации.
Способ | Типы данных |
---|---|
Inherit | Вы не можете задать тип данных. Тип данных наследуется на основе возможностей, выбранной для объекта данных:
Для получения дополнительной информации см. Раздел «Наследование типов данных из объектов Simulink». |
Built in | Укажите тип данных из выпадающего списка поддерживаемых типов данных:
|
Fixed point | Укажите следующую информацию о данных с фиксированной точкой:
Для получения дополнительной информации см. раздел «Свойства данных с фиксированной точкой». |
Enumerated | Укажите имя класса для перечисляемого типа данных. Для получения дополнительной информации см. раздел «Определение перечисленных типов данных». |
Bus object | Задайте имя |
Expression | Задайте выражение, которое вычисляет тип данных. Используйте одно из следующих выражений:
Для получения дополнительной информации смотрите Задать свойства данных при помощи выражений MATLAB. |
Чтобы сохранить настройки типа данных, нажмите Apply.
Помощник по типам данных доступен только через Model Explorer.
Когда вы выбираете Inherit: Same as Simulink
из выпадающего списка Type объекты данных возможностей Input
, Output
, Parameter
, и Data Store Memory
наследовать их типы данных от объектов Simulink.
Возможности | Описание |
---|---|
Input | Наследует тип от входного сигнала Simulink, соединенного с соответствующим входным портом на графике. |
Output | Наследует тип от выходного сигнала Simulink, соединенного с соответствующим выходным портом на графике. Избегайте наследования типов данных от выходных сигналов. Значения, которые распространяются назад из блоков Simulink, могут быть непредсказуемыми. |
Parameter | Наследует тип от соответствующей переменной базового рабочего пространства MATLAB или параметра Simulink в маскированной подсистеме. |
Data Store Memory | Наследует тип из соответствующего хранилища данных Simulink. |
Чтобы определить типы данных, которые наследуют объекты:
Создайте модель Simulink.
Откройте Model Explorer.
На панели Contents проверьте столбец CompiledType.
Можно использовать type
оператор для вывода типов данных из других объектов данных Stateflow:
type(data_obj)
sf_bus_demo
, выражение type(inbus)
возвращает тип данных структуры входа inbus
. Потому что inbus
выводит свой тип из Simulink.Bus
COUNTERBUS объекта
, тип данных локальной структуры counterbus_struct
также получает свой тип данных из COUNTERBUS
.После создания модели в CompiledType столбце Model Explorer показан тип, используемый в скомпилированном приложении симуляции.
Можно задать тип данных Stateflow с помощью псевдонима типа данных Simulink. Для получения дополнительной информации смотрите Simulink.AliasType
(Simulink).
Например, предположим, что вы хотите задать псевдоним типа данных MyFloat
который соответствует встроенному типу данных single
. В командной строке MATLAB введите:
MyFloat = Simulink.AliasType;
MyFloat.BaseType = 'single';
Чтобы использовать этот псевдоним для задания типа объекта данных, выберите объект в Property Inspector или в Model Explorer. В Type поле введите имя псевдонима MyFloat
.
После создания модели в CompiledType столбце Model Explorer показан тип, используемый в скомпилированном приложении симуляции.
По умолчанию свойство Use Strong Data Typing with Simulink I/O графика позволяет C графикам непосредственно взаимодействовать с сигналами от моделей Simulink. График принимает только входные сигналы, тип данных которых совпадает с типом соответствующего объекта данных Stateflow. В противном случае возникает ошибка несоответствия типа. Например, путем выбора Use Strong Data Typing with Simulink I/O можно пометить несоответствия между входными или выходными данными с фиксированной точкой в графиках и их аналогами в моделях Simulink. Для получения дополнительной информации смотрите Задать свойства для диаграмм Stateflow.
Если вы очищаете свойство Use Strong Data Typing with Simulink I/O chart, график преобразует входные сигналы типа double
к типу соответствующего объекта входных данных на графике. График преобразует объекты выходных данных в объекты типа double
перед экспортом их в качестве выходных сигналов в модели Simulink.
Примечание
Свойство Use Strong Data Typing with Simulink I/O график предусмотрено для обратной совместимости. Снятие этого флажка может привести к непредсказуемым результатам и не рекомендуется.
fixdt
(Simulink) | Simulink.AliasType
(Simulink) | Simulink.NumericType
(Simulink)