close

Вход

Забыли?

вход по аккаунту

?

Burakov2 0017E4D108

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
НЕЧЕТКАЯ ЛОГИКА
И НЕЧЕТКОЕ УПРАВЛЕНИЕ
Методические указания
для выполнения лабораторных работ
Санкт-Петербург
2015
Составитель – кандидат технических наук, доцент М. В. Бураков
Рецензент – кандидат технических наук, доцент А. А. Мартынов
Приводятся основные понятия теории нечетких множеств и нечеткой логики, рассматриваются основы конструирования нечетких
систем управления.
Рассмотрены примеры использования пакета Fuzzy logic toolbox
MatLab для решения практических задач.
Издание предназначено для подготовки бакалавров по направлению 270304 – «Управление в технических системах», а также студентов других специальностей, изучающих дисциплины «Системы с искусственным интеллектом» и «Нечеткая логика в электромеханике и
электроэнергетике».
Публикуется в авторской редакции.
Компьютерная верстка Ю. В. Умницына
Подписано к печати. Формат 60 × 84 1/16.
Бумага офсетная. Усл. печ. л. 3,84. Тираж 100 экз. Заказ № 416.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
© Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2015
ВВЕДЕНИЕ
Системы с нечеткой логикой получили в последние годы большое распространение во всем мире. Они используются при решении задач распознавания, управления, прогнозирования, диагностики, обучения и т. д.
В основе нечетких систем лежит понятие нечеткого множества
(НМ), которое является расширением понятия классического множества. С помощью НМ оказывается возможным описывать качественные понятия, присущие человеческому языку и мышлению.
Нечеткая логика является расширением классической логики,
позволяющим учитывать неопределенности при логическом выводе. Нечеткая логика оказалась удобным инструментом для разработки нечетких логических регуляторов, использующих экспертные знания о процессе управления.
Методическое пособие содержит описание пяти лабораторных
работ, выполнение которых позволяет получить базовые знания о
нечетких множествах, нечеткой логике и нечетком управлении.
Для углубленного изучения предмета рекомендуется использовать учебные пособия [1–5] и монографии [6–9].
3
Лабораторная работа № 1
НЕЧЕТКИЕ МНОЖЕСТВА И ОПЕРАЦИИ НАД НИМИ
Цель работы: изучить способы описания нечетких множеств
с использованием различных типов функций принадлежности. Ознакомиться с наиболее распространенными логическими операциями над нечеткими множествами.
1.1. Нечеткие множества
Нечетким множеством A на универсальном (базовом) множестве X называют совокупность пар элементов вида
A = {mА(х) / x }, x О X.
mА(х) : X → [0, 1].
где mА(х) – функция принадлежности; знак «/» является разделителем.
Само универсальное множество можно описать так:
µX(х) = 1, ∀ x О X.
Значение функции принадлежности для конкретного x называют степенью принадлежности.
Степень принадлежности mА(х) – это субъективная мера того,
насколько элемент x соответствует понятию, смысл которого формализуется с помощью НМ A.
Нечеткое множество можно рассматривать как совокупность составляющих его синглетонов – одноточечных НМ. В зависимости
от того, непрерывное или дискретное множество X рассматривается, применяется одна из форм записи:
A=
∫ m A (x)dx или A=
X
N
∑ m A (xi ) / xi .
i =1
Знак интеграла или суммы здесь означает объединение (конъюнкцию) синглетонов.
Пример НМ для дискретной области определения:
X = {x1, x2, x3,x4},
A = 0.2/x1 + 0.6/x2 + 1/x3 + 0.8/x4.
4
µ A (x)
1
0
x
Рис. 1.1. Пример нечеткого множества на непрерывной
базовой шкале
Пример для непрерывной области определения показан на
рис. 1.1.
Обычно НМ формализует некоторое качественное понятие, например
A = «около 3» = 0.5/2 + 1/3 + 0.5/4
B = «дорогая машина» = 0.1/«Lada» + 0.5/«Opel» + 0.8/«BMV».
Для программной реализации нечетких систем желательно
иметь аналитическое описание функции принадлежности (ФП),
чтобы вычислять степень принадлежности для произвольного значения из области определения.
Рассмотрим примеры описания функций принадлежности
в MatLab (см. табл. 1.1).
Для описания треугольной ФП используется команда
>> y = trimf(x, [a b c]);
где x – базовая шкала, на которой описывается ФП, a, b и c – координаты вершин треугольника на базовой шкале. Например:
>> x = (0:0.2:10);
>> y = trimf(x, [2 4 7]);
>> plot(x, y);
Полученный график показан на рис. 1.2.
Можно построить несколько функций принадлежности в одном
графическом окне с помощью команд:
>> y1 = trimf(x, [1 3 7]);
5
Таблица 1.1.
Команды для описания функций принадлежности в MatLab
№
Команда
Реализуемая функция
1
2
3
4
5
6
7
8
9
10
11
12
13
dsigmf
evalmf
evalmmf
gauss2mf
gaussmf
gbellmf
pimf
psigmf
sigmf
smf
trapmf
trimf
zmf
14
fuzarith
ФП в виде разности между двумя сигмоидами
вычисление значений произвольной ФП
расчет степеней принадлежностей для нескольких ФП
двухсторонняя гауссовская ФП
гауссовская ФП
обобщенная колокообразная ФП
π-подобная ФП
произведение двух сигмоидных ФП
сигмоидная ФП
s-подобная ФП
трапециевидная ФП
треугольная ФП
z-подобная ФП
Калькулятор для выполнения арифметических
операций над нечеткими числами
>> y2 = trimf(x, [3 5 8]);
>> y3 = trimf(x, [5 8 10]);
>> plot(x, y1,x,y2,x,y3);
С помощью следующего m-файла можно построить графики треугольных функций принадлежности в различных окнах:
x = 0 : 0.1 : 10;
1
0.9
0.8
0.7
0.6
y 0.5
0.4
0.3
0.2
0.1
0
0
1
2
3
4
5
x
6
7
8
9
10
Рис. 1.2. Треугольная функция принадлежности
6
subplot(1,3,1);
y = trimf(x,[1 3 7]);
plot(x, y); grid;
xlabel(‘trimf, Р=[1 3 7]’);
subplot(1, 3, 2);
y = trimf(x,[3 5 8]);
plot (x, y); grid;
xlabel(‘trimf,P = [3 5 8]’);
subplot(1, 3, 3) ;
y = trimf(x,[5 8 10]);
plot(x, y); grid;
xlabel(‘trimf, P=[5 8 10]’);
Для описания трапецевидной ФП используется команда вида
>> y = trapmf(x, [a b c d]);
где x – базовая шкала, a, b, c и d – координаты вершин трапеции на
базовой шкале.
Для описания гауссовой ФП используется команда вида
>> y = gaussmf(x, [a b]);
В MatLab предусмотрен вариант комбинации двух гауссовых
функций, так что в промежутке между их центрами значение ФП
равно 1.
>> y = gauss2mf(x,[b1 a1 b2 a2]);
Колоколообразная ФП описывается командой:
>> y = gbellmf(x, [a b c]);
где a и b – параметры, c- центр ФП.
Для определения сигмоидной ФП используется команда вида
>> y = sigmf(x, [a b]);
С помощью функции psigmf может быть использовано произведение «левосторонней» и «правосторонней» сигмоидных функций,
например
>> params1 = [2 3];
>> params2 = [-5 8];
>> y = psigmf(x, [params1 params2]);
Разность сигмоидных функций задается командой вида:
>> dsigmf(x,[a1 b1 a2 b2])
На основе сплайн-аппроксимации построена Z-образная ФП, которая позволяет описать плавное уменьшение принадлежности от A к B:
7
>> zmf(x,[a b])
S-образная ФП является «парной» к Z-образной функции:
>> smf(x,[a b])
Для описания π-образной ФП используются четыре параметра:
>> y = pimf(x, [a b c d]);
С помощью функции evalmf можно оценить степень принадлежности элементов заданного входного вектора к нечеткому множеству. Функция имеет формат:
y = evalmf (x, params, type),
где x – вектор, для координат которого необходимо рассчитать
степени принадлежности; params – вектор параметров функции
принадлежности, порядок задания которых определяется ее типом; type – тип функции принадлежности, который может быть
задан именем функции или ее кодом: 1 – ‘trimf’; 2 – ‘trapmf’; 3 –
‘gaussmf’; 4 – ‘gauss2mf’; 5 – ‘sigmf’; 6 – ‘dsigmf’; 7 – ‘psigmf’; 8 –
‘gbellmf’; 9 – ‘smf’; 10 – ‘zmf’; 11 – ‘pimf’.
При задании другого типа функции принадлежности предполагается, что она определена пользователем и задана соответствующим m-файлом.
Рассмотрим пример.
>> x = [3 4 5];
>> y = evalmf (x, [2 5 8 9], ‘pimf’)
y=
0.2222 0.7778 1.0000
1.2. Лингвистические переменные
Лингвистической переменной (ЛП) называется переменная, заданная на некоторой базовой шкале и принимающая значения, являющиеся словами естественного языка, которые описываются нечеткими множествами.
Лингвистическую переменную можно описать с помощью набора:
{x, T(x), X, G, M}
где x – наименование ЛП; T(x) – множество значений ЛП (терммножество), X – базовая шкала.
Человек эффективно воспринимает и запоминает максимум 7±2
градации свойств какого-либо объекта. Это же относится и к набо8
рам фактов и связей между ними. Поэтому при описании ЛП обычно используют от 3 до 7 термов.
Например, скорость движения объекта можно описать с помощью тройки:
x = «Скорость», T(x) = {«низкая», «средняя», «высокая»},
X = [0,150].
Обычно описание термов ЛП вводится таким образом, чтобы
обеспечить нечеткое разбиение базового множества X (рис. 1.3).
Совокупность НМ образует нечеткое разбиение базового множества X, если выполняется условие
N
(x)
∑ m A=
i
1,
∀x ∈ X
i =1
(пример показан на рис. 1.3):
Таким образом, ЛП принимает значения на множестве термов, и
каждое значение имеет определенную истинность. Например, для
значения x=40 км/ч (рис. 1.3) получаются следующие значения истинности:
«Скорость» есть «Низкая» с истинностью 0.4;
«Скорость» есть «Средняя» с истинностью 0.6.
Вычислить значения нескольких функции принадлежности
НМ, заданных на одном и том же универсальном множестве, можно с помощью функции
y = evalmmf(x, params, types),
µ Т (x)
Низкая
Средняя
Высокая
1
0.6
0.4
0
40
60
100
x
Рис. 1.3. Описание ЛП «Скорость»
9
где x – вектор, для координат которого необходимо рассчитать
степени принадлежности; params – матрица параметров функции
принадлежности. Первая строка матрицы определяет параметры
первой функции принадлежности, вторая строка – параметры второй функции принадлежности и т. д.; types – матрица типов функции принадлежности. Первая строка матрицы задает тип первой
функции принадлежности, вторая строка – тип второй функции
принадлежности (см. описание команды evalmf).
Рассмотрим пример.
>> para = [-1 2 3 6; 2 7 8 10];
type = str2mat(‘pimf’, ‘trapmf’);
x=[0.5 5 2.5 7 9.5];
evalmmf(x, para, type)
ans =
0.5000 0.2222 1.0000 0 0
0 0.6000 0.1000 1.0000 0.2500
Первая строка матрицы содержит значения первой функции
принадлежности, вторая строка – значения второй функции принадлежности.
В MatLab существуют специальные команды для создания ЛП
в системе нечеткого логического вывода. Рассмотрим пример –
пусть требуется ввести ЛП для описания возраста человека. Эту задачу решает следующий m-файл.
a=newfis(‘test’); % создание FIS-объекта
a=addvar(a,’input’,’linguistic age’,[0 70]); % добавление входной ЛП
a=addmf(a,’input’,1,’young’,’gaussmf’,[10 0]); % добавление
1-го терма
a=addmf(a,’input’,1,’middleaged’,’gaussmf’,[10 40]); % 2-го терма
a=addmf(a,’input’,1,’old’,’gaussmf’,[10 70]); % добавление 3-го
терма
plotmf(a,’input’,1) % отображение термов на графике
Следующие команды добавляют к FIS-объекту вторую лингвистическую переменную – описание веса мужчины:
a=addvar(a,’input’,’male lingistic weight’,[65 120]);
a=addmf(a,’input’,2,’small’,’gaussmf’,[10 65]);
a=addmf(a,’input’,2,’meduim’,’gaussmf’,[10 90]);
a=addmf(a,’input’,2,’large’,’gaussmf’,[10 120]);
plotmf(a,’input’,2);
10
1.3. Операции над нечеткими множествами
Над нечеткими множествами выполняются те же операции,
что и над обычными множествами, а также ряд специальных операций. При этом существуют альтернативные варианты описания
операций над НМ.
Пусть A,B и С – нечеткие подмножества базового множества X.
В табл. 1.2 показаны основные операции над НМ.
Таблица 1.2.
Основные операции над НМ
№
Операция
1
Объединение
С = A ∪ B
2
Пересечение
С = A ∩ B
Варианты реализации
mC (x) = max(m A (x),m B (x))
mC (x) = m A (x) + m B (x) − m A (x)m B (x)
mC (x) = min(m A (x),m B (x))
mC (x) =
m A (x)m B (x)
mC (x) = 1 − m A (x)
1 − (m A (x))2
mC (x)=
3
Дополнение
C= A
4
Разность
C = A–B
mС(х) = min(mА(х), 1–mB(х))
5
Симметрическая разность
C = A D B
mС(х) = max{min(mА(х),
1–mB(х)), min(1–mА(х), mB(х))}
6
7
Алгебраическое
произведение
C = A * B
Алгебраическая сумма
C = A + B
1 − m (x)
mC (x) = A
;
1 − km A (x)
−1 < k < ∞
mC (x) =
m A (x)m B (x)
mC (x) = m A (x) + m B (x) − m A (x)m B (x)
8
Сжатие
C = сon(A)
mÑ (x) =∫ (m A (x))2 / x
9
Растяжение
C = dil(A)
mÑ (x) =∫ (m A (x))0.5 / x
X
X
11
Рассмотрим примеры выполнения операций для НМ, заданных
на дискретной области определения.
Пусть дано базовое множество X и определены два НМ А и В:
X = {x1, x2, x3, x4, x5}
A = {0.1/ x1, 0.2/ x2, 0.3/ x3, 0.4/ x4, 0.5/ x5}
В = {1/ x1, 0/ x2, 0.8/ x3, 0.6/ x4, 0.1/ x5}
При использовании операторов max и min:
C = A ∪ B = {1/ x1, 0.2/ x2, 0.8/ x3, 0.6/ x4, 0.5/ x5}
С = A ∩ B = {0.1/ x1, 0/ x2, 0.3/ x3, 0.4/ x4, 0.1/ x5}
При использовании операторов ограниченная сумма и произведение:
C = A ∪ B = {1/ x1, 0.2/ x2, 0.86/ x3, 0.76/ x4, 0.55/ x5}
С = A ∩ B = {0.1/ x1, 0/ x2, 0.24/ x3, 0.24/ x4, 0.05/ x5}
Таким образом, выбор варианта реализации операций объединения и пересечения НМ оказывает заметное влияние на результат
операции.
Рассмотрим примеры выполнения операций над НМ, заданных
на дискретной области определения. Пусть дано базовое множество:
>> x = (0:0.2:10);
и заданы два НМ (рис. 1.4):
>> A = gaussmf(x, [1 5]);
>> B = gaussmf(x, [1 7]);
На рис. 1.5 и 1.6 показано выполнение операций объединения и
пересечения при использовании соответственно операторов max и
min после выполнения команд
unionAB = max(A, B);
figure
plot(x, unionAB);
intersecAB = min(A,B);
figure
plot(x, intersecAB);
12
1
0.9
0.8
0.7
0.6
0.5
A, B
0.4
0.3
0.2
0.1
0
0
1
2
3
4
5
6
7
8
9
10
x
Рис. 1.4. Исходные нечеткие множества
1
0.9
0.8
0.7
0.6
0.5
max (A,B)
0.4
0.3
0.2
0.1
0
0
1
2
3
4
5
6
7
8
9
10
x
Рис. 1.5. Объединение нечетких множеств (операция max)
На рис. 1.7 и 1.8 показано выполнение операций объединения
и пересечения при использовании соответственно операторов ограниченной суммы и произведения (см. табл. 1.2).
13
0.
0.
0.
min (A,B)
0.
0.
0.
0.
0
0
1
2
3
4
5
6
7
8
9
10
x
Рис. 1.6. Пересечение нечетких множеств (операция min)
1
0.9
0.8
0.7
0.6
A +B–AB 0.5
0.4
0.3
0.2
0.1
0
0
1
2
3
4
5
6
7
8
9
10
x
Рис. 1.7. Объединение нечетких множеств (ограниченная сумма)
0.35
0.25
AB
0.15
0.05
0
1
2
3
4
5
6
7
8
9
10
x
Рис. 1.8. Пересечение нечетких множеств (операция произведение)
14
1.4. Контрольные вопросы
1. Что такое нечеткое множество?
2. Что такое функция принадлежности и степень принадлежности?
3. Как можно описать нечеткое множество при дискретном базовом множестве ограниченного размера?
4. Какие варианты описания функций принадлежности реализованы в системе MatLab?
5. Как в MatLab можно оценить степень принадлежности элементов заданного входного вектора к нечеткому множеству?
6. Что такое лингвистическая переменная (ЛП)?
7. Сколько термов используется обычно при описании ЛП и почему?
8. Какие значения может принимать ЛП?
9. Может ли ЛП принимать одновременно несколько значений?
10. При каком условии термы ЛП образуют нечеткое разбиение
базовой шкалы?
11. Какие основные операции могут быть выполнены над нечеткими множествами?
1.5. Задания на лабораторную работу
Задание 1.
В соответствии с вариантом определите базовую шкалу и опишите НМ. Для непрерывной базовой шкалы используйте функции
из табл. 1.1 для описания НМ и вычислите значения степени принадлежности для различных точек базовой шкалы.
Вариант
1
2
3
4
5
6
7
8
9
10
11
Нечеткое множество
Высокая скорость автомобиля
Комнатная температура
Горячий чай
Большая куча песка
Юношеский возраст
Много денег
Комнатная температура
Длинная дорога
Мало времени
Маленький город
Маленькая зарплата
15
Окончание табл.
Вариант
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Нечеткое множество
Большая разница в возрасте
Маленькая разница в возрасте
Избыточный вес
Большая река
Маленький крокодил
Мало денег
Не много и не мало денег
Средний рост
Старческий возраст
Большая толпа
Крепкий спиртной напиток
Большая зарплата
Маленький поселок
Невысокий человек
Задание 2.
В соответствии с заданным вариантом определите базовую шкалу и опишите ЛП. Для непрерывной базовой шкалы и вычислите
значения истинности термов для различных ее точек.
Вариант
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
16
Лингвистическая переменная
Скорость автомобиля
Глубина погружения подлодки
Возраст человека
Заработная плата сотрудника
Высота волны
Атмосферное давление
Рост человека
Длина реки
Температура больного
Доход компании
Высота полета
Задолженность по квартплате
Скорость самолета
Длина крокодила
Тип населенного пункта
Вес арбуза
Окончание табл.
Вариант
17
18
19
20
21
22
23
24
24
Лингвистическая переменная
Площадь государства
Крепость спиртного напитка
Годовой доход налогоплательщика
Опасный хищник
Цена автомобиля
Размер стада коров
Температура воздуха в районе экватора
Температура воздуха в Антарктиде
Глубина океана
Задание 3.
В соответствии с вариантом задать параметры двух НМ, при
которых они пересекаются. Выполнить для этих НМ операции из
табл. 1.2 и показать их результат графически.
Вариант
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Функции принадлежности
gaussmf
gaussmf
gaussmf
gaussmf
gaussmf
gaussmf
gaussmf
gaussmf
trapmf
trapmf
trapmf
trapmf
trapmf
trapmf
trapmf
trimf
trimf
trimf
trimf
trimf
trimf
gbellmf
pimf
psigmf
sigmf
smf
trapmf
trimf
zmf
gbellmf
pimf
psigmf
sigmf
smf
trimf
zmf
gauss2mf
gaussmf
gbellmf
pimf
psigmf
sigmf
17
Окончание табл.
Вариант
22
23
24
25
18
Функции принадлежности
trimf
trimf
gauss2mf
gauss2mf
smf
trapmf
zmf
sigmf
Лабораторная работа № 2
НЕЧЕТКАЯ ИМПЛИКАЦИЯ И НЕЧЕТКИЕ ПРАВИЛА
Цель работы: изучить способы описания нечетких правил и организации нечеткого логического вывода.
2.1. Нечеткая импликация
В классической логике продукционное правило «Если А, то В»
описывается с помощью операции импликации:
А → B.
В нечетком продукционном правиле «Если А, то В» и посылка,
и заключение являются нечеткими логическими переменными (нечеткими множествами). Обозначим простейшее нечеткое правило
R следующим образом:
R = I (A,B),
где I – нечеткая импликация.
Нечеткую импликацию можно реализовывать с помощью нечеткого отношения, которое позволяет описать требуемое отображение из А в В.
Нечеткое отношение R двух четких множеств X и Y представляет собой нечеткое подмножество декартова произведения X и Y.
R=
{m R (x, y) / (x, y);
x ∈ A, y ∈ B}
Чаще всего нечеткая импликация описывается как обобщенная
конъюнкция (T –норма):
I(A,B) = T(A,B).
Тогда можно записать при использовании T-нормы Mamdani:
R = {min(m A (x),m B (y)) / (x, y);
x ∈ A, y ∈ B}
Пример. Пусть имеется базовое множество X и два его нечетких
подмножества A и B:
X = {1, 2, 3}
A = 1/1 + 0.8/2 + 0/3
B = 0.6/1 + 0.9/2 + 1/3
19
µ Т (x)
µ Т (y)
«Около 4»
0
«Около 2»
1
1
4
x
0
2
y
Рис. 2.1. Нечеткая посылка и нечеткое заключение правила
Нечеткое правило «Если А, то В» описывается следующим образом:
RAB = I (A,B) = 0.6/(1,1) + 0.9/(1,2) + 1/(1,3) + 0.6/(2,1) + +0.8/(2,2) +0.8/(2,3) + 0/(3,1) + 0/(3,2 +0/(3,3).
В матричной форме:
R AB
0.6 0.9 1 


= 0.6 0.8 0.8  .
 0
0
0 
В MatLab построение нечеткого правила можно описать следующими командами:
A=[1 0.8 0];
B=[0.6 0.9 1];
R=zeros([3 3]);
for i=1:length(A)
for j=1:length(B)
R(i,j)=min(A(i),B(j));
end
end
При непрерывной области определения нечеткое правило удобно представлять графически. Например, правилу «Если А = «около 4», то В = «около 2»» соответствует рис. 2.1.
2.2. Нечеткий логический вывод
В классической логике при логическом выводе используется
правило сокращения посылки:
20
A & (А → B) → B.
Обобщением правила сокращения посылки для НМ является
композиционное правило вывода:
B’ = A’ ° (A → B),
где A’ – нечеткая посылка, B’ – нечеткое заключение, ° – обозначение операции композиции.
Для дискретных областей определения нечеткая композиция
описывается формулой:
mB
=
(y) max ( min(m A (x),mR (x, y)) ).
x
Например,
А = 1/1 + 0.8/2 + 0.3/3 + 0.1/4,
В = 0/1 + 0.1/2 + 0.6/3 + 1/4.
Тогда можно описать нечеткое правило
A=[1 0.8 0.3 0.1];
B=[0 0.1 0.6 1];
R=zeros([4 4]);
for i=1:length(A)
for j=1:length(B)
R(i,j)=min(A(i),B(j))
end
end
В результате получается матрица
0
0
R= A→B= 
0

0
0.1
0.1
0.1
0.1
0.6 1 
0.6 0.8 
.
0.3 0.3 

0.1 0.1
Пусть посылка задана нечетким множеством:
А1 = 1/1 + 0.7/2 + 0.1/3 + 0/4.
Описываем композицию нечеткой посылки и нечеткого правила:
A1=[1 0.7 0.1 0];
for i=1:length(A1)
for j=1:length(A1)
21
µ Т (x)
µ Т (y)
А =«Около 4» А’
1
1
А’∩ A
0
B = «Около 2»
x
4
B’
α
0
2
y
Рис. 2.2. Нечеткий вывод при непрерывной области определения
C(j)=min(A1(j),R(j,i))
end
B1(i)=max(C)
end
B1 = 0 0.1000 0.6000 1.0000
Поскольку A’ близко к A, то и B’ оказалось близко к B.
При непрерывной области определения нечеткую композицию
описывает формула (sup – верхняя граница):
mB' (y) = supT (m A' (x), I (m A (x),mB (y)) =
x
= sup(m A' (x) ∧ (m A (x) ∧ mB (y=
)))
x
= sup(m A' (x) ∧ m A (x)) ∧ mB (=
y) α ∧ mB (y).
x



