Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ Компьютерный практикум.doc
Скачиваний:
489
Добавлен:
20.03.2016
Размер:
3.35 Mб
Скачать
  1. Компьютерный практикум по нечетким системам

    1. Аппроксимация функции одной переменной с использованием нечеткой системы

Цель выполнения лабораторной работы:

1. Освоить методику построения нечетких систем.

2. Используя нечеткую систему научиться аппроксимировать функцию одной переменной.

Задание:

Необходимо построить с помощью интерфейсной программы пакета нечеткой логики программной среды MATLAB нечеткую систему, необходимую для аппроксимации табличной функции ,. Варианты задания представлены в табл. 2.1.

Варианты заданий

Значения , , одинаковы для всех вариантов

Таблица 2.1

i

Значение

№1

№2

№3

№4

№5

№6

№7

№8

№9

№10

1

2

3

4

5

6

7

8

9

10

1.50

1.26

0.99

0.97

0.91

0.71

0.43

0.54

0.19

0.01

2.09

2.05

2.19

2.18

2.17

2.27

2.58

2.73

2.82

3.04

2.02

1.98

1.67

1.65

1.57

1.42

1.37

1.07

0.85

0.48

1.99

2.03

2.20

2.39

2.19

2.61

2.35

2.60

2.55

2.49

2.23

2.29

2.27

2.62

2.72

2.82

3.13

3.49

3.82

3.95

2.07

2.17

2.21

2.31

2.10

2.09

2.12

1.63

1.78

1.52

2.18

2.43

2.40

2.43

2.65

2.75

2.67

2.66

2.63

2.75

-0.10

-0.21

0.01

0.05

-0.13

-0.23

-0.21

-0.43

-0.57

-0.44

-0.16

0.01

0.10

0.16

0.05

0.35

0.19

0.50

0.74

1.03

2.09

2.31

2.72

2.77

2.78

2.97

3.00

3.51

3.43

3.58

Пример выполнения:

Зависимость между переменными y и х заданы с помощью табл. 2.2. Требуется построить нечеткую систему, с помощью которой возможно аппроксимировать предложенную функцию, заданную таблично.

Таблица 2.2

1

2

3

4

5

6

7

8

9

10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

2.05

1.94

1.92

1.87

1.77

1.74

1.71

1.60

1.56

1.40

Для аппроксимации функции с одной переменной используем среду MATLAB. Командой fuzzy из режима командной строки запускается интерфейсная программа пакета Fuzzy Logic (Нечеткая логика) – редактор нечеткой системы вывода FIS (Fuzzy Inference System).

В меню File (Файл) выбираем опцию New Sugeno FIS (новая система типа Sugeno), появится окно редактора (рис. 4.1). В появившемся окне существуют поля входной, выходной функции и редактора правил. Необходимо переименовать блоки input1 в x, output1 в y.

Рис. 4.1. Окно редактора функции

В блоке параметров нечеткой системы типа Sugeno задаются:

  • меню And method позволяет установить реализации логической операции И: min – минимум и prod – алгебраической произведение (см. раздел 4.2.1);

  • меню Or method позволяет установить реализации логической операции ИЛИ: max – максимум и probor – алгебраическая сумма (см. раздел 4.2.1);

  • меню Defuzzification позволяет выбрать один из методов дефаззификации: wtaver – метод взвешенного среднего, при котором илиwtsum – метод взвешенной суммы, при котором , где– количество правил базы знаний.

При щелчке по блоку x (input1) откроем окно редактора функций принадлежности (рис. 4.2). Необходимо добавить функции принадлежности, для этого в меню Edit (Редактирование) выбираем опцию Add MFs (рис. 4.3). В появившемся диалоговом окне задается тип и количество функций принадлежности (9, далее добавляем еще 1 для того, чтобы получить 10 функций принадлежности). В качестве функций принадлежности выберем гауссовы функции (gaussmf). Затем в окне редактора функций принадлежности в поле Range (Диапазон) устанавливаем диапазон изменения значений х от 0 до 1, т.е. диапазон соответствующий табл. 4.2. Далее необходимо подвинуть графики заданных функций принадлежности, чтобы ординаты их максимумов совпадали с заданными значениями аргумента х. Для этого в поле Params (Параметры) задаем размах кривой и положение ее центра.

