2.7. Системы нечеткого вывода

Понятие нечеткого вывода занимает центральное место в нечеткой логике и в теории нечеткого управления. Говоря о нечеткой логике в системах управления, можно дать следующее определение системы нечеткого вывода.

Система нечеткого вывода – это процесс получения нечетких заключений о требуемом управлении объектом на основе нечетких условий или предпосылок, представляющих собой информацию о текущем состоянии объекта.

Этот процесс соединяет в себе все основные концепции теории нечетких множеств: функции принадлежности, лингвистические переменные, методы нечеткой импликации и т.п. Разработка и применение систем нечеткого вывода включает в себя ряд этапов, реализация которых выполняется на основе рассмотренных ранее положений нечеткой логики (рис.2.18).

f27n1

Рис.2.18. Диаграмма процесса нечеткого вывода в нечетких САУ

База правил систем нечеткого вывода предназначена для формального представления эмпирических знаний экспертов в той или иной предметной области в форме нечетких продукционных правил. Таким образом, база нечетких продукционных правил системы нечеткого вывода – это система нечетких продукционных правил, отражающая знания экспертов о методах управления объектом в различных ситуациях, характере его функционирования в различных условиях и т.п., т.е. содержащая формализованные человеческие знания.

Нечеткое продукционное правило – это выражение вида:

(i):Q;P;A═>B;S,F,N,
где (i) – имя нечеткой продукции, Q – сфера применения нечеткой продукции, P – условие применимости ядра нечеткой продукции, A═>B – ядро нечеткой продукции, в котором A – условие ядра (или антецедент), B – заключение ядра (или консеквент), ═> – знак логической секвенции или следования, S – метод или способ определения количественного значения степени истинности заключения ядра, F – коэффициент определенности или уверенности нечеткой продукции, N – постусловия продукции.

Сфера применения нечеткой продукции Q описывает явно или неявно предметную область знания, которую представляет отдельная продукция.

Условие применимости ядра продукции P представляет собой логическое выражение, как правило предикат. Если оно присутствует в продукции, то активизация ядра продукции становится возможной только в случае истинности этого условия. Во многих случаях этот элемент продукции может быть опущен или введен в ядро продукции.

Ядро A═>B является центральным компонентом нечеткой продукции. Оно может быть представлено в одной из более распространенных форм: «ЕСЛИ A ТО B», «IF A THEN B»; где A и B – некоторые выражения нечеткой логики, которые наиболее часто представляются в форме нечетких высказываний. В качестве выражений могут использоваться и составные логические нечеткие высказывания, т.е. элементарные нечеткие высказывания, соединенные нечеткими логическими связками, такими как нечеткое отрицание, нечеткая конъюнкция, нечеткая дизъюнкция.

S – метод или способ определения количественного значения степени истинности заключения B на основе известного значения степени истинности условия A. Данный способ определяет схему или алгоритм нечеткого вывода в продукционных нечетких системах и называется методом композиции или методом активации.

Коэффициент уверенности F выражает количественную оценку степени истинности или относительный вес нечеткой продукции. Коэффициент уверенности принимает свое значение из интервала [0;1] и часто называется весовым коэффициентом нечеткого правила продукции.

Постусловие нечеткой продукции N описывает действия и процедуры, которые необходимо выполнить в случае реализации ядра продукции, т.е. получения информации об истинности B. Характер этих действий может быть самым различным и отражать вычислительный или иной аспект продукционной системы.

Согласованное множество нечетких продукционных правил образует нечеткую продукционную систему. Таким образом, нечеткая продукционная система– это относящийся к определенной предметной области список нечетких продукционных правил «IF A THEN B».

Простейший вариант нечеткого продукционного правила:

ПРАВИЛО <#> : ЕСЛИ β 1 « ЕСТЬ ά 1 » ТО « β 2 ЕСТЬ ά 2 »

         RULE <#> : IF « β 1 IS ά 1 » THEN « β 2 display:block IS ά 2 ».

Антецедент и консеквент ядра нечеткой продукции может быть сложным, состоящим из связок «И», «ИЛИ», «НЕ», например:

ПРАВИЛО <#>: ЕСЛИ « β 1 ЕСТЬ ά » И « β 2 ЕСТЬ НЕ ά » ТО « β 1 ЕСТЬ НЕ β 2 »

     RULE <#>: IF « β 1 IS ά » AND « β 2 IS NOT ά » THEN « β 1 IS NOT β 2 ».

Наиболее часто база нечетких продукционных правил представляется в форме согласованного относительно используемых лингвистических переменных структурированного текста:

ПРАВИЛО_1: ЕСЛИ «Условие_1» ТО «Заключение_1» ( F 1 т ),

...

ПРАВИЛО_n: ЕСЛИ «Условие_n» ТО «Заключение_n» ( F n ),

где F i ∈ [0;1] является коэффициентом определенности или весовым коэффициентом соответствующего правила. Согласованность списка означает, что в качестве условий и заключений правил могут использоваться только простые и составные нечеткие высказывания, соединенные бинарными операциями «И», «ИЛИ», при этом в каждом из нечетких высказываний должны быть определены функции принадлежности значений терммножества для каждой лингвистической переменной. Как правило, функции принадлежности отдельных термов представляют треугольными или трапецеидальными функциями. Для наименования отдельных термов принято использовать следующие сокращения.

Таблица 2.3.
f27n2

Пример. Имеется наливная емкость (бак) с непрерывным управляемым притоком жидкости и непрерывным неуправляемым расходом жидкости. База правил системы нечеткого вывода, соответствующая знаниям эксперта о том, какой необходимо выбрать приток жидкости чтобы уровень жидкости в баке оставался средним, будет выглядеть следующим образом:

ПРАВИЛО <1>: ЕСЛИ «уровень жидкости малый» И «расход жидкости большой» ТО «приток жидкости »;
ПРАВИЛО <2>: ЕСЛИ «уровень жидкости малый» И «расход жидкости средний» ТО «приток жидкости »;
ПРАВИЛО <3>: ЕСЛИ «уровень жидкости малый» И «расход жидкости малый» ТО «приток жидкости »;
ПРАВИЛО <4>: ЕСЛИ «уровень жидкости средний» И «расход жидкости большой» ТО «приток жидкости »;
ПРАВИЛО <5>: ЕСЛИ «уровень жидкости средний» И «расход жидкости средний» ТО «приток жидкости »;
ПРАВИЛО <6>: ЕСЛИ «уровень жидкости средний» И «расход жидкости малый» ТО «приток жидкости »;
ПРАВИЛО <7>: ЕСЛИ «уровень жидкости большой» И «расход жидкости большой» ТО «приток жидкости »;
ПРАВИЛО <8>: ЕСЛИ «уровень жидкости большой» И «расход жидкости средний» ТО «приток жидкости »;
ПРАВИЛО <9>: ЕСЛИ «уровень жидкости большой» И «расход жидкости малый» ТО «приток жидкости ».

Используя обозначения ZP – «малый», PM – «средний», PB – «большой», данную базу нечетких продукционных правил можно представить в виде таблицы, в узлах которой находятся соответствующие заключения о требуемом притоке жидкости:

Таблица 2.4.

Расход
ZP PM PB
ZP 0 0 0
PM 0.5 0.25 0
PB 0.75 0.25 0
Уровень
Фаззификация (введение нечеткости) – это установка соответствия между численным значением входной переменной системы нечеткого вывода и значением функции принадлежности соответствующего ей терма лингвистической переменной. На этапе фаззификации значениям всех входным переменным системы нечеткого вывода, полученным внешним по отношению к системе нечеткого вывода способом, например, при помощи датчиков, ставятся в соответствие конкретные значения функций принадлежности соответствующих лингвистических термов, которые используются в условиях (антецедентах) ядер нечетких продукционных правил, составляющих базу нечетких продукционных правил системы нечеткого вывода. Фаззификация считается выполненной, если найдены степени истинности μ A (x) всех элементарных логических высказываний вида « β ЕСТЬ ά », входящих в антецеденты нечетких продукционных правил, где ά – некоторый терм с известной функцией принадлежности μ A (x) , a – четкое численное значение, принадлежащее универсуму лингвистической переменной β .

Пример. Формализация описания уровня жидкости в баке и расхода жидкости проведена при помощи лингвистических переменных, в кортеже которых содержится по три нечетких переменных, соответствующих понятиям малого, среднего и большого значения соответствующих физических величин, функции принадлежности которых представлены на рис.2.19.





Текущий уровень:




Текущий расход:

Рис.2.19. Функции принадлежностей кортежей лингвистических переменных, соответствующих нечетким понятиям малого, среднего, большого уровня и расхода жидкости соответственно

Если текущие уровень и расход жидкости 2.5 м и 0.4 м 3 /cек соответственно, то при фаззификации получаем степени истинности элементарных нечетких высказываний:

Агрегирование – это процедура определения степени истинности условий по каждому из правил системы нечеткого вывода. При этом используются полученные на этапе фаззификации значения функций принадлежности термов лингвистических переменных, составляющих вышеупомянутые условия (антецеденты) ядер нечетких продукционных правил.

Если условие нечеткого продукционного правила является простым нечетким высказыванием, то степень его истинности соответствует значению функции принадлежности соответствующего терма лингвистической переменной.

Если условие представляет составное высказывание, то степень истинности сложного высказывания определяется на основе известных значений истинности составляющих его элементарных высказываний при помощи введенных ранее нечетких логических операций в одном из оговоренных заранее базисов.

Например, с учетом полученных в результате фаззификации значений истинности элементарных высказываний, степень истинности условий для каждого составного правила системы нечеткого вывода по управлению уровнем жидкости в баке, в соответствии с определением по Заде нечеткого логического «И» двух элементарных высказываний A, B : T( A B )=min{T(A);T(B)} , будет следующей.

ПРАВИЛО <1>: антецедент – «уровень жидкости малый» И «расход жидкости большой»; степень истинности
антецедента min{0.75;1.00}=0.00.

ПРАВИЛО <2>: антецедент – «уровень жидкости малый» И «расход жидкости средний»; степень истинности
антецедента min{0.75;0.50}=0.00 .

ПРАВИЛО <3>: антецедент – «уровень жидкости малый» И «расход жидкости малый», степень истинности
антецедента min{0.75;0.00}=0.00 .

ПРАВИЛО <4>: антецедент – «уровень жидкости средний» И «расход жидкости большой», степень истинности
антецедента min{0.25;1.00}=0.00 .

ПРАВИЛО <5>: антецедент – «уровень жидкости средний» И «расход жидкости средний», степень истинности
антецедента min{0.25;0.50}=0.00.

ПРАВИЛО <6>: антецедент – «уровень жидкости средний» И «расход жидкости малый», степень истинности
антецедента min{0.25;0.00}=0.00 .

ПРАВИЛО <7>: антецедент – «уровень жидкости большой» И «расход жидкости большой», степень истинности
антецедента min{0.00;1.00}=0.00.

ПРАВИЛО <8>: антецедент – «уровень жидкости большой» И «расход жидкости средний», степень истинности
антецедента min{0.00;0.50}=0.00.

ПРАВИЛО <9>: антецедент – «уровень жидкости большой» И «расход жидкости малый», степень истинности
антецедента min{0.00;0.00}=0.00 .

Расход
0.75 0.25 0
0 0 0 0
0.5 0.5 0.25 0
1 0.75 0.25 0
Уровень

