Data Type Conversion

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

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

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

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

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

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

  • Data Type Conversion block

Описание

Блок 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 | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated

Вывод

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

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

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | 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' | 'half' | '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

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

Floor

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

Nearest

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

Round

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

Simplest

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

Zero

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

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

Параметры блоков: 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 | half | integer | single

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

yes

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

yes

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

yes

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

no

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

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

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

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

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