exponenta event banner

Математическая функция

Выполнение математической функции

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

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

  • Math Function block

Описание

Блок математической функции выполняет множество общих математических функций.

Совет

Для вычисления квадратного корня используйте блок Sqrt.

Одну из этих функций можно выбрать в списке Параметр функции (Function parameter).

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

Показательный

eu

exp
log

Натуральный логарифм

ln u

log
10^u

Мощность основания 10

10u

10.^u
(см. power)

log10

Общий (основание 10) логарифм

log u

log10
magnitude^2

Комплексный модуль

|u|2

real(u).^2 + imag(u).^2
(см. real, imag, и power)

square

Мощность 2

u2

u.^2
(см. power)

pow

Власть

sign(u)*|u|v (по умолчанию, применяется только для корней четного порядка) или uv

power
conj

Комплексный конъюгат

ū

conj
reciprocal с точным методом

Взаимный

1/u

1./u
(см. rdivide)

reciprocal методом Ньютона-Рафсона

Взаимный

См. Метод обратного алгоритма Ньютона-РафсонаНичего
hypot

Квадратный корень суммы квадратов

(u2+v2)0.5

hypot
rem

Остаток после разделения

rem
mod

Модуль после деления

mod
transpose

Переместить

uT

u.'
(см. «Массив и операции с матрицей»)

hermitian

Комплексное сопряженное транспонирование

uH

u'
(см. «Массив и операции с матрицей»)

Блочный выход является результатом работы функции на входе или входе. Функции поддерживают эти типы операций.

ФункцияСкалярные операцииВекторные и матричные операции по элементамВекторные и матричные операции
exp

Да

Да

log

Да

Да

10^u

Да

Да

log10

Да

Да

magnitude^2

Да

Да

square

Да

Да

pow

Да

Да

conj

Да

Да

reciprocal с точным методом

Да

Да

reciprocal методом Ньютона-Рафсона

Да

Да

hypot

Да, на двух входах

Да, на двух входах (два вектора или две матрицы одного размера, скаляр и вектор, скаляр и матрица)

rem

Да, на двух входах

Да, на двух входах (два вектора или две матрицы одного размера, скаляр и вектор, скаляр и матрица)

mod

Да, на двух входах

Да, на двух входах (два вектора или две матрицы одного размера, скаляр и вектор, скаляр и матрица)

transpose

Да

Да

hermitian

Да

Да

Имя функции отображается в блоке. Соответствующее количество входных портов появляется автоматически.

Совет

Используйте блок Математическая функция (Math Function), если требуется вывод вектора или матрицы.

Метод обратного алгоритма Ньютона-Рафсона

reciprocal функция с помощью метода алгоритма Ньютона-Рафсона вычисляет метод аппроксимации взаимности с методом аппроксимации Ньютона-Рафсона. Функция использует рекурсивное приближение, чтобы найти лучшие приближения к корням вещественной функции.

Обратное вещественное число a определяется как ноль функции:

f (x) = 1x − a

Simulink ® выбирает начальную оценку в диапазоне 0 < x0 < 2a, так как это область сходимости для функции.

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

xi + 1 = xi f (xi) f '(xi) = xi + (xi axi2) = xi. (2 − axi)

f '(x) является производной функции f (x).

Поддержка типов данных

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

Функцияодинокдваждыполовина *булеввстроенное целое числофиксированная точка

exp

Да

Да

Да

log

Да

Да

Да

10^u

Да

Да

Да

log10

Да

Да

Да

magnitude^2

Да

Да

Да

Да

Да

square

Да

Да

Да

Да

Да

pow

Да

Да

Да

conj

Да

Да

Да

Да

Да

reciprocal с точным методом

Да

Да

Да

Да

Да

reciprocal методом Ньютона-Рафсона

См. Вывод.

hypot

Да

Да

Да

rem

Да

Да

Да

Да

mod

Да

Да

Да

Да

transpose

Да

Да

Да

Да

Да

Да

hermitian

Да

Да

Да

Да

Да

Дополнительные сведения об арифметических операциях половинной точности см. в разделе Тип данных половинной точности в Simulink (Fixed-Point Designer).