Активизация в системах нечеткого вывода – это процедура или процесс нахождения степени истинности каждого из элементарных логических высказываний (подзаключений), составляющих консеквенты ядер всех нечетких продукционных правил. Поскольку заключения делаются относительно выходных лингвистических переменных, то степеням истинности элементарных подзаключений при активизации ставятся в соответствие элементарные функции принадлежности.

Если заключение (консеквент) нечеткого продукционного правила является простым нечетким высказыванием, то степень его истинности равна алгебраическому произведению весового коэффициента и степени истинности антецедента данного нечеткого продукционного правила.

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

Если весовые коэффициенты продукционных правил не указаны явно на этапе формирования базы правил, то их значения по умолчанию равны единице.

Функции принадлежности μ (y) каждого из элементарных подзаключений консеквентов всех продукционных правил находятся при помощи одного из методов нечеткой композиции:

где μ (x) и c – соответственно функции принадлежности термов лингвистических переменных и степени истинности нечетких высказываний, образующих соответствующие следствия (консеквенты) ядер нечетких продукционных правил.

Пример. Если формализация описания притока жидкости в баке проведена при помощи лингвистической переменной, в кортеже которой содержится три нечетких переменных, соответствующих понятиям малого, среднего и большого значения притока жидкости, функции принадлежности которых представлены на рис.2.19, то для продукционных правил системы нечеткого вывода по управлению уровнем жидкости в емкости посредством изменения притока жидкости, функции принадлежности всех подзаключений при min активизации будут выглядеть следующим образом (рис.2.20(а), (б)).





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







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

Аккумуляция (или аккумулирование) в системах нечеткого вывода – это процесс нахождения функции принадлежности для каждой из выходных лингвистических переменных. Цель аккумуляции состоит в объединении всех степеней истинности подзаключений для получения функции принадлежности каждой из выходных переменных. Результат аккумуляции для каждой выходной лингвистической переменной определяется как объединение нечетких множеств всех подзаключений нечеткой базы правил относительно соответствующей лингвистической переменной. Объединение функций принадлежности всех подзаключений проводится как правило классически xX  μ AB ( x )=max{ μ A ( x ); μ B ( x ) } (max-объединение), также могут использоваться операции:

Пример. Для продукционных правил системы нечеткого вывода по управлению уровнем жидкости в емкости посредством изменения притока жидкости, функция принадлежности лингвистической переменной «приток жидкости», полученная в результате аккумуляции всех подзаключений при max-объединении будет выглядеть следующим образом (рис.2.21).


Рис.2.21Функция принадлежности лингвистической переменной «приток жидкости»

Дефаззификация в системах нечеткого вывода – это процесс перехода от функции принадлежности выходной лингвистической переменной к её четкому (числовому) значению. Цель дефаззификации состоит в том, чтобы, используя результаты аккумуляции всех выходных лингвистических переменных, получить количественные значения для каждой выходной переменной, которое используется внешними по отношению к системе нечеткого вывода устройствами (исполнительными механизмами интеллектуальной САУ).

Переход от полученной в результате аккумуляции функции принадлежности μ (x) выходной лингвистической переменной к численному значению y выходной переменной производится одним из следующих методов:

Рассмотренные этапы нечеткого вывода могут быть реализованы неоднозначным образом: агрегирование может проводиться не только в базисе нечеткой логики Заде, активизация может проводиться различными методами нечеткой композиции, на этапе аккумуляции объединение можно провести отличным от max-объединения способом, дефаззификация также может проводиться различными методами. Таким образом, выбор конкретных способов реализации отдельных этапов нечеткого вывода определяет тот или иной алгоритм нечеткого вывода. В настоящее время остается открытым вопрос критериев и методов выбора алгоритма нечеткого вывода в зависимости от конкретной технической задачи. На текущий момент в системах нечеткого вывода наиболее часто применяются следующие алгоритмы.

