Задайте тип данных Stateflow

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

Задайте тип данных при помощи ассистента типа данных

Можно задать тип объекта данных или в Property Inspector или в Model Explorer. В поле Type выберите тип из выпадающего списка или введите выражение, которое оценивает к типу данных. Для получения дополнительной информации смотрите Set Data Properties.

В качестве альтернативы используйте Ассистент Типа данных, чтобы задать данные Mode и выбрать тип данных на основе того режима:

  1. В Model Explorer, на панели Data, нажимают кнопку Show data type assistant.

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

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

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

    РежимТипы данных
    Inherit

    Вы не можете задать тип данных. Вы наследовали тип данных на основе осциллографа, который вы выбираете для объекта данных:

    Для получения дополнительной информации смотрите, Наследовали Типы данных от Объектов Simulink.

    Built in

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

    • double: 64-битная плавающая точка двойной точности.

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

    • int64: 64-битное целое число со знаком. int64 псевдоним типа для фиксированной точки fixdt(1,64,0).

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

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

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

    • uint64: 64-битное беззнаковое целое. uint64 псевдоним типа для фиксированной точки fixdt(0,64,0).

    • 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

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

    • Signedness: Подписываются ли данные или без знака

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

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

    Для получения информации смотрите Fixed-Point Data Properties.

    Enumerated

    Задайте имя класса для перечислимого типа данных. Для получения дополнительной информации смотрите, Задают Перечислимые Типы данных.

    Bus object

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

    Expression

    Задайте выражение, которое оценивает к типу данных. Используйте одно из этих выражений:

    Для получения дополнительной информации смотрите Specify Data Properties при помощи Выражений MATLAB.

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

Ассистент Типа данных доступен только через Model Explorer.

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

Когда вы выбираете Inherit: Same as Simulink от Type выпадающий список, объекты данных осциллографа Inputвывод , Parameter, и Data Store Memory наследуйте их типы данных от объектов Simulink.

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

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

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

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

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

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

  2. Откройте Model Explorer.

  3. В панели Contents исследуйте столбец CompiledType.

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

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

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

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

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

Можно задать тип данных Stateflow при помощи псевдонима типа данных Simulink. Для получения дополнительной информации смотрите Simulink.AliasType.

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

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

Чтобы использовать этот псевдоним, чтобы задать тип объекта данных, выберите объект в Property Inspector или Model Explorer. В поле Type введите имя псевдонима MyFloat.

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

Сильный ввод данных с вводами и выводами Simulink

По умолчанию свойство диаграммы Use Strong Data Typing with Simulink I/O позволяет графикам C взаимодействовать через интерфейс непосредственно с сигналами из моделей Simulink. График принимает только входные сигналы, тип данных которых совпадает с типом соответствующего объекта данных Stateflow. В противном случае ошибка несоответствия типов происходит. Например, путем выбора Use Strong Data Typing with Simulink I/O, можно отметить несоответствия между данными фиксированной точки ввода или вывода в графиках и их дубликатами в моделях Simulink. Для получения дополнительной информации смотрите Specify Properties для диаграмм Stateflow.

Если вы очищаете свойство диаграммы Use Strong Data Typing with Simulink I/O, график преобразует входные сигналы типа double к типу соответствующих входных данных возражают в графике. График преобразует объекты выходных данных ввести double прежде, чем экспортировать их как выходные сигналы к моделям Simulink.

Примечание

Свойство диаграммы Use Strong Data Typing with Simulink I/O обеспечивается для обратной совместимости. Снятие этого флажка может привести к непредсказуемым результатам и не рекомендуется.

Смотрите также

| |

Похожие темы