Задайте тип данных 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, 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. Укажите дополнительную информацию на основе режима. Ассистент Типа данных заполняет поле Type на основе вашей спецификации.

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

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

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

    Built in

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

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

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

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

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

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

    • uint32: 32-битное беззнаковое целое.

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

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

    • boolean: булевская переменная (1 = true; 0 = false).

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

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

    Fixed point

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

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

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

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

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

    Enumerated

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

    Bus object

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

    Expression

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

    Для получения дополнительной информации смотрите, Вводят Выражения и Параметры для Свойств данных.

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

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

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

Когда вы выбираете Inherit: Same as Simulink из Type выпадающий список, объекты данных осциллографа Input, Output, 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 обеспечивается для обратной совместимости. Снятие этого флажка может привести к непредсказуемым результатам и не рекомендуется.

Похожие темы