Алгоритм Мамдани (Mamdani) нашел применение в первых нечетких системах автоматического управления. Был предложен в 1975 году английским математиком Е.Мамдани для управления паровым двигателем.

Например , описанный выше случай управления уровнем бака соответствует алгоритму Мамдани, если на этапе дефаззификации четкое значение выходной переменной ищется методом центра тяжести или площади: y= 0.35375 м 3 /сек или y= 0.38525 м 3 /сек соответственно.

Алгоритм Цукамото (Tsukamoto) формально выглядит следующим образом.

Например, алгоритм Цукамото реализуется, если в описанном выше случае управления уровнем бака:

Алгоритм Ларсена формально выглядит следующим образом.

Например, алгоритм Ларсена реализуется, если в описанном выше случае управления уровнем бака, на этапе активизации получены функции принадлежности всех подзаключений согласно prod-активизации (рис.2.22(а),(б)), тогда функция принадлежности лингвистической переменной «приток жидкости», полученная в результате аккумуляции всех подзаключений при max-объединении будет выглядеть следующим образом (рис.2.22(б)), а дефаззификация функции принадлежности лингвистической переменной «приток жидкости» приводит к следующим результатам: метод центра тяжести y= 0.40881 м 3 /сек , метод центра площади y= 0.41017 м 3 /сек





Рис.2.22(а) Prod-активизация всех подзаключений правил нечеткой продукции системы управления уровнем жидкости в баке







Рис.2.22(б) Prod-активизация всех подзаключений правил нечеткой продукции системы управления уровнем жидкости в баке и полученная путем max-объединения функция принадлежности лингвистической переменной «приток жидкости»

,Алгоритм Сугено(Sugeno) выглядит следующим образом.

Например, алгоритм Сугено реализуется, если в описанном выше случае управления уровнем жидкости в баке на этапе формирования базы правил системы нечеткого вывода правила задаются исходя из того, что при поддержании постоянного уровня жидкости численные значения притока w и расхода b должны быть равны между собой ε 2 =1 , а скорость наполняемости емкости определяется соответственным изменением коэффициента пропорциональности ε 1 между притоком w и уровнем жидкости a . В этом случае база правил системы нечеткого вывода, соответствующая знаниям эксперта о том, какой необходимо выбрать приток жидкости w= ε 1 a+ ε 2 b чтобы уровень жидкости в баке оставался средним, будет выглядеть следующим образом:

ПРАВИЛО <1>: ЕСЛИ «уровень жидкости малый» И «расход жидкости большой» ТО w=0,3a+b ;

ПРАВИЛО <2>: ЕСЛИ «уровень жидкости малый» И «расход жидкости средний» ТО w=0,2a+b ;

ПРАВИЛО <3>: ЕСЛИ «уровень жидкости малый» И «расход жидкости малый» ТО w=0,1a+b ;

ПРАВИЛО <4>: ЕСЛИ «уровень жидкости средний» И «расход жидкости большой» ТО w=0,3a+b ;

ПРАВИЛО <5>: ЕСЛИ «уровень жидкости средний» И «расход жидкости средний» ТО w=0,2a+b ;

ПРАВИЛО <6>: ЕСЛИ «уровень жидкости средний» И «расход жидкости малый» ТО w=0,1a+b ;

ПРАВИЛО <7>:ЕСЛИ «уровень жидкости большой» И «расход жидкости большой» ТО w=0,4a+b ;

ПРАВИЛО <8>: ЕСЛИ «уровень жидкости большой» И «расход жидкости средний» ТО w=0,2a+b ;

ПРАВИЛО <9>: ЕСЛИ «уровень жидкости большой» И «расход жидкости малый» ТО w=0,1a+b .

