Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Water Level Control.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.21 Mб
Скачать

Лабораторная работа №3 Проектирование нечеткого контроллера (нечеткий логический вывод)

Цель работы заключается в ознакомлении с процедурой нечеткого логического вывода по алгоритму Мамдани[1],[5].

3.1. Предварительные сведения

3.1.1.В нечеткой логике важным понятием является понятие нечеткого предложения (fuzzy proposition): «level есть high». Здесь слово level обозначает физическую величину (уровень), а нечеткое множество high характеризуется лингвистикой высокий и задается с помощью соответствующей функции принадлежности µhigh(level).

3.1.2.Нечеткие предложения, соединенные нечетким AND или OR, иногда называют условиями или предпосылками (antecedent), и для их обозначения используют индикатор если (if). Таким образом, aнтецедент будет иметь следующий вид:

if (level is high) and (rate is negative).

3.1.3. Антецедент определяет совокупность выводов (заключений). Эта совокупность называется консеквент (consequent). Индикатором консеквента является слово тогда (then). Таким образом, консеквент будет иметь следующий вид:

then valve is close.

3.1.4. Совокупность антецедента и консеквента определяет продукционное нечеткое правило (fuzzy rule):

if (level is high) and (rate is negative) then valve is fast_close.

3.1.5. Совокупность продукционных нечетких правил образует нечеткую базу правил, используемую для нечеткого логического вывода (fuzzy logic inference). Нечеткий логический вывод - это процедура, состоящая из следующих этапов: фаззификации, агрегирования, активизации, аккумуляции и дефаззификации.

3.1.6. Фаззификация - это процесс определения значения функции принадлежности по известному значению аргумента. Агрегирование – это процесс определения степени истинности антецедента в форме нечеткого AND или форме нечеткого произведения PROD. Активизация – это процесс определения степени истинности консеквента. Аккумуляция – это процесс объединения степеней истинности консеквентов для получения степени истинности выходных лингвистических переменных. Дефаззификация - это процесс определения четкого значения выходных переменных.

3.2. Задание для выполнения работы

3.2.1. Ознакомиться с материалом, изложенным в п.п.3.1.1-3.1.6 настоящего руководства.

3.2.2.Загрузить Fis –Еditor и создать базу правил, указанных в п.п.1.1.4 –

3.2.3. Используя Rule Viewer провести тестирование созданной базы правил.

3.2.4. Сохранить fis– файл для собственной Simulink-модели

3.3. Порядок выполнения работы

Создание базы правил

3.3.1.База правил нечеткого контроллера создается с помощью Редактора правил (Rule Editor). Установите исходную панель FISEditor FazCont, приведенную на рис.2.1.

3.3.2.Rule Editor можно загрузить, дважды щелкнув ЛК на иконке FazCont Mamdani (последнее слово означает тип алгоритма нечеткого вывода по имени автора алгоритма). Появится панель Редактора правил, которая имеет следующий вид:

3.3.3.Для того, чтобы ввести в базу правило

If (level is okay) then (valve is no_change) (1),

необходимо в окне level установить okay, в окне rate установить none, в окне valve установить no_change и нажать клавишу Add rule. Правило 1 появится в первой строке верхнего окна. Аналогично введите остальные четыре правила ( см. п.п.1.1.4-1.1.5).

3.3.4.После создания базы правил исходная панель FISEditor FazCont

примет следующий вид: