SoftCraft
разноликое программирование

Top.Mail.Ru

АНАЛОГОВЫЕ ТРИГГЕРЫ


©2005 Б.П.Кузнецов (МУФО, С.-Петербург)

В моделях аналоговой техники используются непрерывные переменные в интервале [0,1]. Если для дискретных переменных существуют элементы памяти в виде традиционных триггеров, то для систем аналоговой, например, нечеткой логики используются специальные элементы памяти. Так, для запоминания непрерывных переменных в системах, например, моделирования электроэнергетических установок, требуется набор специфических элементов для запоминания экстремальных и мгновенных значений, а также формирования экспоненциальных сигналов. В обеспечение этого существуют многочисленные, но громоздкие устройства, в связи с чем и предлагается использовать набор унифицированных элементов памяти, описываемых ниже. Такие элементы могут расширить функциональный диапазон систем моделирования, контроля и управления. Например, автор видит необходимость запоминать экстремальные значения переменных - аргументов функций принадлежности с целью корректировки этих функций в процессе отработки системы нечеткого управления или принятия решений. При этом возможно применение предлагаемых элементов как в программной, так и в аппаратной реализации.

Обсуждаемые элементы памяти относятся к классу бесконечных автоматов. Они названы триггерами по двум причинам. Во-первых, при воздействии на их входы дискретных величин 0 и 1, все эти элементы ведут себя как традиционные дискретные триггеры. Во-вторых, данные элементы построены по схеме перекрестной связи - так же как и обычные триггеры. Предлагаемые элементы названы аналоговыми триггерами, что не вызвало возражений со стороны Роспатента при выдаче патентов.

1. Экстремальные триггеры

Аналоговый триггер имеет так же, как и обычный триггер, два плеча, два входа и два выхода. Входные и выходные величины являются переменными, значения которых могут изменяться в интервале от нуля до единицы (бесконечное число значений). Входы аналогового триггера будем обозначать традиционно: R - вход сброса, S - вход установки триггера. Выходы обозначим следующим образом: P - основной выход, Q - инверсный выход.

Значения выходов связаны следующим соотношением

(1) P + Q = 1,
0 <= P <= 1,
0 <= Q <= 1.

Здесь знак «+» обозначает арифметическое сложение. В обеспечение выполнения (1) входы аналогового триггера должны быть связаны подобным соотношением

(2) R + S = 1
0 <= R <= 1,
0 <= S <= 1.
figure 1

Рис. 1

На рис. 1а представлена структура аналогового RS-триггера, удовлетворяющего условиям (1,2). Первое плечо триггера реализует функцию P, зависимую от переменных S и Q. Второе плечо триггера реализует функцию Q, зависимую от переменных R и P. Ко входу S первого плеча подключен так называемый нормализатор, который обеспечивает выполнение условия (2) в предположении, что входом установки триггера служит переменная SТ, такая, что

(3) 0 <= S’ <= 1,
0 <= S’ + R <= 2,

что противоречит выражению (2), то есть возможно поступление на вход аналогового триггера не согласованных по условию (2) значений переменных. Нормализатор служит для устранения этого противоречия, то есть для формирования переменной S согласно выражению

(4) S = min(S’, 1- R).

Здесь и далее min(a,b) обозначает величину, минимальную из двух величин a и b, max(a,b) - обозначает величину, максимальную из двух величин a и b, где a,b - переменные в интервале 0 - 1. Величину S будем считать нормализованной или согласованной с величиной R.

Далее полагаем, что на входе первого плеча почти любого рассматриваемого ниже аналогового триггера стоит нормализатор (4), и вместо входной переменной SТ будем употреблять нормализованную переменную S (рис. 1,б).

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

2. Максимальный RS-триггер

Название этого типа триггера дано по типу функции (max), реализуемой каждым плечом RS-триггера (рис. 1). При этом

(5) P(t) = max(S(t-1), 1 – Q(t-1)),
Q(t) = max(R(t-1), 1 – P(t-1)).

Здесь и в дальнейшем в скобках справа от идентификатора сигнала указано дискретное время или номер шага вычислений: t - текущий момент времени, t-1 - предшествовавший момент времени.

Для понимания работы максимального RS-триггера рассмотрим табл. 1, содержащую столбцы:
“r(S(t-1),R(t-1))”, “r(S(t-1),P(t-1))”, “r(R(t-1),Q(t-1))”, “r(P(t-1),Q(t-1))”, „P(t)”, „Q(t)”,
где r(a,b) обозначает отношение вида: a > b, a < b, a = b.

Таблица 1. Функционирование максимального RS-триггера

table 1

В такой таблице должно содержаться три (по числу возможных отношений) в четвертой степени (по числу столбцов r) строк. Однако можно ограничиться представленному в табл. 1, где приведены типичные ситуации, и в которой символом «*» обозначено произвольное отношение r(a,b). Невозможные соотношения игнорируются в этой таблице.

Данный триггер при S = 1 (R = 1) устанавливается в единичное (P = 1, Q = 0) (в нулевое (P = 0, Q = 1)) состояние так же как известный (дискретный) триггер.

Из табл. 1 следует, что максимальный RS-триггер реагирует только на превышение входного сигнала S (R) над значением выхода соответствующего плеча P (Q). Значения выходов обоих плеч взаимно инверсны, то есть дополняют друг друга до единицы (1).

При выполнении условия R < Q, например, R = 0, если значение S непрерывно возрастает, например, с нуля, то, начиная с момента времени, когда сравняются S и P, значение P будет повторять S. Если кривая S(t) произвольной формы, то кривая P(t) «запоминает» максимальное значение локальных максимумов S(t) при R = 0 (рис. 2,а). Аналогично, при S = 0, кривая Q(t) «запоминает» максимальное значение локальных максимумов кривой R(t) (рис. 2,б).

figure 2a
figure 2b

Рис. 2

Максимальный аналоговый RS-триггер может работать в схеме следующим образом. На вход нормализатора подается исследуемый сигнал S’, а на вход R – периодический импульсный сигнал R = 1. Тогда на выходе Р этого триггера будет фиксироваться наибольший локальный максимум S’ за время между двумя единичными импульсами R.

3. Минимальные RS-триггеры

Из предложенного наименования, по аналогии с рассмотренным, данный тип триггера должен фиксировать наименьший локальный минимум исследуемого сигнала.

Такой триггер может быть получен двумя путями. Во-первых, минимальный триггер можно получить из максимального, подавая на его вход инверсию (дополнение до единицы) исследуемого сигнала. Во-вторых, минимальный триггер можно получить с применением функции min. Рассмотрим оба варианта.

Минимальный RS-триггер первого типа получим из рис. 1,а настройкой нормализатора на реализацию следующей функции

(6) S = min(1 – S’, 1 – R),

где S’ – исследуемый сигнал, минимальное значение которого должен фиксировать триггер, S’ = {0 – 1}. Наименьшее значение этого сигнала фиксируется на выходе Q триггера (рис. 1,а). В действительности рассматриваемый триггер работает так же, как и максимальный RS-триггер согласно (5), на выходе Р которого фиксируется наибольший локальный максимум сигнала S (6). Сигналом R, также как и для максимального триггера, выполняется установка в единицу выхода Q минимального триггера.

Функционирование данного типа триггера представлено в табл.2, построенной по тем же правилам, что и табл. 1.

Таблица 2. Функционирование минимального RS-триггера (1-й тип: S = min(1-S’,1-R))

table 2
figure 3

Рис. 3

Пример работы минимального RS-триггера первого типа показан на рис. 3. Для наглядности сигнал R имеет не прямоугольную, а треугольную форму импульса, следующего с заданной частотой. Из этого рисунка (и из табл. 2) следует, что выходной сигнал Q запоминает локальный минимум сигнала S’ в интервалах между импульсами R. При этом сигнал Q повторяет форму сигнала R, начиная с момента совпадения их значений до достижения значения единица, и далее повторяет нисходящий сигнал R до момента совпадения значения последнего со значением S’.

Минимальный RS-триггер второго типа получим по рис. 1,а следующим образом. Во-первых, нормализатор настраивается на выполнение функции

(7) S = max(S’, 1 - R),

где S’ и R изменяются от единицы до нуля, причем их исходное значение – единица. Во-вторых, каждое плечо RS-триггера рассматриваемого типа реализует функцию минимума

(8) P(t) = min(S(t-1),1-Q(t-1)),
Q(t) = min(R(t-1),1-P(t-1)).

Наименьшее значение исследуемого сигнала S’ (при R > 1-S’) фиксируется на выходе P. Работа этого триггера описывается табл. 3. Вход R обеспечивает полный или частичный сброс триггера в состояние P = 1 – R, то есть при R = 0 выход Р устанавливается в единицу.

Таблица 3. Функционирование минимального RS-триггера (2-й тип: S = max(S’,1-R))

table 3
figure 4

Рис. 4

Рис. 4 иллюстрирует поведение минимального RS-триггера, согласно (7), (8) и табл. 3, при неопределенном исходном состоянии P = Q = 0. Сигнал S, исходно равный единице (так же как и R), уменьшаясь до величины 0.5, не вызывает изменения состояния триггера. Затем, перевалив за отметку P = 0.5, заставляет повторять выходной сигнал Р свое уменьшение (при одновременном росте Q). Дойдя до точки некоторого минимума, сигнал S несколько увеличивается, но сигнал Р остается равным минимальному значению S. После этого действует треугольный импульс полного сброса, заставляя меняться все остальные три сигнала P,Q,S (последний посредством нормализатора). За этим сбросом следует фиксация последнего локального минимума S. Далее следует импульс неполного сброса, который искажает запомненный локальный минимум, так как сигнал S до этого импульса вернулся в исходное состояние.

Приведенные в данной работе примеры не исчерпывают всего многообразия динамического поведения описанных выше максимального и минимальных триггеров.

Так как сигнал сброса R корректирует при некоторых условиях исследуемый сигнал S’, то представленные триггеры скорее относятся к R-типу. Однако здесь они именуются аналоговыми триггерами RS-типа. В принципе нормализатор можно исключить, но при этом поведение триггеров будет более сложным и менее предсказуемым.

4. Аналоговый D-триггер

Для запоминания текущего значения сигнала предлагается D-триггер (рис. 5), реализующий следующую систему уравнений

(9) D = min(Dn, 1 – R).
(10) Cp = min(mV(C,D), mV(C, 1 – D)).
(11) T(t+1) = max(min(D(t), Cp(t)), 1 – T’(t)),
(12) T’(t+1) = max(min(1 – D(t), Cp(t)), (1 – T(t)), R).
figure 5

Рис. 5

Нормализация (9) запоминаемого сигнала D необходима для корректного обнуления D-триггера.

Строб-сигнал С по аналогии с традиционным (четким) D-триггером предназначен для определения момента запоминания значения сигнала D. Однако во избежание некорректной работы рассматриваемого триггера на участках возрастания и спада строб-сигнала (в том числе эффекта генерации) необходимо предусмотреть срабатывание триггера только в тех случаях, когда строб-сигнал имеет значение не меньшее, чем D и 1 – D. Это обеспечивается введением отношения порядка V с функцией принадлежности mV(a,b):

(13) mV(a,b) = 1 при a >= b,
mV(a,b) = 0 при a < b.

Выражение (10) обеспечивает данное условие, преобразуя строб-сигнал С в прямоугольный импульс Ср с единичной амплитудой. На рис. 5 соответствующий элемент имеет наименование «пороговая функция».

Система уравнений (11,12) описывает работу рассмотренного максимального RS-триггера со следующими уточнениями:

S = min(D, Cp), R = max(min(1 – D, Cp), R), T = P, T’ = Q.

На рис. 5 формирование сигналов установки и сброса представлено элементами “min”. Инверсия (дополнение до единицы) на этом рисунке показана кружками на входах соответствующих элементов.

figure 6

Рис. 6

Рассмотрим простой пример работы D-триггера, изображенный на рис. 6. Входной сигнал D представлен растянутым треугольным импульсом. Строб-сигнал С в виде узких треугольных импульсов дважды перекрывается сигналом D. В исходном состоянии выходной сигнал триггера имеет значение Т = 0. Первый строб-сигнал С пересекает сигнал D, а затем и большее значение величины 1 – D (на этот момент 1 – D > D). В тот же момент формируется фронт прямоугольного импульса Ср. Далее выходной сигнал Т (в зоне импульса Ср) повторяет форму сигнала D. В момент пересечения спада импульса С с величиной D (в примере на этот момент D > 1 – D) формируется спад прямоугольного импульса Ср. После этого величина Т фиксируется до момента появления фронта следующего импульса Ср. Второй строб-сигнал воздействует на триггер аналогично.

Таким образом, осуществляется запоминание сигнала посредством воздействия на D-триггер строба, амплитуда которого может не достигать единицы, но должна преобладать над величинами D и 1 - D.

Если входные сигналы D, R, C являются двоичными, то данный триггер ведет себя аналогично двоичному D-триггеру.

Представленные модели аналоговых триггеров реализуются как программно, так и аппаратно (запатентованы в РФ).