При уже рассмотренных ранее текущих уровне и расходе жидкости a= 2.5 м и b= 0.4 м 3 /сек соответственно, в результате фаззификации, агрегирования и активизации с учетом явного определения четких значений выходной переменной в консеквентах продукционных правил получаем пары значений ( c i w i ) : rule1 - (0,75 ; 1,15), rule2 - (0,5 ; 0.9), rule3- (0 ; 0,65), rule4 - (0,25 ; 1,15), rule5 - (0,25 ; 0,9), rule6 - (0 ; 0,65), rule7 - (0 ; 0), rule7 - (0 ; 1,14), rule8 - (0 ; 0,9), rule9 - (0 ; 0,65) . На этапе дефаззификации для лингвистической переменной «приток жидкости» осуществляется переход от дискретного множества четких значений { w 1 . . . w n } к единственному четкому значению согласно дискретному аналогу метода центра тяжести y= i=1 n c i w i i=1 n c i , y= 1.0475 м 3 /сек

Упрощенный алгоритм нечеткого вывода формально задается точно так же, как и алгоритм Сугено, только при явном задании четких значений в консеквентах продукционных правил вместо соотношения w= ε 1 a+ ε 1 b используется явное задание непосредственного значения w . Таким образом, формирование базы правил системы нечеткого вывода осуществляется в виде упорядоченного согласованного списка нечетких продукционных правил в виде «IF A AND B THEN w=ε », где антецеденты ядер правил нечеткой продукции построены из двух простых нечетких высказываний A, B при помощи логических связок «И», w – четкое значение выходной переменной, определенное для каждого заключения i -го правила, как действительное число ε i .

Например, упрощенный алгоритм нечеткого вывода реализуется, если в описанном выше случае управления уровнем жидкости в баке на этапе формирования базы правил системы нечеткого вывода правила задаются следующим образом:

ПРАВИЛО <1>: ЕСЛИ «уровень жидкости малый» И «расход жидкости большой» ТО w=0,6 ;

ПРАВИЛО <2>: ЕСЛИ «уровень жидкости малый» И «расход жидкости средний» ТО w=0,5 ;

ПРАВИЛО <3>: ЕСЛИ «уровень жидкости малый» И «расход жидкости малый» ТО w=0,4 ;

ПРАВИЛО <4>: ЕСЛИ «уровень жидкости средний» И «расход жидкости большой» ТО w=0,5 ;

ПРАВИЛО <5>: ЕСЛИ «уровень жидкости средний» И «расход жидкости средний» ТО w=0,4 ;

ПРАВИЛО <6>: ЕСЛИ «уровень жидкости средний» И «расход жидкости малый» ТО w=0,3 ;

ПРАВИЛО <7>:ЕСЛИ «уровень жидкости большой» И «расход жидкости большой» ТО w=0,3 ;

ПРАВИЛО <8>: ЕСЛИ «уровень жидкости большой» И «расход жидкости средний» ТО w=0,2 ;

ПРАВИЛО <9>: ЕСЛИ «уровень жидкости большой» И «расход жидкости малый» ТО w=0,1 .

При уже рассмотренных ранее текущих уровне и расходе жидкости и соответственно, в результате фаззификации, агрегирования и активизации с учетом явного определения четких значений выходной переменной в консеквентах продукционных правил получаем пары значений ( c i w i ) : rule1 - (0,75 ; 0,6), rule2 - (0,5 ; 0,5), rule3- (0 ; 0,4), rule4 - (0,25 ; 0,5), rule5 - (0,25 ; 0,4), rule6 - (0 ; 0,3),
rule7 - (0 ; 0,3), rule7 - (0 ; 0,3), rule8 - (0 ; 0,2), rule9 - (0 ; 0,1) . На этапе дефаззификации для лингвистической переменной «приток жидкости» осуществляется переход от дискретного множества четких значений { w 1 . . . w n } к единственному четкому значению согласно дискретному аналогу метода центра тяжести y= i=1 n c i w i i=1 n c i , y= 1.0475 м 3 /сек , y= 0.5 м 3 /сек