Преобразуйте входной сигнал в заданный тип данных
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, чтобы бросить перечисленные сигналы можно следующим образом:
Бросать сигнал перечислимого типа к сигналу любого числового типа.
Базовые целые числа всего входа перечисляемых значений с блоком Data Type Conversion должны быть в области значений числового типа. В противном случае ошибка происходит в процессе моделирования.
Бросать сигнал любого целочисленного типа к сигналу перечислимого типа.
Вход значения с блоком Data Type Conversion должен совпадать с базовым значением перечисляемого значения. В противном случае ошибка происходит в процессе моделирования.
Можно включить параметр Saturate on integer overflow так, чтобы Simulink использовал значение по умолчанию перечислимого типа, когда вход значения с блоком не совпадает с базовым значением перечисляемого значения. Смотрите Преобразование типа для Перечислений (Simulink Coder).
Вы не можете использовать блок Data Type Conversion в этих случаях:
Бросать нецелое число числовой сигнал к перечислимому сигналу.
Бросать комплексный сигнал к перечислимому сигналу, независимо от типов данных действительных и мнимых частей комплексного сигнала.
Смотрите Перечисления Simulink для получения информации о работе с перечислимыми типами.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Data Type Conversion Inherited | Data Type Propagation | Data Type Scaling Strip