Simulink (1087389), страница 12
Текст из файла (страница 12)
Реализует одну из базовых логических операций.
Параметры:
-
Operator – Вид реализуемой логической операции (выбирается из списка):
-
AND – Логическое умножение (операция И).
-
OR – Логическое сложение (операция ИЛИ).
-
NAND – Операция И-НЕ.
-
NOR – Операция ИЛИ-НЕ.
-
XOR – Исключающее ИЛИ (операция сложения по модулю 2).
-
NOT – Логическое отрицание (НЕ).
-
Number of input ports – Количество входных портов.
Выходным сигналом блока является 1, если результат вычисления логической операции есть “ИСТИНА” и 0, если результат – “ЛОЖЬ”.
Входные сигналы блока могут быть скалярными, векторными или матричными. Если входные сигналы – векторы или матрицы, то блок выполняет поэлементную логическую операцию, при этом размерность входных сигналов должна совпадать. Если часть входных сигналов – векторы или матрицы, а другая часть входных сигналов – скаляры, то блок выполняет логическую операцию для скалярных входных сигналов и каждого элемента векторных или матричных сигналов. Размерность выходного сигнала, в этом случае, будет определяться размерностью векторных или матричных входных сигналов.
При выполнении логической операции отрицания блок будет иметь лишь один входной порт.
Входные сигналы могут быть как действительного, так и логического типа (boolean).
Примеры использования блока Logical Operation показаны на рис. 9.6.20.
Рис. 9.6.20. Примеры использования блока Logical Operation
9.6.18. Блок побитовых логических операций Birwise Logical Operator
Назначение:
Реализует одну из базовых логических операций по отношению к целому числу в двоичном представлении.
Параметры:
-
Bitwise operator – Вид реализуемой логической операции (выбирается из списка):
-
AND – Логическое умножение (операция И).
-
OR – Логическое сложение (операция ИЛИ).
-
XOR – Исключающее ИЛИ (операция сложения по модулю 2).
-
NOT – Логическое отрицание (НЕ).
-
SHIFT_LEFT – Поразрядный сдвиг влево.
-
SHIFT_RIGHT – Поразрядный сдвиг вправо.
-
Second operand – Второй операнд. Задается шестнадцатеричным числом в символьном виде.
Одним из операндов блока Birwise Logical Operator является сигнал, подаваемый на вход блока, а вторым – параметр блока Second operand.
Входными сигналами блока должны быть бесзнаковые переменные типа uint8, uint16 или uint32.
Входной сигнал блока может быть скалярным, векторным или матричным. Если входной сигнал – вектор или матрица и второй операнд также вектор или матрица, то блок выполняет поэлементную логическую операцию, при этом размерность операндов должна совпадать. Если один из операндов – вектор или матрица, а другой операнд – скаляр, то блок выполняет логическую операцию для скалярного операнда и каждого элемента векторного или матричного операнда. Размерность выходного сигнала, в этом случае, будет определяться размерностью векторного или матричного операнда.
При выполнении логической операции отрицания блок будет иметь лишь один операнд (входной сигнал).
Примеры использования блока Birwise Logical Operator показаны на рис. 9.6.21.
Рис. 9.6.21. Примеры использования блока Birwise Logical Operator
9.6.19. Блок комбинаторной логики Combinatorical Logic
Назначение:
Преобразует входные сигналы в соответствии с таблицей истинности.
Параметры:
Truth table – Таблица истинности.
Блок Combinatorical Logic обеспечивает преобразование входного сигнала в соответствии с правилами, определяемыми таблицей истинности. Таблица истинности представляет собой список возможных выходных значений блока. Такое описание работы устройств принято в теории конечных автоматов. Число строк в таблице истинности определяется соотношением:
,
где
number of inрuts – число входных сигналов,
number of rows – число строк таблицы истинности.
Входные сигналы при составлении таблицы истинности считаются заданными. Они определяют индекс (номер) строки, в которой записываются выходные значения блока. Индекс каждой строки определяется выражением:
,
где
row index – индекс строки,
m – количество входных сигналов (элементов во входном векторе),
u(1) – первый входной сигнал (первый элемент входного вектора),
u(m) – последний входной сигнал (последний элемент входного вектора).
Например, в случае операции логического И (AND) для двух операндов выражение, определяющее индекс строки будет выглядеть следующим образом:
.
Ниже приведен пример формирования таблицы истинности операции логического И (AND) для двух операндов:
Таблица 9.6.2
Вход 2 | Вход 1 | Выражение для | Значение | Таблица истинности |
0 | 0 |
| 1 | 0 |
1 | 0 |
| 2 | 0 |
0 | 1 |
| 3 | 0 |
1 | 1 |
| 4 | 1 |
На рис. 9.6.22 показан пример реализации операции логического И с помощью блока Combinatorical Logic. Параметр блока Truth table задан выражением [0;0;0;1].
Рис. 9.6.22. Пример использования блока Combinatorical Logic
9.6.20. Блок алгебраического контура Algebraic Constraint
Назначение:
Выполняет поиск корней алгебраических уравнений.
Параметры:
Initial guess – Начальное значение выходного сигнала.
Блок находит такое значение выходного сигнала, при котором значение входного сигнала становится равным нулю. При этом входной сигнал должен быть прямо или опосредованно связан с входным сигналом.
На рис. 9.6.23 показан пример решения системы нелинейных уравнений вида:
.
Поскольку данная система уравнений имеет два решения, то начальные значения блоков Algebraic Constraint заданы в виде векторов. Для первого (верхнего) блока начальное значение задано вектором [1 -1], а для второго (нижнего) блока – вектором [-1 1].
Рис. 9.6.23. Пример использования блока Algebraic Constraint
9.7. Signal&Systems - блоки преобразования сигналов и вспомогательные блоки
9.7.1. Мультиплексор (смеситель) Mux
Назначение:
Объединяет входные сигналы в вектор.
Параметры:
-
Number of Inputs - Количество входов.
-
Display option - Способ отображения. Выбирается из списка:
-
bar - Вертикальный узкий прямоугольник черного цвета.
-
signals - Прямоугольник с белым фоном и отображением меток входных сигналов.
-
none - Прямоугольник с белым фоном без отображения меток входных сигналов.
-
Входные сигналы блока могут быть скалярными и (или) векторными.
Если среди входных сигналов есть векторы, то количество входов можно задавать как вектор с указанием числа элементов каждого вектора. Например, выражение [2 3 1] определяет три входных сигнала, первый сигнал - вектор из двух элементов, второй сигнал - вектор из трех элементов, и последний сигнал - скаляр. В том случае, если размерность входного вектора не совпадает с указанной в параметре Number of Inputs, то после начала расчета Simulink выдаст сообщение об ошибке. Размерность входного вектора можно задавать как -1 (минус один). В этом случае размерность входного вектора может быть любой.
Параметр Number of Inputs можно задавать также в виде списка меток сигналов, например: Vector1, Vector2, Scalar. В этом случае метки сигналов будут отображаться рядом с соответствующими соединительными линиями.
Сигналы, подаваемые на входы блока должны быть одного типа (действительного или комплексного).
Примеры использования блока Mux показаны на рис. 9.7.1.
Рис. 9.7.1. Примеры использования блока Mux
9.7.2. Демультиплексор (разделитель) Demux
Назначение:
Разделяет входной векторный сигнал на отдельные составляющие.
Параметры:
-
Number of Outputs - Количество выходов.
-
Bus Selection Mode (флажок) - Режим разделения векторных сигналов.
Входным сигналами в обычном режиме является вектор, сформированный любым способом. Выходными сигналами являются скаляры или векторы, количество которых и размерность определяется параметром Number of Outputs и размерностью входного вектора.
Если количество выходов P (значение параметра Number of Outputs) равно размерности входного сигнала N, то блок выполняет разделение входного вектора на отдельные элементы.
Если количество выходов P меньше, чем размерность входного сигнала N, то размерность первых P-1 выходных сигналов равна отношению N/P, округленному до ближайшего большего числа, а размерность последнего выходного сигнала равна разности между размерностью входного сигнала и суммой размерностей первых P-1 выходов. Например, если размерность входного сигнала равна 8, а количество выходов равно 3, то первые два выходных вектора будут иметь размерность ceil(8/3) = 3, а последний выходной вектор будет иметь размерность 8 - (3+3) = 2.
Параметр Number of Outputs может быть задан также с помощью вектора, определяющего размерность каждого выходного сигнала. Например, выражение [2 3 1] определяет три выходных сигнала, первый сигнал - вектор из двух элементов, второй сигнал - вектор из трех элементов, и последний сигнал - скаляр. Размерность можно также задавать как -1 (минус один). В этом случае размерность соответствующего выходного сигнала определяется как разность между размерностью входного вектора и суммой размерностей заданных выходных сигналов. Например, если размерность входного вектора равна 6, а параметр Number of Outputs задан выражением [1 -1 3], то второй выходной сигнал будет иметь размерность 6 - (3+1) = 2.
Примеры использования блока Demux показаны на рис. 9.7.2.