exponenta event banner

Sqrt

Вычисление квадратного корня, квадратного корня со знаком или взаимности квадратного корня

  • Библиотека:
  • Операции с симуляцией/математикой

    Кодер HDL/Операции с плавающей точкой HDL

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

  • Sqrt block

Описание

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

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

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

u0.5

sqrt
signedSqrt

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

sign(u)*|u|0.5

rSqrt

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

u-0.5

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

Порты

Вход

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

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

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

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

rSqrt

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

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

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

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

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

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

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'

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

Примечание

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

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

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

Типы данных

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

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

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

Примечание

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

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

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

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

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

Внимание

Не устанавливать для типа данных Промежуточные результаты значение Inherit:Inherit from output когда:

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

  • Входной тип данных - плавающая точка.

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

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

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

Зависимости

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

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

Параметр блока: IntermediateResultsDataTypeStr
Текст: символьный вектор
Значения: 'Inherit: Inherit via internal rule' | 'Inherit: Inherit from input' | 'Inherit: Inherit from output' | 'double' | 'single', 'int8', 'uint8', int16, 'uint16', 'int32', 'uint32', 'int64', 'uint64', 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 тип выходных данных зависит от настройки выходного типа Inherit с плавающей запятой, меньшего, чем параметр конфигурации с одинарной точностью. Типы данных меньше, чем единичная точность, когда количество битов, необходимое для кодирования типа данных, меньше, чем 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 использует минимум для выполнения:

Примечание

Минимальный выходной сигнал не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».

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

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

Укажите верхнее значение диапазона вывода, которое Simulink проверяет как конечное, вещественное, двойное, скалярное значение.

Примечание

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

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

Примечание

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

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

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

Укажите режим округления для операций с фиксированной точкой. Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).

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

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

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

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

Параметр блока: 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™

.

Создание кода ПЛК
Создание структурированного текстового кода с помощью Coder™ Simulink ® PLC

.

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

Представлен в R2010a