Рис. 4.2. Окно редактора функции принадлежности для х

Рис. 4.3. Окно добавления функций принадлежности

Далее необходимо задать функции принадлежности для у, щелкнув по блоку у и перейдя к редактору функций принадлежности (рис. 4.4). Добавим функции принадлежности (меню Edit Add MFs). В качестве функции принадлежности выбираются 10 констант, по числу различных значений yi в табл. 4.2. Таким образом сконструированная система является нечеткой системой типа Сугено 0-го порядка. В окне редактора функций принадлежности зададим значения функции у в поле Params.

В окне FIS-редактора (рис. 5.1), щелкнув по среднему блоку, откроем окно редактора правил (рис. 4.5).

При вводе правила необходимо обозначить соответствие между каждой функцией принадлежности аргумента х и числовым значением у.

Рис. 4.4. Окно редактора функций принадлежности для у

Существует возможность просмотра правил (рис. 4.6). Для этого выберем позицию меню Viewrules. В левой части окна в графической форме представлены функции принадлежности аргумента х, в правой – переменной выхода у с пояснением механизма принятия решения. Вертикальная черта, пересекающая графики в левой части окна, позволяет изменять значения переменной входа, при этом соответственно изменяются значения у в правой части окна. Изменение аргумента путем перемещения вертикальной линии наглядно демонстрирует, как система определяет значения выхода.

Рис. 4.5. Окно редактора правил

Рис. 4.6. Окно просмотра правил

В результате была построена нечеткая система, которая решила задачу аппроксимации заданной табличной функции. В табл. 4.3 приведено сравнение выходов нечеткой системы с исходными значениями y (четвертый столбец в таблице – выходы нечеткой системы).

Как видно из табл. 4.3 максимальное отклонение выходов нечеткой системы от исходных данных составляет 0,02.

Выбрав в меню ViewSurface, перейдем к окну просмотра поверхности выхода, в данном случае – к просмотру кривой у(х) (рис. 4.7).

Таблица 4.3

I

xi

1

2

3

4

5

6

7

8

9

10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

2.05

1.94

1.92

1.87

1.77

1.74

1.71

1.60

1.56

1.40

2.03

1.95

1.92

1.86

1.78

1.74

1.72

1.61

1.54

1.42

0.02

0.01

0

0.01

0.01

0

0.01

0.01

0.02

0.02

Рис. 4.7. График функции

В заключении следует отметить, что с помощью вышеуказанных программ-редакторов на любом этапе проектирования нечеткой модели в нее можно внести необходимые коррективы, вплоть до задания какой-либо особенной пользовательской функции принадлежности.

Выводы (пример):

В результате выполнения лабораторной работы я познакомился с теоретическими сведениями о нечетких множествах, их свойствах, базах знаний, нечетком логическом выводе. В ходе выполнения лабораторной работы мною была построена нечеткая система с помощью пакета нечеткой логики Fuzzy Logic среды MATLAB, которая аппроксимирует заданную табличную функцию. Было произведено сравнение выходов нечеткой системы с заданными значениями y, в результате чего было установлено, что максимальное отклонение составило 0.02 (например, при х=0.1), что составляет 1.025%.

Контрольные вопросы

  1. Дайте определение нечеткого множества.

  2. Опишите этапы нечеткого логического вывода

  3. Какой алгоритм вывода использовался при выполнении лабораторной работы? Опишите данный алгоритм.

  4. В чем отличие использованного алгоритма от остальных существующих?

  5. Какие типы функций принадлежности были использованы при выполнении лабораторной работы и почему?