Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
ЛЕКЦИЯ 8. СИСТЕМЫ НЕЧЁТКОГО ВЫВОДА
Понятие нечеткого вывода занимает центральное место в нечеткой
логике и в теории нечеткого управления. Говоря о нечеткой логике в
системах управления, можно дать следующее определение системы
нечеткого вывода.
Система нечеткого вывода – это процесс получения нечетких
заключений о требуемом управлении объектом на основе нечетких
условий или предпосылок, представляющих собой информацию о текущем
состоянии объекта.
Этот процесс соединяет в себе все основные концепции теории
нечетких множеств: функции принадлежности, лингвистические
переменные, методы нечеткой импликации и т.п. Разработка и применение
систем нечеткого вывода включает в себя ряд этапов, реализация которых
выполняется на основе рассмотренных ранее положений нечеткой логики
(рис.1).
Рис.1. Диаграмма процесса нечеткого вывода в нечётких системах
автоматического управления
База правил систем нечеткого вывода предназначена для формального
представления эмпирических знаний экспертов в той или иной предметной
области.
Правило представляется в одной из более распространённых форм:
«ЕСЛИ A ТО B», «IF A THEN B»; где A и B – некоторые выражения
нечеткой логики, которые наиболее часто представляются в форме
нечетких высказываний. Высказывание A называется условием (или
антецедентом), B – заключением (или консеквентом). В качестве
выражений могут использоваться и составные логические нечеткие
высказывания, т.е. элементарные нечеткие высказывания, соединенные
нечеткими логическими связками, такими как нечеткое отрицание,
нечеткая конъюнкция, нечеткая дизъюнкция.
Обозначим через S соответствующий правилу метод или способ
определения количественного значения степени истинности заключения B
на основе известного значения степени истинности условия A. Данный
способ определяет схему или алгоритм нечеткого вывода в нечетких
системах и называется методом композиции или методом активации.
Каждому правилу приписывается коэффициент уверенности F,
который выражает количественную оценку степени истинности или
относительный вес правила. Коэффициент уверенности принимает свое
значение из интервала [0;1] и часто называется весовым коэффициентом
нечеткого правила.
Согласованное множество нечетких правил образует нечеткую
систему правил. Таким образом, нечеткая система – это относящийся к
определенной предметной области список нечетких правил <«IF A THEN
B»; S,F>.
Согласованность списка означает, что в качестве условий и
заключений правил могут использоваться только простые и составные
нечеткие высказывания, соединенные бинарными операциями «И»,
«ИЛИ», при этом в каждом из нечетких высказываний должны быть
определены функции принадлежности значений терм-множества для
каждой лингвистической переменной. Как правило, функции
принадлежности отдельных термов представляют треугольными или
трапецеидальными функциями. Для наименования отдельных термов
принято использовать следующие сокращения.
Таблица 1.
Пример. Имеется наливная емкость (бак) с непрерывным
управляемым притоком жидкости и непрерывным неуправляемым
расходом жидкости. База правил системы нечеткого вывода,
соответствующая знаниям эксперта о том, какой необходимо выбрать
приток жидкости, чтобы уровень жидкости в баке оставался средним,
будет выглядеть следующим образом:
ЕСЛИ «уровень
жидкости малый»
ЕСЛИ «уровень
ПРАВИЛО 2
жидкости малый»
ЕСЛИ «уровень
ПРАВИЛО 3
жидкости малый»
ЕСЛИ «уровень
ПРАВИЛО 4
жидкости средний»
И «расход жидкости
большой»
И «расход жидкости
средний»
И «расход жидкости
малый»
И «расход жидкости
большой»
ПРАВИЛО 5 ЕСЛИ «уровень
И «расход жидкости ТО «приток
ПРАВИЛО 1
ТО «приток
жидкости
ТО «приток
жидкости
ТО «приток
жидкости
ТО «приток
жидкости
большой
большой
с редний
большой
с редний
ПРАВИЛО 6
ПРАВИЛО 7
ПРАВИЛО 8
ПРАВИЛО 9
жидкости средний»
ЕСЛИ «уровень
жидкости средний»
ЕСЛИ «уровень
жидкости большой»
ЕСЛИ «уровень
жидкости большой»
ЕСЛИ «уровень
жидкости большой»
средний»
И «расход жидкости
малый»
И «расход жидкости
большой»
И «расход жидкости
средний»
И «расход жидкости
малый»
жидкости
ТО «приток
жидкости
ТО «приток
жидкости
ТО «приток
жидкости
ТО «приток
жидкости
с редний
с редний
м алы й
м алы й
Расход
Используя обозначения ZP – «малый», PM – «средний», PB –
«большой», данную базу нечетких правил можно представить в виде
таблицы, в узлах которой находятся соответствующие заключения о
требуемом притоке жидкости:
Таблица 2.
Уровень
ZP
PM
PB
PM
PM
ZP
ZP
PB
PM
ZP
PM
PB
PB
PM
PB
Фаззификация (введение нечеткости) – это установка соответствия между
численным значением входной переменной системы нечеткого вывода и
значением функции принадлежности соответствующего ей терма
лингвистической переменной. На этапе фаззификации значениям всех
входным переменным системы нечеткого вывода, полученным внешним по
отношению к системе нечеткого вывода способом, например, при помощи
датчиков, ставятся в соответствие конкретные значения функций
принадлежности соответствующих лингвистических термов, которые
используются в условиях (антецедентах) нечетких правил, составляющих
базу нечетких правил системы нечеткого вывода. Фаззификация считается
выполненной, если найдены степени истинности всех элементарных
логических высказываний, входящих в антецеденты нечетких.
Пример. Формализация описания уровня жидкости в баке и расхода
жидкости проведена при помощи лингвистических переменных, в кортеже
которых содержится по три нечетких переменных, соответствующих
понятиям малого, среднего и большого значения соответствующих
физических величин, функции принадлежности которых представлены на
рис. 2.
Z-линейный:
Трапециевидный:
S-линейный:
Текущий уровень:
2 4 0 0
2 4 6 8
0 0 6 8
2.5
Z-линейный:
Трапециевидный:
Трегуольный:
Текущий уровень:
0.2 0.3 0 0
0.1 0.2 0.3 0.45
0 0 0.3 0.4
0.4
Рис.2. Функции принадлежностей кортежей лингвистических переменных,
соответствующих нечетким понятиям малого, среднего, большого уровня и
расхода жидкости соответственно.
Если текущие уровень и расход жидкости 2.5 м и 0.4 м3 /cек
соответственно, то при фаззификации получаем степени истинности
элементарных нечетких высказываний:
«уровень
жидкости малый» – 0.75;
«уровень жидкости средний» – 0.25;
«уровень жидкости большой» – 0.00;
«расход жидкости малый» – 0.00;
«расход жидкости средний» – 0.49;
«расход жидкости большой» – 1.00.
Агрегирование – это процедура определения степени истинности
условий по каждому из правил системы нечеткого вывода. При этом
используются полученные на этапе фаззификации значения функций
принадлежности термов лингвистических переменных, составляющих
вышеупомянутые условия (антецеденты) нечетких правил.
Если условие нечеткого правила является простым нечетким
высказыванием, то степень его истинности соответствует значению
функции принадлежности соответствующего терма лингвистической
переменной.
Если условие представляет составное высказывание, то степень
истинности сложного высказывания определяется на основе известных
значений истинности составляющих его элементарных высказываний при
помощи введенных ранее нечетких логических операций в одном из
оговоренных заранее базисов.
Например, с учетом полученных в результате фаззификации значений
истинности элементарных высказываний, степень истинности условий для
каждого составного правила системы нечеткого вывода по управлению
Расход
уровнем жидкости в баке, в соответствии с определением по Заде
нечеткого логического «И» двух элементарных высказываний 𝐴, 𝐵
𝑇(𝐴 ∩ 𝐵) = 𝑚𝑖𝑛{𝑇(𝐴); 𝑇(𝐵)}, будет следующей.
ПРАВИЛО 1: антецедент – «уровень жидкости малый» И «расход
жидкости большой»; степень истинности антецедента 𝑚𝑖𝑛{0.75; 1.00} =
0.75.
ПРАВИЛО 2: антецедент – «уровень жидкости малый» И «расход
жидкости средний»; степень истинности антецедента 𝑚𝑖𝑛{0.75; 0.49} =
0.49.
ПРАВИЛО 3: антецедент – «уровень жидкости малый» И «расход
жидкости малый»; степень истинности антецедента 𝑚𝑖𝑛{0.75; 0.00} =
0.00.
ПРАВИЛО 4: антецедент – «уровень жидкости средний» И «расход
жидкости большой»; степень истинности антецедента 𝑚𝑖𝑛{0.25; 1.00} =
0.25.
ПРАВИЛО 5: антецедент – «уровень жидкости средний» И «расход
жидкости средний»; степень истинности антецедента 𝑚𝑖𝑛{0.25; 0.50} =
0.25.
ПРАВИЛО 6: антецедент – «уровень жидкости средний» И «расход
жидкости малый», степень истинности антецедента 𝑚𝑖𝑛{0.25; 0.00} =
0.00.
ПРАВИЛО 7: антецедент – «уровень жидкости большой» И «расход
жидкости большой»; степень истинности антецедента 𝑚𝑖𝑛{0.00; 1.00} =
0.00.
ПРАВИЛО 8: антецедент – «уровень жидкости большой» И «расход
жидкости средний»; степень истинности антецедента 𝑚𝑖𝑛{0.00; 0.50} =
0.00.
ПРАВИЛО 9: антецедент – «уровень жидкости большой» И «расход
жидкости малый»; степень истинности антецедента 𝑚𝑖𝑛{0.00; 0.00} =
0.00.
Таблица 3.
Уровень
0.75
0.25
0.49
0.49
0.25
1
0.75
0.25
Активизация в системах нечеткого вывода – это процедура или
процесс нахождения степени истинности каждого из элементарных
логических высказываний (подзаключений), составляющих консеквенты
нечетких правил. Поскольку заключения делаются относительно
выходных лингвистических переменных, то степеням истинности
элементарных подзаключений при активизации ставятся в соответствие
элементарные функции принадлежности.
Если заключение (консеквент) нечеткого правила является простым
нечетким высказыванием, то степень его истинности равна
алгебраическому произведению весового коэффициента и степени
истинности антецедента данного нечеткого правила.
Если заключение представляет составное высказывание, то степень
истинности
каждого
из
элементарных
высказываний
равна
алгебраическому произведению весового коэффициента и степени
истинности антецедента данного нечеткого правила.
Если весовые коэффициенты правил не указаны явно на этапе
формирования базы правил, то их значения по умолчанию равны единице.
Функции принадлежности 𝜇(𝑦) каждого из элементарных
подзаключений консеквентов всех правил находятся при помощи одного
из методов нечеткой композиции:
𝑚𝑖𝑛-активизация – 𝜇(𝑦) = 𝑚𝑖𝑛{𝑐; 𝜇(𝑥)};
𝑝𝑟𝑜𝑑-активизация – 𝜇(𝑦) = 𝑐𝜇(𝑥);
𝑎𝑣𝑒𝑟𝑎𝑔𝑒-активизация – 𝜇(𝑦) = 0.5(𝑐 + 𝜇(𝑥));
где 𝜇(𝑥) и 𝑐 – соответственно функции принадлежности термов
лингвистических
переменных
и
степени
истинности
нечетких
высказываний, образующих соответствующие следствия (консеквенты)
нечетких правил.
Пример. Если формализация описания притока жидкости в баке
проведена при помощи лингвистической переменной, в кортеже которой
содержится три нечетких переменных, соответствующих понятиям малого,
среднего и большого значения притока жидкости, функции
принадлежности которых представлены на рис. 2, то для правил системы
нечеткого вывода по управлению уровнем жидкости в емкости
посредством изменения притока жидкости, функции принадлежности всех
подзаключений при 𝑚𝑖𝑛-активизации будут выглядеть следующим
образом (рис. 3).
Рис.3. Функция принадлежностей кортежа лингвистических переменных,
соответствующих нечетким понятиям малого, среднего, большого притока
жидкости в бак и min-активизация всех подзаключений правил нечеткой
системы управления уровнем жидкости в баке
Аккумуляция (или аккумулирование, агрегация) в системах
нечеткого вывода – это процесс нахождения функции принадлежности для
каждой из выходных лингвистических переменных. Цель аккумуляции
состоит в объединении всех степеней истинности подзаключений для
получения функции принадлежности каждой из выходных переменных.
Результат аккумуляции для каждой выходной лингвистической
переменной определяется как объединение нечетких множеств всех
подзаключений нечеткой базы правил относительно соответствующей
лингвистической переменной. Объединение функций принадлежности
всех подзаключений проводится, как правило, классически
∀𝑥 ∈ 𝑋 𝜇𝐴∪𝐵 (𝑥) = 𝑚𝑎𝑥{𝜇𝐴 (𝑥), 𝜇𝐵 (𝑥)} (𝑚𝑎𝑥-объединение).
Также могут использоваться операции:
алгебраического объединения ∀𝑥 ∈ 𝑋 𝜇𝐴+𝐵 (𝑥) = 𝜇𝐴 (𝑥) + 𝜇𝐵 (𝑥) −
𝜇𝐴 (𝑥)𝜇𝐵 (𝑥);
граничного объединения ∀𝑥 ∈ 𝑋 𝜇𝐴∪𝐵 (𝑥) = 𝑚𝑖𝑛{𝜇𝐴 (𝑥)𝜇𝐵 (𝑥), 1};
драстического объединения
𝜇𝐵 (𝑥), если 𝜇𝐴 (𝑥) = 0,
∀𝑥 ∈ 𝑋 𝜇𝐴𝛻𝐵 (𝑥) = { 𝜇𝐴 (𝑥), если 𝜇𝐵 (𝑥) = 0,
1, в остальных случаях;
λ-суммы ∀𝑥 ∈ 𝑋 𝜇𝐴+𝐵 (𝑥) = 𝜆𝜇𝐴 𝑥 + (1 − 𝜆)𝜇𝐵 𝑥, 𝜆 ∈ [0; 1].
Пример. Для правил системы нечеткого вывода по управлению
уровнем жидкости в емкости посредством изменения притока жидкости,
функция принадлежности лингвистической переменной «приток
жидкости», полученная в результате аккумуляции всех подзаключений при
𝑚𝑎𝑥-объединении будет выглядеть следующим образом (рис. 4).
Рис. 4. Функция принадлежности лингвистической переменной «приток
жидкости»
Дефаззификация в системах нечеткого вывода – это процесс
перехода от функции принадлежности выходной лингвистической
переменной к её четкому (числовому) значению. Цель дефаззификации
состоит в том, чтобы, используя результаты аккумуляции всех выходных
лингвистических переменных, получить количественное значение для
каждой выходной переменной, которое используется внешними по
отношению к системе нечеткого вывода устройствами (исполнительными
механизмами интеллектуальной системы автоматического управления).
Переход от полученной в результате аккумуляции функции
принадлежности 𝜇(𝑥) выходной лингвистической переменной к
численному значению 𝑦 выходной переменной производится одним из
следующих методов:
метод центра тяжести (Centre of Gravity) заключается в расчете
𝑥
центроида площади y= ∫𝑥 𝑚𝑎𝑥 𝑥𝜇(𝑥)𝑑𝑥, где [𝑥𝑚𝑖𝑛 , 𝑥𝑚𝑎𝑥 ] – носитель
𝑚𝑖𝑛
нечеткого множества выходной лингвистической переменной (на рис. 4
результат дефаззификации обозначен зеленой линией);
метод центра площади (Centre of Area) заключается в расчете
абсциссы 𝑦, делящей площадь, ограниченную кривой функции
принадлежности 𝜇(𝑥), так называемой биссектрисы площади
𝑦
𝑥𝑚𝑎𝑥
𝜇(𝑥)𝑑𝑥 (на рис. 4 результат дефаззификации
∫𝑥 𝜇(𝑥)𝑑𝑥 = ∫𝑦
𝑚𝑖𝑛
обозначен синей линией);
метод левого модального значения 𝑦 = 𝑥𝑚𝑖𝑛 ;
метод правого модального значения𝑦 = 𝑥𝑚𝑎𝑥 .
Пример. Для правил системы нечеткого вывода по управлению уровнем
жидкости в емкости посредством изменения притока жидкости
дефаззификация функции принадлежности лингвистической переменной
«приток жидкости» (рис. 4) приводит к следующим результатам:
3
метод центра тяжести 𝑦 = 0.39875 м ⁄сек;
3
метод центра площади 𝑦 = 0.40938 м ⁄сек ;
метод левого модального значения 𝑦 = 0.21 м ⁄сек;
3
метод правого модального значения 𝑦 = 0.5 м ⁄сек.
3
Рассмотренные этапы нечеткого вывода могут быть реализованы
неоднозначным образом: агрегирование может проводиться не только в
базисе нечеткой логики Заде, активизация может проводиться различными
методами нечеткой композиции, на этапе аккумуляции объединение
можно
провести
отличным
от
𝑚𝑎𝑥-объединения
способом,
дефаззификация также может проводиться различными методами. Таким
образом, выбор конкретных способов реализации отдельных этапов
нечеткого вывода определяет тот или иной алгоритм нечеткого вывода. В
настоящее время остается открытым вопрос критериев и методов выбора
алгоритма нечеткого вывода в зависимости от конкретной технической
задачи. На текущий момент в системах нечеткого вывода часто
применяется алгоритм Мамдани.
Алгоритм Мамдани (Mamdani) нашел применение в первых
нечетких системах автоматического управления. Был предложен в 1975
году английским математиком Е. Мамдани для управления паровым
двигателем.
Формирование базы правил системы нечеткого вывода осуществляется
в виде упорядоченного согласованного списка нечетких правил в виде
«IF A THEN B », где антецеденты правил построены при помощи
логических связок «И», а консеквенты правил простые.
Фаззификация входных переменных осуществляется описанным выше
способом.
Агрегирование подусловий правил осуществляется при помощи
классической нечеткой логической операции «И» двух элементарных
высказываний 𝐴, 𝐵: 𝑇(𝐴 ∩ 𝐵) = 𝑚𝑖𝑛{𝑇(𝐴); 𝑇(𝐵)}.
Активизация подзаключений правил осуществляется методом minактивизации 𝜇(𝑦) = 𝑚𝑖𝑛{𝑐; 𝜇(𝑥)}, где 𝜇(𝑥) и 𝑐 – соответственно
функции принадлежности термов лингвистических переменных и
степени истинности нечетких высказываний, образующих
соответствующие следствия (консеквенты) нечетких правил.
Аккумуляция подзаключений правил проводится при помощи
классического для нечеткой логики max-объединения функций
принадлежности ∀𝑥 ∈ 𝑋 𝜇𝐴∪𝐵 (𝑥) = 𝑚𝑎𝑥{𝜇𝐴 (𝑥), 𝜇𝐵 (𝑥)}.
Дефаззификация проводится методом центра тяжести или центра
площади.
Например, описанный выше случай управления уровнем бака
соответствует алгоритму Мамдани, если на этапе дефаззификации четкое
значение выходной переменной ищется методом центра тяжести или
площади.