Файл: Решение задачи на определение расхода воды на полив.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 18.05.2023

Просмотров: 296

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1.3 Популярные алгоритмы нечеткой логики

Рассмотрим наиболее популярные алгоритмы реализации нечеткого логического вывода.

Алгоритм Mamdani. Данный алгоритм является наиболее распространенным и удобным на практике способом логического вывода в нечетких системах. В нем используется минимаксная композиция нечетких множеств.

На практике, данный алгоритм включает в себя следующую последовательность действий.

  1. Процедура фазификации: определяются степени истинности, т.е. значения функций принадлежности для левых частей каждого правила (предпосылок). Для базы правил с m правилами обозначим степени истинности как Aik(xk), i=1..m, k=1..n.
  2. Нечеткий вывод. Сначала определяются уровни "отсечения" для левой части каждого из правил:

alfai=mini(Aik(xk))

Далее находятся "усеченные" функции принадлежности:

B∗i(y)=mini(alfai,Bi(y))

  1. Композиция, или объединение полученных усеченных функций, для чего используется максимальная композиция нечетких множеств:

MF(y)=maxi(B∗i(y))

где MF(y) – функция принадлежности итогового нечеткого множества.

  1. Дефазификация, или приведение к четкости. Существует несколько методов дефазификации. Например, метод среднего центра, или центроидный метод:

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-модули:

  1. Fuzzy Inference System Editor – графически редактор свойств системы НЛВ. Позволяет идентифицировать общее количество входов и выходов системы, а также осуществить выбор типа системы, метода дефаззификации, реализации логических функций (I и ИЛИ), а также вызывать другие GUI-модули,
  2. Membership Function Editor - редактор разрабатываемых ФП. Данный пакет визуализирует на экране графики ФП термов входных и выходных переменных. Позволяет менять число таких термов, конфигурировать их тип и параметры [16].
  3. Rule Editor - редактор нечеткой БЗ. Обеспечивает возможности задаиия и редактирования правил нечеткой БЗ
  4. Rule Viewer – окно нечеткого вывода. Визуально позволяет наглядно отразить выполнения НВ по каждому отдельному правилу в виде графиков.
  5. Surface Viewer – окно трехмерной визуализации поверхности «входы-выход». Выводит итоговую поверхность зависимости конечной выходной переменной от любых двух входных переменных [17].

ГЛАВА 3. РАЗРАБОТКА И ИССЛЕДОВАНИЕ НЕЧЕТКОЙ МОДЕЛИ РЕШЕНИЕ ЗАДАЧИ ОПРЕДЕЛЕНИЯ РАСХОДА ВОДЫ НА ПОЛИВ

3.1 Постановка задачи

Используя пакет нечеткой логики Fuzzy Toolbox системы MatLab, построить нечеткую экспертную систему.

В задаче требуется определить расход воды при поливе сельскохозяйственных угодий.