Файл: Решение задачи на определение расхода воды на полив.pdf
Добавлен: 18.05.2023
Просмотров: 296
Скачиваний: 5
СОДЕРЖАНИЕ
ГЛАВА 1. АНАЛИЗ ОСОБЕННОСТЕЙ НЕЧЕТКОЙ ЛОГИКИ И МЯГКИХ ВЫЧИСЛЕНИЙ
1.1 Основополагающие понятия нечеткой логики
1.2 Специфика использования нечеткого логического вывода
1.3 Популярные алгоритмы нечеткой логики
ГЛАВА 2. ПРЕИМУЩЕСТВА И ВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ ПОСТРОЕНИЯ НЕЧЕТКИХ МОДЕЛЕЙ
2.1 Анализ возможностей системы Matlab
2.2 Возможности использования модуля Fuzzy logic toolbox
ГЛАВА 3. РАЗРАБОТКА И ИССЛЕДОВАНИЕ НЕЧЕТКОЙ МОДЕЛИ РЕШЕНИЕ ЗАДАЧИ ОПРЕДЕЛЕНИЯ РАСХОДА ВОДЫ НА ПОЛИВ
1.3 Популярные алгоритмы нечеткой логики
Рассмотрим наиболее популярные алгоритмы реализации нечеткого логического вывода.
Алгоритм Mamdani. Данный алгоритм является наиболее распространенным и удобным на практике способом логического вывода в нечетких системах. В нем используется минимаксная композиция нечетких множеств.
На практике, данный алгоритм включает в себя следующую последовательность действий.
- Процедура фазификации: определяются степени истинности, т.е. значения функций принадлежности для левых частей каждого правила (предпосылок). Для базы правил с m правилами обозначим степени истинности как Aik(xk), i=1..m, k=1..n.
- Нечеткий вывод. Сначала определяются уровни "отсечения" для левой части каждого из правил:
alfai=mini(Aik(xk))
Далее находятся "усеченные" функции принадлежности:
B∗i(y)=mini(alfai,Bi(y))
- Композиция, или объединение полученных усеченных функций, для чего используется максимальная композиция нечетких множеств:
MF(y)=maxi(B∗i(y))
где MF(y) – функция принадлежности итогового нечеткого множества.
- Дефазификация, или приведение к четкости. Существует несколько методов дефазификации. Например, метод среднего центра, или центроидный метод:
MF(y)=maxi(B∗i(y))
Геометрический смысл такого значения – центр тяжести для кривой MF(y).
2. Алгоритм Sugeno. Согласно теоретическим положениям, нечеткий логический вывод по алгоритму Сугено (иногда говорят алгоритм Такаги-Сугено) выполняется по нечеткой базе знаний:
,
где
- некоторые числа.
База знаний Сугено аналогична базе знаний Мамдани за исключением заключений правил
, которые задаются не нечеткими термами, а линейной функцией от входов :
.
Правила в базе знаний Сугено являются своего рода переключателями с одного линейного закона "входы - выход" на другой, тоже линейный. Границы подобластей размытые, следовательно, одновременно могут выполняться несколько линейных законов, но с различными степенями. Степени принадлежности входного вектора
к значениям
рассчитывается следующим образом:
,
где
- операция из s-нормы (t-нормы), т.е. из множества реализаций логической операций ИЛИ (И). В нечетком логическом выводе Сугено наиболее часто используются следующие реализации треугольных норм: вероятностное ИЛИ как s-норма и произведение как t-норма.
Остальные этапы построения модели осуществляются аналогичным с Mamdani образом, т.е.:
- Формирование базы правил системы нечеткого вывода осуществляется в виде упорядоченного согласованного списка нечетких продукционных правил в виде «IF A AND B THEN w= ε1a+ ε2b », где антецеденты ядер правил нечеткой продукции построены из двух простых нечетких высказываний A, B при помощи логических связок «И», a и b – четкие значения входных переменных, соответствующие высказываниям A и B соответственно, ε1 и ε2 – весовые коэффициенты, определяющие коэффициенты пропорциональности между четкими значениями входных переменных и выходной переменной системы нечеткого вывода, w – четкое значение выходной переменной, определенное в заключении нечеткого правила, как действительное число.
- Фаззификация входных переменных, определяющих высказывания и , осуществляется аналогично алгоритму Мамдани.
- Агрегирование подусловий правил нечеткой продукции осуществляется аналогично алгоритму Мамдани при помощи классической нечеткой логической операции «И» двух элементарных высказываний
A, B : T(A ∩ B) = min{T(A);T(B)}
- Активизация подзаключений правил нечеткой продукции проводится в два этапа. На первом этапе, степени истинности c заключений (консеквентов) нечетких продукционных правил, ставящих в соответствие выходной переменной действительные числа, находятся аналогично алгоритму Мамдани, как алгебраическое произведение весового коэффициента и степени истинности антецедента данного нечеткого продукционного правила. На втором этапе, в отличие от алгоритма Мамдани, для каждого из продукционных правил вместо построения функций принадлежности подзаключений в явном виде находится четкое значение выходной переменной w= ε1a+ ε2b . Таким образом, каждому i-му продукционному правилу ставится в соответствие точка ( ciwi ) , где ci – степень истинности продукционного правила, wi – четкое значение выходной переменной, определенной в консеквенте продукционного правила.
- Аккумуляция заключений правил нечеткой продукции не проводится, поскольку на этапе активизации уже получены дискретные множества четких значений для каждой из выходных лингвистических переменных.
- Дефаззификация проводится как и в алгоритме Цукамото. Для каждой лингвистической переменной осуществляется переход от дискретного множества четких значений { w1…wn } к единственному четкому значению согласно дискретному аналогу метода центра тяжести y= , где n – количество правил нечеткой продукции, в подзаключениях которой фигурирует данная лингвистическая переменная, ci – степень истинности подзаключения продукционного правила, wi – четкое значение данной лингвистической переменной, установленное в консеквенте продукционного правила.
ГЛАВА 2. ПРЕИМУЩЕСТВА И ВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ ПОСТРОЕНИЯ НЕЧЕТКИХ МОДЕЛЕЙ
2.1 Анализ возможностей системы Matlab
MATLAB - это программный комплекс моделирования различных процессов и систем, включающий в свой состав собственную интерактивную среду программирования, выполнения численных расчетов и наглядной визуализации результатов. С помощью MATLAB пользователи могут гибко анализировать данные, создавать алгоритмы, различные модели и программные приложения [10].
Язык программирования, модульный инструментарий и доступные математические функции позволяют осуществлять исследование разнородных подходов к созданию систем и получать решение оперативно без необходимости разработки приложений с нуля на языках программирования. Интерфейс системы приведен на рис.2.1.
Рисунок 2.1 – Интерфейс системы
MATLAB часто применяют при [11]:
- обработке сложных сигналов и моделирования процессов связи;
- обработке медиа данных;
- моделировании систем управления;
- автоматизации тестирования работы приложений и моделей;
- финансовом инжиниринге и анализе.
MATLAB позволяет существенно сократить время на разработку решений ряда типовых задач, упрощая разработку новых алгоритмов, по сравнению с использованием общепринятых языков программирования.
Система MATLAB является главным инструментом решения различных научных и разнородных прикладных задач, особенно в таких областях: моделирование сложных объектов, разработка систем управления процессами и системами, проектирование систем коммуникации.
Ядро MATLAB позволяет оперативно работать с матрицами различных аналитических типов данных, а также содержит механизмы интеграции структур данных и таблиц поиска.
MATLAB включает в свой состав ряд встроенных функций линейной алгебры, функции поддержки преобразования Фурье, модули для работы с полиномами разной степени, базовой статистикой и выполнения численного решения дифференциальных уравнений разной степени сложностей, а также дополнительные математические библиотеки Intel MKL [12].
Преимущества системы:
- поддержка операций по работе с матрицами;
- продуманный и удобный графический пользовательский интерфейс;
- высокая скорость работы.
Недостатки Matlab:
- высокая стоимость покупки лицензий;
- лишь частичная поддержка некоторых статистических функций;
- сложности с интеграцией с языками JAVA и C ++.
2.2 Возможности использования модуля Fuzzy logic toolbox
Удобным средством реализации НЛ в Matlab является Fuzzy Logic Toolbox.
Fuzzy Logic Toolbox (FLT) - это программный модуль, который входит в стандартный состав системы MatLab. Он предоставляет функциональные возможности создания системы НЛВ и нечеткой классификации ЛП в рамках системы MatLab, с возможностью их интеграции с системой Simulink. Основополагающим понятием данного модуля является FIS-структура - Fuzzy Inference System, которая содержит перечень всех необходимых данных для реализации отображения по типу "входы-выходы".
Используемые обозначения в модуле:
Х – представляет собой входной четкий вектор;
- вектор НМ, который соответствует входному вектору X;
- результат НЛВ в виде вектора НМ;
Y - выходной четкий вектор.
FLT содержит рял следующих программных инструментов:
- функции преобразования;
- интерактивные модули с интерфейсом пользователя (GUI)
- модульные блоки и компоненты для системы Simulink;
- различные демонстрационные примеры работы.
Модуль FLT имплементирует НС двух типов - Мамдани и Сугено. В первых системах БЗ состоит из правил продукционного вида "Если x1 = низкий и x2 = средний, то y = высокий". Во вторых системах БЗ состоит из правил типа "Если x1 = низкий и x2 = средний, то y = a0 + a1x1 + a2x2 ". Поэтому основное отличие между данными НС заключается в различных подходах к заданию значений выходной переменной в создаваемых правилах, которые образуют БЗ. В системах Мамдани значение итоговой выходной переменной формируется на базе использования нечетких термов, а в системах типа Сугено в виде линейной комбинации всех входных переменных [13].
Система FLT представляется в рамках рабочей области MatLab в виде структуры данных, которая изображена на риc 2.2.
Рисунок 2.2 – Структура данных системы нечеткого логического вывода в fuzzy logic toolbox
FLT поддерживает все стадии разработки НС: синтез, исследование, проектирование, моделирование, внедрение [14].
Встроенные GUI-модули обеспечивают возможности создания понятной среды, удобным графическим интерфейсом. Функции пакета обеспечивают возможности использования большинства современных нечетких технологий, например НЛВ, нечеткую кластеризацию и адаптивную нейро-нечеткой настройки. FLT ориентирован на пользователя, он может просмотреть алгоритмы, исходный код программных приложений, а также создавать собственные функции принадлежности и процедуры дефаззификации [15].
FLT содержит функции, которые можно вызывать как через графический интерфейс, так и через командную строку и несколько дополнительных модулей, которые позволяют настраивать систему визуально, в виде описания возможных диалогов. FLT включает следующие GUI-модули:
- Fuzzy Inference System Editor – графически редактор свойств системы НЛВ. Позволяет идентифицировать общее количество входов и выходов системы, а также осуществить выбор типа системы, метода дефаззификации, реализации логических функций (I и ИЛИ), а также вызывать другие GUI-модули,
- Membership Function Editor - редактор разрабатываемых ФП. Данный пакет визуализирует на экране графики ФП термов входных и выходных переменных. Позволяет менять число таких термов, конфигурировать их тип и параметры [16].
- Rule Editor - редактор нечеткой БЗ. Обеспечивает возможности задаиия и редактирования правил нечеткой БЗ
- Rule Viewer – окно нечеткого вывода. Визуально позволяет наглядно отразить выполнения НВ по каждому отдельному правилу в виде графиков.
- Surface Viewer – окно трехмерной визуализации поверхности «входы-выход». Выводит итоговую поверхность зависимости конечной выходной переменной от любых двух входных переменных [17].
ГЛАВА 3. РАЗРАБОТКА И ИССЛЕДОВАНИЕ НЕЧЕТКОЙ МОДЕЛИ РЕШЕНИЕ ЗАДАЧИ ОПРЕДЕЛЕНИЯ РАСХОДА ВОДЫ НА ПОЛИВ
3.1 Постановка задачи
Используя пакет нечеткой логики Fuzzy Toolbox системы MatLab, построить нечеткую экспертную систему.
В задаче требуется определить расход воды при поливе сельскохозяйственных угодий.