exponenta event banner

Укажите тип данных потока состояний

Термин «тип данных» относится к тому, как компьютеры представляют информацию в памяти. Тип данных определяет объем памяти, выделенной данным, способ кодирования значения данных в виде шаблона двоичных цифр и операции, доступные для манипулирования данными.

Задание типа данных с помощью помощника по типам данных

Тип объекта данных можно указать в инспекторе свойств или в обозревателе моделей. В поле Тип выберите тип из выпадающего списка или введите выражение, которое вычисляет тип данных. Дополнительные сведения см. в разделе Задание свойств данных.

Кроме того, с помощью помощника по типам данных можно указать режим данных и выбрать тип данных на основе этого режима:

  1. В обозревателе моделей на панели Данные (Data) нажмите кнопку Показать помощник по типу данных (Show data type assistant).

  2. Выберите Режим (Mode) из выпадающего списка. Список доступных режимов зависит от объема объекта данных.

    ОбъемСпособы
    LocalInherit (доступно только в диаграммах, в которых в качестве языка действий используется MATLAB ® ),Built in, Fixed point, Enumerated, Bus object, Expression
    ConstantBuilt in, Fixed point, Expression
    ParameterInherit, Built in, Fixed point, Enumerated, Bus object, Expression
    InputInherit, Built in, Fixed point, Enumerated, Bus object, Expression
    OutputInherit, Built in, Fixed point, Enumerated, Bus object, Expression
    Data Store MemoryInherit

  3. Укажите дополнительную информацию в зависимости от режима. Помощник по типам данных заполняет поле Тип в соответствии со спецификацией.

    СпособТипы данных
    Inherit

    Невозможно указать тип данных. Тип данных наследуется на основе области, выбранной для объекта данных:

    Дополнительные сведения см. в разделе Наследование типов данных из объектов Simulink.

    Built in

    Укажите тип данных из раскрывающегося списка поддерживаемых типов данных:

    • double: 64-разрядная двойная точность с плавающей запятой.

    • single: 32-разрядная одинарная точная плавающая точка.

    • half: Тип данных половинной точности занимает 16 бит памяти, но его представление с плавающей запятой позволяет обрабатывать более широкие динамические диапазоны, чем целочисленные или фиксированные типы данных одинакового размера. См. раздел Тип данных половинной точности в Simulink (конструктор фиксированных точек).

    • int64: 64-битное целое число со знаком.

    • int32: 32-разрядное целое число со знаком.

    • int16: 16-битное целое число со знаком.

    • int8: 8-битное целое число со знаком.

    • uint64: 64-разрядное целое число без знака.

    • uint32: 32-разрядное целое число без знака.

    • uint16: 16-битное целое число без знака.

    • uint8: 8-битное целое число без знака.

    • boolean: Логическое значение (1 = true; 0 = false).

    • ml: Ввод внутри массива MATLAB mxArray. Поддерживается только в диаграммах, использующих C в качестве языка действий. ml тип данных предоставляет данные Stateflow с преимуществами среды MATLAB, включая возможность назначения объекта данных Stateflow переменной MATLAB или передачи его в качестве аргумента функции MATLAB. ml данные не могут иметь область вне иерархии Stateflow. То есть, он не может иметь область Input или Output. Дополнительные сведения см. в разделе Тип данных ml.

    • string: Строка. Поддерживается только в диаграммах, использующих C в качестве языка действий. Дополнительные сведения см. в разделе Управление текстовой информацией с помощью строк.

    Fixed point

    Укажите следующую информацию о данных фиксированной точки:

    • Подпись: подписаны или не подписаны данные

    • Длина слова: битовый размер слова, которое содержит квантованное целое число. Большие размеры слов представляют большие значения с большей точностью, чем малые размеры слов. Значение по умолчанию - 16.

    • Масштабирование: метод масштабирования данных с фиксированной точкой во избежание условий переполнения и минимизации ошибок квантования. Метод по умолчанию: Binary point.

    Дополнительные сведения см. в разделе Свойства данных фиксированной точки.

    Enumerated

    Укажите имя класса для перечисляемого типа данных. Дополнительные сведения см. в разделе Определение перечисляемых типов данных.

    Bus object

    Укажите имя Simulink.Bus для связывания со структурой объекта шины Stateflow ®. Нажмите кнопку «Редактировать», чтобы создать или отредактировать объект шины в редакторе шин. Можно также наследовать свойства объекта шины из сигналов Simulink.

    Expression

    Укажите выражение, которое вычисляет тип данных. Используйте одно из следующих выражений:

    Дополнительные сведения см. в разделе Задание свойств данных с помощью выражений MATLAB.

  4. Чтобы сохранить параметры типа данных, нажмите кнопку Применить.

