Math Function

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

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

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

  • Math Function block

Описание

Блок Math Function выполняет многочисленные общие математические функции.

Совет

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

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

ФункцияОписаниеМатематическое выражение 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

Степень

знак (u) * |<reservedrangesplaceholder0>|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, когда хотите использовать векторные или матричные выходы.

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

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

Взаимное значение вещественного числа a задается как нуль функции:

f(x)=1xa

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

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

xi+1=xif(xi)f'(xi)=xi+(xiaxi2)=xi.(2axi)

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, который не принимает комплексные входы с фиксированной точкой. Для получения дополнительной информации см. раздел «Описание».

Зависимости

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

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

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

Зависимости

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

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

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

Выход

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

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

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

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

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

fi (value, 0, word_length, fraction_length)

fi (value, 0, word_length, word_length<reservedrangesplaceholder0>–1)

fi (value, 1, word_length, fraction_length)

fi (value, 1, word_length, word_length<reservedrangesplaceholder0>–2)

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

Параметры

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

Главный

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

Зависимость

Установка значения Function 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.

Зависимость

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

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

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

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

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

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

Зависимость

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

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

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

Задайте тип выходного сигнала блока Math Function следующим 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'

Количество итераций Ньютона-Рафсона, заданное как скаляр.

Зависимости

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

  • Function с reciprocal.

  • Algorithm method с Newton-Raphson.

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

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

Задайте шаг расчета как значение, отличное от -1. Для получения дополнительной информации см. Раздел «Задание шага расчета».

Зависимости

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

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

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

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

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

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

Примечание

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

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

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

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

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

Примечание

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

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

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

Задайте тип выходных данных. Вы можете установить его на:

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

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

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

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

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

Зависимости

  • Чтобы включить этот параметр, установите 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'

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

Зависимости

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

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

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

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

Параметры блоков всегда округлятся до ближайшего представимого значения. Чтобы контролировать округление параметров блоков, введите выражение с помощью функции округления 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++ с помощью Coder™ Simulink ®

.

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

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