Порты

Вход

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

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

Зависимости

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

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

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

Зависимости

Чтобы включить этот порт, установите для параметра Function значение hypot, rem, или mod.

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

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

Продукция

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

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

reciprocal с методом Ньютона-Рафсона

reciprocal при использовании метода Ньютона-Рафсона тип выходных данных зависит от типа входных данных:

Тип входных данныхТип выходных данных
одинокодинок
дваждыдважды
встроенное целое числовстроенное целое число
встроенная фиксированная точкавстроенная фиксированная точка

fi (значение, 0, word_length, fraction_length)

fi (значение, 0, word_length, word_length-fraction_length-1)

fi (значение, 1, word_length, fraction_length)

fi (значение, 1, word_length, word_length-fraction_length-2)

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

Параметры

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

Главный

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

Зависимость

Установка для функции значения pow включает параметр Signed power.

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

Параметр блока: Operator
Текст: символьный вектор
Значения: 'exp' | 'log' | '10^u' | 'log10' | 'magnitude^2' | 'square' | 'pow' | 'conj' | 'reciprocal' | 'hypot' | 'rem' | 'mod' | 'transpose' | 'hermitian'
По умолчанию: 'exp'

Метод алгоритма для reciprocal функция, указанная как Exact или Newton-Raphson. Для вычисления взаимности с помощью метода аппроксимации Ньютона-Рафсона выберите Newton-Raphson. В противном случае выберите Exact.

Зависимость

Установка для функции значения reciprocal включает этот параметр.

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

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

Этот параметр применяется только для корней четного порядка, таких как u1/2, u1/4 и т.д.

  • on - вычислить мощность абсолютного значения входа, умноженную на знак входа.

  • off - вычислить мощность фактического входного значения. Если первый вход отрицательный, а второй вход является корнем четного порядка, возврат nan.

Зависимость

Установка для функции значения pow включает этот параметр.

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

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

Укажите тип выходного сигнала блока математической функции как auto, real, или complex.

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

exp, log, 10u, log10, square, pow, reciprocal, conjugate, transpose, hermitian

real

complex

real

complex

real

error

complex

complex

magnitude squared

real

complex

real

real

real

real

complex

complex

hypot, rem, mod

real

complex

real

error

real

error

complex

error

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

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

Число итераций Ньютона-Рафсона, указанное как скаляр.

Зависимости

Чтобы включить этот параметр, установите:

  • Функция для reciprocal.

  • Метод алгоритма для Newton-Raphson.

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

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

Укажите время выборки в качестве значения, отличного от -1. Дополнительные сведения см. в разделе Указание времени образца.

Зависимости

Этот параметр не отображается, если для него явно не задано значение, отличное от -1. Дополнительные сведения см. в разделе Блоки, для которых образец времени не рекомендуется.

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

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

Атрибуты сигнала

Меньшее значение диапазона вывода, которое проверяет Simulink.

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

Примечание

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

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

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

Верхнее значение диапазона вывода, которое проверяет Simulink.

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

Примечание

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

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

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

Укажите тип выходных данных. Можно установить для него значение:

  • Правило, наследующее тип данных, например: Inherit: Inherit via back propagation

  • Имя встроенного типа данных, например: single

  • Имя объекта типа данных, например, Simulink.NumericType объект

  • Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)

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

Зависимости

  • Чтобы включить этот параметр, установите для параметра Function значение magnitude^2, square, или reciprocal.

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите для параметра Function значение magnitude^2, square, или reciprocal.

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

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

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

Параметры блока всегда округляются до ближайшего представимого значения. Для управления округлением параметра блока введите выражение с помощью функции округления MATLAB в поле маски.

Зависимости

Чтобы включить этот параметр, установите для параметра Function значение magnitude^2, square, или reciprocal.

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

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

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

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

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

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

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

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

Требуется оптимизировать эффективность созданного кода.

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите для параметра Function значение magnitude^2, square, conj, reciprocal, или hermitian.

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

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

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

Типы данных

Boolean | double | fixed point | half | integer | single

Прямой проход

yes

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

yes

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

yes

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

no

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

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

.
Представлен до R2006a