Data Type Conversion

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

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

    Атрибуты Simulink/Signal

    HDL-кодер/обычно используемые блоки

    Операции HDL-кодера/HDL с плавающей точкой

    Атрибуты HDL-кодера/сигнала

  • 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 проверяет.

Simulink использует минимум для выполнения:

Примечание

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

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

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

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

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'

Выберите этот параметр, чтобы предотвратить переопределение инструментами с фиксированной точкой типа данных 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++ с помощью Coder™ Simulink ®

.

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

.

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

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