3. Контактные схемы
1. Контакты. Как уже отмечалось в (1.5.7), любую булеву функцию можно реализовать схемой, состоящей из последовательно и параллельно соединенных ключей. Каждый такой ключ может находиться в двух состояниях — разомкнут (0) и замкнут (1), а переход из одного состояния в другое осуществляется каким-либо управляющим органом.
В электрических цепях роль ключей играют многочисленные устройства, предназначенные для коммутации (замыкания и раз
- 522 -
мыкания): выключатели, электромагнитные реле, телеграфные ключи, электронные ключевые схемы и т. п. Обычные выключатели, телеграфные ключи и подобные им устройства управляются рукой человека. Состояние электромагнитного реле изменяется под воздействием электрического тока, протекающего по обмотке катушки. Ключом в широком смысле является всякое устройство, способное принимать только одно из двух возможных состояний: механические защелки, дверные замки, рычаги управления, железнодорожные светофоры и т. п. Более того, двузначную переменную, независимо от ее конкретного смысла, можно рассматривать, как ключ, состояние которого соответствует значению этой переменной.
В рамках общей теории целесообразно отвлечься от конструктивных и специфических особенностей ключевых объектов и интерпретировать ключ как отрезок проводника с контактом, который может быть разомкнут или замкнут. Разомкнутое состояние контакта отождествляется с нулем, а замкнутое - с единицей.
Замыкающие (нормально разомкнутые) контакты обозначаются хi, размыкающие (нормально замкнутые) контакты — через х̅i. При управляющем воздействии контакт меняет свое состояние: нормально разомкнутый контакт замыкается, а нормально замкнутый - размыкается. В зависимости от своего состояния контакты пропускают электрический ток или препятствуют его прохождению.
Процессы переключения в реальных устройствах занимают некоторое, иногда довольно большое время. Однако во многих задачах время переключения можно не учитывать, считая, что контакты переходят из одного состояния в другое мгновенно.
2. Однотактные схемы. Схемы, образованные соединением контактов, которые переключаются одновременно (за один такт), а время переключения не учитывается, называются однотактными.
Простейшие примеры таких схем были рассмотрены выше. Каждая из них, будучи включена в цепь с источником, в результате совместного действия контактов замыкает или размыкает эту цепь и, следовательно, сама является некоторым контактом по отношению к цепи с источником. Подобные контактные схемы называют двухполюсными.
Соответствие между двухполюсной контактной схемой и булевой функцией y = f(x1, x2, ..., xn) выражается следующим образом:
- 523 -
значения переменных x1, x2, ..., xn определяются наличием (1) или отсутствием (0) тока в обмотке реле, а значения функции у - состоянием двухполюсной цепи (как и для контактов, 0 соответствует разомкнутой, а 1 — замкнутой цепи).
Рис. 191. Условное представление контактной схемы с n входами.
Независимо от характера ключей двухполюсная контактная схема представляется как схема с n входами x1, x2, ..., xn и одним выходом у (рис. 191). Состояния входов определяют воздействия на контакты схемы, причем вход х, управляет всеми контактами, обозначенными этой буквой (хi или х̅i).
3. Анализ контактных схем. Задача анализа контактной схемы состоит в построении соответствующей ей булевой функции. Для параллельно-последовательных схем эта задача решается на основе
Рис. 192. Контактная схема, соответсвующая булевой функции y = (x1 ∨ x2)x̅3 ∨ x̅2x3 (x̅1x3 ∨ x2x̅3)x4.
Рис. 193. Мостиковая схема, соответствующая булевой функции y = x1x̅2x3 ∨ x1x2x3 ∨x̅1x2x̅3 ∨x̅1x̅2x3 =x1 + x2 + x3
того, что параллельное соединение контактов соответствует дизъюнкции, а последовательное соединение — конъюнкции переменных, которыми эти контакты обозначены в схеме. Например, для двухполюсной контактной схемы (рис. 192.) y = (x1 ∨ x2)x̅3 ∨ x̅2x3 (x̅1x3 ∨ x2x̅3)x4.
Если схема (или ее часть) имеет произвольную структуру, то ее анализ проводится путем выделения всех путей между входным
- 524 -
и выходным полюсами схемы. Каждый такой путь представляется конъюнкцией переменных входящих в нее контактов, а вся схема — дизъюнкцией этих конъюнкций. Например, для мостиковой схемы (рис. 193) y = x1x̅2x3 ∨ x1x2x3 ∨x̅1x2x̅3 ∨x̅1x̅2x3
Интересно отметить, что эта функция реализует операцию сложения по модулю 2 трех двоичных переменных, т. е. у = х1 + х2+ х3,в чем можно убедиться по таблицам соответствующих функций.
4. Синтез контактных схем. При построении контактной схемы по заданной булевой функции (задача синтеза) исходная функция может быть задана как логической формулой, так и таблицей. В обоих случаях прежде всего необходимо выразить функции через операции конъюнкции, дизъюнкции и отрицания. Каждая операция конъюнкции соответствует последовательному соединению контактов, а операция дизъюнкции — параллельному соединению. В результате получаем последовательно-параллельную контактную схему.
Пусть, например, функция задана таблицей соответствия, приведенной в (2.5).
На основе ее в совершенной дизъюнктивной нормальной форме строится схема в виде параллельного соединения ветвей, каждая из которых представляет собой последовательное соединение контактов, соответствующих переменным конституент единицы (рис. 194, а).
Преобразуя исходное выражение, можно получить другие контактные схемы, соответствующие данной функции. Так, для рассматриваемого примера: y = x̅1x̅2x3 ∨ x̅1x2x̅3 ∨ x1x̅2x̅3 ∨ x1x2x3 = x̅1(x̅2x3 ∨ x2x̅3) ∨ x1(x̅2x̅3 ∨ x2x3).
Этому выражению соответствует схема рис. 194. б, которая содержит на два контакта меньше. Еще проще мостиковая схема (рис. 193), которая реализует ту же функцию.
а
б
Рис. 194. Контактные схемы, соответствующие совершенной дизъюктивной нормальной форме (а) и упрощенному варажению (б) булевой функции.
Центральной проблемой синтеза является построение наиболее простой или в каком-то смысле оптимальной схемы. Часто эта проблема сводится к минимизации булевых функций, т. е. к такому их представлению, в котором соответствующие формулы содержат
- 525 -
минимальное количество вхождений переменных. Проблема оптимального синтеза еще далека от полного решения, но разработанные методы позволяют существенно упрощать формулу и схемы, а в сравнительно простых случаях получать и оптимальные схемы.
5. Схемы со многими выходами. Если необходимо реализовать несколько булевых функций, то каждая из них может быть представлена соответствующей контактной схемой. Однако такой путь неэкономичен. Более целесообразно построить единую схему с несколькими выходами (рис. 195), соответствующими данной системе функций: y1 = f1(x1, x2, ..., xn); f2(x1, x2, ..., xn); ...; fm(x1, x2, ..., xn);
Рис. 195.
Примером многовыходной схемы может служить полное релейное дерево, в котором каждая конституента единицы представлена одним выходным полюсом, а всего имеется 2n выходов (на рис. 196, а) изображено полное релейное дерево для п = 3).
Рис. 196. - Полное релейное дерево
Любую функцию от n переменных можно реализовать объединением выходов полного релейного дерева, которые соответствуют тем наборам переменных, на которых функция принимает значения 1. Контакты, которые не подсоединены к требуемым выходам, удаляются из схемы. Например, для функции, заданной таблицей в (2.5), построение приведено на рис. 196 б. После упрощения эта схема приводится к виду рис. 194 б.
Более простые схемы можно получить объединением участков релейного дерева, общих для путей, которые соответствуют различным конституентам. Для этого обозначаем одинаковыми буквами или цифрами те узлы, из которых выходят пары хn и х̅n с совпадающими
- 526 -
значениями функции. Дальше аналогично обозначаем одинаковыми буквами узлы, из которых выходят пары хn-1 и х̅n-1 с совпадающими предыдущими обозначениями (порядок букв также учитывается) и т. д. до последней пары х1и х̅1. После этого одинаково обозначенные узлы объединяются и проводятся упрощения в соответствии с рис. 197.
x ∨ x = x
x ∨ x̅ = 1
xx = x
xx̅ = 0
Рис. 197. Упрощение контактных схем для одной переменной.
Так, в схеме рис. 196, б для пар (x3, x̅3) имеется две комбинации значений (1, 0) и (0, 1). Узлы, из которых выходят пары с комбинациями (1, 0), обозначаем буквой а, а узлы, из которых выходят пары с комбинациями (0, 1) — буквой b. Для пар (x2, x̅2) также встречаются две комбинации в предыдущих обозначениях: (а, b) и (b, а). Узлы, из которых выходят эти пары, обозначаем соответственно через а' и b'. Наконец, для пары (x1, x̅1) имеется единственная комбинация (а', b'), и узел, из которого выходит эта пара, обозначаем через а".
Объединяя узлы с одинаковыми обозначениями (а и b), приходим к схеме, показанной на рис. 198, которая после замены параллельных контактов совпадает с мостиковой схемой (рис. 193).
Рис. 198. Преобразование контактной схемы (рис. 196, б) к мостиковой (рис. 193).
Объединяя выходы полного релейного дерева, можно построить контактные схемы и для нескольких функций при условии, что множества наборов значений переменных, на которых эти функции принимают значения 1, не пересекаются. Пусть, например, требуется построить контактную схему с двумя выходами, реализующую функции y1 = x1x2 ∨ x̅1x̅2 и y1 = x1x̅2 ∨ x̅1x̅3. Из таблицы соответствия для этих функций
видим, что ни на одном наборе значений переменных функции не принимают одновременно значений, равных 1. Следовательно, для построения требуемой контактной схемы можно воспользоваться полным релейным деревом (рис. 199, а)в результате преобразования которого получаем схему с двумя выходами (рис. 199, б).
а
б
Рис. 199. Построение схемы с двумя выходами:
а - преобразование полного релейного дерева;
б - контактная схема
6. Булевы матрицы. Для описания контактных схем произвольной структуры с любым числом выходов используются различные типы булевых матриц, элементами которых являются константы 0 и 1, переменные x1, x2, ..., xn и функции этих переменных.
Рис. 200. К определению булевых матриц контактной схемы.
Пусть контактная схема имеет k узлов. Матрица непосредственных связей (примитивная матрица соединений) Р - это квадратная таблица k×k, элементы главной диагонали которой равны 1, а элементы pij = pji представляют собой булеву функцию прямого соединения между узлами i и j. Матрица полных связей (полная матрица соединений) Q отличается тем, что ее элементы qij = qji представляют собой булеву функцию с учетом всевозможных путей без циклов между узлами i и j. Так, для схемы рис. 200 имеем:
- 528 -
Произведение булевых матриц определяется, как и для обычных матриц, правилом «строка на столбец», но операциям сложения и умножения действительных чисел соответствуют дизъюнкция и конъюнкция логических переменных и функций. Элементы матрицы C = AB, где А и В - булевые матрицы, выражаются соотношением cij = ai1b1j ∨ ai2b2j ∨ ... ∨ ainbnj. Произведения матрицы самой на себя выражается как ее степени AA = A2, A2A = A3, ..., An-1A = An.
Можно показать, что для любой контактной схемы с k узлами существует такое r ≤ k - 1, что Pr = Pr+s = Q, где s - произвольное целое положительное число. Это значит, что матрицу полных связей можно получить умножением матрицы непосредственных связей Р на саму себя до тех пор, пока результат не начнет повторяться, причем число таких умножений не превышает k - 1. Так, для рассматриваемого примера имеем:
Следует отметить, что элементы матрицы Рi представляют собой функции всех связей между узлами посредством не более чем i-1 узлов. В частности, каждый элемент матрицы P2 учитывает непосредственные связи между парой узлов и связи между ними посредством еще одного узла. Например, p23 = p32 = x4 ∨ x2x3 соответствует непосредственной связи между узлами 2 и 3 через контакт x4, а также связи посредством узла 4 (член х2х3).
7. . Исключение узлов (анализ). При анализе контактной схемы с помощью булевых матриц сначала записывается матрица непосредственных связей Р, а затем путем возведения ее в соответствующую степень получается матрица полных связей Q. Элементы qij матрицы Q и представляют собой булевы функции данной контактной схемы между парами узлов с соответствующими номерами.
Однако такой способ в большинстве случаев не является рациональным, так как обычно представляют интерес только некоторые из функций qij между внешними узлами (полюсами) схемы. Поэтому имеет смысл предварительно исключить внутренние узлы и таким образом уменьшить порядок матрицы Р,прежде чем возводить ее в требуемую степень. При исключении s-гo узла в матрице непосредственных связей вычерчиваются s-я строка и s-й столбец и каждый ее элемент pij заменяется элементом pij ∨ pispsj . Член pispsj учитывает путь между узлами iи j через узел s, который действует параллельно с непосредственной связью pij. В результате исключения узла матрица Р преобразуется к матрице Ps на единицу
- 529 -
меньшего порядка, которая представляет собой матрицу непосредственных связей относительно неисключенной совокупности узлов.
Пусть, например, в схеме рис. 201 требуется определить булевы функции между узлами 1, 2 и 3. Матрицы Р и Р4 имеют вид:
Определив P24 после преобразований, получим матрицу полных связей относительно узлов 1, 2 и 3,называемую матрицей выходов:
Элементы этой матрицы являются функциями выходов:
f12 = x1 ∨ (x2 ∨ x̅3) (x̅2 ∨ x̅1x2);
f13 = x̅2 ∨ x̅1x3 ∨ x1(x2 ∨ x̅3);
f23 = x1x̅2 ∨ x2 ∨ x3.
8. Введение узлов (синтез). При синтезе контактных схем задаются функции для внешних узлов (полюсов), которые определяют матрицу выходов. Необходимое и достаточное условие непротиворечивости этих функций состоит в том, что матрица выходов должна быть устойчивой, т. е. удовлетворять равенству F = F2.
Рис. 201. Контактная схема к примеру.
Структуру контактной схемы, реализующей заданную непротиворечивую совокупность функций, можно получить из матрицы F путем ее последовательного расширения, соответствующего операции введения узла. Эта операция обратна исключению узла и приводит к матрице Fs, порядок которой на единицу выше, а элементы таковы, что при исключении узла s снова получим матрицу F. Последовательным применением операции введения узла исходная матрица расширяется и преобразуется к виду, при котором элементы представляют собой константы 0 или 1, переменные, их отрицания или элементарные конъюнкции переменных. Тогда полученную матрицу можно рассматривать как матрицу непосредственных связей, на основе которой легко построить соответствующую контактную схему. При этом элементарные конъюнкции реализуются последовательными соединениями соответствующих контактов.
Операция введения неоднозначна, поэтому можно получать различные схемы, удовлетворяющие заданным функциям. Выбор наилучшего пути преобразования матрицы F к матрице непосредственных
- 530 -
связей Р, определяющей вид контактной схемы, в значительной степени зависит от искусства инженера.
Пусть требуется построить контактную схему со следующими функциями:
f12 = x̅1x̅2 ∨ x1x3; f13 = x̅3(x2 ∨ x1x4); f23 = 0
Матрица выходов имеет вид:
Элементы этой матрицы можно рассматривать как результат исключения узла 4, который мы должны ввести, т. е.
f12 = x̅1x̅2 ∨ x1x3 = f'12 ∨ f'14 f'42;
f13 = x̅3(x2 ∨ x1x4) = f'13 ∨ f'14 f'43;
f23 = 0 = f'23 ∨ f'24 f'43
Полагая f'14 = x2 ∨ x1 x4; f'43 = x̅3 (возможны и другие варианты), имеем f'13 = f'24 = f'42 = f'23 = 0; f12 = x̅1x̅2 ∨ x1x3. Таким образом, в результате введения узла 4 имеем матрицу
Продолжая аналогично, можно записать соотношения для элементов матрицы F(4,5), соответствующей введению узла 5:
x̅1x̅2 ∨ x1x3 = f"12 ∨ f"15 f"52; 0 = f"13 ∨ f"15 f"53; x2 ∨ x1x4 = f"14 ∨ f"15 f"54;
0 = f"23 ∨ f"25 f"53; 0 = f"24 ∨ f"25 f"54; x̅3 = f"31 ∨ f"35 f"51;
Если принять f"15 = x1, то необходимо положить
f12 = x̅1x̅2; f"52 = x3; f"13 = f"53 = 0; f"14 = x2; f"54 = x4; f"23 = f"25 = f"24 = 0
В результате приходим к матрице, которую можно рассматривать как матрицу непосредственных связей Р синтезируемой схемы:
Схема, соответствущая этой матрице, показана на рис. 202.
9 .Вентильные схемы. До сих пор предполагалось, что контакты обладают двусторонней проводимостью, т. е. в открытом состоянии они пропускают сигналы как в прямом, так и в обратном направлениях. Таковы, например, контакты электромагнитных реле. Однако при использовании электронных ключей, например управляемых диодов, проводимость в прямом направлении настолько превышает проводимость в обратном направлении, что практически можно считать контакты односторонними, т. е. пропускающими сигналы
- 531 -
только в прямом направлении. Схемы с односторонними контактами называют вентильными схемами.
На вентильных схемах, как и ранее, изображаются только соединения контактов, а управляющие цепи обычно опускаются. При этом предполагается, что управление осуществляется как сигналами, соответствующим переменными x1, x2, ..., xn, так и их отрицаниям x̅1, x̅2, ..., x̅n, что отмечается на схеме одним из символов xi или x̅i для каждого контакта. Кроме того, в вентильных схемах обычно имеет место естественное разделение сигналов: если к узлу схемы одновременно поступают несколько сигналов, то результирующий сигнал в этом узле действует как их дизъюнкция. Направления прохождений сигналов обозначаются на схемах стрелками, относящимися к соответствующим контактам. Пример вентильной схемы показан на рис. 203.
Рис. 202. Схема, построенная по матрице непосредственных связей.
Рис. 203. – Вентильная схема
Булевы матрицы вентильных схем в общем случае несимметричны. Так, для приведенной схемы имеем:
Матрицу Q можно также записать непосредственно из вентильной схемы, учитывая для ее элементов qij все пути от i-го узла к j-му узлу по направлению стрелок. Так,
q12 = x1 ∨ x2; q13 = x̅1 ∨ (x1 ∨ x2)x3 = x̅1 ∨ x1x3 ∨ x2x3 = x̅1 ∨ x3 ∨ x2x3 = x̅1 ∨ x3 и т. д.
Булева функция для любого выхода может быть определена также последовательным исключением узлов, кроме входного и выходного.
Синтез вентильных схем осуществляется аналогично изложенному выше, причем в исходной матрице выходов все функции, кроме заданных, обычно полагаются тождественно равными нулю. Пусть,
- 532 -
например, f12 = x1x2 ∨ x̅1x̅3 и f13 = x1x̅3 ∨ x̅1x2. Матрица выходов и ее расширения имеют вид:
Схемы, соответствующие F(4) и F(4,5) показаны на рис. 204. Как видно, вторая схема (рис. 204 б) содержит на один контакт меньше, чем первая (рис. 204 а).
а
б
рис. 204. Схемы, реализующие функции f12 = x1x2 ∨ x̅1x̅3 и f13 = x1x̅3 ∨ x̅1x2.
а - с четырьмя узлами; б - с пятью узлами.