exponenta event banner

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

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

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

    Атрибуты Simulink/Signal

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

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

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

  • Data Type Conversion block

Описание

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

Примечание

Для управления типом выходных данных путем указания параметров блока или наследования типа данных из дочернего блока используйте блок преобразования типов данных. Для наследования типа данных из другого сигнала в модели используется блок «Наследование преобразования типа данных».

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

При преобразовании между типами данных с фиксированной точкой параметры ввода и вывода, чтобы иметь равные параметры, управляют поведением блока. Этот параметр не изменяет поведение блока в следующих случаях:

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

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

Дополнительные сведения о числах с фиксированной точкой см. в разделе Номера с фиксированной точкой в Simulink (Конструктор с фиксированной точкой).

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

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

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

num2hex(single(5))
40a00000

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

Приведение перечислимых сигналов

Используйте блок преобразования типа данных для приведения перечисляемых сигналов следующим образом:

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

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

  2. Приведение сигнала любого целого типа к сигналу перечисляемого типа.

    Значение, введенное в блок преобразования типов данных, должно соответствовать базовому значению перечисляемого значения. В противном случае во время моделирования возникает ошибка.

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

Нельзя использовать блок преобразования типов данных в следующих случаях:

  • Приведение неинтегрированного числового сигнала к перечислимому сигналу.

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

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

Порты

Вход

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

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

При преобразовании типов данных с фиксированной точкой используйте параметры Input и output, чтобы определить, выполняется ли преобразование на основе 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 использует минимум для выполнения:

Примечание

Минимальный выходной сигнал не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».

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

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

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

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

Примечание

Выходной максимум не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».

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

Параметр блока: 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'

Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли тип данных «Вывод», указанный в блоке. Дополнительные сведения см. в разделе Использование параметров типа выходных данных блокировки (конструктор фиксированных точек).

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

Параметр блока: 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

Округляет число до ближайшего представимого значения. Если возникает связь, округляется до ближайшего чётного целого числа. Эквивалентно Designer™ фиксированной точки convergent функция.

Floor

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

Nearest

Округляет число до ближайшего представимого значения. Если возникает галстук, округляется до положительной бесконечности. Эквивалентно конструктору фиксированных точек nearest функция.

Round

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

Simplest

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

Zero

Округляет число до нуля. Эквивалентно MATLAB fix функция.

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

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

См. также

Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).

Укажите, будут ли переполнения насыщаться или переноситься.

  • 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™

.

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

.

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

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