Преобразование типа данных

Преобразуйте входной сигнал в заданный тип данных

  • Библиотека:
  • Simulink / Обычно Используемые Блоки

    Simulink / Атрибуты Сигнала

    HDL Coder / Обычно Используемые Блоки

    HDL Coder / Операции Плавающей точки HDL

    HDL Coder / Атрибуты Сигнала

Описание

Блок Data Type Conversion преобразовывает входной сигнал любого типа данных Simulink® к типу данных, который вы задаете.

Примечание

Чтобы управлять типом выходных данных путем определения параметров блоков или наследовать тип данных от нисходящего блока, используют блок Data Type Conversion. Чтобы наследовать тип данных от различного сигнала в модели, используйте блок Data Type Conversion Inherited.

Преобразуйте сигналы фиксированной точки

Когда вы преобразовываете между типами данных с фиксированной точкой, поведением блока средств управления параметром Input and output to have equal. Этот параметр не изменяет поведение блока когда:

  • Ввод и вывод не имеет типа данных с фиксированной точкой.

  • Ввод или вывод имеет тип данных с фиксированной точкой с тривиальным масштабированием.

Для получения дополнительной информации о числах фиксированной точки, смотрите Числа Фиксированной точки в Simulink (Fixed-Point Designer).

Чтобы преобразовать сигнал от одного типа данных до другого путем попытки сохранить реальное значение входного сигнала, выберите Real World Value (RWV), настройку по умолчанию. Блок составляет ограничения, наложенные масштабированием ввода и вывода, и пытается сгенерировать вывод равного реального значения.

Чтобы изменить реальное значение входного сигнала путем выполнения масштабирующейся реинтерпретации сохраненного целочисленного значения, выберите Stored Integer (SI). В рамках заданных типов данных блок пытается сохранить сохраненное целочисленное значение сигнала во время преобразования. Лучшая практика состоит в том, чтобы задать типы входных и выходных данных с помощью того же размера слова и со знаком. Выполнение так гарантирует, что блок изменяет только масштабирование сигнала. Определение различного или размера слова со знаком для ввода и вывода могло привести к неожиданным результатам, таким как потеря области значений или неожиданные расширения знака. Для примера см. преобразование типов данных в Моделях Simulink.

Если вы выбираете Stored Integer (SI), блок не выполняет битную реинтерпретацию низшего уровня входного сигнала с плавающей точкой. Например, если вход является single и имеет значение 5, биты, которые хранят вход в памяти, поданы шестнадцатеричные следующей командой.

num2hex(single(5))
40a00000

Однако блок Data Type Conversion не обрабатывает сохраненное целочисленное значение как 40a00000, но вместо этого как реальное значение, 5. После преобразования сохраненным целочисленным значением вывода является 5.

Бросьте перечислимые сигналы

Используйте блок Data Type Conversion, чтобы бросить перечисленные сигналы можно следующим образом:

  1. Бросать сигнал перечислимого типа к сигналу любого числового типа.

    Базовые целые числа всего входа перечисляемых значений к блоку Data Type Conversion должны быть в области значений числового типа. В противном случае ошибка происходит во время симуляции.

  2. Бросать сигнал любого целочисленного типа к сигналу перечислимого типа.

    Вход значения к блоку Data Type Conversion должен совпадать с базовым значением перечисляемого значения. В противном случае ошибка происходит во время симуляции.

    Можно включить параметр Saturate on integer overflow так, чтобы Simulink использовал значение по умолчанию перечислимого типа, когда вход значения к блоку не совпадает с базовым значением перечисляемого значения. Смотрите Преобразование типа для Перечислений (Simulink Coder).

Вы не можете использовать блок Data Type Conversion в этих случаях:

  • Бросать нецелое число числовой сигнал к перечислимому сигналу.

  • Бросать комплексный сигнал к перечислимому сигналу, независимо от типов данных действительных и мнимых частей комплексного сигнала.

Смотрите Перечисления Simulink для получения информации о работе с перечислимыми типами.

Порты

Входной параметр

развернуть все

Входной сигнал, заданный как скаляр, вектор, матрица или массив N-D. Вход может быть любым действительным - или сигнал с комплексным знаком. Если вход действителен, вывод действителен. Если вход является комплексным, вывод является комплексным. Блок преобразовывает входной сигнал в Output data type, который вы задаете.

Когда вы преобразовываете типы данных с фиксированной точкой, используйте параметр Input and output to have equal, чтобы определить, происходит ли преобразование на основе Real World Value (RWV) или значения Stored Integer (SI) сигнала. Для получения дополнительной информации смотрите, Преобразовывают Сигналы Фиксированной точки.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated

Вывод

