Средства MathLab для работы с нечеткой логикой ИСПОЛЬЗОВАНИЕ КОНТРОЛЛЕРА НЕЧЕТКОЙ ЛОГИКИ В САР Цель работы: освоить методику построения контроллеров нечеткой логики Краткие теоретические сведения При создании регулятора для управления различными технологическими процессами основные трудности возникают при управлении объектами, у которых параметры управления оказываются неопределенными и сильно влияющими на результаты решения. Специалисты часто сталкиваются с необходимостью расчетов при наличии в уравнениях нечетких переменных. Возникающие при этом нарушения равенств, приводят к необходимости варьировать некоторыми параметрами для точного удовлетворения заданных уравнений и получения приемлемого результата. Такого рода ситуации могут возникать как вследствие недостаточной изученности объектов. Особенность подобных систем состоит в том, что значительная часть информации, необходимой для их математического описания, существует в форме представлений или пожеланий экспертов. Такой подход опирается на предпосылку о том, что элементами мышления человека являются не числа, а элементы некоторых нечетких множеств или классов объектов, для которых переход от "принадлежности к классу" к "непринадлежности" не скачкообразен, а непрерывен. Традиционные методы недостаточно пригодны для анализа подобных систем именно потому, что они не в состоянии охватить нечеткость человеческого мышления и поведения. Теория нечетких (размытых) множеств была впервые предложена американским математиком Лотфи Заде в 1965 г. и предназначалась для преодоления трудностей представления неточных понятий, анализа и моделирования систем, в которых участвует человек. Теоретические же основания данного подхода вполне точны и строги в математическом смысле и не являются сами по себе источником неопределенности. В данной лабораторной работе для создания модели САР с контроллером нечеткой логики используется среда моделирования МаtLab. Средства MathLab для работы с нечеткой логикой Для создания модели контроллера нечеткой логики в Matlab использу-ется библиотека Simulink (компоненты Fuzzy Logic Controller и Fuzzy Logic Controller with Ruleviewer) (Рисунок 1‑1) пакета Fuzzy Logic Toolbox.  Рисунок 1‑1 – Браузер Simulink - библиотек – выбор компонента Fuzzy Logic Controller . Также для создания контроллера нечеткой логики используются встроенные функции принадлежности (Рисунок 1‑2).  Рисунок 1‑2 – Браузер Simulink - библиотек – выбор функции принадлежности . Отличие компонента «Fuzzy Logic Controller» от «Fuzzy Logic Controller with Ruleviewer» заключается в том, что компонент «Fuzzy Logic Controller with Ruleviewer» предоставляет возможность контроля процесса работы контроллера нечеткой логики (Рисунок 1‑3).  Рисунок 1‑3 – Просмотр состояния логических переменных контроллера нечеткой логики Оба эти компонента работают с массивом данных , находящимся в видимости рабочей области . Для загрузки массива данных используется команда: , где fis – имя переменной , устанавливаемое в окне параметров компонента , `testfis` - имя файла , хранящего описание контроллера нечеткой логики . Для создания файла с описанием контроллера нечеткой логики используется графическая оболочка anfisedit (Рисунок 1‑5). .  Рисунок 1‑4 – Окно параметров компонента Fuzzy Logic Controller  Рисунок 1‑5 – Графическая среда создания контроллера нечеткой логики При помощи anfisedit можно создавать контроллеры нечеткой логики двух видов : 1. Mamdani (Рисунок 1‑6) - входные и выходные переменные описываются при помощи стандартных функций принадлежности. 2. Sugeno - входные переменные описываются при помощи стандартных функций принадлежности, а выходные при помощи прямоугольной функции принадлежности (Рисунок 1‑7).  Рисунок 1‑6 – Представление нечетких переменных в контроллере нечеткой логики Mamdani  Рисунок 1‑7 – Представление нечетких переменных в контроллере нечеткой логики Sugeno При помощи anfisedit можно посмотреть передаточную функцию контроллера нечеткой логики. На рисунке 9.8 изображена передаточная функция разрабатываемого контроллера.  Рисунок 1‑8 Передаточная функция контроллера нечеткой логики Структура разрабатываемого контроллера при помощи anfisedit представлена на рисунке (9.9) и включает в себя основные составляющие контроллера нечеткой логики: · фаззыфикация · формирование логического решения · деффаззификация  Рисунок 1‑9 – Структура контроллера нечеткой логики, разрабатываемого при помощи anfisedit Для формирования базы знаний используется графическая среда, изображенная на рисунке 9.10. При помощи этой среды формируются правила, содержащие функции логического И, ИЛИ, НЕ.  Рисунок 1‑10 - Формирование базы знаний контроллера нечеткой логики, разрабатываемого при помощи anfisedit В Mathlab представлен широкий выбор функций принадлежности, основные из них представлены на рисунке 9.11. Дефаззификацию можно проводить несколькими способами, основные из них представлены на рисунке 9.12. На рисунке 9.12 представлены три функции принадлежности одной логической переменной. Синей линией обозначено объединение нечетких множеств. Синими точками отмечены значения выходной величины при использовании разных способов дефаззификации. Для сохранения описания контроллера нечеткой логики используется команды File->Export->To Disk(To Workspase). Для загрузки описания контроллера нечеткой логики используется команды File->Import->From Disk(From Workspase).  Рисунок 1‑11 – Функции принадлежности Рисунок 1‑12 – Способы выполнения дефаззификации | | |