Sqrt

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

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

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

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

  • Sqrt block

Описание

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

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

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

u0.5

sqrt
signedSqrt

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

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

rSqrt

Взаимный квадратный корень входного входа

u-0.5

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

Порты

Вход

расширить все

Входной сигнал к блоку, чтобы вычислить квадратный корень, квадратный корень со знаком или обратную связь квадратного корня. The 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'

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

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

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

Типы с плавающей точкой, с фиксированной точкой и встроенные целые типы

Вам нужен быстрый, приблизительный расчет.

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

Примечание

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

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

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

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

Примечание

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

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

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

Типы данных

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

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

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

Примечание

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

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

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

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

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

Внимание

Не устанавливайте 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', '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 игнорирует эту настройку. Вместо этого установите минимальные значения для элементов шины объекта шины, заданные как тип данных. Для получения информации о параметре Minimum для элемента шины смотрите Simulink.BusElement.

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

Примечание

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

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

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

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

Примечание

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

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

Примечание

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

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

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

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

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

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

Выберите, чтобы заблокировать настройку типа выходных данных этого блока от изменений с помощью Fixed-Point Tool и Fixed-Point Advisor. Для получения дополнительной информации смотрите Использование настройки типа выходных данных блокировки (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++ с помощью Coder™ Simulink ®

.

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

.

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

Введенный в R2010a