развернуть все

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

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated

Параметры

развернуть все

Нижнее значение выходной области значений это Simulink Check.

Simulink использует минимум, чтобы выполнить:

Примечание

Output minimum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.

Программируемое использование

Параметры блоков: OutMin
Ввод: символьный вектор
Значения: '[ ]' | скаляр
Значение по умолчанию: '[ ]'

Верхнее значение выходной области значений это Simulink Check.

Simulink использует максимальное значение, чтобы выполнить:

Примечание

Output maximum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.

Программируемое использование

Параметры блоков: OutMax
Ввод: символьный вектор
Значения: '[ ]' | скаляр
Значение по умолчанию: '[ ]'

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

Программируемое использование

Параметры блоков: OutDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>' '<data type expression>'
Значение по умолчанию: 'Inherit: Inherit via back propagation'

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили тип данных Output, который вы задаете на блоке. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).

Программируемое использование

Параметры блоков: LockScale
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Задайте, какой тип ввода и вывода должен быть равным в контексте представления данных фиксированной точки.

  • Real World Value (RWV) — Задает цель создания Real World Value (RWV) входа, равного Real World Value (RWV) вывода.

  • Stored Integer (SI) — Задает цель создания значения Stored Integer (SI) входа, равного значению Stored Integer (SI) вывода.

Программируемое использование

Параметры блоков: ConvertRealWorld
Ввод: символьный вектор
Значения: 'Real World Value (RWV)' | 'Stored Integer (SI)'
Значение по умолчанию: 'Real World Value (RWV)'

Выберите один из этих режимов округления.

Ceiling

Раунды и положительные и отрицательные числа к положительной бесконечности. Эквивалентный функции MATLAB® ceil.

Convergent

Номер раундов к самому близкому представимому значению. Если связь происходит, раунды к самому близкому даже целое число. Эквивалентный функции convergent Fixed-Point Designer™.

Floor

Раунды и положительные и отрицательные числа к отрицательной бесконечности. Эквивалентный функции floor MATLAB.

Nearest

Номер раундов к самому близкому представимому значению. Если связь происходит, раунды к положительной бесконечности. Эквивалентный Fixed-Point Designer функция nearest.

Round

Номер раундов к самому близкому представимому значению. Если связь происходит, округляет положительные числа к положительной бесконечности и округляет отрицательные числа к отрицательной бесконечности. Эквивалентный Fixed-Point Designer функция round.

Simplest

Автоматически выбирает между раундом к полу и вокруг к нулю, чтобы сгенерировать округление кода, который максимально эффективен.

Zero

Номер раундов к нулю. Эквивалентный функции fix MATLAB.

Программируемое использование

Параметры блоков: RndMeth
Ввод: символьный вектор
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
Значение по умолчанию: 'Floor'

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

Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).

Задайте, насыщает ли переполнение или переносится.

  • 'off' Переполнение переносится к соответствующему значению, которое может представлять тип данных.

    Например, номер 130 не помещается в 8-битное целое число со знаком и переносится к-126.

  • on — Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных.

    Например, переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщать к-128 или 127.

Совет

  • Рассмотрите установку этого флажка, когда ваша модель имеет возможное переполнение, и вы хотите явную защиту насыщения в сгенерированном коде.

  • Полагайте, что снятие этого флажка когда это необходимо оптимизирует эффективность вашего сгенерированного кода.

    Снятие этого флажка также помогает вам постараться не чрезмерно определять, как блок обрабатывает сигналы из области значений. Для получения дополнительной информации смотрите Проверку на Ошибки Диапазона сигнала.

  • Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, не только выводу или результату.

  • В целом процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщения.

Программируемое использование

Параметры блоков: SaturateOnIntegerOverflow
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Задайте шаг расчета как значение кроме-1. Для получения дополнительной информации см. Настройку времени выборки.

Зависимости

Этот параметр не видим, если он явным образом не установлен в значение кроме -1. Чтобы узнать больше, смотрите Блоки, для Которых Не Рекомендуется Шаг расчета.

Программируемое использование

Параметры блоков: SampleTime
Ввод: символьный вектор
Значения: скаляр
Значение по умолчанию: '-1'

Характеристики блока

Типы данных

Boolean | double | enumerated | fixed point | integer | single

Прямое сквозное соединение

yes

Многомерные сигналы

yes

Сигналы переменного размера

yes

Обнаружение пересечения нулем

no

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Генерация кода PLC
Сгенерируйте код Структурированного текста с помощью Simulink® PLC Coder™.

Преобразование фиксированной точки
Преобразуйте алгоритмы с плавающей точкой в фиксированную точку с помощью Fixed-Point Designer™.

Представлено до R2006a