Sqrt

Вычислите квадратный корень, подписанный квадратный корень или обратную величину квадратного корня

  • Библиотека:
  • Simulink / Математические операции

    HDL Coder / Операции Плавающей точки HDL

    HDL Coder / Математические операции

  • Sqrt block

Описание

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

ФункцияОписаниеМатематическое выражение MATLAB® Equivalent
sqrt

Квадратный корень из входа

u0.5

sqrt
signedSqrt

Квадратный корень из абсолютного значения входа, умноженного на знак входа

знак (u) * |u|0.5

rSqrt

Обратная величина квадратного корня из входа

u-0.5

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

Порты

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

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

Входной сигнал с блоком, чтобы вычислить квадратный корень, подписанный квадратный корень или обратную величину квадратного корня. sqrt функция принимает действительные или комплексные входные параметры, за исключением комплексных сигналов фиксированной точки. signedSqrt и rSqrt не принимайте комплексные входные параметры. Входной сигнал должен быть числом с плавающей точкой.

Эта таблица суммирует поддержку составных типов и отрицательные величины для плавающей точки, целого числа и типов данных с фиксированной точкой для sqrt, rSqrt, и signedSqrt функции.

ФункцияТип данныхКомплексОтрицательные величины
Входной параметрВывод
sqrtПлавающая точкаДаДаДа
 Целочисленная и фиксированная точкаНетНетНет

rSqrt

Плавающая точкаНетНетДа
 Целочисленная и фиксированная точкаНетНетНет
signedSqrtПлавающая точкаНетДаДа
 Целочисленная и фиксированная точкаНетНетНет

Если вход отрицателен, установите Output signal объединять для всех функций кроме signedSqrt.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Вывод

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

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

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Параметры

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

Основной

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

ФункцияБлокируйте значок
sqrt
signedSqrt
rSqrt

Зависимость

Когда этот параметр устанавливается на signedSqrt, параметр Intermediate results data type отключен.

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

Параметры блоков: Operator
Ввод: символьный вектор
Значения: 'sqrt' | 'signedSqrt' | 'rSqrt'
Значение по умолчанию: 'sqrt'

Задайте тип выходного сигнала блока.

ФункцияТип входного сигналаТип выходного сигнала
'auto'ДействительныйКомплекс

sqrt

real

real для неотрицательных входных параметров

NaN для отрицательных входных параметров

real для неотрицательных входных параметров

NaN для отрицательных входных параметров

complex

complex

complex

error

complex

signedSqrt

real

real

real

complex

complex

error

error

error

rSqrt

real

real

real

error

complex

error

error

error

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

Параметры блоков: OutputSignalType
Ввод: символьный вектор
Значения: 'auto' | 'real' | 'complex'
Значение по умолчанию: 'auto'

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

Зависимости

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

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

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

Алгоритм

Задайте метод для вычисления обратной величины квадратного корня. Этот параметр только допустим для rSqrt функция.

МетодПоддерживаемые типы данныхКогда использовать этот метод
Exact

Плавающая точка

Вы не хотите приближение.

Примечание

Ввод или вывод должен быть плавающей точкой.

Newton-Raphson

Фиксированная точка с плавающей точкой и встроенные целочисленные типы

Вы хотите быстрое, приближенное вычисление.

Exact метод обеспечивает результаты, которые сопоставимы с расчетами MATLAB.

Примечание

Алгоритмы для sqrt и signedSqrt всегда имеют Exact введите, неважно, какой выбор появляется на диалоговом окне блока.

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

Параметры блоков: AlgorithmType
Ввод: символьный вектор
Значения: 'Exact' | 'Newton-Raphson'
Значение по умолчанию: 'Exact'

Задайте количество итераций, чтобы выполнить алгоритм Ньютона-Raphson. Этот параметр допустим с rSqrt функционируйте и Newton-Raphson значение для Method.

Примечание

Если вы входите 0, блок выход является исходным предположением алгоритма Ньютона-Raphson.

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

Параметры блоков: Iterations
Ввод: символьный вектор
Значения: целое число
Значение по умолчанию: '3'

Типы данных

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.

Задайте тип данных для промежуточных результатов, когда вы установите Function на sqrt или rSqrt на панели Main.

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

Примечание

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

Следуйте этим инструкциям по установке промежуточного типа данных явным образом для функции квадратного корня, sqrt:

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

