
- •Автоматизированное проектирование. Работа в системе matlab
- •Содержание
- •Часть 1
- •Часть 2
- •Общие сведения о matlab
- •Лабораторная работа 1 Математика и вычисления
- •Лабораторная работа 2 Научная и инженерная графика
- •Лабораторная работа 3 Вычислительный эксперимент, программирование, разработка приложений
- •Лабораторная работа 4 Кинематика процесса копания грунта поворотом ковша экскаватора
- •Часть 2
Часть 2
Лабораторная работа 7
СОЗДАНИЕ ЭКСПЕРТНОЙ СИСТЕМЫ В MATLAB.
АЛГОРИТМ МАМДАНИ
Общие сведения
Используемый в различного рода экспертных системах механизм нечетких выводов в своей основе имеет базу знаний, формируемую специалистами предметной области в виде совокупности нечетких предикатных правил вида:
П1: если х есть А1, то у есть В1,
П2: если х есть А2, то у есть В2,
………………………………………….
Пn: если х есть Аn, то у есть Вn .
Общий логический вывод осуществляется за следующие 4 этапа:
1. Нечеткость.
Функции принадлежности, определенные на входных переменных, применяются к их фактическим значениям для определения степени истинности каждой предпосылки каждого правила.
2. Логический вывод.
Вычисленное значение истинности для предпосылок каждого правила применяется к заключениям каждого правила. Это приводит к одному нечеткому подмножеству, которое будет назначено каждой переменной вывода для каждого правила. В качестве правил логического вывода обычно используются только операции min (МИНИМУМ) или prod (УМНОЖЕНИЕ). В логическом выводе МИНИМУМА функция принадлежности вывода «отсекается» по высоте, соответствующей истинной степени истинности предпосылки правила (нечеткая логика «И»). В логическом выводе УМНОЖЕНИЯ функция принадлежности вывода масштабируется при помощи вычисленной степени истинности предпосылки правила.
3. Композиция.
Все нечеткие подмножества, назначенные для каждой переменной вывода, объединяются вместе, чтобы формировать одно нечеткое подмножество для каждой переменной вывода. При подобном объединении обычно используются операции max (МАКСИМУМ) или sum (СУММА). При композиции МАКСИМУМА комбинированный вывод нечеткого подмножества конструируется как поточечный максимум по всем нечетким подмножествам (нечеткая логика «ИЛИ»). При композиции СУММЫ комбинированный вывод нечеткого подмножества конструируется как поточечная сумма по всем нечетким подмножествам, назначенным переменной вывода правилами логического вывода.
4. Приведение к четности (дефазификация).
Используется, когда нужно преобразовать нечеткий набор выводов в четкое число.
Алгоритм Мамдани.
Данный алгоритм математически может быть описан следующим образом. Для простоты будем считать, что базу знаний образуют два нечетких правила:
П1: если х есть А1 и у есть В1, то z есть C1,
П2: если х есть А2 и у есть В2, то z есть C2.
1. Нечеткость: находятся степени истинности для предпосылки каждого правила А1(х0), А2(х0), В1(y0), В2(y0).
2. Нечеткий вывод: находятся уровни отсечения для предпосылок каждого из правил с использованием операции МИНИМУМ:
1 = А1(х0) В1(у0),
2 = А2(х0) В2(у0),
где через обозначена операция логического минимума (min), затем находятся «усеченные» функции принадлежности
С1(z) = (1 C1(z)),
С2(z) = (2 C2(z)).
3. Композиция: с использованием операции МАКСИМУМ (max, обозначение: ) производится объединение найденных усеченных функций, что приводит к получению итогового нечеткого подмножества для переменной выхода с функцией принадлежности
(z) = C(z) = C1(z) C2(z) = (1 C1(z)) (2 C2(z)).
4. Приведение к четкости (для нахождения z0) проводится, например, центроидным методом (как х – координата центра тяжести функции принадлежности итогового нечеткого подмножества для переменной выхода).
Создание ЭС в MatLab
Для простоты будем считать, что базу знаний образуют два нечетких правила:
П1: если х есть А1 и у есть В1, то z есть C1,
П2: если х есть А2 и у есть В2, то z есть C2.
Создадим в MatLab экспертную систему:
В открывшемся окне выбираем Edit FIS properties. Открывается окно FIS Editor:
Задаем две входные переменные x и y (EditAdd VariableInput) и одну выходную переменную z (EditAdd VariableOutput). Окно принимает вид:
Для переменной x, щелкнув на соответствующей иконке, задаем две гауссовых функции принадлежности (А1 и А2) (параметры выбрать произвольно):
Для переменной y, щелкнув на соответствующей иконке, задаем две гауссовых функции принадлежности (B1 и B2) (параметры выбрать произвольно).
Для переменной z, щелкнув на соответствующей иконке, задаем две треугольных функции принадлежности (C1 и C2) (параметры выбрать произвольно).
Открываем окно задания правил (Edit Rules) и задаем два правила, устанавливая переключатели и нажимая кнопку Add Rule:
Для демонстрации работы экспертной системы выбираем View Rules:
Задание.
Изменяя значения входных переменных, наблюдать за процессами композиции и дефуззификации.
Получить трехмерный график зависимости значений выходной переменной от значений входных переменных (View Surface).
Получить двумерный график зависимости значений выходной переменной от значений одной входной переменной при фиксированной другой (выбрать, например, значение переменной y none).