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