Помощник по типам данных доступен только через обозреватель моделей.

Наследование типов данных из объектов Simulink

При выборе Inherit: Same as Simulink из выпадающего списка Тип объекты данных области Input, Output, Parameter, и Data Store Memory наследуют свои типы данных от объектов Simulink.

ОбъемОписание
InputНаследование типа из входного сигнала Simulink, подключенного к соответствующему входному порту на диаграмме.
Output

Наследует тип выходного сигнала Simulink, подключенного к соответствующему выходному порту на диаграмме.

Избегайте наследования типов данных из выходных сигналов. Значения, которые обратно распространяются из блоков Simulink, могут быть непредсказуемыми.

ParameterНаследует тип от соответствующей переменной базовой рабочей области MATLAB или параметра Simulink в маскированной подсистеме.
Data Store MemoryНаследует тип из соответствующего хранилища данных Simulink.

Чтобы определить типы данных, наследуемые объектами:

  1. Создайте модель Simulink.

  2. Откройте обозреватель моделей.

  3. На панели «Содержимое» проверьте столбец CompiledType.

Деривация типов данных из других объектов данных

Вы можете использовать type для получения типов данных из других объектов данных Stateflow:

type(data_obj)
Например, в модели sf_bus_demo, выражение type(inbus) возвращает тип данных входной структуры inbus. Поскольку inbus извлекает его тип из Simulink.Bus объект COUNTERBUS, тип данных локальной структуры counterbus_struct также извлекает тип данных из COUNTERBUS.

После построения модели в столбце CompiledType обозревателя моделей отображается тип, используемый в скомпилированном приложении моделирования.

Задание типов данных с помощью псевдонима Simulink

Тип данных Stateflow можно указать с помощью псевдонима типа данных Simulink. Дополнительные сведения см. в разделе Simulink.AliasType (Симулинк).

Например, предположим, что необходимо определить псевдоним типа данных MyFloat который соответствует встроенному типу данных single. В командной строке MATLAB введите:

MyFloat = Simulink.AliasType;
MyFloat.BaseType = 'single';

Чтобы использовать этот псевдоним для указания типа объекта данных, выберите объект в инспекторе свойств или обозревателе моделей. В поле Тип введите имя псевдонима MyFloat.

После построения модели в столбце CompiledType обозревателя моделей отображается тип, используемый в скомпилированном приложении моделирования.

Сильная типизация данных с помощью Simulink Inputs и Outputs

По умолчанию свойство Использовать строгий ввод данных с диаграммой ввода/вывода Simulink позволяет диаграммам C напрямую взаимодействовать с сигналами от моделей Simulink. Диаграмма принимает только входные сигналы, тип данных которых соответствует типу соответствующего объекта данных Stateflow. В противном случае возникает ошибка несоответствия типов. Например, выбрав параметр «Использовать строгий ввод данных с Simulink I/O», можно отметить несоответствие между входными или выходными данными с фиксированной точкой в диаграммах и их аналогами в моделях Simulink. Дополнительные сведения см. в разделе Задание свойств для диаграмм потока состояний.

Если очистить свойство «Использовать строгий ввод данных с диаграммой ввода/вывода Simulink», диаграмма преобразует входные сигналы типа double к типу соответствующего объекта входных данных на диаграмме. Диаграмма преобразует объекты выходных данных в тип double перед их экспортом в качестве выходных сигналов в модели Simulink.

Примечание

Для обеспечения обратной совместимости предусмотрено свойство «Использовать строгий ввод данных с диаграммой ввода-вывода Simulink». Снятие этого флажка может привести к непредсказуемым результатам и не рекомендуется.

См. также

(Simulink) | (Simulink) | (Симулинк)

Связанные темы