Преобразование входного сигнала в указанный тип данных
Simulink/Часто используемые блоки
Атрибуты Simulink/Signal
Кодер HDL/обычно используемые блоки
Кодер HDL/Операции с плавающей точкой HDL
Атрибуты кодера/сигнала HDL
Блок преобразования типа данных преобразует входной сигнал любого типа данных Simulink ® в указанный тип данных.
Примечание
Для управления типом выходных данных путем указания параметров блока или наследования типа данных из дочернего блока используйте блок преобразования типов данных. Для наследования типа данных из другого сигнала в модели используется блок «Наследование преобразования типа данных».
При преобразовании между типами данных с фиксированной точкой параметры ввода и вывода, чтобы иметь равные параметры, управляют поведением блока. Этот параметр не изменяет поведение блока в следующих случаях:
Входные и выходные данные не имеют типа данных с фиксированной точкой.
Входные или выходные данные имеют фиксированный тип данных с тривиальным масштабированием.
Дополнительные сведения о числах с фиксированной точкой см. в разделе Номера с фиксированной точкой в Simulink (Конструктор с фиксированной точкой).
Чтобы преобразовать сигнал из одного типа данных в другой, пытаясь сохранить реальное значение входного сигнала, выберите Real World Value (RWV), значение по умолчанию. Блок учитывает пределы, налагаемые масштабированием входных и выходных данных, и пытается генерировать выходные данные равной реальной величины.
Чтобы изменить реальное значение входного сигнала, выполнив масштабирование, переинтерпретацию сохраненного целого значения, выберите Stored Integer (SI). В пределах указанных типов данных блок пытается сохранить сохраненное целое значение сигнала во время преобразования. Рекомендуется указывать типы входных и выходных данных, используя одинаковую длину слова и сигнатуру. Это гарантирует, что блок изменяет только масштабирование сигнала. Указание другой длины знака или слова для ввода и вывода может привести к неожиданным результатам, таким как потеря диапазона или неожиданные расширения знака. Пример см. в разделе Преобразование типов данных в моделях Simulink.
При выборе Stored Integer (SI)блок не выполняет переинтерпретацию битов более низкого уровня входного сигнала с плавающей запятой. Например, если входным значением является single и имеет значение 5, биты, хранящие входные данные в памяти, задаются в шестнадцатеричном формате следующей командой.
num2hex(single(5))
40a00000
Однако блок преобразования типа данных не рассматривает сохраненное целое значение как 40a00000, но вместо этого в качестве реальной стоимости, 5. После преобразования сохраненное целое значение выходного сигнала равно 5.
Используйте блок преобразования типа данных для приведения перечисляемых сигналов следующим образом:
Приведение сигнала перечисляемого типа к сигналу любого числового типа.
Базовые целые числа всех перечисленных значений, вводимых в блок преобразования типов данных, должны находиться в диапазоне числового типа. В противном случае во время моделирования возникает ошибка.
Приведение сигнала любого целого типа к сигналу перечисляемого типа.
Значение, введенное в блок преобразования типов данных, должно соответствовать базовому значению перечисляемого значения. В противном случае во время моделирования возникает ошибка.
Параметр Saturate on integer overflow можно включить, чтобы Simulink использовал значение по умолчанию перечисляемого типа, если значение, введенное в блок, не соответствует базовому значению перечисляемого значения. См. раздел Приведение типов для перечислений (Simulink Coder).
Нельзя использовать блок преобразования типов данных в следующих случаях:
Приведение неинтегрированного числового сигнала к перечислимому сигналу.
Приведение комплексного сигнала к перечислимому сигналу независимо от типов данных действительной и мнимой частей комплексного сигнала.
Сведения о работе с перечисляемыми типами см. в разделе Перечисления Simulink.
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
Преобразование типа данных унаследовано | Распространение типа данных | Масштабирование типа данных полосы