Следуйте этим инструкциям по установке промежуточного типа данных явным образом для взаимной функции квадратного корня, rSqrt:

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

Внимание

Не устанавливайте Intermediate results data type на Inherit:Inherit from output когда:

  • Вы выбираете Newton-Raphson вычислить обратную величину квадратного корня.

  • Тип входных данных является плавающей точкой.

  • Тип выходных данных является фиксированной точкой.

При этих условиях, выбор Inherit:Inherit from output дает к субоптимальной эффективности и производит ошибку.

Чтобы избежать этой ошибки, преобразуйте входной сигнал от с плавающей точкой до типа данных с фиксированной точкой. Например, вставьте блок Data Type Conversion перед блоком Sqrt, чтобы выполнить преобразование.

Зависимости

Этот параметр отключен, когда параметр Function устанавливается на signedSqrt.

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

Параметры блоков: IntermediateResultsDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via internal rule' | 'Inherit: Inherit from input' | 'Inherit: Inherit from output' | 'double' | 'single'int8uint8int16uint16int32uint32int64uint64, fixdt(1,16,0), fixdt(1,16,2^0,0). '<data type expression>'
Значение по умолчанию: 'Inherit: Inherit via internal rule'

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

Зависимости

Когда введенный тип данных с плавающей точкой, меньший, чем одинарная точность, Inherit: Inherit via internal rule тип выходных данных зависит от установки Того, чтобы наследовать выходной тип с плавающей точкой, меньший, чем параметр конфигурации одинарной точности. Типы данных меньше, чем одинарная точность, когда количество битов должно было закодировать тип данных, меньше, 32 бита должны были закодировать тип данных с одинарной точностью. Например, half и int16 меньше, чем одинарная точность.

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

Параметры блоков: OutDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via internal rule' | 'Inherit: Inherit via back propagation' | 'Inherit: Same as first input' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | int16 | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | fixdt(1,16,0) | fixdt(1,16,2^0,0) | fixdt(1,16,2^0,0) | '<data type expression>'
Значение по умолчанию: 'Inherit: Same as first input'

Задайте нижнее значение выходной области значений, которую Simulink® проверяет как конечное, действительное, дважды, скалярное значение.

Примечание

Если вы задаете объект шины как тип данных для этого блока, не устанавливайте минимальное значение для данных о шине по блоку. Simulink игнорирует эту установку. Вместо этого установите минимальные значения для элементов шины объекта шины, заданного как тип данных. Для получения информации о Минимальном параметре для элемента шины смотрите Simulink.BusElement.

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

Примечание

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

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

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

Задайте верхнее значение выходной области значений что Simulink Check как конечное, действительное, дважды, скалярное значение.

Примечание

Если вы задаете объект шины как тип данных для этого блока, не устанавливайте максимальное значение для данных о шине по блоку. Simulink игнорирует эту установку. Вместо этого установите максимальные значения для элементов шины объекта шины, заданного как тип данных. Для получения информации о Максимальном параметре для элемента шины смотрите Simulink.BusElement.

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

Примечание

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

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

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

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

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

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

Выберите, чтобы заблокировать установку типа выходных данных этого блока против изменений Fixed-Point Tool и Советником Фиксированной точки. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).

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

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

ДействиеПричины принятия этих мерЧто происходит для переполненияПример

Установите этот флажок.

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

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

Максимальное значение, что int8 (8-битное целое число со знаком) тип данных может представлять, 127. Любой результат блочной операции, больше, чем это максимальное значение, вызывает переполнение 8-битного целого числа. С установленным флажком блок выход насыщает в 127. Точно так же блок выход насыщает в минимальном выходном значении-128.

Не устанавливайте этот флажок.

Вы хотите оптимизировать КПД своего сгенерированного кода.

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

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

Максимальное значение, что int8 (8-битное целое число со знаком) тип данных может представлять, 127. Любой результат блочной операции, больше, чем это максимальное значение, вызывает переполнение 8-битного целого числа. Со снятым флажком программное обеспечение интерпретирует вызывающее переполнение значение как int8, который может привести к непреднамеренному результату. Например, результат блока 130 (двоичный файл 1000 0010) описанный как int8,-126.

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

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

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

Характеристики блока

Типы данных

double | fixed point | half | integer | single

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

yes

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

yes

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

yes

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

no

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

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

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

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

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

|

Введен в R2010a