Термин «тип данных» относится к тому, как компьютеры представляют информацию в памяти. Тип данных определяет объем памяти, выделенной данным, способ кодирования значения данных в виде шаблона двоичных цифр и операции, доступные для манипулирования данными.
Тип объекта данных можно указать в инспекторе свойств или в обозревателе моделей. В поле Тип выберите тип из выпадающего списка или введите выражение, которое вычисляет тип данных. Дополнительные сведения см. в разделе Задание свойств данных.
Кроме того, с помощью помощника по типам данных можно указать режим данных и выбрать тип данных на основе этого режима:
В обозревателе моделей на панели Данные (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 |
Укажите дополнительную информацию в зависимости от режима. Помощник по типам данных заполняет поле Тип в соответствии со спецификацией.
| Способ | Типы данных |
|---|---|
Inherit | Невозможно указать тип данных. Тип данных наследуется на основе области, выбранной для объекта данных:
Дополнительные сведения см. в разделе Наследование типов данных из объектов Simulink. |
Built in | Укажите тип данных из раскрывающегося списка поддерживаемых типов данных:
|
Fixed point | Укажите следующую информацию о данных фиксированной точки:
Дополнительные сведения см. в разделе Свойства данных фиксированной точки. |
Enumerated | Укажите имя класса для перечисляемого типа данных. Дополнительные сведения см. в разделе Определение перечисляемых типов данных. |
Bus object | Укажите имя |
Expression | Укажите выражение, которое вычисляет тип данных. Используйте одно из следующих выражений:
Дополнительные сведения см. в разделе Задание свойств данных с помощью выражений MATLAB. |
Чтобы сохранить параметры типа данных, нажмите кнопку Применить.
Помощник по типам данных доступен только через обозреватель моделей.
При выборе Inherit: Same as Simulink из выпадающего списка Тип объекты данных области Input, Output, Parameter, и Data Store Memory наследуют свои типы данных от объектов Simulink.
| Объем | Описание |
|---|---|
Input | Наследование типа из входного сигнала Simulink, подключенного к соответствующему входному порту на диаграмме. |
Output | Наследует тип выходного сигнала Simulink, подключенного к соответствующему выходному порту на диаграмме. Избегайте наследования типов данных из выходных сигналов. Значения, которые обратно распространяются из блоков Simulink, могут быть непредсказуемыми. |
Parameter | Наследует тип от соответствующей переменной базовой рабочей области MATLAB или параметра Simulink в маскированной подсистеме. |
Data Store Memory | Наследует тип из соответствующего хранилища данных Simulink. |
Чтобы определить типы данных, наследуемые объектами:
Создайте модель Simulink.
Откройте обозреватель моделей.
На панели «Содержимое» проверьте столбец CompiledType.
Вы можете использовать type для получения типов данных из других объектов данных Stateflow:
type(data_obj)
sf_bus_demo, выражение type(inbus) возвращает тип данных входной структуры inbus. Поскольку inbus извлекает его тип из Simulink.Bus объект COUNTERBUS, тип данных локальной структуры counterbus_struct также извлекает тип данных из COUNTERBUS.
После построения модели в столбце CompiledType обозревателя моделей отображается тип, используемый в скомпилированном приложении моделирования.
Тип данных Stateflow можно указать с помощью псевдонима типа данных Simulink. Дополнительные сведения см. в разделе Simulink.AliasType (Симулинк).
Например, предположим, что необходимо определить псевдоним типа данных MyFloat который соответствует встроенному типу данных single. В командной строке MATLAB введите:
MyFloat = Simulink.AliasType;
MyFloat.BaseType = 'single';Чтобы использовать этот псевдоним для указания типа объекта данных, выберите объект в инспекторе свойств или обозревателе моделей. В поле Тип введите имя псевдонима MyFloat.
После построения модели в столбце CompiledType обозревателя моделей отображается тип, используемый в скомпилированном приложении моделирования.
По умолчанию свойство Использовать строгий ввод данных с диаграммой ввода/вывода Simulink позволяет диаграммам C напрямую взаимодействовать с сигналами от моделей Simulink. Диаграмма принимает только входные сигналы, тип данных которых соответствует типу соответствующего объекта данных Stateflow. В противном случае возникает ошибка несоответствия типов. Например, выбрав параметр «Использовать строгий ввод данных с Simulink I/O», можно отметить несоответствие между входными или выходными данными с фиксированной точкой в диаграммах и их аналогами в моделях Simulink. Дополнительные сведения см. в разделе Задание свойств для диаграмм потока состояний.
Если очистить свойство «Использовать строгий ввод данных с диаграммой ввода/вывода Simulink», диаграмма преобразует входные сигналы типа double к типу соответствующего объекта входных данных на диаграмме. Диаграмма преобразует объекты выходных данных в тип double перед их экспортом в качестве выходных сигналов в модели Simulink.
Примечание
Для обеспечения обратной совместимости предусмотрено свойство «Использовать строгий ввод данных с диаграммой ввода-вывода Simulink». Снятие этого флажка может привести к непредсказуемым результатам и не рекомендуется.
fixdt (Simulink) | Simulink.AliasType (Simulink) | Simulink.NumericType (Симулинк)