Simulink (1087389), страница 10
Текст из файла (страница 10)
Рис. 9.5.11. Пример использования блока Manual Switch.
9.6. Math – блоки математических операций
9.6.1. Блок вычисления модуля Abs
Назначение:
Выполняет вычисление абсолютного значения величины сигнала.
Параметры:
-
Saturate on integer overflow (флажок) – Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.
Пример использования блока Abs, вычисляющего модуль текущего значения синусоидального сигнала, показан на рис. 9.6.1.
Рис. 9.6.1. Пример использования блока Abs
Блок Abs может использоваться также для вычисления модуля сигнала комплексного типа. На рис. 9.6.2 показан пример вычисления модуля комплексного сигнала вида:
.
Модуль этого сигнала (как и следовало ожидать) равен 1 для любого момента времени.
Рис. 9.6.2. Пример использования блока Abs для вычисления модуля комплексного сигнала
9.6.2. Блок вычисления суммы Sum
Назначение:
Выполняет вычисление суммы текущих значений сигналов.
Параметры:
-
Icon shape – Форма блока. Выбирается из списка.
- round – окружность,
- rectangular – прямоугольник. -
List of sign – Список знаков. В списке можно использовать следующие знаки:
+ (плюс), - (минус) и | (разделитель знаков). -
Saturate on integer overflow (флажок) – Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.
Количество входов и операция (сложение или вычитание) определяется списком знаков параметра List of sign, при этом метки входов обозначаются соответствующими знаками. В параметре List of sign можно также указать число входов блока. В этом случае все входы будут суммирующими.
Если количество входов блока превышает 3, то удобнее использовать блок Sum прямоугольной формы.
Блок может использоваться для суммирования скалярных, векторных или матричных сигналов. Типы суммируемых сигналов должны совпадать. Нельзя, например, подать на один и тот же суммирующий блок сигналы целого и действительного типов.
Если количество входов блока больше, чем один, то блок выполняет поэлементные операции над векторными и матричными сигналами. При этом количество элементов в матрице или векторе должно быть одинаковым.
Если в качестве списка знаков указать цифру 1 (один вход), то блок можно использовать для определения суммы элементов вектора.
Примеры использования блока Sum показаны на 9.6.3.
Рис. 9.6.3. Примеры использования блока Sum
9.6.3. Блок умножения Product
Назначение:
Выполняет вычисление произведения текущих значений сигналов.
Параметры:
-
Number of inputs – Количество входов. Может задаваться как число или как список знаков. В списке знаков можно использовать знаки * (умножить) и / (разделить).
-
Multiplication – Способ выполнения операции. Может принимать значения (из списка):
- Element-wise – Поэлементный.
- Matrix – Матричный. -
Saturate on integer overflow (флажок) – Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.
Если параметр Number of inputs задан списком, включающим кроме знаков умножения также знаки деления, то метки входов будут обозначены символами соответствующих операций.
Блок может использоваться для операций умножения или деления скалярных векторных или матричных сигналов. Типы входных сигналов блока должны совпадать. Если в качестве количества входов указать цифру 1 (один вход), то блок можно использовать для определения произведения элементов вектора.
Примеры использования блока Product при выполнении скалярных и поэлементных операций показаны на 9.6.4.
Рис. 9.6.4. Примеры использования блока Product при выполнении скалярных и поэлементных операций
При выполнении матричных операций необходимо соблюдать правила их выполнения. Например, при умножении двух матриц необходимо, чтобы количество строк первой матрицы равнялось количеству столбцов второй матрицы. Примеры использования блока Product при выполнении матричных операций показаны на рис. 9.6.5. В примере показаны операции формирования обратной матрицы, деление матриц, а также умножение матриц.
Рис. 9.6.5. Примеры использования блока Product при выполнении матричных операций
9.6.4. Блок определения знака сигнала Sign
Назначение:
Определяет знак входного сигнала.
Параметры:
Нет.
Блок работает в соответствии со следующим алгоритмом:
-
Если входной сигнал блока положителен, то выходной сигнал равен 1.
-
Если входной сигнал блока отрицателен, то выходной сигнал равен -1.
-
Если входной сигнал блока равен 0, то выходной сигнал также равен 0.
Рис. 9.6.6. иллюстрирует работу блока Sign.
Рис. 9.6.6. Пример использования блока Sign
9.6.5. Усилители Gain и Matrix Gain
Назначение:
Выполняют умножение входного сигнала на постоянный коэффициент.
Параметры:
-
Gain – Коэффициент усиления.
-
Multiplication – Способ выполнения операции. Может принимать значения (из списка):
- Element-wise K*u– Поэлементный.
- Matrix K*u – Матричный. Коэффициент усиления является левосторонним операндом.
- Matrix u*K – Матричный. Коэффициент усиления является правосторонним операндом. -
Saturate on integer overflow (флажок) – Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.
Блоки усилителей Gain и Matrix Gain есть один и тот же блок, но с разными начальными установками параметра Multiplication.
Параметр блока Gain может быть положительным или отрицательным числом, как больше, так и меньше 1. Коэффициент усиления можно задавать в виде скаляра, матрицы или вектора, а также в виде вычисляемого выражения.
В том случае если параметр Multiplication задан как Element-wise K*u, то блок выполняет операцию умножения на заданный коэффициент скалярного сигнала или каждого элемента векторного сигнала. В противном случае блок выполняет операцию матричного умножения сигнала на коэффициент заданный матрицей.
По умолчанию коэффициент усиления является действительным числом типа double.
Для операции поэлементного усиления входной сигнал может быть скалярным, векторным или матричным любого типа, за исключением логического (boolean). Элементы вектора должны иметь одинаковый тип сигнала. Выходной сигнал блока будет иметь тот же самый тип, что и входной сигнал. Параметр блока Gain может быть скаляром, вектором или матрицей любого типа, за исключением логического (boolean).
При вычислении выходного сигнала блок Gain использует следующие правила:
-
Если входной сигнал действительного типа, а коэффициент усиления комплексный, то выходной сигнал будет комплексным.
-
Если тип входного сигнала отличается от типа коэффициента усиления, то Simulink пытается выполнить приведение типа коэффициента усиления к типу входного сигнала. В том случае, если такое приведение невозможно, то расчет будет остановлен с выводом сообщения об ошибке. Такая ситуация может возникнуть, например, если входной сигнал есть бесзнаковое целое (uint8), а параметр Gain задан отрицательным числом.
Примеры использования блока Gain при выполнении скалярных и поэлементных операций показаны на 9.6.7.
Рис. 9.6.7. Примеры использования блока Gain.
Для операций матричного усиления (матричного умножения входного сигнала на заданный коэффициент) входной сигнал и коэффициент усиления должны быть скалярными, векторными или матричными значениями комплексного или действительного типа single или double.
Примеры использования блока Matrix Gain при выполнении матричных операций показаны на рис. 9.6.8.
Рис. 9.6.8. Примеры использования блока Matrix Gain
9.6.6. Ползунковый регулятор Slider Gain
Назначение:
Обеспечивает изменение коэффициента усиления в процессе расчета.
Параметры:
-
Low – Нижний предел коэффициента усиления.
-
High – Верхний предел коэффициента усиления.
Для изменения коэффициента усиления блока Slider Gain необходимо передвинуть ползунок регулятора. Перемещение ползунка вправо приведет к увеличению коэффициента усиления, перемещение влево – к уменьшению. Изменение коэффициента усиления будет выполняться в пределах диапазона заданного параметрами Low и High.
Если щелкнуть с помощью мыши на левой или правой стрелках шкалы регулятора, то коэффициент усиления изменится на 1% от установленного диапазона. Если щелкнуть с помощью мыши на самой шкале регулятора слева или справа от ползунка, то коэффициент усиления изменится на 10% от установленного диапазона. Можно также просто задать требуемое значение коэффициента в среднем окне блока.
Блок может выполнять поэлементное усиление векторного или матричного сигнала. Входной сигнал может быть комплексным.
Примеры использования блока Slider Gain показаны на рис. 9.6.9.
Рис. 9.6.9. Примеры использования блока Slider Gain
9.6.7. Блок скалярного умножения Dot Product
Назначение:
Выполняет вычисление скалярного произведения (свертку) двух векторов.
Параметры:
Нет.
Блок выполняет вычисление выходного сигнала в соответствии с выражением: ,
где u1 и u2 – входные векторы,
conj – операция вычисления комплексно-сопряженного числа,
sum – операция вычисления суммы.
Если оба входных вектора являются действительными, то выходной сигнал также будет действительным. Если хотя бы один из входных векторов содержит комплексный сигнал, то выходной сигнал будет комплексным.
Примеры, иллюстрирующие работу блока Dot Product, показаны на рис. 9.6.10.
Рис. 9.6.10. Примеры использования блока Dot Product
9.6.8. Блок вычисления математических функций Math Function
Назначение: