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

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

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

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

Описание

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

Примечание

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

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

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

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

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

Для получения дополнительной информации о числах фиксированной точки, смотрите Числа Фиксированной точки в 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 должен совпадать с базовым значением перечисляемого значения. В противном случае ошибка происходит во время моделирования.

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

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

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

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

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

Порты

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

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

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

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | перечисленный

Вывод

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

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | перечисленный

Параметры

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

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

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

Примечание

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

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

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

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

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

Примечание

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

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

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

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

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

Блочный параметр: OutDataTypeStr
Ввод: символьный вектор
Значения: 'Наследуйтесь: Наследуйтесь через обратное распространение' | 'дважды' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16', 'int32' | 'uint32' | 'fixdt (1,16)' | 'fixdt (1,16,0)' | 'fixdt (1,16,2^0,0)' | 'Перечисление: <имя класса>'' <выражение типа данных>'
Значение по умолчанию: 'Inherit: Inherit via back propagation'

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили тип Выходных данных, который вы задаете на блоке. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (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
Ввод: символьный вектор
Значения: 'Значение реального мира (RWV)' | 'Сохраненное целое число (SI)'
Значение по умолчанию: 'Real World Value (RWV)'

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

Ceiling

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

Convergent

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

Пол

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

Самый близкий

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

Вокруг

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

Simplest

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

Zero

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

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

Блочный параметр: RndMeth
Ввод: символьный вектор
Значения: 'Потолок' | 'Конвергентный' | 'Пол' | 'Самый близкий' | 'Вокруг' | 'Самый Простой' | 'Нуль'
Значение по умолчанию: пол

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

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

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

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

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

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

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

Совет

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

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

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

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

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

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

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

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

Зависимости

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

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

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

Блокируйте характеристики

Типы данных

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

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

No

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

Yes

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

Yes

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

No

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

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

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

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

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

Была ли эта тема полезной?