α
Здесь α – степень срабатывания нечеткого правила, которая модифицирует функцию принадлежности заключения. Пример показан на рис. 2.2.
2.3. Дефаззификация
Результатом нечеткого вывода всегда является некоторое НМ.
Во многих приложениях возникает задача замены этого НМ четким значением, т. е. числом.
Дефаззификация – это преобразование нечеткого множества
(НМ) в число, которое наиболее соответствует этому НМ.
22
Рассмотрим пример. Здесь сложная функция принадлежности
получается как комбинация 3-х трапецевидных функций принадлежности.
x = -10:0.01:10;
mf1 = trapmf(x,[-10 -8 -2 2]);
mf2 = trapmf(x,[-5 -3 2 4]);
mf3 = trapmf(x,[2 3 8 9]);
mf = max(0.5*mf2,max(0.9*mf1,0.1*mf3));
figure(1)
plot(x,mf,’r’,’LineWidth’,3);
set(gca,’YLim’,[-1 1],’YTick’,[0.5 1])
axis([-10 10 0 1])
title(‘Defuzzification Methods’)
xlabel(‘x’)
ylabel(‘membership(x)’)
Полученная фигура показана на рис. 2.3.
Можно считать, что НМ соответствует число, являющееся центром тяжести фигуры, которая ограничена функцией принадлежности данного НМ. Таком подход к дефаззификации называется
методом центра тяжести (Centre Of Gravity – COG)). Он реализуется
по формуле:
Defuzzification Methods
1
µ(x)
0.5
centroid
0
-10
-8
-6
-4
-2
0
x
2
4
6
8
10
Рис. 2.3. Дефаззификация по методу центра тяжести
23
∫ (m A (x)x)dx
COG ( A) =
X
∫ m A (x)dx
.
X
Используем соответствующую команду в MatLab:
x1 = defuzz(x,mf,’centroid’)
h1 = line([x1 x1],[-0.2 1.2],’Color’,’g’);
t1 = text(x1,0.2,’ centroid’,’Color’,’green’,’FontWeight’,’bold’);
Результат показан на рис. 2.3.
На практике широко используется дискретный метод центра тяжести (Discret Center-Of-Gravity (DCOG)), описываемый формулой:
N
∑ m A (xi )xi
DCOG ( A) = i =1N
∑ m A (xi )
.
i =1
Здесь предполагается, что базовая шкала задана конечным множеством точек. Например, пусть дано НМ:
А = 1/1 + 0.8/2 + 0.3/3 + 0.1/4.
Тогда
N
∑ m A (xi )xi
=
DCOG ( A)
=1
i=
N
∑ m A (xi )
1 ⋅ 1 + 0.8 ⋅ 2 + 0.3 ⋅ 3 + 0.1 ⋅ 4
= 1.77.
1 + 0.8 + 0.3 + 0.1
i =1
Кроме метода центра тяжести в MatLab реализованы и другие
методы дефаззификации: bisector, mom, lom, som.
2.4. Контрольные вопросы
1. С помощью какой операции описывается продукционное правило в классической логике?
2. Что такое нечеткое отношение двух четких множеств и как
оно описывается?
24
3. Каким образом можно описать нечеткую импликацию при
дискретной области определения?
4. Как описать нечеткую импликацию при непрерывной области
определения?
5. С помощью какого правила реализуется логический вывод
в обычной логике?
6. Как описывается композиционное правило вывода для дискретных областей определения?
7. Как описывается композиционное правило вывода для непрерывных областей определения?
8. Что такое дефаззификация?
9. Как реализуется дефаззификация методом центра тяжести
при дискретной и непрерывной области определения?
2.5. Задания на лабораторную работу
Задание 1.
Опишите нечеткие правила для дискретной конечной базовой
шкалы X = {1,2…10} в соответствии с заданным вариантом.
№
Нечеткое правило
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
«Если А маленький, то В большой»
«Если А маленький, то В маленький»
«Если А большой, то В большой»
«Если А около 3, то В около 8»
«Если А около 8, то В около 3»
«Если А меньше 5, то В больше 5»
«Если А около 5, то В меньше 5»
«Если А примерно 7, то В примерно 3»
«Если А примерно 3, то В примерно 7»
«Если А не равно 3, то В примерно 9»
«Если А не равно 9, то В примерно 3»
«Если А средний, то В большой»
«Если А средний, то В маленький»
«Если А средний, то В средний»
«Если А маленький, то В средний»
«Если А маленький, то В средний»
«Если А большой, то В средний»
«Если А около 6, то В около 2»
«Если А около 2, то В около 6»
«Если А меньше 3, то В больше 7»
25
Окончание табл.
№
Нечеткое правило
21
22
23
24
25
«Если А больше 3, то В меньше 7»
«Если А равно 0, то В больше 7»
«Если А равно 2, то В примерно 6»
«Если А не равно 0, то В примерно 4»
«Если А намного больше 2, то В примерно 8»
Задание 2.
Используя описание нечеткого правила из задания 1, выполните композицию и получите нечеткое заключение для трех разных
нечетких значений из области определения.
Выполнить дефаззификацию для каждого нечеткого заключения с помощью DCOG.
Задание 3.
Опишите нечеткие правила для непрерывной базовой шкалы
X = [1,10] в соответствии с заданным вариантом.
Выполните нечеткую композицию средствами MatLab (по схеме рис. 2.2) для трех разных нечетких значений из области определения.
Выполнить дефаззификацию для каждого нечеткого заключения с помощью DCOG.
Задание 4.
Постройте НМ со сложной функцией принадлежности, комбинируя в соответствии с вариантом задания три стандартные функции принадлежности с подобранными параметрами. Выполните
дефаззификацию этого НМ всеми 5-ю способами в MatLab. Графические результаты привести в отчете.
вариант
1
2
3
4
5
6
7
8
9
10
26
Функции принадлежности
gaussmf
gaussmf
gaussmf
gaussmf
gaussmf
gaussmf
gaussmf
gaussmf
trapmf
trapmf
gbellmf
pimf
psigmf
sigmf
smf
trapmf
trimf
zmf
gbellmf
pimf
trimf
zmf
gbellmf
pimf
psigmf
sigmf
smf
trimf
zmf
zmf
Окончание табл.
вариант
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Функции принадлежности
trapmf
trapmf
trapmf
trapmf
trapmf
trimf
trimf
trimf
trimf
trimf
trimf
trimf
trimf
gauss2mf
gauss2mf
psigmf
sigmf
smf
trimf
zmf
gauss2mf
gaussmf
gbellmf
pimf
psigmf
sigmf
smf
trapmf
zmf
sigmf
gauss2mf
gaussmf
gbellmf
pimf
psigmf
sigmf
smf
trapmf
gaussmf
gaussmf
gaussmf
gaussmf
gaussmf
gaussmf
trimf
27
Лабораторная работа № 3
3.1. Нечеткий вывод в базе правил
Нечеткая логическая система обычно состоит из множества правил. В любой момент возможно срабатывание любого из правил,
поэтому можно считать, что они связаны логической связкой ИЛИ:
R = R1 Ъ R2 Ъ R3 … Ъ RN.
Рассмотрим пример для дискретной области определения. Пусть
нечеткая система состоит всего из двух правил:
R1: Если x = А1, то y = B1;
R2: Если x = А2, то y = B2.
Посылки правил описываются с помощью НМ, определенных на
дискретном базовом множестве:
А1 = 0.7/1 + 1/2 + 0.7/3 + 0.2/4, B1 =0/1 + 0.1/2 + 0.7/3 + 1/4,
А2 = 0/1 + 0.1/2 + 0.7/3 + 1/4, B2 = 0.7/1 + 1/2 + 0.7/3 + 0.2/4.
Нечеткие отношения, соответствующие правилам, можно описать с помощью матриц
0
0
R1 = A1 × B1 = 
0

