Деление
Выполняет умножение и деление скаляров и нескаляров.
|
|
|
|
|
Описание
Блок Деление выводит результат умножения или деления входных сигналов.
Значок блока, выполняемая операция и количество портов меняются в зависимости от значения параметров Умножение и Количество входных сигналов.
В этой таблице показаны выходные данные блока Деление для примерных входных данных с использованием значений параметров блока:
-
Умножение:
Поэлементное(.*)
-
Количество входных сигналов:
*/
Входные данные | Поведение блока |
---|---|
скаляр ÷ скаляр |
Выводит результат деления первого входного скаляра на второй. |
скаляр ÷ нескаляр |
Выводит нескаляр, имеющий те же размеры, что и входной нескаляр. Каждый элемент выходного нескаляра является результатом деления входного скаляра на соответствующий элемент входного нескаляра. |
нескаляр ÷ нескаляр |
Выводит нескаляр, имеющий те же размеры, что и входные данные. Каждый элемент выходных данных является результатом деления элемента первого входного нескаляра на соответствующий элемент второго входного нескаляра. |
Блок Деление может:
-
Численно умножать и делить любое количество скалярных, векторных или матричных входных данных.
-
Выполнять матричное умножение и деление на любом количестве матричных входных данных.
Блок Деление выполняет поэлементное или матричное умножение или деление, в зависимости от значения параметра Умножение. Блок принимает один или несколько потоков входных данных, в зависимости от параметра Количество входных сигналов. Параметр Количество входных сигналов также определяет операцию, которую необходимо выполнить для каждого входа.
Входными данными для блока Деление может быть любая комбинация скаляров, векторов и матриц, для которых выполняемая операция имеет математически определенный результат. Блок выполняет указанные операции над входными данными, затем выводит результат.
Блок Деление имеет два режима:
-
Поэлементное(.*)
— обрабатывает нескалярные входные данные поэлементно. -
Матричное(*)
— обрабатывает нескалярные входные данные в виде матриц.
Поэлементный режим
Когда вы устанавливаете Умножение на Поэлементное(.*)
, блок Деление работает с отдельными числовыми элементами любых нескалярных входных данных. В режиме Поэлементное(.*)
блок Деление может выполнять различные операции умножения, деления и арифметической инверсии.
Значение параметра Количество входных сигналов определяет как количество входных данных, так и то, будет ли каждый из них умножен или разделен для формирования выходных данных.
Когда блок Деление находится в режиме Поэлементное(.*)
и имеет только один вход, он работает так, как описано в разделе Алгоритмы.
Чтобы вычислить выходные данные, блок сначала расширяет все входы до единого размера (используя стандартный broadcast), а затем выполняет поэлементные действия.
В этой таблице показаны выходные данные блока Деление для примерных входных данных с использованием указанных значений для параметра Количество входных сигналов.
Значения параметра | Пример |
---|---|
Количество входных сигналов: |
|
Количество входных сигналов: |
|
Количество входных сигналов: |
|
Количество входных сигналов: |
|
Количество входных сигналов: |
Матричный режим
Когда значение параметра Умножение равно Матричное(*)
, блок Деление обрабатывает нескалярные входные данные в виде матриц. В этом режиме блок Деление может инвертировать одну квадратную матрицу или умножать и делить любое количество матриц, размеры которых определены математически.
Значение параметра Количество входных сигналов определяет как количество существующих входных данных, так и то, будет ли каждая входная матрица умножена или разделена для формирования выходных данных. Синтаксис Количество входных сигналов такой же, как и для режима Поэлементное(.*)
. Разница между режимами заключается в типе умножения и деления.
Взаимодействия между входами блока и режимами
Взаимодействия между входными данными блока Деление и его режимами Умножение:
-
В параметре Количество входных сигналов заданы значения
1
,*
или/
.Блок имеет один входной порт. В режиме
Поэлементное(.*)
блок обрабатывает входные данные, как описано в разделе Алгоритмы. В режимеМатричное(*)
, если значение параметра равно1
или*
, то блок выводит входное значение. Если значение равно/
, входные данные должны быть квадратной матрицей (включая скаляр в качестве вырожденного случая), и блок выводит обратную матрицу. Дополнительные сведения см. в разделах Поэлементный режим и Матричный режим. -
В параметре Количество входных сигналов задано целое значение > 1
Блок имеет количество входных данных, заданное целочисленным значением. Входные данные умножаются вместе в режиме
Поэлементное(.*)
или в режимеМатричное(*)
, как указано параметром Умножение. Дополнительные сведения см. в разделах Поэлементный режим и Матричный режим. -
В параметре Количество входных сигналов задана строка без кавычек, состоящая из двух или более символов
*
и/
Блок имеет количество входных данных, заданное длиной символьного вектора. Каждый входной сигнал, соответствующий символу
*
, умножается на выходной сигнал. Каждый выходной сигнал, соответствующий символу/
, делится на входной. Операции выполняются в режимеПоэлементное(.*)
или в режимеМатричное(*)
, как указано параметром Умножение. Дополнительные сведения см. в разделах Поэлементный режим и Матричный режим.
Порты
Выход
#
OUT_1
—
выходной сигнал
скаляр
| вектор
| матрица
Details
Выходной сигнал, вычисляемый путем умножения или деления входных сигналов.
Типы данных |
|
Поддержка комплексных чисел |
Да |
Вход
#
x
—
входной сигнал для умножения
скаляр
| вектор
| матрица
Details
Входной сигнал для умножения на другие входные сигналы.
Зависимости
Чтобы использовать один или несколько портов x, укажите один или несколько символов *
для параметра Количество входных сигналов и установите для параметра Умножение значение Поэлементное(.*)
.
Чтобы использовать один или несколько портов *, укажите один или несколько символов *
для параметра Количество входных сигналов и установите для параметра Умножение значение Матричное(*)
.
Типы данных |
|
Поддержка комплексных чисел |
Да |
#
/
—
входной сигнал для деления или инверсии
скаляр
| вектор
| матрица
Details
Входной сигнал для операций деления или инверсии.
Зависимости
Чтобы использовать один или несколько портов ÷, укажите один или несколько символов /
для параметра Количество входных сигналов и установите для параметра Умножение значение Поэлементное(.*)
.
Чтобы использовать один или несколько портов Inv, укажите один или несколько символов /
для параметра Количество входных сигналов и установите для параметра Умножение значение Матричное(*)
.
Типы данных |
|
Поддержка комплексных чисел |
Да |
Параметры
Основные
# Количество входных сигналов — количество и названия входных портов и тип операции
Details
Операции, выполняемые блоком: умножение или деление.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Умножение —
тип умножения
Поэлементное(.)
| Матричное(
)
Details
Укажите, в каком режиме блок выполняет умножение или деление Поэлементное(.*)
или Матричное(*)
.
Дополнительные сведения см. в разделах Поэлементный режим и Матричный режим.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
Настройки выхода
#
Тип данных выхода —
тип выходных данных
Наследовать автоматически
| Наследовать от первого входа
| Float64
| Float32
| Float16
| Int8
| UInt8
| Int16
| UInt16
| Int32
| UInt32
| Int64
| UInt64
| Int128
| UInt128
| Фиксированная точка
Details
Укажите тип выходных данных. Тип может быть унаследован или указан напрямую.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Выходной тип с фиксированной точкой —
тип выходных данных с фиксированной точкой
Тип данных
Details
Укажите тип выходных данных с фиксированной точкой.
Зависимости
Чтобы использовать этот параметр, установите для параметра Тип данных выхода значение Фиксированная точка
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
Основные
#
Метод округления до целого —
режим округления для операций с фиксированной точкой
К большему
| Конвергентный
| К меньшему
| К ближайшему
| Математическое
| К нулю
Details
Выберите режим округления для операций с фиксированной точкой. Вы можете выбрать:
-
К меньшему
— округляет как положительные, так и отрицательные числа в меньшую сторону (в сторону отрицательной бесконечности). -
К большему
— округляет как положительные, так и отрицательные числа в большую сторону (в сторону положительной бесконечности). -
Конвергентный
— округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется до ближайшего четного целого числа. -
К ближайшему
— округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется в большую сторону (в сторону положительной бесконечности). -
Математическое
— округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, положительные числа округляются в большую сторону (в сторону положительной бесконечности), а отрицательные – в меньшую (в сторону отрицательной бесконечности).
-
К нулю
— округляет число в сторону нуля.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Ограничить при переполнении целого —
метод действия при переполнении
Логический тип
Details
При установке этого флажка насыщение применяется ко всем внутренним операциям блока, а не только к выходу или результату.
Действие | Причины для принятия этого решения | Что происходит при переполнении | Пример |
---|---|---|---|
Установите этот флажок. |
В вашей модели возможно переполнение, и вам нужна явная защита от насыщения в генерируемом коде. |
Переполнения насыщаются до минимального или максимального значения, которое может представлять данный тип данных. |
Переполнение, связанное со знаковым 8-битным целым числом, может насытиться до |
Не устанавливайте этот флажок. |
Вы хотите оптимизировать эффективность генерируемого кода. |
Переполнения оборачиваются в соответствующее значение, которое может быть представлено типом данных. |
Число |
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Тип данных для всех входных портов должен быть одинаковым —
режим одинакового типа данных для всех входов
Логический тип
Details
Установите этот флажок, чтобы задать одинаковый тип данных для всех входных портов.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
Алгоритмы
Блок Деление с одним входом в режиме Поэлементное(.*)
использует представленные ниже алгоритмы для выполнения поэлементных операций над входными данными:
Входные данные | Поэлементная операция | Алгоритм |
---|---|---|
Действительный скаляр, |
Умножение |
|
Деление |
|
|
Действительный вектор или матрица с элементами, |
Умножение |
|
Деление |
|
|
Комплексный скаляр, |
Умножение |
|
Деление |
|
|
Комплексный вектор или матрица с элементами, |
Умножение |
|
Деление |
|
Примеры
-
Расчёт численности населения с использованием командного управления в циклах
-
Автоматизация расчёта времени восхода и заката Солнца для при помощи обратных вызовов
-
Полунатурное моделирование на КПМ РИТМ (Управление задвижкой по Modbus)
-
Моделирование соленоида с помощью базовых блоков и блоков физического моделирования