0
0.1
0.1
0.1
0.1
0.7 0.7 
0.7 1 
0.7 0.7 

0.2 0.2
,
0
0
0 
 0
 0.1 0.1 0.1 0.1

R2 = A2 × B2 = 
0.7 0.7 0.7 0.2


0.7 1 0.7 0.2 ,
и система нечетких правил описывается матрицей (логическое
ИЛИ трактуется как объединение):
 0 0.1 0.7 0.7 
 0.1 0.1 0.7 1 

R = R1 ∨ R2 = 
0.7 0.7 0.7 0.7 


0.7 1 0.7 0.2
28
Если базовые множества непрерывные, то каждому нечеткому
отношению соответствует некоторая поверхность, а система правил также является поверхностью, так что каждая ее точка – верхняя граница всех соответствующих точек отдельных поверхностей.
При двух и более посылках правила матричное представление
становится затруднительным.
На практике чаще рассматривается непрерывная область определения. Пусть имеется система из двух правил, каждое из которых имеет по две посылки:
R1: Если (x = А1) и (y = B1), То (z = C1),
R2: Если (x = А2) и (y = B2), То (z = C2).
Здесь Аi, Bi и Ci – нечеткие множества, входящие в i-е правило.
Пусть A’ и B’  нечеткие посылки, тогда уровень запуска αi каждого правила можно описать выражением:
=
α i hgt( A '∩ Ai ) ∧ hgt(B ∩ Bi ) ,
(где hgt – верхняя точка пересечения множеств), и выходной сигнал системы правил получается по формуле:
R ( A ', B') = R1 ∨ R2 = (α1 ∧ C1 ) ∨ (α2 ∧ C2 ) .
Во многих случаях входные переменные нечеткой системы
представляют собой числа (т. е. четкие значения). Для выполнения
нечетких операций нужно выполнить их фаззификацию – преобразование в нечеткую форму. Проще всего рассматривать входную
переменную x0, как одноточечное нечеткое множество (синглетон):
1, x = x0 ;
m A' (x) =

 0, x ≠ x0 .
При двух посылках x и y каждое правило можно описать следующим образом:
Ri (x, y, z) = [ Ai (x) ∧ Bi (y)] → Ci (z) .
При входных данных x=x0 и y=y0 выход i-го правила получается
по формуле:
Ci' = [ Ai (x0 ) ∧ Bi (y0 )] → Ci (z)



αi
29
где величина αi определяет силу запуска правила.
Выходной сигнал системы нечетких правил описывается формулой:
N
C =  Ci'
i =1
.
Известно несколько классических схем нечеткого вывода, из
них наиболее часто используются варианты Mamdani и Sugeno.
Рассмотрим вариант Mamdani. Нечеткая импликация здесь моделируется с помощью оператора min.
Положим для простоты изложения, что база правил содержит
всего два правила R1 и R2. Сила запуска каждого из них
=
α1 A1 (x0 ) ∧ B1 (y0 ),
=
α2 A2 (x0 ) ∧ B2 (y0 ).
Индивидуальный выход каждого правила получается по формулам
C1' (z) =α1 ∧ C1 (z),
C2' (z) =α2 ∧ C2 (z).
Графической иллюстрацией схемы Mamdani служит рис. 3.1.
Выход каждого правила здесь является НМ, поэтому до выполнения дефаззификации надо выполнить агрегирование – объединение множества модифицированных заключений правил в одно НМ.
A1
B1
C1
min
α1
y
x
z
B2
A2
min
x0
x
y0
α2
y
Рис. 3.1. Нечеткий вывод Mamdani.
30
C2
z
При этом рассматривается логическая сумма функций принадлежности заключений отдельных правил, которой соответствует оператор max. Для дефаззификации может быть выбран один из методов, рассмотренных в лабораторной работе № 2.
Схема нечеткого вывода Sugeno отличается от схемы Mamdani
тем, что заключения здесь являются либо константами, либо функциями (линейными комбинациями) входных значений.
Работу схемы Sugeno для двух правил иллюстрирует рис. 3.2.
Для дефаззификации здесь используется дискретный метод
центра тяжести.
Рассмотрим описание системы нечеткого вывода средствами
MatLab.
a=newfis(‘testfs’);
a=addvar(a,’input’,’linguistic age’,[0 70]);
a=addmf(a,’input’,1,’young’,’gaussmf’,[10 0]);
a=addmf(a,’input’,1,’middleaged’,’gaussmf’,[10 40]);
a=addmf(a,’input’,1,’old’,’gaussmf’,[10 70]);
a=addvar(a,’input’,’male lingistic weight’,[65 120]);
a=addmf(a,’input’,2,’small’,’gaussmf’,[10 65]);
a=addmf(a,’input’,2,’meduim’,’gaussmf’,[10 90]);
a=addmf(a,’input’,2,’large’,’gaussmf’,[10 120]);
a=addvar(a,’output’,’shoe size’,[35 50]);
a=addmf(a,’output’,1,’small’,’gaussmf’,[10 39]);
a=addmf(a,’output’,1,’meduim’,’gaussmf’,[10 42]);
a=addmf(a,’output’,1,’large’,’gaussmf’,[10 45]);
B1
A1
min
y
x
A2
α1
z1=a1x0 +b1 y 0 +с1 z
B2
min
x0
x
y0
α2
y
z2 =a2 x0 +b2 y0 +с2
z
Рис. 3.2. Нечеткий вывод Sugeno.
31
ruleList=[1 1 1 1 1
12211
23311
3 3 3 1 1];
a = addrule(a,ruleList);
В матрице ruleList каждая строка описывает отдельное правило:
первая цифра означает номер терма первой посылки, вторая цифра – номер второй посылки, третья – номер терма заключения. Четвертая цифра соответствует весу правила, пятая – описывает связку посылок: 1 – связка «И», 2 – связка «ИЛИ».
С помощью команды
>> rules=showrule(a)
Можно просмотреть описание нечетких правил:
rules =
1. If (linguistic age is young) and (male lingistic weight is small)
then (shoe size is small) (1)
2. If (linguistic age is young) and (male lingistic weight is meduim)
then (shoe size is meduim) (1)
3. If (linguistic age is middleaged) and (male lingistic weight is
large) then (shoe size is large) (1)
4. If (linguistic age is old) and (male lingistic weight is large) then
(shoe size is large) (1)
Первое правило гласит, что молодой человек с маленьким весом
имеет маленький размер обуви. Второе правило: молодой человек
со средним весом имеет средний размер обуви. Третье правило: человек средних лет с большим весом носит обувь большого размера.
И четвертое правило: старый человек с большим весом носит обувь
большого размера.
Выполнить нечеткий вывод для некоторых входных данных
можно с помощью команды evalfis. Например:
>> man_shoe_size=evalfis([40 100], a)
man_shoe_size =
42.5000
3.2. Графический редактор системы нечеткого вывода
Основной редактор системы нечеткого вывода (fuzzy inference
system – FIS) вызывается в MatLab командой
>> fuzzy
32
Рис. 3.3. Интерфейс FIS editor
На рис. 3.3 показано главное окно редактора нечеткой логической системы.
FIS editor позволяет описать систему нечеткого логического вывода Mamdani или Sugeno. Для создаваемой системы можно выбрать вид логических связок (And method) и (Or method), вид импликации (Implication), способ агрегирования заключений правил
(Aggregation) и метод дефаззификации (Defuzzification). Создаваемая в FIS editor система может быть записана в постоянную или
оперативную память (Save to disk или Save to workspace). Запоминаемый объект имеет расширение *.fis.
В меню Edit можно добавить или удалить входные или выходные переменные, участвующие в нечетких правилах.
Для описания вход – выходных ЛП, ввода правил и исследования поведения нечеткой логической системы FIS editor вызывает
отдельные интерфейсы, доступ к которым возможен и отдельными
командами.
33
Рис. 3.4. Интерфейс mfedit
Для описания ЛП предусмотрен редактор функций принадлежности, запускаемый щелчком по блокам Input или Output или командой
>> mfedit
Главное окно редактора mfedit показано на рис. 3.4.
Меню File содержит обычные команды работы с файлами. Меню
Edit позволяет добавить или удалить ЛП на входе или выходе системы.
Левая нижняя часть экрана содержит описание редактируемой
ЛП: ее имя (Name), тип (Type, входная – input, или выходная –
output), размер базовой шкалы (Range) и размер отображаемого
участка базовой шкалы (Display Range).
Правая нижняя часть экрана содержит описание редактируемого терма ЛП: его имя (Name – значение может вводиться пользователем), тип (Type – тип функции принадлежности, значение
34
выбирается из выпадающего списка), параметры (Params – соответствуют выбранному типу функции принадлежности, вводятся
вручную или с помощью мыши).
Если пользователь описал входные и выходные ЛП, то он может
приступить к описанию правил (рис. 3.5).
Для вызова интерфейса редактирования правил можно щелкнуть по белому блоку на рис. 3.3 или использовать команду
>> ruleedit
Или строку Rules… в меню Edit интерфейса mfedit.
Редактирование правил заключается в связывании терма ЛП –
посылки и терма ЛП – заключения.
В верхней части экрана помещено окно, в котором отображаются введенные правила. Ниже слева и справа показаны названия
имеющихся термов посылки (If часть) и заключения (Then часть).
Посылка может входить в правило с отрицанием (not). Посылки
Рисунок 3.5. Интерфейс ruleedit
35
могут быть связаны (connection) с помощью операции or или and.
Заключение также может входить в правило с отрицанием.
Для удаления, добавления или изменения правила используются соответственно кнопки Delete rule, Add rule, Change rule.
Введенное правило может быть снабжено весовым коэффициентом (Weight), с помощью которого можно описать истинность (важность) правила в текущей базе правил.
Меню View интерфейса ruleedit позволяет решить две задачи:
– С помощью пункта Rules просмотреть работу системы нечеткого логического вывода при различных входных данных (рис. 3.6).
– С помощью пункта Surface можно просмотреть управляющую
поверхность нечеткой логической системы, которая получается
при подаче на вход системы всевозможных допустимых значений
(рис. 3.7).
На рис. 3.6 слева показано входное (четкое) значение, заданное красной вертикальной линией. Справа показан выход системы
Рис. 3.6. Работа системы нечеткого логического вывода
36
(жирная вертикальная красная линия). Выходное значение определяется правилами, термами и используемым методом дефаззификации.
Интерфейс визуализации процедуры нечеткого логического вывода можно также вызвать одной из команд, обращающихся соответственно к постоянной или оперативной памяти:
>> ruleview(fis)
>> ruleview(‘filename’)
Показанная на рис. 3.7 управляющая поверхность является
плоской кривой, поскольку правила имеют одну посылку. При
двух посылках появляется управляющая поверхность, а при большем количестве посылок можно рассматривать лишь проекции
управляющей поверхности. Форма управляющей поверхности также определяется правилами, термами и используемым методом дефаззификации.
Рис. 3.7. Управляющая поверхность системы
нечеткого вывода
37
C помощью команды
>> gensurf(fis)
Можно получить управляющую поверхность в графическом
формате, удобном для запоминания.
3.3. Аппроксимация функций с помощью
нечеткой системы
Задача аппроксимации заключается в следующем: задан набор
точек, требуется построить функцию, которая проходила бы через
эти точки.
Пример. Пусть заданы 7 точек, соответствующие некоторой неизвестной функции, обозначенной пунктиром (рис. 3.8).
Требуется с помощью нечеткой системы аппроксимировать эту
зависимость для всей области определения.
Занесем координаты точек в табл. 3.1.
Рассмотрим нечеткую систему Mamdani. Точки по оси x становятся центрами термов, так чтобы на базовой шкале не было «бе-
1
0.9
0.8
0.7
0.6
y
0.5
0.4
0.3
0.2
0.1
0
0
0.5
1
1.5
2
2.5
3
x
Рис. 3.8. Исходные данные для аппроксимации
38
3.5
Таблица 3.1
Набор точек для аппроксимации
№
1
2
3
4
5
6
7
x
y
0
0
0.5
0.48
1
0.85
1.5
1
2
0.9
2.5
0.6
3
0.15
лых пятен» (рис. 3.9). Аналогично описываются выходные термы
(рис. 3.10).
Затем формируются нечеткие правила (рис. 3.11).
Запишем нечеткую систему в память, и построим ее графическое отображение (рис. 3.12).
Выбирая разные варианты функций принадлежности и (или)
метода дефаззификации, можно добиться лучшего качества аппроксимации.
Рис. 3.9. Описание входа нечеткой системы
39
Рис. 3.10. Описание выхода нечеткой системы
Рис. 3.11. Описание нечетких правил
40
1
0.9
0.8
0.7
y
0.6
0.5
0.4
0.3
0.2
0.1
0
0.5
1
1.5
2
2.5
3
x
Рис. 3.12. Результат аппроксимации
3.4. Нечеткое управление и классификация
Задачи классификации и нечеткого управления близки по своей
сути – в обоих случаях требуется отнести описание входной ситуации к одному из описанных выходных классов или их комбинации.
Например, при регулировании комнатной температуры регулятор меняет скорость вращения лопастей вентилятора, получая на
входе нечеткую оценку температуры в комнате. Тогда закон управления можно описать правилами:
1. Если холодно (cold), то вентилятор не работает (stop).
2. Если прохладно (cool), то вентилятор работает медленно
(slow).
3. Если комфортно (normal), то вентилятор работает средне
(medium).
4. Если жарковато (warm), то вентилятор работает быстро (fast).
5. Если жарко (hot), то вентилятор работает очень быстро (blast).
Таким образом, нечеткая логическая система будет иметь одну
входную и одну выходную переменные, ее поведение будут описывать 5 правил.
41
Будем считать, что с помощью FIS editor сделано описание термов и правил, на диск и в рабочую память записан FIS объект с именем ventil.fis.
Получить графическое описание входной ЛП можно с помощью
команды:
>> plotmf(ventil,’input’,1)
На рис. 3.13 показан получившийся график.
Аналогично можно получить описание выходной переменной
с помощью команды (рис. 3.14):
>> plotmf(ventil,’output’,1)
Для получения описания правил нечеткой логической системы
можно воспользоваться командой:
>> showrule(ventil,[1 2 3 4 5],’symbolic’)
ans =
1. (input1==COLD) => (output1=STOP) (1)
2. (input1==COOL) => (output1=SLOW) (1)
3. (input1==NORMAL) => (output1=MEDIUM) (1)
COLD
Degree of membership
1
COOL NORMAL WARM
HOT
0.8
0.6
0.4
0.2
0
0
10
20
30
40
50
input1
Рис. 3.13. Лингвистическое описание входной переменной
42
Degree of membership
STOP
1
SLOW
MEDIUM
FAST
BLAST
0.8
0.6
0.4
0.2
0
0
20
40
60
80
100
output1
Рис. 3.14. Лингвистическое описание выходной переменной
4. (input1==WARM) => (output1=FAST) (1)
5. (input1==HOT) => (output1=BLAST) (1)
Описание управляющей поверхности можно получить с помощью команды:
>> gensurf(ventil)
Графическое описание основных параметров нечеткой системы
вывода можно получить с помощью команды:
>> plotfis(ventil)
Полное описание всех свойств FIS объекта в текстовом формате
можно получить с помощью команды:
>> showfis(ventil);
Для описания нечеткого логического регулятора в системе
MatLab Simulink предусмотрен специальный блок Fuzzy Logic
controller (рис. 3.15).
В свойствах блока нужно указать имя FIS-объекта, который
должен быть предварительно помещен в рабочую память MatLab
(рис. 3.16).
43
Sine Wave
Scope
Fuzzy Logic Controller
Рис. 3.15. Использование блока Fuzzy Logic controller
Рис. 3.16. Свойства блока Fuzzy Logic controller
Например, если в рабочую память записан FIS-объект с именем
ventil.fis, то входное воздействие будет описывать комнатную температуру, а в выходное – скорость работы вентилятора.
В системе MatLab имеются средства для программирования операций нечеткого вывода. Например:
>> a = readfis(‘ventil.fis’);
>> evalfis([45], a)
>> ans = 100…
3.5. Контрольные вопросы
1. В каком случае систему нечетких логических правил можно
описать с помощью матрицы?
2. Что такое фаззификация?
44
3. Как определяется сила запуска правила?
4. Как выполняется операция агрегирования?
5. Чем отличается схема нечеткого вывода Mamdani от схемы
нечеткого вывода Sugeno?
6. Как решить задачу аппроксимации функции с помощью нечеткой системы правил?
Задание 1.
В соответствии с заданным вариантом (табл. 3.2) постройте график функции. Выберите 7 точек аппроксимации, разбив ось x на
равные отрезки. Выполните нечеткую аппроксимацию с помощью
систем Mamdani и Sugeno, используя разные варианты функций
принадлежности и (или) метода дефаззификации. Сравнить результаты с графиком исходной функции.
Таблица 3.2
Варианты функций для аппроксимации
№
Функция
Интервал
1
=
f (x) 2 sin(x) − 5 cos(x)
x ∈ [1, 3]
2
=
f (x) sin(x2 ) − cos(x3 )
x ∈ [0, 2.5]
3
=
f (x) sin(x3 ) − cos(x2 )
x ∈ [0, 2.5]
4
=
f (x) 5 sin(x2 ) − 2 cos(x2 )
x ∈ [1, 3]
5
f (x) = cos(ex )cos(2x)
x ∈ [1, 2.5]
6
f (x) = sin(ex )cos(2x)
x ∈ [1, 2.5]
7
f (x) = sin(ex )sin(x)
x ∈ [1, 3]
8
f (x) = sin(ex )cos(x)
x ∈ [1, 2.5]
9
x + cos(x)
x ∈ [–10, 10]
10
x + sin(x)
x ∈ [–10, 10]
11
(x2 + x)cos(x)
x ∈ [–5, 5]
12
(x2 + x)sin(x)
x ∈ [–5, 5]
13
=
f (x) 2 sin(x) + 0.5 cos(x)
x ∈ [1, 3]
45
Окончание табл. 3.2
№
Функция
14
2
Интервал
3
=
f (x) 0.1sin(x ) + 0.2 cos(x )
x ∈ [0, 2.5]
15
=
f (x) sin(x2 ) − cos(x2 )
x ∈ [0, 2.5]
16
=
f (x) 5 sin(x2 ) − 2 cos(x3 )
x ∈ [1, 2]
17
f (x) = sin(e− x )cos(x)
x ∈ [1, 3]
18
x + cos(x)
x ∈ [–10, 10]
19
x − 2cos(x)
x ∈ [–10, 10]
20
0.01x3 − e0.5x
x ∈ [–1, 1]
21
x2 + x 3
x ∈ [–1, 1]
22
sin(x)
x
x ∈ [–1, 1]
23
x − 2sin(x)
x ∈ [–1, 1]
24
sin(x) + cos2 (x)
x ∈ [–1, 1]
25
sin(x)
cos(x)
x ∈ [–1, 1]
Задание 2.
Опишите с помощью нечетких правил закон управления для варианта задачи, указанного в табл. 3.3. Постройте описание получившейся управляющей поверхности.
Таблица 3.3
Варианты задачи управления
№
1
2
3
46
Задача
Посадка спускаемого аппарата на планету (входы: «высота» и «скорость»; выход – «тяга двигателя»).
Регулирование расстояния до впереди идущего автомобиля (входы:
«расстояние» и «скорость»; выход – «действие водителя»).
Регулирование уровня жидкости в баке (входы: «ошибка уровня»,
выход – «управление клапаном выпуска жидкости»).
Окончание табл. 3.3
№
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Задача
Наведение ракеты на цель (в плоскости) (вход: «ошибка по углу»,
выход – «поворот антенны»).
Погружение батискафа на заданную глубину (входы: «ошибка по
глубине» и «скорость погружения»; выход – «набор воды в цистерны»).
Торможение автомобиля перед препятствием (входы: «расстояние»
и «скорость»; выход – «сила торможения»).
Выведение самолета на заданную высоту (входы: «ошибка по высоте» и «производная ошибки»; выход – «угол поворота элеронов»).
Управление скоростью вращения двигателя (вход: «ошибка по скорости», выход – «напряжение»).
Наведение телескопа на звезду (вход: «ошибка по углу», выход –
«поворот антенны»).
Управление поворотом двигателя (вход: «ошибка положения», выход – «напряжение»).
Нагрев утюга до заданной температуры (вход – «текущая температура», выход – «мощность нагрева»).
Разгон автомобиля до заданной скорости (входы: «ошибка по скорости» и «изменение ошибки»; выход – «действие водителя»).
Классификация спортсменов (входы: «рост» и «вес»; выход – «спортивная дисциплина»).
Классификация пациентов (входы: «рост» и «вес»; выход – «телосложение» (нормальный вес, ожирение, худоба).
Отбора кандидата (входы: «рост» и «возраст»; выход – «молодой и
высокий»).
Отбора кандидата (входы: «рост» и «возраст»; выход – «старый и
толстый»).
Отбора кандидата (входы: «рост», «вес» и «возраст»; выход – «молодой и стройный»).
Отбора кандидата (входы: «рост», «вес» и «возраст»; выход – «старый и тучный»).
Выбор машины (входы: «цена», «макс. скорость» и «расход топлива»; выход – «хорошая машина»).
Выборы президента (входы: «умный», «красивый» и «высокий»;
выходы – «годится» и «не годится»).
Выбор невесты (входы: «умная», «красивая» и «добрая»; выходы –
«женится» и «не женится»).
47
Лабораторная работа № 4
НЕЧЕТКИЕ РЕГУЛЯТОРЫ
4.1. Нечеткий регулятор П-типа
Классический регулятор П-типа (т. е. пропорциональный) представляет собой линейный регулятор, в котором сигнал управления
рассчитывается путем умножения входной ошибки на заданную
константу (коэффициент пропорциональности):
u(t) = kp(g(t) – y(t)) = kpe(t). (4.1)
Структура П – регулятора показана на рис. 4.1.
Графически закон пропорционального управления представляет собой прямую, проходящую через начало координат под углом a.
Так что
kp = tg(a).
В реальной системе всегда существуют физические ограничения
на значение сигнала управления, так что пропорциональный закон
управления имеет вид, показанный на рис. 4.2.
Если нормализовать (привести к диапазону [–1, 1]) вход и выход
П-регулятора, то пропорциональный закон управления приобретает вид, показанный на рис. 4.3.
Тогда в рабочем диапазоне можно записать:
u = e. (4.2)
Таким образом, ошибка и управление имеют один знак.
Пропорциональное управление может вызывать конфликт между требованиями к переходному процессу: большое значение kp
g (t)
+
e (t)
u (t)
kp
-
y (t)
Объект
управления
Рис. 4.1. Управление, пропорциональное ошибке
48
+u max
α1
e
- u max
Рис. 4.2. График пропорционального закона управления
u=
1
umax
1
-1
1
e=
1
emax
-1
Рис. 4.3. Нормирование вход–выходных
переменных регулятора
уменьшает время нарастания, но, одновременно, увеличивает перерегулирование. Из-за этого принцип управления по ошибке часто не позволяет получить приемлемое решение.
Нечеткий логический регулятор П-типа (НЛР П-типа) отличается от классического П-регулятора тем, что может реализовывать
нелинейный закон управления вида:
u(t) = Fл(e(t)),
где Fл – управляющая функция, заданная набором лингвистических правил.
Пусть базовые шкалы ЛП «ошибка» и ЛП «сигнал управления»
нормализованы. Допустим также, что каждая ЛП имеет по 3 тер49
µA(x)
О
Н
П
0
1
-1
e, u
Рис. 4.4. Описание входа и выхода регулятора
тремя термами
ма с названиями: «отрицательный», «нулевой», «положительный»
(сокращенно «О», «Н» и «П», рис. 4.4).
Тогда, в соответствии с (4.2), нечеткий закон управления может
быть описан с помощью правил:
Если e = «О», то u = «О»,
Если e = «Н», то u = «Н»,
Если e = «П», то u = «П».
Если выбрать по семь термов для описания входа и выхода регулятора (рис. 4.5), то потребуется соответственно 7 правил.
При равномерном расположении термов (рис. 4.4 и 4.5) закон
управления получается линейным и преимущества по отношению
к обычному П-регулятору нет.
µA(x)
ОБ
ОС
ОМ
Н
0
ПМ
ПС
ПБ
e, u
Рис. 4.5. Описание входа и выхода регулятора
семью термами
50
u
1
-1
1
e
-1
Рис. 4.6. Нелинейный закон управления
НЛР П-типа
На практике обычно используется неравномерное расположение термов для посылки нечетких правил, так что описание закона
управления получает примерный вид, показанный на рис. 4.6.
Синтез НЛР П-типа можно выполнить в два этапа:
1. Синтезируется обычный П-регулятор с коэффициентом усиления kp, затем рассчитывается базовый коэффициент усиления
k = x kp, где x ≤ 1. Коэффициент k должен быть таким, чтобы при
устойчивом переходном процессе ymax = 1.
2. Последовательно добавляется НЛР с нелинейным законом
управления, примерный вид которого показан на рис. 4.6.
Рассмотрим пример.
На рис. 4.7 показана система управления с П-регулятором.
k
Step
Add
Proportional
Gain
1
0.1s2+0.7s+1
Transfer Fcn
Scope2
Signal Constraint1
Рис. 4.7. Линейная система управления
51
1.4
1.2
1
y (t)
0.8
0.6
0.4
0.2
0
0
0.2 0.4 0.6 0.8 1
t
1.2 1.4 1.6 1.8 2
Рис. 4.8. Переходный процесс под управлением П-регулятора
С помощью блока оптимизации найдено значение k = 5. Соответствующий переходный процесс приведен на рис. 4.8. Дальнейшее
увеличение k с целью уменьшения статической ошибки приводит
здесь к быстрому росту перерегулирования.
На рис. 4.9 показана система управления с НЛР П-типа.
На рис. 4.10 показано лингвистическое описание ошибки управления, а на рис. 4.11 показан закон управления, реализуемый НЛР
П-типа.
На рис. 4.12 показан переходный процесс в системе. Включение
НЛР обеспечило уменьшение перерегулирования и статической
ошибки.
k
Step3
1
0.1s2 +
0.7s+1
Scope2
Add1 Saturation
Proportional Transfer Fcn2
Fuzzy Logic Gain1
Controller
simout
To Workspace
Signal Constraint1
Рис. 4.9. Система управления с НЛР П-типа
52
ОБ
1
Н
ОС ОМ ПМ ПС
ПБ
0.8
µ
0.6
0.4
0.2
0
-1 -0.8 -0.6 -0.4 -0.2 0
e
0.2 0.4 0.6 0.8 1
Рис. 4.10. Описание входа НЛР П-типа
Сравнение рис. 4.8 и 4.12 показывает, что статическая ошибка
уменьшена почти до нуля, а перерегулирование не превышает допустимых пределов.
1
0.8
0.6
0.4
0.2
u
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.8 -0.6 -0.4 -0.2 0
e
0.
0.
0.
0.
1
Рис. 4.11. Закон управления НЛР П-типа
53
1.4
1.2
1
y(t) 0.8
0.6
0.4
0.2
0
0
0.2 0.4 0.6 0.8 1
1.2 1.4 1.6 1.8 2
t
Рис. 4.12. Переходный процесс под управлением
НЛР П-типа
4.2. Нечеткий регулятор ПД-типа
Нечеткий регулятор ПД-типа получает на входе две переменные: ошибку управления и ее производную. Как и для обычных
ПД-регуляторов, использование производной позволяет сократить
перерегулирование.
Закон управления, реализуемый ПД-регулятором, описывается
формулой:
de(t)
(4.2)
=
u(t) kp e(t) + kd
.
dt Если считать, что входы и выход НЛР_ПД нормализованы, то,
следуя (4.2), выполняется:
u = e + de/dt.
(4.3)
Допустим, что u, e и ∆e имеют одинаковые множества термов,
например: «ОБ», «ОМ», «Н», «ПМ», «ПБ». Тогда, учитывая ограниченные размеры базовой шкалы, можно записать 25 вариантов
ограниченной суммы:
ОБ + ОБ = ОБ; ОБ + ОМ = ОБ; ОБ + Н = ОБ; ОБ + ПМ = ОМ;
ОБ + ПБ = Н; ОМ + ОБ = ОБ; ОМ+ ОМ = ОБ; ОМ + Н = ОМ;
ОМ + ПМ = Н; ОМ + ПБ = ПМ; и т. д.
54
Таблица
правил
e*
de*/dt
ОБ
ОМ
Н
ПМ
ПБ
ОБ
ОБ
ОБ
ОБ
ОМ
Н
ОМ
ОБ
ОБ
ОМ
Н
ПМ
Н
ОБ
ОМ
Н
ПМ
ПБ
ПМ
ОМ
Н
ПМ
ПБ
ПБ
ПБ
Н
ПМ
ПБ
ПБ
ПБ
u*
Рис. 4.13. Таблица лингвистических правил НЛР ПД-типа
Полный набор правил показан на рис. 4.13.
На рис. 4.14 показан НЛР ПД-типа с двумя входами и 25 правилами управления. Эта структура допускает упрощение, поскольку
в соответствии с (4.3) можно рассмотреть НЛР ПД-типа как сумму
двух независимых регуляторов: НЛР П-типа и НЛР Д-типа (рис.
4.15).
1
Constant
k
Add
du/dt
Derivative
1
0.1s2+0.7s+1
Gain
Fuzzy Logic
Transfer Fcn
Controller
Scope
Рис. 4.14. Нечеткий регулятор ПД-типа с двумя входами
d/dt
e (t)
НЛР Д-типа
НЛР П-типа
ud (t)
up (t)
u(t)
Рис. 4.15. НЛР ПД-типа как комбинация
двух нечетких регуляторов
55
Step
30
Subtract Saturation
Add Gain
Fuzzy Logic
Controller
du/dt
1
0.1s2+0.7s+1
Scope
Transfer Fcn
simout
-K-
To Workspace
Derivative Gain2
Рис. 4.16. Блок-схема НЛР ПД-типа в MatLab Simulink
Если считать, что НЛР Д-типа реализует линейный закон управления, то его можно заменить П-регулятором (рис. 4.16).
Канал правления по ошибке остается без изменений, а использование канала регулирования по производной (K=0.05) позволяет значительно повысить базовый коэффициент усиления до k=30
(рис. 4.16).
На рис. 4.17 показан переходный процесс в системе. Время регулирования сокращено более чем в два раза.
Аналогично структуре рис. 4.15 можно рассмотреть 3-х канальную структуру НЛР ПИД-типа (рис. 4.18). Канал управления по
интегралу ошибки может быть использован, если нежелательно
увеличивать базовый коэффициент усиления.
1.4
1.2
1
y (t)
0.8
0.6
0.4
0.2
0
0
0.2 0.4 0.6 0.8 1
1.2 1.4 1.6 1.8 2
t
Рис. 4.17. Переходный процесс под управлением НЛР ПД-типа
56
d/dt
e (t)
НЛР Д-типа
НЛР П-типа
∫
НЛР И-типа
ud (t)
up (t)
u (t)
ui (t)
Рис. 4.18. НЛР ПИД-типа как комбинация
трех нечетких регуляторов
4.3. Контрольные вопросы
1. Как реализуется принцип управления по ошибке?
2. Какие параметры переходного процесса рассматриваются
обычно при синтезе регулятора?
3. В чем заключаются ограничения принципа управления по
ошибке?
4. В чем заключается основное отличие НЛР П-типа от обычного
П-регулятора?
5. В каком случае НЛР П-типа может быть эквивалентен обычному П-регулятору?
6. Чем определяется количество правил НЛР П-типа?
7. Каким образом может быть настроен НЛР П-типа?
8. Какие преимущества может иметь НЛР ПД-типа по отношению к НЛР П-типа?
9. Как можно описать правила управления для НЛР ПД-типа
с двумя входами?
10. Чем определяется размер таблицы лингвистических правил?
11. Каким образом можно упростить структуру НЛР ПД-типа?
12. Как реализовать НЛР ПИД-типа в виде трехканальной
структуры?
Задание 1. Для заданного варианта объекта из в табл. 1 постройте в Simulink MatLab обычный П-регулятор с помощью блока оптимизации Simulink Response Optimization. Улучшите качество
регулирования, включив последовательно нечеткий П-регулятор.
Затем добейтесь сокращения времени переходного процесса, добавив канал управления по производной ошибки, а также (при необходимости) – по интегралу ошибки.
Сравните качество работы нечеткого и линейного регулятора.
57
Таблица 4.1.
Передаточные функции объектов управления
№
Передаточная функция
1
W (s) =
2
W (s) =
3
4
5
6
7
2
0.01s + 0.01s + 1
s +1
0.01s2 + 0.03s + 1
W (s) =
W (s) =
W (s) =
W (s) =
7s + 0.3s + 1
2
0.7s + 0.02s + 1
3s + 1
W (s) =
W (s) =
5s + 1
0.5s + 0.1s + 1
5s + 1
0.5s2 + 0.3s + 1
W (s) =
W (s) =
13
W (s) =
4s2 + 2s + 1
2
W (s) =
12
15
4s + 1
2
0.7
9
14
0.8s + 0.5s + 1
0.5s + 1
W (s) =
11
2s + 1
2
0.5s2 + 0.05s + 1
8
10
58
0.1s + 1
4s + 1
2
2.5s + s + 1
0.5s + 1
2
3s + 0.3s + 1
0.5
2
0.3s + 0.03s + 1
0.8s + 1
0.8s2 + 0.08s + 1
W (s) =
3s + 1
2
5s + 0.3s + 1
W (s) =
5s + 1
5s2 + 1s + 1
№
16
17
Передаточная функция
s +1
W (s) =
2
0.05s + 0.01s + 1
W (s) =
0.4s + 1
18
W (s) =
19
W (s) =
20
W (s) =
21
22
23
24
25
26
0.07s2 + 0.08s + 1
0.5s + 1
0.03s2 + 0.04s + 1
0.2s + 0.04s + 1
0.3s + 1
2
2s + 0.4s + 1
5s + 1
W (s) =
0.05s2 + 0.01s + 1
5s + 1
W (s) =
W (s) =
0.5s2 + 1s + 1
3
1.5s2 + 0.2s + 1
W (s) =
0.1
2
2s + 0.5s + 1
W (s) =
28
W (s) =
2.5s2 + s + 1
0.07s2 + 0.02s + 1
0.8
0.2s2 + 0.04s + 1
W (s) =
W (s) =
s2 + 4s + 1
0.01s + 1
W (s) =
30
0.2s + 1
2
W (s) =
27
29
s +1
0.7s2 + 0.1s + 1
0.8s + 1
2
2s + 0.4s + 1
0.1s + 1
0.02s2 + 0.01s + 1
Лабораторная работа № 5
НЕЧЕТКОЕ УПРАВЛЕНИЕ ДИНАМИЧЕСКИМИ ОБЪЕКТАМИ
5.1. Управление двигателем постоянного тока
Эквивалентная электрическая схема двигателя постоянного
тока (ДПТ) показана на рис. 5.1.
Вход объекта – напряжение якоря U(t), В. Выход объекта – угол
поворота вала θ(t), рад., R – сопротивление якорной цепи (в омах),
L – индуктивность якорной цепи (генри), i – ток якорной цепи,
e(t) – электродвижущая сила (ЭДС) якоря (в вольтах).
Угловая скорость вращения ω(t) (рад/с) вычисляется как производная угла поворота вала
dθ(t)
ω(t) = .
dt
Электродвижущая сила вычисляется по формуле
e(t)= ke ω(t),
где ke – константа электродвижущей силы.
В соответствии с законом Кирхгофа можно записать уравнение
di(t)
U= UR + UL + e= i(t)R + L
+ ke ω(t).
dt
Таким образом,
1
di(t)
R k
=
−i(t) − e ω(t) + U (t).
dt
L L
L
(5.1)
L
R
e (t)
ω
U(t)
i
Рис. 5.1. Двигатель постоянного тока
59
MH (s)
U(s)
i(s)
1
Ls+ R
M(s)
k
ω(s)
1
Js+ b
k
Рис. 5.2. Модель ДПТ относительно угловой скорости
MH (s)
U(s)
i (s)
1
Ls + R
k
M(s)
ω (s)
1
Js + b
1
s
θ(s)
k
Рис. 5.3. Модель ДПТ относительно угла поворота вала
Крутящий момент двигателя (H·м) описывается формулой
M (t) = ki i(t),
где ki – константа. Обычно полагают ki = ke = k.
Уравнение вращательного движения
dω(t)
J = M (t) − bω(t) − MH (t),
dt
(5.2)
где MH(t) – момент нагрузки (возмущение, H·м), J – момент инерции ротора (в кг·м2), b – коэффициент вязкого трения (кг м2/с).
Таким образом, из (5.2) следует
M (t) bω
dω(t) k
(5.3)
= i(t) − H − .
dt
J
J
J Для получения ПФ угла поворота ротора относительно входного
напряжения запишем (5.1) и (5.2) с использованием преобразования Лапласа в виде
(Ls + R) I (s=
) U (s) − ksθ(s).
s(Js + b)θ(s) =
kI (s).
Тогда, исключая I(s), получаем ПФ относительно угла поворота
60
θ(s)
k
=
.
U (s) s (Js + b)(Ls + R) + k2
(
(5.4)
)
Относительно угловой скорости:
k
ω(s)
.
=
U (s) (Js + b)(Ls + R) + k2
(5.5)
Уравнениям (5.4) и (5.5) соответствуют блочные диаграммы,
представленные соответственно на рис. 5.2 и 5.3.
5.2. Управление электромеханической системой
Рассмотрим электромеханическую систему, состоящую из регулятора, двигателя постоянного тока и объекта управления (рис. 5.4).
Объект управления показан на рис. 5.5, он представляет собой
желоб длиной L с одним закрепленным концом, по которому перемещается шарик. Наклон желоба меняется с помощью рычага, закрепленного на краю диска диаметром R, ось которого соединена
с ротором ДПТ. Поворачивая диск на заданный угол, можно поднимать или опускать желоб.
g (t)
Регулятор
u(t)
ДПТ
α (t)
Объект
x (t)
Рис. 5.4. Структура электромеханической системы
шарик
желоб
L
α
неподвижная
опора
рычаг
вращающийся
диск
β
R
Рис. 5.5. Объект управления – шарик на желобе
61
Таким образом, меняя наклон желоба, можно добиться перемещения шарика в нужном направлении. В качестве задающего воздействия (уставки) g(t) можно рассматривать заданную координату
по оси желоба или закон изменения этой координаты.
Рассмотрим математическую модель объекта управления. Введем обозначения: α – угол наклона желоба, m – масса шарика, R –
радиус шарика, x – координата вдоль оси желоба.
Схема сил, действующих в системе, показана на рис. 5.6.
На рис. 5.6 F1 – проекция силы тяжести на ось желоба, F2 – сила
вращательного движения шарика, F3 – сила поступательного движения шарика.
=
F1 mg sin α.
.
F3 = mx
Силу вращательного движения можно описать, рассмотрев момент инерции вращения шарика:
d (v / R ) J
dω
,
=
=
M F=
x
2R J= J
dt
dt
R
J
.
F2 =
x
R2
где J – момент инерции шарика, ω – угловая скорость вращения
шарика, v – линейная скорость шарика.
Момент инерции сферы вычисляется по формуле:
2
J = mR 2 .
5
F2
x
F1
F3
α
α
P=mg
Рис. 5.6. Силы, определяющие движение шарика
62
Таким образом,
2
.
F2 = mx
5
В соответствии со 2-м законом Ньютона
F3 =
F1 − F2
⇒
2
 mg sin α − mx

=
mx
5
5

=
x
g sin α.
7
⇒
Для малых значений можно считать α ≈ sinα, что дает возможность записать передаточную функцию перемещения шарика в зависимости от угла наклона желоба:
X(s) (5 / 7) g
=
.
α(S)
s2
Здесь α – угол наклона желоба. Однако входным воздействием
для объекта служит β – угол поворота диска (т. е. ротора ДПТ).
Из условия равенства длин дуг можно записать:
Lα = Rα ⇒
R
α=
β.
L
5.3. Контрольные вопросы
1. Какие параметры используются при описании математической модели двигателя постоянного тока (ДПТ)?
2. Что является входным сигналом в модели ДТП?
3. Какие величины могут рассматриваться в качестве выхода ДПТ?
4. Какой порядок имеет передаточная функция ДТП?
5. Сформулируйте задачу управления шариком на желобе.
6. Какая передаточная функция описывает движение шарика
по желобу?
Задание 1.
Используя методику, изложенную в лабораторной работе 4, постройте НЛР для заданного варианта ДПТ из табл. 5.1. Рассмотреть
отдельно управление угловой скоростью и углом поворота вала.
63
Таблица 5.1.
Параметры двигателей постоянного тока
№
J
b
k
R
L
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
3.23·10-6
0.01
0.02215
2.6·10-5
0.0167
42·10-6
0.093
0.0001
0.15
0.01
5
0.02
0.162·10-3
0.02
2.9·10-6
0.0001
0.05
0.022
0.01
3.5·10-6
1
0.002953
1.7·10-5
0.0167
47·10-6
0.08
9·10-6
1.2
0.1
0.2
0.01
6.5·10-3
0.2
0.02
9.3·10-6
0.001
0.5·10-3
0.02
0.0274
0.5
1.976
0.00123
0.8
0.015
0.55
0.01
0.6
0.01
3.65
0.001
1
0.01
0.0296
0.105
0.5
1.2
0.01
4
0.00003
11
21
0.5
4.67
1
2.7
1.2
1
0.052
0.4
15
2
0.35
2.7
0.5
2.45
0.22
2.75·10-6
0.023
0.1215
0.00022
0.003
0.17
46
0.004
0.05
0.5
1
0.09
0.8
0.5
25·10-6
0.004
10
0.035
0.2
Задание 2.
Синтезировать НЛР для управления электромеханической системой ДПТ-шарик на желобе.
64
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА
1. Бураков М. В. Нечеткие регуляторы. СПб.: ГУАП, 2010. 254 с.
2. Круглов В. В., Дли М. И., Голунов Р. Ю. Нечеткая логика и искусственные нейронные сети. М., 2001. 224 с.
3. Леоненков А. В. Нечеткое моделирование в среде MatLab и
fuzzyTECH. СПб.: БХВ-Петербург, 2003. 736 с.
4. Штовба С. Д. Проектирование нечетких систем средствами
MatLab. М.: Горячая линия – Телеком, 2007. 288 с.
5. Дьяконов В., Круглов В. Математические пакеты расширения
MatLab. Специальный справочник. СПб.: Питер, 2001. 480 с.
6. Нечеткие множества в моделях управления и искусственного интеллекта / А. Н. Аверкин, И. З. Батыршин, А. Ф. Блишун [и
др.]; Под ред. Д. А. Поспелова. М.: Наука; Гл. ред. физ.-мат. лит.
1986. 312 с.
7. Обработка нечеткой информации в системах принятия решений / А. Н. Борисов, А. В. Алексеев [и др.]. М.: Радио и связь, 1989.
304 с.
8. Алиев Р. А. , Абдикеев Н. М. , Шахназаров М. М. . Производственные системы с искусственным интеллектом. М.: Радио и
связь, 1990.
9. Мелихов А. Н., Бернштейн Л. С., Коровин С. Я. Ситуационные
советующие системы с нечеткой логикой. М.: Наука, 1990.
65
СОДЕРЖАНИЕ
Введение...................................................................................
3
Лабораторная работа № 1. Нечеткие множества
и операции над ними..................................................................
4
Лабораторная работа № 2. Нечеткая импликация
и нечеткие правила....................................................................
19
Лабораторная работа № 3............................................................
28
Лабораторная работа № 4. Нечеткие регуляторы............................
48
Лабораторная работа № 5. Нечеткое управление
динамическими объектами..........................................................
59
Рекомендуемая литература.........................................................
65
Документ
Категория
Без категории
Просмотров
0
Размер файла
5 484 Кб
Теги
0017e4d108, burakov2
1/--страниц
Пожаловаться на содержимое документа