МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ имени ШАКАРИМА города Семей

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РЕСПУБЛИКИ КАЗАХСТАН
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
имени ШАКАРИМА города Семей
Документ СМК 3 уровня
УМК
УМКД
Редакция №2
Программа дисциплины
«Нечеткие
системы
управления»
учебнометодические материалы
от 16.06.2014 г.
УМКД 042-18-11.1.20.
169/03-2015
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
ДИСЦИПЛИНЫ
«НЕЧЕТКИЕ СИСТЕМЫ УПРАВЛЕНИЯ»
для специальности
6М070200 – Автоматизация и управление
Учебно-методические материалы
Семей
2015
СОДЕРЖАНИЕ
1 Глоссарий
3
2 Лекции
5
3 Практические занятия
52
2
1 Глоссарий
Критерий оптимальности – величина, зависящая от искомого решения и
принимающая на нем экстремальное (минимальное либо максимальное) значение.
Объект управления – любое техническое
которого надлежит управлять.
устройство, процессом z(t) на выходе
Управляющее устройство – все входящие в контур системы управления
элементы, используемые с целью организации процесса управления.
Оптимальным управление, называют решение уравнения ОУ, соответствующее
оптимальному управлению и удовлетворяющее условиям задачи.
Оптимальной траекторией движения ОУ называют систему управления,
удовлетворяющее цели управления.
Рекуррентные соотношения позволяют рекуррентно рассчитать состояние продукта
на выходе любого из аппаратов цепочки, если известно его начальное состояние, и
выбраны режим и конструкция аппаратов.
Задачи об условном максимуме функции называют задачами математического
программирования.
Оптимальным решением называют такой элемент х* множества допустимых
решений D, для которого критерий оптимальности принимает экстремальное значение.
Верхней гранью функции (функционала) I на множестве D называется такое
минимальное число I*, для которого выполнено неравенство.
Скользящий режим это когда критерий оптимальности будет тем меньше, чем
чаще происходит переключение регулирующего воздействия, и нижняя грань его, равная
нулю, достигается при сколь угодно большой частоте переключения.
Множество М называется выпуклым, гели для любых двух его элементов все
точки отрезка, их соединяющего, принадлежат М.
Выпуклой оболочкой множества М называется множество, любой элемент у
которого может быть получен из элементов xi  М посредством операции усреднения.
Вариационной функцией называется разность между двумя близкими функциями
в один и тот же момент времени.
Условия трансверсальности являются обобщенным понятием ортогональности
двух кривых и т.о. условия трансверсальности позволяют найти положения концов на
экстремали.
Уравнения связи это когда на функцию, доставляющую экстремум
функционалам, накладываются дополнительные условия. А сами
3
вариационные задачи с такими дополнительными условиями называются
задачами на условный экстремум.
Изопериметрические задачи это задачи на условный экстремум условия, которым
подчинены искомые функции, могут быть заданы в интегральной форме.
Кусочно-непрерывная функция ut  – это функция, имеющая разрывы первого
рода, т.е. эта функция, зависящая от t непрерывна за исключением некоторых точек.
Кусочно-гладкая функция – функция, состоящая из гладких дуг, соединяющихся в
точках t1 ,t 2 ,...,t n , в которых производные претерпевают разрыв 2-го рода, это угловые
точки.
Кусочно-постоянная функция – функция, состоящая из отрезков прямых,
параллельных оси абсцисс и имеющих разрывы 1-го рода.
Принцип максимума Понтрягина: надо так подобрать управляющие воздействия
u t   U , чтобы H  max , т.е. максимальное значение функции Н должно достигаться
только при оптимальном управлении.
МДП основан на принципе оптимальности Беллмана «Любой отрезок оптимальной
траектории так же является оптимальной траекторией», а будущее поведение процесса не
зависит от его предыстории, иначе говоря, будущее поведение системы определяется
состоянием объекта в настоящий момент времени.
Адаптивная система управления это система автоматического управления,
реагируя в процессе функционирования на изменение свойств ОУ и внешних воздействий
и приспосабливающееся к новым условиям на основе изменения структуры и параметров
управления устройств с тем, чтобы показатель качества достигал экстремального
значения.
Адаптацией называется изменении структуры и параметров управления
устройства осуществляемой на основе информации о свойствах ОУ и внешних
воздействий и обеспечивающий приспосабливаемость системы к изменениям условий
работы.
Самонастраивающиеся (СНС) системы – такие адаптивные системы, в которых
адаптация осуществляется за счет изменения параметров управляемого устройства.
Самоорганизующиеся системы – если адаптация достигается за счет изменения
структуры управляющего воздействия.
Самоалгоритмизующиеся системы – если адаптация достигается за счет
изменения алгоритма управляющего воздействия, такие системы
Безидентификационный подход – связан с реализацией адаптивной системы с
эталонной моделью;
Идентификационный подход - связан с реализацией адаптивной системы с
настраиваемой моделью (Адаптивные системы с идентификатором).
Экстремальными системами управления называются такие системы, в которых
оптимизируемый
объект
имеет
экстремальную
статическую
характеристику,
а
автоматическое устройство (оптимизатор) обеспечивает работу объекта в экстремальном
режиме.
4
Лекции
Лекция № 1 Нечеткие множества
1.1 Основные термины и определения
Понятие нечеткого множества - эта попытка математической формализации нечеткой
информации для построения математических моделей. В основе этого понятия лежит
представление о том, что составляющие данное множество элементы, обладающие общим
свойством, могут обладать этим свойством в различной степени и, следовательно
принадлежать к данному множеству с различной степенью. При таком подходе
высказывания типа “такой-то элемент принадлежит данному множеству” теряют смысл,
поскольку необходимо указать “насколько сильно” или с какой степенью конкретный
элемент удовлетворяет свойствам данного множества.
Определение 1. Нечетким множеством (fuzzy set)
на универсальном множестве U
называется совокупность пар (
), где
- степень принадлежности
элемента
к нечеткому множеству . Степень принадлежности - это число из
диапазона [0, 1]. Чем выше степень принадлежности, тем в большей мерой элемент
универсального множества соответствует свойствам нечеткого множества.
Определение 2. Функцией принадлежности (membership function) называется функция,
которая позволяет вычислить степень принадлежности произвольного элемента
универсального множества к нечеткому множеству.
Если
универсальное
элементов
множество
,
виде
.
В
тогда
случае
состоит
нечеткое
непрерывного
из
конечного
множество
множества
U
количества
записывается
используют
в
такое
обозначение
Примечание: знаки
и
в этих формулах означают совокупность пар
и u.
Пример 1. Представить в виде нечеткого множества понятие “мужчина среднего роста”.
Решение:
= 0/155+0.1/160 + 0.3/165 + 0.8/170 +1/175 +1/180 + 0.5/185 +0/180.
Определение 3. Лингвистической переменной (linguistic variable) называется
переменная, значениями которой могут быть слова или словосочетания некоторого
естественного или искусственного языка.
Определение 4. Терм–множеством (term set) называется множество всех возможных
значений лингвистической переменной.
Определение 5. Термом (term) называется любой элемент терм–множества. В теории
нечетких множеств терм формализуется нечетким множеством с помощью функции
принадлежности.
5
Пример 2. Рассмотрим переменную “скорость автомобиля”, которая оценивается по
шкале “низкая", "средняя", "высокая” и “очень высокая".
В этом примере лингвистической переменной является “скорость автомобиля”, термами лингвистические оценки “низкая", "средняя", "высокая” и “очень высокая”, которые и
составляют терм–множество.
Определение 6. Дефаззификацией (defuzzification) называется процедура преобразования
нечеткого множества в четкое число.
В теории нечетких множеств процедура дефаззификации аналогична нахождения
характеристик положения (математического ожидания, моды, медианы) случайных
величин в теории вероятности. Простейшим способом выполнения процедуры
дефаззификации является выбор четкого числа, соответствующего максимуму функции
принадлежности. Однако пригодность этого способа ограничивается лишь
одноэкстремальными функциями принадлежности. Для многоэкстремальных функций
принадлежности в Fuzzy Logic Toolbox запрограммированы такие методы
дефаззификации:
Centroid - центр тяжести;
Bisector - медиана;
LOM (Largest Of Maximums) - наибольший из максимумов;
SOM (Smallest Of Maximums) - наименьший из максимумов;
Mom (Mean Of Maximums) - центр максимумов.
Определение 7. Дефаззификация нечеткого множества
тяжестиосуществляется по формуле
по методу центра
.
Физическим аналогом этой формулы является нахождение центра тяжести плоской
фигуры, ограниченной осями координат и графиком функции принадлежности нечеткого
множества. В случае дискретного универсального множества дефаззификация нечеткого
множества
формуле
по
методу
центра
.
6
тяжести
осуществляется
по
Определение 8. Дефаззификация нечеткого
множества
медианы состоит в нахождении такого числа a, что
по
методу
.
Геометрической интерпретацией метода медианы является нахождения такой точки на
оси абцисс, что перпендикуляр, восстановленный в этой точке, делит площадь под кривой
функции принадлежности на две равные части. В случае дискретного универсального
множества дефаззификация нечеткого множества
осуществляется по формуле
по методу медианы
.
Определение 9. Дефаззификация нечеткого множества
максимумовосуществляется по формуле:
по методу центра
,
где G – множество всех элементов из интервала
принадлежности нечеткому множеству .
, имеющих максимальную степень
В методе центра максимумов находится среднее арифметическое элементов
универсального множества, имеющих максимальные степени принадлежностей. Если
множество таких элементов конечно, то формула из определения 9 упрощается к
следующему виду:
,
где
- мощность множества G.
В дискретном случае дефаззификация по методам наибольшего из максимумов и
наименьшего из максимумов осуществляется по формулам
и
,
соответственно. Из последних трех формулы видно, что если функция принадлежности
имеет только один максимум, то его координата и является четким аналогом нечеткого
множества.
Пример 3. Провести дефаззификацию нечеткого множества “мужчина среднего роста” из
примера 1 по методу центра тяжести.
7
Решение: Применяя формулу из определения 7, получаем:
Определение 10. Нечеткой
факторов
высказываний типа:
базой
знаний
(fuzzy
knowledge
base) о
влиянии
на значение параметра y называется совокупность логических
ЕСЛИ
ИЛИ
…
ИЛИ
,
ТО
где
, для всех
,
- нечеткий терм, которым оценивается переменная
в строчке с номером jp (
);
- количество строчек-конъюнкций, в которых выход y оценивается нечетким термом
,
;
- количество термов, используемых для лингвистической оценки выходного параметра
y.
С помощью операций (ИЛИ) и (И) нечеткую базу знаний из определения 10
перепишем в более компактном виде:
(1)
Определение 11. Нечетким
логическим
апроксимация зависимости
над нечеткими множествами.
Пусть
,
выводом
logic
inference) называется
с помощью нечеткой базы знаний и операций
- функция принадлежности входа
, т. е.
(fuzzy
;
нечеткому терму
,
,
- функция принадлежности выхода y нечеткому
8
терму
,
, т. е.
. Тогда степень принадлежности конкретного входного
вектора
нечетким термам
системой нечетких логических уравнений:
,
где
(2)
- операция максимума (минимума).
Нечеткое множество
образом:
, соответствующее входному вектору
,
где
из базы знаний (1) определяется следующей
, определяется следующим
(3)
- операция объединения нечетких множеств.
Четкое значение выхода y, соответствующее входному вектору
результате деффаззификации нечеткого
определяется в
.
1.2. Свойства нечетких множеств
Определение 12. Высотой нечеткого множества
называется верхняя граница его
функции
принадлежности:
.
Для
дискретного
универсального
множества супремум становится максимумом, а значит высотой нечеткого множества
будет максимум степеней принадлежности его элементов
Определение 13. Нечеткое множество
называется нормальным, если его высота равна
единице.
Нечеткие
множества
не
являющиеся
нормальными
называются субнормальными. Нормализация -преобразование субнормального нечеткого
множества
в нормальное
определяется так:
качестве примера на рис. 1 показана нормализация нечеткого множества
принадлежности
.
9
. В
с функцией
Рисунок 1 - Нормализация нечеткого множества
Определение 14. Носителем нечеткого множества
называется четкое подмножество
универсального множества , элементы которого имеют ненулевые степени
принадлежности:
.
Определение 15. Нечеткое множество называется пустым, если его носитель является
пустым множеством.
Определение 16. Ядром нечеткого множества
называется четкое подмножество
универсального множества , элементы которого имеют степени принадлежности равные
единице:
. Ядро субнормального нечеткого множества пустое.
Определение 17. -сечением
(или
множеством -уровня) нечеткого
множества
называется четкое подмножество универсального множества , элементы
которого имеют степени принадлежности большие или равные :
,
. Значение называют -уровнем. Носитель (ядро) можно рассматривать как
сечение нечеткого множества на нулевом (единичном) -уровне.
Рис. 2 иллюстрирует определения носителя, ядра,
множества.
10
-сечения и
-уровня нечеткого
Рисунок 2 - Ядро, носитель и
-сечение нечеткого множества
Определение 18. Нечеткое
множество
называется выпуклым если:
,
,
. Альтернативное определение: нечеткое множество будет выпуклым, если все
его -сечения - выпуклые множества. На рис. 3 приведены примеры выпуклого и
невыпуклого нечетких множеств.
Рисунок 3 - К определению выпуклого нечеткого множества
Определение 19. Нечеткие множества
и
равны (
11
) если
.
1.3. Операции над нечеткими множеств
Определения нечетких теоретико-множественных операций объединения, пересечения и
дополнения могут быть обобщены из обычной теории множеств. В отличие от обычных
множеств, в теории нечетких множеств степень принадлежности не ограничена лишь
бинарной значениями 0 и 1 - она может принимать значения из интервала [0, 1]. Поэтому,
нечеткие теоретико-множественные операции могут быть определены по-разному. Ясно,
что выполнение нечетких операций объединения, пересечения и дополнения над не
нечеткими множествами должно дать такие же результаты, как и при использование
обычных канторовских теоретико-множественных операций. Ниже приведены
определения нечетких теоретико-множественных операций, предложенных Л. Заде.
Определение 20. Дополнением
нечеткого
множества
заданного
на
называется
нечеткое множество с функцией принадлежности
для всех
рис. 4 приведен пример выполнения операции нечеткого дополнения.
. На
Рисунок 4 - Дополнение нечеткого множества
Определение 21. Пересечением нечетких множеств
нечеткое множество
всех
. Операция
т.е.
.
заданных на
с функцией принадлежности
нахождения минимума также обозначается
Определение 22. Объединением нечетких множеств
нечеткое множество
всех
. Операция
т.е.
.
и
и
заданных на
с функцией принадлежности
нахождения максимума также обозначается
12
называется
для
знаком ,
называется
для
знаком ,
Обобщенные определения операций нечеткого пересечения и объединения - треугольной
нормы (t-нормы) и треугольной конормы (t-конормы или s-нормы) приведены ниже.
Определение 23. Треугольной нормой (t-нормой) называется бинарная операция на
единичном интервале
, удовлетворяющая следующим аксиомам для
любых
:
1.
2.
3.
4.
(граничное условие);
если
(монотонность);
(коммутативность);
(ассоциативность).
Наиболее часто используются такие t-нормы: пересечение по Заде вероятностное
пересечение ;
пересечение
Лукасевичу . Примеры выполнения пересечения
множеств с использованием этих t-норм показаны на рис. 5.
;
по
нечетких
Рисунок 5 - Пересечение нечетких множеств с использованием различных t-норм
Определение 25. Треугольной конормой (s-нормой) называется бинарная операция на
единичном интервале
, удовлетворяющая следующим аксиомам для
любых
:
1.
2.
3.
4.
(граничное условие);
если
(монотонность);
(коммутативность);
(ассоциативность).
13
Наиболее часто используются такие s-нормы: объединение по Заде ;
вероятностное
объединение ;
объединение
по
Лукасевичу . Примеры выполнения объединения нечетких множеств с
использованием этих s-норм показаны на рис. 6.
Наиболее известные треугольные нормы приведены в табл. 1.
Рисунок 6 - Объединение нечетких множеств с использованием различных s-норм
Таблица 1 - Примеры треугольных норм
Параметр
-
14
1.4. Нечеткая арифметика
В этом разделе рассматриваются способы расчета значений четких алгебраических
функций от нечетких аргументов. Материал основывается на понятиях нечеткого числа и
принципа нечеткого обобщения. В конце раздела приводятся правила выполнения
арифметических операций над нечеткими числами.
Определение 25. Нечетким числом называется выпуклое нормальное нечеткое множество
с кусочно-непрерывной функцией принадлежности, заданное на множестве
действительных чисел. Например, нечеткое число "около 10" можно задать следующей
функцией принадлежности:
.
Определение 26. Нечеткое
(отрицательным) если
число
Определение 27. Принцип
,
(
обобщения
называется положительным
).
Заде. Если
независимых переменных и аргументы
-
функция
от
n
заданы нечеткими числами
, соответственно, то значением функции
функцией принадлежности:
называется нечеткое число
с
.
Принцип обобщения позволяет найти функцию принадлежности нечеткого числа,
соответствующего значения четкой функции от нечетких аргументов. Компьютерноориентированная реализация принципа нечеткого обобщения осуществляется по
следующему алгоритму:
Шаг 1. Зафиксировать значение
Шаг 2. Найти
условиям
все
.
n-ки
,
и
,
15
.
,
удовлетворяющие
Шаг 3. Степень
принадлежности
формуле:
элемента
нечеткому
числу
вычислить
по
.
Шаг 4. Проверить условие "Взяты все элементы y?". Если "да", то перейти к шагу 5.
Иначе зафиксировать новое значение
и перейти к шагу 2.
Шаг 5. Конец.
Приведенный алгоритм основан на представлении нечеткого числа на дискретном
универсальном
,
множестве,
т.е.
.
Обычно
исходные
задаются кусочно-непрерывными функциями принадлежности:
Для вычисления значений функции
аргументы
,
данные
.
дискретизируют,
т.е. представляют в виде
. Число точек выбирают так, чтобы
обеспечить требуемую точность вычислений. На выходе этого алгоритма получается
нечеткое множество, также заданное на дискретном универсальном множестве.
Результирующую
кусочно-непрерывную
функцию
принадлежности
нечеткого
числа
получают как верхнюю огибающую точек
Пример 4. Нечеткие числа
принадлежности:
и
.
заданы следующими трапециевидными функциями
и
.
Необходимо найти нечеткое число
определения 27.
с использованием принципа обобщения из
Зададим нечеткие аргументы на четырех точках (дискретах): {1, 2, 3 4} для
и {2, 3, 4 8}
для . Тогда:
и
. Процесс выполнения умножения над
нечеткими числами сведен в табл. 2. Каждый столбец таблицы соответствует одной
итерации алгоритма нечеткого обобщения. Результирующее нечеткое множество задано
первой и последней строчками таблицы. В первой строке записаны элементы
универсального множества, а в последней строке - степени их принадлежности к
значению выражения
. В результате получаем:
тип функция принадлежности
трапециевидной.
В
этом
. Предположим, что
будет таким же, как и аргументов
и , т. е.
случае
функция
принадлежности
задается
16
выражением:
. На рис. 7 показаны результаты выполнения
операции
с представлением нечетких множителей на 4-х дискретах. Красными
звездочками показаны элементы нечеткого множества
линией - трапециевидная функция принадлежности.
из табл. 2, а тонкой красной
Исследуем, как измениться результат нечеткого обобщения при увеличении числа
дискрет,
аргументов
на
которых
и
задаются
аргументы.
Нечеткое
число
при
задании
на 30 дискретах приведено на рис. 7. Синими точками показаны
элементы нечеткого множества
, найденные по принципу обобщения, а зеленой линией -
верхняя огибающая этих точек - функция принадлежности . Функция принадлежности
результата имеет форму криволинейной трапеции, немного выгнутой влево.
Таблица 2 - К примеру 4
2
3
4
6
8
9
12
1
1
1
2
2
3
1
2
2
3
4
2
3
2
8
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
4
3
3
4
2
4
2
3
4
3
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
17
16
24
32
4
3
4
8
4
8
8
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
Рисунок 7 - К примеру 4
Применение принципа обобщения Заде сопряжено с двумя трудностями:
1. большой объем вычислений - количество элементов результирующего нечеткого
множества, которые необходио обработать, равно
,
где
- количество точек, на которых задан i-й нечеткий аргумент,
;
2. необходимость построения верхней огибающей элементов результирующего
нечеткого множества.
Более практичным является применение -уровневого принципа обобщения. В этом
случае нечеткие числа представляются в виде разложений по -уровневым
множествам:
значение
на
, где
- минимальное (максимальное)
-уровне.
Арифметическая операция
18
Лекция №2
Нечеткие отношения и их свойства
Определение 30. Нечетким отношением
на множествах
нечеткоеподмножество декартова произведения
принадлежности
называется
. Степень
показывает степеньвыполнения отношения
элементами
,
,
между
.
В дальнейшем будем рассматривать только бинарныенечеткие отношения, которые
задаются на декартовом произведении двух множеств.Обозначим эти множества
через
и
. Тогда задание бинарного нечеткогоотношения
вуказании всех троек
, где
,
Пример 5. Задать нечеткое отношение
Пусть
на
состоит
, или, что тоже самое,
("
приблизительно равно
.
").
. Тогда нечеткое отношение удобнозадавать матрицей вида:
.
Длянепрерывных множеств
и
нечеткое отношение можно
задатьследующей функцией принадлежности:
отношения
. Нечеткие
на дискретных инепрерывных множествах изображены на рис. 10.
Пример 6. Задать нечеткое отношение "
Пусть
намного меньше, чем
".
. Тогда нечеткое отношение можно задатьматрицей вида:
.
Длянепрерывных множеств
и
нечеткое отношение "
намного
меньше, чем " можноопределить такой функцией
принадлежности:
. Нечеткие отношения "
намного
меньше, чем " надискретных и непрерывных множествах изображены на рис. 11.
19
Как видно из примеров, нечеткие отношения являютсяболее гибкими по сравнению с
традиционными отношениями. Они позволяют задать нетолько сам факт выполнения
отношения, но и указывать степень его выполнения,что является очень важным для
многих практических задач.
Рисунок10 - Нечеткое отношение "
приблизительно равно
Рисунок11 - Нечеткое отношение "
намного меньше, чем
20
"
"
Пример 7. Задать отношение "схожий менталитет" для следующих национальностей
{Украинцы(У), Чехи (Ч), Австрийцы (А), Немцы (Н)}.
Использование обычного, не нечеткого отношенияпозволяет выделить только одну
пару наций со схожими менталитетами -немцев и австрийцев. Этим отношением не
отражаться тот факт, что по менталитетучехи более близки к немцам, чем украинцы.
Нечеткое отношение позволяет легкопредставить такую
информацию:
.
Определение 31. Носителем нечеткого отношения
на
множествах
и
называетсяподмножество декартова
произведения
вида:
.
Носитель нечеткого отношения можно рассматривать какобычное отношение,
связывающего все пары
, для которых степень выполнениянечеткого
отношения
не равна нулю. Более полезным являетсяиспользование сеченийнечеткого отношения, определения которых аналогично определениям
множеств -уровня (см. раздел1.2).
Определение 32.
-сечением нечеткого отношения
обычноеотношение, связывающее все пары
выполнениянечеткого отношения
любого
на
выполняетсяравенство
называется
, для которых степень
не меньше
Определение 33. Нечеткое отношение
на
:
.
называется рефлексивным, еслидля
.В случае конечного множества
все
элементы главной диагонали матрицы
равны 1. Примеромрефлексивного нечеткого
отношения может быть отношение "приблизительно равны".
Определение 34. Нечеткое
отношение
любого
на
называется антирефлексивным, еслидля
выполняетсяравенство
.В случае конечного множества
все
элементы главной диагонали матрицы
равны 0.Примером антирефлексивного
нечеткого отношения может быть отношение"значительно больше".
Определение 35. Нечеткое отношение
на
называется симметричным, еслидля
любой пары
выполняетсяравенство
.Матрица
симметричного нечеткого отношения, заданного на конечном множестве,симметричная.
Определение 36. Нечеткое
отношение
на
называется асимметричным, есливыражение
справедливодля любой пары
.Примером
асимметричного нечеткого отношения может служить отношение "намногобольше".
21
Определение 37. Нечеткое отношения
и
на
называется обратными, если
длялюбой пары
выполняетсяравенство
.Примером
обратных нечетких отношений может служить пара "намного больше" -"намного
меньше".
2. Операции над нечеткими отношениями
Операции над нечеткими отношениями аналогичнысоответствующим операциям для
обычных отношений. Однако, как и для нечеткихтеоретико-множественных операций,
они могут выполняться различными способами.Ниже приводятся определения операций
над нечеткими отношениями с использованиемтреугольных нормы и конормы (см.
раздел 1.3).
Определение 38. Пересечением нечетких отношений
называется нечеткоеотношение
принадлежности
принадлежности
, заданных на
,
сфункцией
,
, где
Определение 39. Объединением нечетких отношений
называется нечеткоеотношение
и
и
- t-норма.
, заданных на
,
сфункцией
,
Пересечение и объединение нечетких отношений "
, где
- s-норма (t-конорма).
приблизительноравно
" и"
намногоменьше, чем "из примеров 5 и 6 показаны на рис. 12. В качестве t-нормы и
s-нормыиспользовались операции нахождения минимума и максимума, соответственно.
Рисунок 12 -Операции над нечеткими отношениями из примеров 5 и 6
22
Определение 40. Дополнениемнечеткого отношения
называется нечеткоеотношение
,
, заданного на
,
сфункцией принадлежности
.
Определение 41. Максминной композицией (произведением) нечетких
отношений
и
, заданных на
отношение
и
на множестве
, называетсянечеткое
с функцией
принадлежности
,
В случае конечныхмножеств
,
,
матрицанечеткого отношения
.
получается
как максминное произведениематриц
и . Эта операциявыполняется как обычное
произведение матриц, в котором операция поэлементногоумножения заменена на
нахождение минимума, а суммирование - на нахождениемаксимума. Аналогично
определяются операции минимаксной имаксимультипликативной композиции.
Композиция играет ключевую роль в нечеткомлогическом выводе.
Пример 8. Заданы нечеткие отношения
(
), минимаксная (
и
) имаксимультипликативная (
отношенийопределяются такими матрицами:
;
. Тогда максминная
) композиции этих нечетких
;
.
Определение 42. Нечеткое отношение
на
.Другими словами, для любой пары
отношения
называется транзитивным, если
степень выполнения
должна быть неменьше степени выполнения отношения
Определение 43. Транзитивным замыканием
нечеткого отношения
.
называется
Лекция №3
Нечеткая логика
Нечеткая логика это обобщение традиционной аристотелевой логики на случай, когда
истинность рассматривается как лингвистическая переменная, принимающая значения
типа: "очень истинно", "более-менее истинно", "не очень ложно" и т.п. Указанные
лингвистические значения представляются нечеткими множествами.
1.7.1. Лингвистические переменные
Напомним, что лингвистической называется переменная, принимающая значения из
множества слов или словосочетаний некоторого естественного или искусственного
языка. Множество допустимых значений лингвистической переменной называется терммножеством. Задание значения переменной словами, без использования чисел, для
человека более естественно. Ежедневно мы принимаем решения на основе
лингвистической информации типа: "очень высокая температура"; "длительная
поездка"; "быстрый ответ"; "красивый букет"; "гармоничный вкус" и т.п. Психологи
установили, что в человеческом мозге почти вся числовая информация вербально
23
перекодируется и хранится в виде лингвистических термов. Понятие лингвистической
переменной играет важную роль в нечетком логическом выводе и в принятии решений
на основе приближенных рассуждений. Формально, лингвистическая переменная
определяется следующим образом.
Определение 44. Лингвистическая переменная задается пятеркой
,
где
- ; имя переменной;
- ; терм-множество, каждый элемент которого (терм)
представляется как нечеткое множество на универсальном множестве ;
-;
синтаксические правила, часто в виде грамматики, порождающие название
термов;
- ; семантические правила, задающие функции принадлежности нечетких
термов, порожденных синтаксическими правилами
.
Пример 9. Рассмотрим лингвистическую переменную с именем
комнате". Тогда оставшуюся четверку


"температура в
можно определить так:
универсальное множество - ;
;
терм-множество - ;
{"холодно", "комфортно", "жарко"} с такими функциями
принадлежностями (
):





синтаксические правила
, порождающее новые термы с использованием
квантификаторов "не", "очень" и "более-менее";
семантические правила
, в виде таблицы 4.
Таблица 4 - Правила расчета функций принадлежности
Квантификатор
Функция принадлежности (
)
не t
очень t
более-менее t
Графики функций принадлежности термов "холодно", "не очень холодно", "комфортно",
"более-менее комфортно", "жарко" и "очень жарко" лингвистической переменной
"температура в комнате" показаны на рис. 13.
24
Рисунок 13 - Лингвистическая переменная "температура в комнате"
1.7.2. Нечеткая истинность
Особое место в нечеткой логике занимает лингвистическая переменная "истинность". В
классической логике истинность может принимать только два значения: истинно и
ложно. В нечеткой логике истинность "размытая". Нечеткая истинность определяется
аксиоматически, причем разные авторы делают это по-разному. Интервал [0, 1]
используется как универсальное множество для задания лингвистической переменной
"истинность". Обычная, четкая истинность может быть представлена нечеткими
множествами-синглтонами. В этом случае четкому понятию истинно будет
соответствовать функция принадлежности
ложно - ;
,
, а четкому понятию
.
Для задания нечеткой истинности Заде предложил такие функции принадлежности
термов "истинно" и "ложно":
;
,
,
25
где
- ; параметр, определяющий носители нечетких множеств "истинно" и
"ложно". Для нечеткого множества "истинно" носителем будет интервал
нечеткого множества ложно" - ;
, а для
.
Функции принадлежности нечетких термов "истинно" и "ложно" изображены на рис. 14.
Они построены при значении параметра
. Как видно, графики функций
принадлежности термов "истинно" и "ложно" представляют собой зеркальные
отображения.
Рисунок 14 - Лингвистическая переменная "истинность" по Заде
Для задания нечеткой истинности Балдвин предложил такие функции принадлежности
нечетких "истинно" и "ложно":
где
.
Квантификаторы "более-менее" и "очень" часто применяют к нечеткими множествами
"истинно" и "ложно", получая таким образом термы "очень ложно", "более-менее
ложно", "более-менее истинно", "очень истинно", "очень, очень истинно", "очень, очень
ложно" и т.п. Функции принадлежности новых термов получают, выполняя операции
концентрации и растяжения нечетких множеств "истинно" и "ложно". Операция
концентрации соответствует возведению функции принадлежности в квадрат, а
операция растяжения - возведению в степень ½. Следовательно, функции
принадлежности термов "очень, очень ложно", "очень ложно", "более-менее ложно",
"более-менее истинно", "истинно", "очень истинно" и "очень, очень истинно" задаются
так:
26
;
;
;
;
.
Графики функций принадлежности этих термов показаны на рис. 15.
Рисунок 15 - Лингвистическая переменная "истинность" по Балдвину
1.7.3. Нечеткие логические операции
Вначале кратко напомнить основные положения обычной (булевой) логики. Рассмотрим
два утверждения A и B, каждое из которых может быть истинным или ложным, т.е.
принимать значения "1" или "0". Для этих двух утверждений всего
существует
различных логических операций, из которых содержательно
интерпретируются лишь пять: И ( ), ИЛИ ( ), исключающее ИЛИ ( ), импликация (
) и эквивалентность (
). Таблицы истинности для этих операций приведены в
табл. 5.
27
Таблица 5 - Таблицы истинности булевой логики
A
B
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
Предположим, что логическое утверждение может принимать не два значения
истинности, а три, например: "истинно", "ложно" и "неопределенно". В этом случае мы
будем иметь дело не с двухзначной, а трехзначной логикой. Общее количество
бинарных операций, а, следовательно, и таблиц истинности, в трехзначной логике
равно
. Нечеткая логика является разновидностью многозначной логики, в
которой значения истинности задаются лингвистическими переменными или термами
лингвистической переменной "истинность". Правила выполнения нечетких логических
операций получают из булевых логических операций с помощью принципа обобщения.
Определение 45. Обозначим нечеткие логические переменные через
и ,а
функции принадлежности, задающие истинностные значения этих переменных
через
и
,
.Нечеткие логические операции И (
НЕ ( ) и импликация (
), ИЛИ (
),
) выполняются по таким правилам:
;
;
;
.
В многозначной логике логические операции могут быть заданы таблицами истинности.
В нечеткой логике количество возможных значений истинности может быть
бесконечным, следовательно в общем виде табличное представление логических
операций невозможно. Однако, в табличной форме можно представить нечеткие
логические операции для ограниченного количества истинностных значений, например,
для терм-множества {"истинно", "очень истинно", "не истинно", "более-менее ложно",
"ложно"}. Для трехзначной логики с нечеткими значениями истинности T - ; "истинно",
F - ; "ложно" и T+F - "неизвестно" Л Заде предложил такие лингвистические таблицы
истинности:
T
T
F
T
T
T
F
F
F
T
T
T+F F
T+F
T
28
F
T
T
F
T
F
F
T
F
F
F
T+F T
F
T+F
T+F T
T+F T+F
T
T+F F
T+F F
T+F
T+F T+F T+F T+F
T+F
Применяя правила выполнения нечетких логических операций из определения 45
можно расширить таблицы истинности для большего количества термов. Как это
сделать рассмотрим на следующем примере.
Пример 10. Заданы следующие нечеткие истинностные значения:
;
;
.
Применяя правило из определения 45, найдем нечеткую истинность выражения "почти
истинно ИЛИ истинно":
.
Сравним полученное нечеткое множество с нечетким множеством "более-менее
истинно". Они почти равны, значит:
.
В результате выполнения логических операций часто получается нечеткое множество,
которое не эквивалентно ни одному из ранее введенных нечетких значений
истинности. В этом случае необходимо среди нечетких значений истинности найти
такое, которое соответствует результату выполнения нечеткой логической операции в
максимальной степени. Другими словами, необходимо провести так
называемую лингвистическую аппроксимацию, которая может рассматриваться как
аналог аппроксимации эмпирического статистическими распределения стандартными
функциями распределения случайных величин. В качестве примера приведем
предложенные Балдвином лингвистические таблицы истинности для показанных на
рис. 15 нечетких значений истинности:
ложно
ложно
ложно
ложно
истинно
ложно
ложно
истинно
истинно
истинно
истинно
истинно
ложно
неопределенно
неопределенно ложно
29
неопределенно истинно
неопределенно
истинно
неопределенно неопределенно
неопределенно
неопределенно
истинно
очень истинно
истинно
очень истинно
истинно
более-менее истинно более-менее истинно истинно
1.7.3. Нечеткая база знаний
Определение 46. Нечеткой базой знаний называется совокупность нечетких правил
"Если - то", определяющих взаимосвязь между входами и выходами исследуемого
объекта. Обобщенный формат нечетких правил такой:
Если посылка правила, то заключение правила.
Посылка правила или антецедент представляет собой утверждение типа "x есть
низкий", где "низкий" - ;это терм (лингвистическое значение), заданный нечетким
множеством на универсальном множестве лингвистической переменной x.
Квантификаторы "очень", "более-менее", "не", "почти" и т.п. могут использоваться для
модификации термов антецедента.
Заключение или следствие правила представляет собой утверждение типа "y есть d", в
котором значение выходной переменной (d) может задаваться:
1.
2.
3.
4.
нечетким термом: "y есть высокий";
классом решений: "y есть бронхит"
четкой константой: "y=5";
четкой функцией от входных переменных: "y=5+4*x".
Если значение выходной переменной в правиле задано нечетким множеством, тогда
правило может быть представлено нечетким отношением. Для нечеткого правила "Если
x есть
, то y есть
", нечеткое отношение
задается на декартовом
произведении
, где
- ; универсальное множество входной (выходной)
переменной. Для расчета нечеткого отношения можно применять нечеткую импликацию
и t-норму. При использовании в качестве t-нормы операции нахождения минимума,
расчет нечеткого отношения
осуществляется так:
,
.
Пример 11. Следующая нечеткая база знаний описывает зависимость между возрастом
водителя (x) и возможностью дорожно-транспортного происшествия (y):
Если x = Молодой, то y = Высокая;
Если x = Средний, то y = Низкая;
Если x = Очень старый, то y = Высокая.
Пусть функции принадлежностей термов имеют вид, показанный на рис. 16. Тогда
нечеткие отношения, соответствующие правилам базы знаний, будут такими, как на
рис. 17.
30
Рисунок 16 - Функции принадлежности термов
Рисунок 17 - Нечеткие отношения, соответствующие правилам базы знаний из примера
11
Для задания многомерных зависимостей "входы-выходы" используют нечеткие
логические операции И и ИЛИ. Удобно правила формулировать так, чтобы внутри
каждого правил переменные объединялись логической операцией И, а правила в базе
знаний связывались операцией ИЛИ. В этом случае нечеткую базу знаний,
связывающую входы
виде:
с выходом
ЕСЛИ
ИЛИ
…
ИЛИ
,
31
, можно представить в следующем
ТО
,
,
где
- нечеткий терм, которым оценивается переменная
в строчке с номером
(
);
- количество строчек-конъюнкций, в которых выход
оценивается значений
;
- количество различных значений, используемых для оценки выходной
переменной .
Приведенную выше базу знаний удобно представлять таблицей, которую иногда
называют матрицей знаний (табл. 6).
Таблица 6 - Нечеткая база знаний
…
…
…
…
…
… …
…
…
…
…
…
… …
…
…
…
…
…
…
… …
…
Для учета различной степени уверенности эксперта в адекватности правил используют
весовые коэффициенты. Нечеткую базу знаний из таблицы 6 с весовыми
коэффициентами правил можно записать следующим образом:
,
32
где
- ; нечеткая логическая операция ИЛИ;
- ;нечеткая логическая операция И;
- ; весовой коэффициент правила с номером
.
Лекция №4
Нечеткая логика: достоинства и недостатки
Для описания неопределенностей в задачах автоматического управления используются
три метода:



вероятностный ( стохастический );
использование нечеткой логики (fuzzy logic );
хаотические системы.
Более подробно остановимся на втором пункте.
Впервые термин нечеткая логика (fuzzy logic) был введен амерканским профессором не
то иранского, не то азербайджанского происхождения (в разных источниках указывается
по-разному) Лотфи Заде в 1965 году в работе “Нечеткие множества” в журнале
“Информатика и управление”.
Основанием для создания новой теории послужил спор профессора со своим другом о
том, чья из жен привлекательнее. К единому мнению они, естественно, :) так и не
пришли. Это вынудило Заде сформировать концепцию, которая выражает нечеткие
понятия типа “привлекательность” в числовой форме.
Очевидной областью внедрения алгоритмов нечеткой логики являются всевозможные
экспертные системы, в том числе:






нелинейный контроль за процессами ( производство );
самообучающиеся системы ( или классификаторы ), исследование рисковых и
критических ситуаций ;
распознавание образов;
финансовый анализ ( рынки ценных бумаг ) ;
исследование данных ( корпоративные хранилища );
совершенствование стратегий управления и координации действий, например
сложное промышленное производство.
В Японии это направление переживает настоящий бум. Здесь функционирует
специально созданная лаборатория Laboratory for International Fuzzy Engineering
Research ( LIFE ).Программой этой организации является создание более близких
человеку вычислительных устройств.LIFE объединяет 48 компаний в числе которых
находятся: Hitachi, Mitsubishi, NEC, Sharp, Sony, Honda, Mazda, Toyota. Из зарубежных (
не Японских ) участниковLIFEможно выделить: IBM, Fuji Xerox, а также к
деятельности LIFE проявляет интерес NASA.
Мощь и интуитивная простота нечеткой логики как методологии разрешения проблем
гарантирует ее успешное использование во встроенных системах контроля и анализа
33
информации. При этом происходит подключение человеческой интуиции и опыта
оператора.
В отличие от традиционной математики, требующей на каждом шаге моделирования
точных и однозначных формулировок закономерностей, нечеткая логика предлагает
совершенно иной уровень мышления, благодаря которому творческий процесс
моделирования происходит на наивысшем уровне абстракции, при котором
постулируется лишь минимальный набор закономерностей.
Нечеткие числа, получаемые в результате “не вполне точных измерений”, во многом
аналогичны распределениям теории вероятностей, но свободны от присущих последним
недостатков: малое количество пригодных к анализу функций распределения,
необходимость их принудительной нормализации, соблюдение требований
аддитивности, трудность обоснования адекватности математической абстракции для
описания поведения фактических величин. В пределе, при возрастании точности,
нечеткая логика приходит к стандартной, Булевой. По сравнению с вероятностным
методом, нечеткий метод позволяет резко сократить объем производимых вычислений,
что, в свою очередь, приводит к увеличению быстродействия нечетких систем.
Недостатками нечетких систем являются:



отсутствие стандартной методики конструирования нечетких систем;
невозможность математического анализа нечетких систем существующими
методами;
применение нечеткого подхода по сравнению с вероятностным не приводит к
повышению точности вычислений.
Если Вы немного заинтересовались этой мало изученной, но бесспорно перспективной
областью науки, тогда только вперед. Далее будет рассказаны некоторые основы данной
теории, кое-что о "нечетком" железе и софте.
Лекция №5.
БАЗОВЫЕ ПОНЯТИЯ НЕЧЕТКОЙ ЛОГИКИ
Вспомните прогноз погоды на любом из телевизионных каналов: завтра температура
воздуха +5 градусов С, возможен дождь. В этом случае даже профессиональные
синоптики не могут точно сказать будет дождь или нет. Это и есть проявление нечеткой
логики: погода завтра может быть в данном случае как просто пасмурной, так и
дождливой: события здесь предсказываются с некоторой долей уверенности (рангом).
Рассмотрим теперь другой пример, связанный с возрастом человека (рис.1). До 16 лет
нельзя однозначно утверждать, что человек молодой (например, 15-летие относится к
термину молодой с рангом около 0,9 ). Зато диапазону от 16 до 30 лет можно смело
присвоить ранг 1, т.е. человек в этом возрасте молодой. После 30 лет человек вроде уже
не молодой, но еще и не старый, здесь принадлежность (ранг) термина молодой возрасту
будет принимать значения в интервале от 0 до 1. И чем больше возраст человека, тем
мень ше становится его принадлежность к молодым, т.е. ранг будет стремиться к 0.
34
Рис.1. Нечеткое множество для термина молодой.
Рассуждая таким образом, было получено нечеткое множество, описывающее понятие
молодости для всего диапазона возрастов человека. Если ввести остальные термины
(например, очень молодой, старый и т.д.) , то можно охарактеризовать такую
переменную как возраст, состоящую из нескольких нечетких множеств и полностью
перекрывающую весь жизненный период.
К нечетким множествам можно применять следующие операции:
1.объединение
2.пересечение
3.дополнение
35
4.концентрация
5.размывание (или размытие)
Фаззификация - сопоставление множества значений х ее функции принадлежности М(х),
т.е. перевод значений х в нечеткий формат (пример с термином молодой).
Дефаззификация - процесс, обратный фаззификации.
Все системы с нечеткой логикой функционируют по одному принципу: показания
измерительных приборов фаззифицируются (переводятся в нечеткий формат),
обрабатываются (см. ниже), дефаззифицируются и в виде привычных сигналов
подаются на исполнительные устройства.
Степень принадлежности - это не вероятность , т.к. неизвестна функция распределения ,
нет повторяемости экспериментов. Так, если взять из рассмотренного ранее примера
прогноза погоды два взаимоисключающих события: будет дождь и не будет и присвоить
им некоторые ранги, то сумма этих рангов необязательно будет равна 1, но если
равенство все-таки есть, то нечеткое множество считается нормированным. Значения
функции принадлежности M(x) могут быть взяты только из априорных знаний ,
интуиции (опыта) , опроса экспертов.
В нечеткой логике вводится понятие лингвистической переменной, значениями которой
являются не числа , а слова естественного языка , называемые термами. Например, в
случае управления мобильным роботом можно ввести две лингвистические
переменные: ДИСТАНЦИЯ (расстояние до помехи) и НАПРАВЛЕНИЕ (угол между
продольной осью робота и направлением на помеху).
Рассмотрим лингвистическую переменную ДИСТАНЦИЯ. Значениями ее можно
определить термыДАЛЕКО, СРЕДНЯЯ, БЛИЗКО и ОЧЕНЬ БЛИЗКО.Для физической
реализации лингвистической переменной необходимо определить точные физические
значения термов этой переменной. Пусть переменная ДИСТАНЦИЯ может принимать
любое значение из диапазона от нуля до бесконечности. Согласно положениям теории
нечетких множеств, в таком случае каждому значению расстояния из указанного
36
диапазона может быть поставлено в соответствие некоторое число от нуля до единицы,
которое определяет степень принадлежности данного физического расстояния
(допустим
40
см)
к
тому
или
иному
терму
лингвистической
переменнойДИСТАНЦИЯ Степень принадлежности определяется так называемой
функцией принадлежности М(d), где d-расстояние до помехи. В нашем случае
расстоянию 40 см. можно задать степень принадлежности к терму ОЧЕНЬ
БЛИЗКО равную 0,7 , а к терму БЛИЗКО– 0,3 (см. рис.1.). Конкретное определение
степени принадлежности может проходить только при работе с экспертами.
Рис.1. Лингвистическая переменная и функция принадлежности.
ПеременнойНАПРАВЛЕНИЕ, которая может принимать значения в диапазоне от 0 до
360 градусов, зададим термыЛЕВОЕ, ПРЯМО И ПРАВОЕ.
Теперь необходимо задать выходные переменные. В рассматриваемом примере
достаточно одной, которая будет называться РУЛЕВОЙ УГОЛ. Она может содержать
термы: РЕЗКО ВЛЕВО, ВЛЕВО, ПРЯМО, ВПРАВО, РЕЗКО ВПРАВО. Связь между
входом и выходом запоминается в таблице нечетких правил (рис.2.).
Рис.2. Таблица нечетких правил.
37
Каждая запись в данной таблице соответствует своему нечеткому правилу, например:
Если ДИСТАНЦИЯ БЛИЗКО и НАПРАВЛЕНИЕ ПРАВОЕ, тогда РУЛЕВОЙ
УГОЛ РЕЗКО ВЛЕВО
Таким образом, мобильный робот с нечеткой логикой будет работать по следующему
принципу: данные с сенсоров о расстоянии до помехи и направлении на нее будут
фаззифицированы, обработаны согласно табличным правилам, дефаззифицированы и
полученные данные в виде управляющих сигналов поступят на привода робота.
Применение традиционной нечеткой логики в современных системах
ограниченно следующими факторами:




крайне
как правило, сложная система управления имеет большее количество входов,
чем самое заурядное нечеткое приложение;
добавление входных переменных увеличивает сложность вычислений
экспоненциально;
как следствие предыдущего пункта, увеличивается база правил, что приводит к
трудному ее восприятию (напомню, база правил набирается вручную);
операции в рельном масштабе требуют специального железа.
Исходя из этих причин, Steven Goodridge предлагает использовать систему,
обрабатывающую
большие
данные
с
помощью
нескольких
нечетких
микроконтроллеров, объединенных вместе. Этот подход позволяет качественно
управлять трудно описываемыми нечеткими процессами. Каждый элемент,
получившейся нечеткой сети обозначается как нечеткий узел. Теперь, если связать
выход одного узла со входом другого, все вычисления заметно упрощаются. Этот
подход назван нечетким предвычислением (рис.1).
Рис.1.Нечеткие предвычисления.
Кроме того, выходы нечетких узлов можно объединять с помощью мультиплексора таким образом достигается более гладкий переход между множеством получающихся
после обработки базы правил рекомендаций(рис.2).
38
Рис.2.Нечеткий мультиплексор
Лекция №6
ОБЩАЯ СТРУКТУРА НЕЧЕТКОГО МИКРОКОНТРОЛЛЕРА
Общая структура микроконтроллера, использующего нечеткую логику, показана на
рис.1. Она содержит в своем составе следующие составные части :




блок фаззификации;
базу знаний;
блок решений;
блок дефаззификации.
Блок фаззификации преобразует четкие (сrisp) величины, измеренные на выходе объекта
управления, в нечеткие величины, описываемые лингвистическими переменными в базе
знаний.
Блок решений использует нечеткие условные (if – then) правила, заложенные в базе
знаний, для преобразования нечетких входных данных в требуемые управляющие
воздействия, которые носят также нечеткий характер.
Блок дефаззификации преобразует нечеткие данные с выхода блока решений в четкую
величину, которая используется для управления объектом.
Рис.1. Общая структура нечеткого микроконтроллера.
39
В качестве реальных микроконтроллеров, поддерживающих нечеткую логику
выступают 68HC11, 68HC12 фирмы Motorola, MCS-96 фирмы Intel, а также некоторые
другие.
Здесь представлены материалы о микроконтроллерах, программаторах, схемы
устройств, примеры программ, много полезной для профессионалов и любителей
соответствующей информации. Очень рекомендую зайти.
ПРОЦЕССОР НЕЧЕТКОЙ ЛОГИКИ
Не так давно (в начале 90-х) компания Adaptive Logic из США (к сожалению на данный
момент их сайт отсутствует в интернете) выпустила кристалл, сделанный по аналоговоцифровой технологии. Он позволит сократить сроки конструирования многих
встроенных систем управления реального времени, заменив собой традиционные схемы
нечетких микроконтроллеров. Аппаратный процессор нечеткой логики второго
поколения принимает аналоговые сигналы, переводит их в нечеткий формат, затем,
применяя соответствующие правила, преобразует результаты в формат обычной логики
и далее – в аналоговый сигнал. Все это осуществляется без внешних запоминающих
устройств, преобразователей и какого бы ни было программного обеспечения нечеткой
логики.
Этот микропроцессор относительно прост по сравнению с громоздкими программными
обеспечениями. Но так как его основу составляет комбинированный цифровой/
аналоговый кристалл, он функционирует на очень высоких скоростях ( частота отсчетов
входного сигнала – 10 кГц, а скорость расчета – 500 тыс. правил/с), что во многих
случаях приводит к лучшим результатам в системах управления по сравнению с более
сложными, но медлительными программами.
Таким образом, этот процессор можно и нужно применять в устройствах, работающих в
реальном масштабе времени, где необходима высокая производительность системы
(применительно к роботам - это объезд помех типа "сарай" и "яма" и т.п.).
Лекция №7 Нечеткий логический вывод
1.1. Последовательность выполнения нечеткого вывода
Используемый в различного рода экспертных и управляющих системах механизм
нечетких выводов в своей основе имеет базу знаний, формируемую специалистами
предметной области в виде совокупности нечетких правил следующего вида:
П1: если x есть A1, то y есть B1;
П2: если x есть A2, то y есть B2;
…
Пn: если x есть An, то y есть Bn,
где x– входная лингвистическая переменная (имя для известных значений данных); y –
выходная лингвистическая переменная (имя для значения данных, которое будет
вычислено); Ai, Bi – функции принадлежности (нечеткие подмножества), определенные
соответственно на x и y; «x есть A» – нечеткое высказывание, называемое предпосылкой правила;
«y есть B» – нечеткое высказывание, называемое заключением правила.
Пример подобного правила:
Если цена высокая, то спрос низкий.
40
Здесь цена – входная переменная x; спрос – выходное значение y; высокая, низкий –
функции принадлежности (нечеткие подмножества), определенные на множествах
значений цены и спроса соответственно.
В нечетких управляющих системах все правила работают одновременно, но степень
их влияния на результат различна. Поэтому основой функционирования нечетких
управляющих систем является вычисление обобщенного результата, учитывающего
влияние всех правил.
Процесс обработки нечетких правил вывода в управляющих системах состоит из
четырех этапов:
1. Введение нечеткости (фазификация). Функции принадлежности, определенные на
входных переменных, применяются к их фактическим значениям для определения степени
истинности предпосылки каждого правила.
2. Нечеткий вывод. Вычисленное значение истинности для предпосылок каждого
правила применяется к заключениям правил. Это дает нечеткое подмножество для
переменной вывода каждого правила. В качестве правил логического вывода
используются операции min (МИНИМУМ) или prod (ПРОИЗВЕДЕНИЕ). В логическом
выводе МИНИМУМА функция принадлежности заключения правила «отсекается» по
высоте, соответствующей вычисленной степени истинности предпосылки правила (см.
рис. 1). В логическом выводе ПРОИЗВЕДЕНИЯ степень истинности предпосылки
правила используется как коэффициент, на который умножаются значения функции
принадлежности заключения правила (см. рис. 2).
3. Композиция. Все нечеткие подмножества, определенные для каждой переменной
вывода (во всех правилах), объединяются вместе и формируют одно нечеткое
подмножество для каждой переменной вывода. При таком объединении используется
операция max (МАКСИМУМ) или sum (СУММА). При композиции МАКСИМУМ
выполняется объединение функций
принадлежности
нечетких
подмножеств
m1F ( x), m2 F ( x),..., mnF ( x) по формуле (графическая интерпретация приведена на рис.
3):
msumF ( x)  max{ miF ( x)} , i  1,..., n
1
mF(x)
Исходная
функция
Значение
истинности
Преобразованна
я функция
x
Рис. 1. Операция МИНИМУМА.
1
mF(x)
Исходная
функция
Значение
истинности
Преобразованна
я функция
x
Рис. 2. Операция ПРОИЗВЕДЕНИЯ.
41
1
msumF(x)
m1F(x)
m2F(x)
x
Рис. 3. Композиция МАКСИМУМ.
При композиции СУММА выполняется суммирование значений всех функций
принадлежности по формуле (графическая интерпретация приведена на рис. 4):
n
msumF ( x)   miF ( x), i  1,...,n
i 1
1
msumF(x)
m2F(x)
m1F(x)
x
Рис.4. Композиция СУММА.
4. Приведение к четкости или скаляризация (дефазификация) результата композиции, т.е.
переход от нечеткого подмножества к скалярным значениям.
Скаляризация осуществляется различными способами. Чаще всего используется
определение «центра тяжести» Н функции принадлежности нечеткого подмножества
mF ( x) по формуле (см. рис. 5):
x
[ x, x ]

.
x
x
x
x
H  (  xmF ( x)dx) /(  mF ( x)dx)
1
mF(x)
Рис. 5. Скаляризация методом «центра тяжести».
Другой способ скаляризации – использование максимального значения функции
принадлежности (см. рис. 6). При этом используются три разновидности взятия
максимума: наибольшего из максимумов
xscal (LOM), наименьшего из максимумов (SOM) и
центра максимумов (MOM).
«центр тяжести»
1
x
mF(x)
Рис. 6. Скаляризация методом «максимума».
Пример. Пусть некоторая система описывается следующими нечеткими правилами:
П1: если x есть A, то w есть D,
П2: если y есть B, то w есть E,
xscal
42
«максимум»
x
П3: если z есть C, то w есть F,
где x, y и z – имена входных переменных, w – имя переменной вывода, A, B, C, D, E, F –
заданные функции принадлежности.
Процедура нечеткого логического вывода иллюстрируется рис. 7.
Предполагается, что входные переменные приняли некоторые конкретные (четкие)
значения – x0, y0 и z0.
В соответствии с приведенными этапами обработки нечетких правил вывода, на
этапе 1 для данных значений и исходя из функций принадлежности A, B, C, определяются
степени истинности α( x0 ), α( y 0 ), α( z 0 ) для предпосылок каждого из трех приведенных
правил (см. рис. 7).
На этапе 2 происходит «отсекание» функций принадлежности заключений правил
(т.е. D, E, F) на уровнях α( x0 ), α( y 0 ), α( z 0 ) .
На этапе 3 рассматриваются усеченные на втором этапе функции принадлежности и
производится их объединение с использованием операции max, в результате чего
получается комбинированное нечеткое подмножество, описываемое функцией
принадлежности μ  (w) и соответствующее логическому выводу для выходной
переменной w.
На этапе 4 определяется четкое значение выходной переменной, например, с
применением метода «центра тяжести», т.е. четкое значение выходной переменной w0
определяется
как
«центр
тяжести»
для
кривой
μ  (w) :
w0  (  wμ  ( w)dw) /(  μ  ( w)dw)

.

μ Правило
μ
1
1
x0
μ Правило
x
1
y0
μ Правило
y
C
α(x0
)
w
μ
B
1
1
D
A
α(y0
)
E
w
μ
F
1
α(z0
)
z0
Композиция и
приведение
z
w
μΣ(w)
E
1
D
F
w0
43
w
Рис. 7. Иллюстрация к процедуре нечеткого вывода.
Лекция № 8 Алгоритмы нечеткого вывода
Рассмотрим наиболее часто используемые модификации алгоритма нечеткого
вывода, полагая, для простоты, что база знаний включает два нечетких правила вида:
П1: если x есть A1 и y есть B1 то z есть C1,
П2: если x есть A2 и y есть B2 то z есть C2,
где x, y – имена входных переменных; z – имя переменной вывода; A1, A2, B1, B2, C1, C2 –
некоторые заданные функции принадлежности.
Необходимо определить четкое значение z0 на основе указанных правил вывода и
четких значений x0, y0.
1.2.1. Алгоритм Мамдани
Данный алгоритм соответствует рассмотренному примеру и рис. 7. Математически
он может быть описан следующим образом.
1. Нечеткость: определяются степени истинности для предпосылок каждого правила:
A1(x0), A2(x0), B1(y0), B2(y0).
2. Нечеткий вывод: определяются уровни «отсечения» для предпосылок каждого из
правил с использованием операции МИНИМУМ:
α1  A1 ( x0 )  B1 ( y0 ) , α 2  A2 ( x0 )  B2 ( y0 ) ,
где через «  » обозначена операция взятия минимума (min), затем вычисляются
«усеченные» функции принадлежности
C1' ( z )  α1  C1 ( z ) , C2' ( z )  α 2  C2 ( z ) .
3.Композиция: с использованием операции МАКСИМУМ (max, далее обозначаемой
как «  ») производится объединение найденных усеченных функций, в результате
определяется итоговое нечеткое подмножество для переменной вывода с функцией
принадлежности:
μ  ( z )  C ( z )  C1' ( z )  (C2' ( z )  (α1  С1 ( z ))  (α 2  С2 ( z ))
4. Приведение к четкости: для нахождения z 0 вычисляется центр тяжести μ  ( z )
.
1.2.2. Алгоритм Цукамото
Исходные посылки – как у предыдущего алгоритма, но в данном случае
предполагается, что функции C1(z) и C2(z) являются монотонными. Алгоритм включает
следующие шаги:
1. Первый этап такой же, как в алгоритме Мамдани.
2. На втором этапе сначала определяются (как в алгоритме Мамдани) уровни
«отсечения» α 1 и α 2 , затем в результате решения уравнений
α1  С1 ( z1 ) , α 2  С 2 ( z 2 )
вычисляются четкие значения (z1 и z2) для каждого из исходных правил.
3. Определяется четкое значение переменной вывода как взвешенное среднее z1 и
z2:
z0 
α1 z1  α 2 z 2
α1  α 2
В случае n нечетких множеств используется следующая формула:
.
n
n
i 1
i 1
z 0  ( α i zi ) /(  α i )
44
Пример. Пусть имеем A1 ( x0 )  0,7 , A2 ( x0 )  0,6 , B1 ( y0 )  0,3 , B2 ( y0 )  0,8 .
Степени истинности предпосылок правил определяются следующим образом:
α1  min( A1 ( x0 ), B1 ( y0 ))  min( 0,7;0,3)  0,3 ,
α 2  min( A2 ( x0 ), B2 ( y0 ))  min( 0,6;0,8)  0,6
и значения z1  8 и z 2  4 вычисляются в результате решения уравнений
C1 ( z1 )  0,3 , С 2 ( z 2 )  0,6 .
При этом четкое значение переменной вывода (см. рис. 8)
z 0  (8  0,3  4  0,6) /(0,3  0,6)  5,33 .
μ
Правило 1
μ
A1
1
min μ
B1
C1
1
1
0,7
0,3
0,3
μ
y
x
Правило 2
μ
A2
1
1
μ
B2
z
z1 = 8
C2
1
0,8
0,6
0,6
x0
x
y0
y
z2 = 4
z
Рис.8. Иллюстрация к алгоритму Цукамото.
1.2.3. Алгоритм Сугено
Алгоритм Сугено использует набор нечетких правил следующего вида:
П1: если x есть A1 и y есть B1 то z1  a1 x  b1 y ,
П2: если x есть A2 и y есть B2 то z 2  a 2 x  b2 y .
Алгоритм включает следующие шаги.
1. Первый шаг такой же, как в алгоритме Мамдани.
2. На втором шаге вычисляются α1  A1 ( x0 )  B1 ( y0 ) , α 2  A2 ( x0 )  B2 ( y0 ) и
индивидуальные выходы правил:
z1*  a1 x0  b1 y0 , z2*  a2 x0  b2 y0 .
3. На третьем шаге определяется четкое значение переменной вывода по формуле:
α1 z1*  α 2 z2*
z0 
.
α1  α 2
1.2.4. Алгоритм Ларсена
В этом алгоритме нечеткий вывод выполняется с использованием операции
ПРОИЗВЕДЕНИЯ. Алгоритм включает следующие шаги.
1. Первый этап такой же, как в алгоритме Мамдани.
45
2. На втором этапе сначала определяются (как в алгоритме Мамдани) уровни
«отсечения» α 1 и α 2 :
α1  A1 ( x0 )  B1 ( y0 ) , α 2  A2 ( x0 )  B2 ( y0 ) ,
а затем – нечеткие подмножества α1С1 ( z ) , α 2 C 2 ( z ) .
3. Вычисляется обобщенное нечеткое подмножество с функцией принадлежности
μ  ( z)  C( z)  (α1C1 ( z))  (α 2C2 ( z)) .
n
μ  ( z )  C ( z )  V (α i Ci ( z )) .
В случае n правил
i 1
4. Выполняется приведение к четкости методом центра тяжести.
Алгоритм Ларсена иллюстрирует рис. 9.
μ
μ Правило 1
min μ
B1
A1
1
1
μ
C1
1
y
x
Правило 2
μ
A2
μ
B2
C2
1
1
x0
x
z
1
y0
y
z
μ
1
zscal
z
Рис. 9. Иллюстрация алгоритма Ларсена.
1.2.5. Пример нечеткого вывода
Рассмотрим пример обработки нечетких правил вывода по алгоритму Ларсена в
системе, управляющей вентилятором комнатного кондиционера.
Задача кондиционера – поддерживать оптимальную температуру воздуха в комнате,
охлаждая его, когда жарко, и нагревая, когда холодно. Пусть, изменяя скорость вращения
вентилятора, прогоняющего воздух через охлаждающий элемент, можно менять
температуру воздуха в комнате, тогда алгоритм работы кондиционера может быть задан
следующими правилами:
1. Если температура воздуха в комнате высокая, то скорость вращения вентилятора
высокая.
2. Если температура воздуха в комнате средняя, то скорость вращения вентилятора
средняя.
3. Если температура воздуха в комнате низкая, то скорость вращения вентилятора
низкая.
46
Чтобы система могла обрабатывать эти правила, надо задать функции
принадлежности для нечетких подмножеств, определяющих значение температуры t и
скорость вращения вентилятора v. Пусть температура воздуха в комнате находится в
пределах от 0 до 60°C. Функцию принадлежности для нечеткого подмножества низкая,
определенную на интервале изменения температуры, можно задать, например, следующим
образом (см. рис. 10). Если температура ниже 12°C, то это определенно низкая температура
для комнаты ( mТнизкая (12)  1 ). Температуру выше 20°C никак нельзя назвать низкой (
mТнизкая (20)  0 ). В интервале от 12 до 20°С функция принадлежности линейно убывает,
т.е. с увеличением температуры уменьшается истинность утверждения «температура
воздуха в комнате низкая». Аналитически mТнизкая (t ) выражается следующим образом:
1, t  12

 20  t
mTнизкая (t )  
, 12  t  20
8

0, t  20

mTнизкая(t)
1
0
12
20
t,°C
60
Рис. 10. Нечеткое подмножество «низкая», определенное на множестве значений
температуры.
Сходные рассуждения позволяют задать функции принадлежности для оставшихся
подмножеств: средняя и высокая (см. рис. 11, 12).
mTсредняя(t)
1
0
12
20
30
60
t,°C
Рис. 11. Нечеткое подмножество «средняя», определенное на множестве значений
температуры
47

0, t  12 или t  30

 t  12
mTсредняя (t )  
, 12  t  20
8

 30  t
 10 , 20  t  30
mTвысокая(t)
1
20
0
60
30
t,°C
Рис.12. Нечеткое подмножество «высокая», определенное на множестве значений
температуры
0, t  20

 t  20
mTвысокая (t )  
, 20  t  30
10

1, t  30

Определим нечеткие подмножества для скорости вращения вентилятора. Пусть она
может изменяться от 0 до 1000 об/мин. Возможен следующий вариант определения
функций принадлежности для нечетких подмножеств низкая, средняя и высокая (см. рис.
13, 14, 15):
mVнизкая(v)
1
0
200
400
1000
v,об/мин
Рис. 13. Нечеткое подмножество «низкая», определенное на множестве
значений скорости вращения вентилятора
1, v  200

 400  v
mVнизкая (v)  
, 200  v  400
200

0, v  400

mVсредняя(v)
1
48
0
200
400
600
1000
v,об/мин
Рис.14. Нечеткое подмножество «средняя», определенное на множестве значений скорости
вращения вентилятора

0, v  200 или v  600

 v  400
mVсредняя (v)  
, 200  v  400
200

 600  v
 200 , 400  v  600
mVвысокая(v)
1
0
400
1000
600
v,об/мин
Рис. 15. Нечеткое подмножество «высокая», определенное на множестве значений скорости
вращения вентилятора
0, v  400

 v  400
mVвысокая (v)  
, 400  v  600
200

1, v  600

Рассмотрим, как нечеткая управляющая система определяет скорость вращения
вентилятора в зависимости от температуры воздуха в комнате. Пусть температура равна
22°С. Сначала определяется истинность предпосылок правил вывода при подстановке в них
текущего значения температуры: mТнизкая (22)=0; mТсредняя (22) =0.8; mТвысокая (22)=0.2.
Значения истинности предпосылок каждого правила используются для модификации
нечетких подмножеств, указанных в заключениях правил, с использованием метода
ПРОИЗВЕДЕНИЯ. На рис. 16 показано, как трансформируются нечеткие подмножества
низкая, средняя и высокая в заключениях нечетких правил.
Далее выполняется композиция полученных нечетких подмножеств. Результат
композиции – нечеткое подмножество – показан на рис. 17.Затем осуществляется
переход от нечеткого подмножества к скалярному значению методом «центра
тяжести» (см. рис. 18).
Центр тяжести фигуры на рис. 18 находится в точке v = 560.5691. Это и будет
значением скорости вращения вентилятора, которое выдаст управляющая система при
температуре воздуха в комнате, равной 22°C. При других значениях температуры функция
принадлежности обобщенного результата выполнения всех правил будет меняться. Её вид
49
при значении температуры воздуха 28°C представлен на рис. 19. Центр тяжести в этом
случае находится в точке v = 746.6667.
mVнизкая(v)
mVнизкая(v)
1
*0=
1
mVсредняя(v)
mVсредняя(v)
200 400
10
1000 v,об/мин
1000 v,об/мин
0
0.8
* 0.8 =
1
0
mVвысокая(v)
* 0.2 =
200 400 600 1000 v,об/мин
1
0
mVвысокая(v)
200 400 600 1000 v,об/мин
0.2
0
400
1000 v,об/мин
600
400
0
600
1000 v,об/мин
Рис. 16. Модификация нечетких подмножеств, определенных на интервале изменения
скорости вращения вентилятора
1
mVсредняя(v)
mVнизкая(v)
+
1
mVвысокая(v)
+
0.8
Рис. 17. Результат композиции нечетких подмножеств
0.2
mSUP(v)
0
1000 1 v,об/ми 0
0.8 н
0.2
200 400
600 1000 v,об/ми 0
н
400
600
1000 v,об/мин
mSUP(v)
0 1
0.8
1000 v,об/мин
400
Рис. 18. Получение скалярного значения
скорости вращения вентилятора методом «центра
Результат
0.2
тяжести» для t = 22°C скаляризации
200
0 mSUP(v)
400
1000
600
1
0.8
50
0.2
v,об/мин
Рис. 19. Получение скалярного значения скорости вращения вентилятора методом «центра
тяжести» для t = 28°C
Лекция №9
Нечеткая логика в Матлабе
Fuzzy logic toolbox - встроенная в Матлаб совокупность функций, обеспечивающая
набор средств, позволяющих:



создавать и редактировать нечеткие системы внутри среды Матлаб;
встраивать нечеткую подсистему в Симулинк (поставляется с Матлабом) при
моделировании общей системы;
построить нечеткую систему в Матлабе в виде процедуры, вызываемой из
программы, написанной на Си.
Данный тулбокс обеспечивает
программирования нечетких систем:



три
категории
инструментальных
средств
функции командной строки (command line functions);
графический интерактивный интерфейс;
использование встроенных блоков Симулинка.
Первая категория - готовые функции, которые можно вызвать прямо из командной
строки Матлаба. Практически все они представляют собой м-файлы, содержащие
последовательность выражений, выполняющих специализированный нечеткий
алгоритм. Для просмотра исходного кода функций необходимо набрать в командной
строке:
type имя_функции
Кроме того, Матлаб позволяет их модифицировать путем копирования и
переименования соответствующего файла (для того, чтобы не потерять исходник) и
последующего его редактирования. Таким образом, нечеткий тулбокс расширяется
собственными функциями.
Вторая категория позволяет получить доступ к тем же самым функциям через
графический пользовательский интерфейс, с помощью которого гораздо удобнее
конструировать и анализировать нечеткий системы.
Третья категория - моделирование в среде Симулинк. Здесь подсистемы представляются
в виде блоков - можно соединить каким-либо образом и сразу получить результаты.
В Матлабе есть множество встроенных функций принадлежности, в частности:




сигмоидальная;
двухсторонняя сигмоидальная;
гауссова;
колоколообразной формы
51




S-функция принадлежности;
Z-функция принадлежности;
трапециевидная;
треугольная и др.
Все действия над нечеткими числами задаются минимальным набором функций и
происходят внутри программы. Таким образом, пользователю необязательно изучать все
тонкости теории нечетких множеств, достаточно только определить все входные и
выходные переменные и задать таблицу правил, а всю оставшуюся "грязную" работу
сделает Matlab. Дефаззификация осущетвляется одним из пяти методов, указанных
программистом. Кроме того, можно вывести на экран согласно введенным правилам
результирующие поверхности управления в зависимости от комбинации входов, схему
получившейся нечеткой программы и это лишь малая часть всех возможностей данного
тулбокса. Одним словом работа в этой среде доставляет сплошное удовольствие :) .
Практическое занятие №1 Нечеткая логика в Матлабе
Структура Fuzzy Logic Toolbox
Fuzzy Logic Toolbox - это пакет прикладных программ, входящих в состав среды MatLab.
Он позволяет создавать системы нечеткого логического вывода и нечеткой
классификации в рамках среды MatLab, с возможностью их интегрирования в Simulink.
Базовым понятием Fuzzy Logic Toolbox является FIS-структура - система нечеткого
вывода (Fuzzy Inference System). FIS-структура содержит все необходимые данные для
реализации функционального отображения “входы-выходы” на основе нечеткого
логического вывода согласно схеме, приведенной на рис. 2.1.
52
Рисунок 2.1. Нечеткий логический вывод
Обозначения:
X - входной четкий вектор;
- вектор нечетких множеств, соответствующий входному вектору X;
- результат логического вывода в виде вектора нечетких множеств;
Y - выходной четкий вектор.
Fuzzy Logic Toolbox содержит следующие категории программных инструментов:







функции;
интерактивные модули с графическим пользовательским интерфейсом (с GUI);
блоки для пакета Simulink;
демонстрационные примеры.
Построение нечетких систем в диалоговом режиме с помощью модуля
Fuzzy
В оглавление книги \ К следующему разделу \ К предыдущему разделу
Модуль fuzzy позволяет строит нечеткие системы двух типов - Мамдани и Сугэно.
В системах типа Мамдани база знаний состоит из правил вида “Если x1=низкий и
x2=средний, то y=высокий”. В системах типа Сугэно база знаний состоит из
правил вида “Если x1=низкий и x2=средний, то y=a0+a1x1+a2x2". Таким образом,
основное отличие между системами Мамдани и Сугэно заключается в разных
способах задания значений выходной переменной в правилах, образующих базу
знаний. В системах типа Мамдани значения выходной переменной задаются
нечеткими термами, в системах типа Сугэно - как линейная комбинация входных
переменных.
Проектирование систем типа Мамдани
Рассмотрим основные этапы проектирования систем типа Мамдани на примере создания
системы нечеткого логического вывода, моделирующей зависимость
,
. Проектирование системы нечеткого логического вывода будем
проводить на основе графического изображения указанной зависимости.
Для построения трехмерного изображения функции
области
в
составим следующую программу:
%Построение графика функции y=x1^2*sin(x2-1)
%в области x1є[-7,3] и x2є[-4.4,1.7].
n=15;
x1=-7:10/(n-1):3;
x2=-4.4:6.1/(n-1):1.7;
y=zeros(n,n);
for j=1:n
y(j,:)=x1.^2*sin(x2(j)-1);
end
surf(x1,x2,y)
xlabel('x1')
ylabel('x2')
zlabel('y')
title('Target');
В результате выполнения программы получим графическое изображение, приведенное
на рис. 3.1. Проектирование системы нечеткого логического вывода, соответствующей
приведенному графику, состоит в выполнении следующей последовательности шагов.
53
Рис.3.1. Эталонная поверхность
Шаг 1. Для загрузки основного fis-редактора напечатаем слова fuzzy в командной
строке. После этого откроется нового графическое окно, показанное на рис. 3.2.
Рис.3.2. Окно редактора FIS-Editor
Шаг 2. Добавим вторую входную переменную. Для этого в меню Edit выбираем
команду Add input.
54
Шаг 3. Переименуем первую входную переменную. Для этого сделаем один щелчок
левой кнопкой мыши на блоке input1, введем новое обозначение x1 в поле
редактирования имени текущей переменной и нажмем<Enter>.
Шаг 4. Переименуем вторую входную переменную. Для этого сделаем один щелчок
левой кнопкой мыши на блоке input2, введем новое обозначение x2 в поле
редактирования имени текущей переменной и нажмем<Enter>.
Шаг 5. Переименуем выходную переменную. Для этого сделаем один щелчок левой
кнопкой мыши на блокеoutput1, введем новое обозначение y в поле редактирования
имени текущей переменной и нажмем <Enter>.
Шаг 6. Зададим имя системы. Для этого в меню File выбираем в
подменю Export команду To disk и вводим имя файла, например, first.
Шаг 7. Перейдем в редактор функций принадлежности. Для этого сделаем двойной
щелчок левой кнопкой мыши на блоке x1.
Шаг 8. Зададим диапазон изменения переменной x1. Для этого напечатаем -7 3 в
поле Range (см. рис. 3.3) и нажмем <Enter>.
Шаг 9. Зададим функции принадлежности переменной x1. Для лингвистической оценки
этой переменной будем использовать 3 терма с треугольными функциями
принадлежности. Для этого в меню Edit выберем командуAdd MFs... В результате
появиться диалоговое окно выбора типа и количества функций принадлежностей. По
умолчанию это 3 терма с треугольными функциями принадлежности. Поэтому просто
нажимаем <Enter>.
Шаг 10. Зададим наименования термов переменной x1. Для этого делаем один щелчок
левой кнопкой мыши по графику первой функции принадлежности (см. рис. 3.3). Затем
вводим наименование терма, например, Низкий, в поле Name и нажмем <Enter>.
Затем делаем один щелчок левой кнопкой мыши по графику второй функции
принадлежности и вводим наименование терма, например, Средний, в поле Name и
нажмем <Enter>. Еще раз делаем один щелчок левой кнопкой мыши по графику
третьей функции принадлежности и вводим наименование терма, например, Высокий,
в поле Name и нажмем <Enter>. В результате получим графическое окно,
изображенное на рис. 3.3.
55
Рис.3.3. Функции принадлежности переменной x1
Шаг 11. Зададим функции принадлежности переменной x2. Для лингвистической
оценки этой переменной будем использовать 5 термов с гауссовскими функциями
принадлежности. Для этого активизируем переменную x2 с помощью щелчка левой
кнопки мыши на блоке x2. Зададим диапазон изменения переменной x2. Для этого
напечатаем -4.4 1.7 в поле Range (см. рис. 3.4) и нажмем <Enter>. Затем в
меню Edit выберем командуAdd MFs.... В появившимся диалоговом окне выбираем тип
функции принадлежности gaussmf в поле MF typeи 5 термов в поле Number of MFs.
После этого нажимаем <Enter>.
56
Рис 3.4. Функции принадлежности переменной x2
Шаг 12. По аналогии с шагом 10 зададим следующие наименования термов
переменной x2: Низкий,Ниже среднего, Средний, Выше среднего, Высокий. В
результате получим графическое окно, изображенное на рис. 3.4.
Шаг 13. Зададим функции принадлежности переменной y. Для лингвистической оценки
этой переменной будем использовать 5 термов с треугольными функциями
принадлежности. Для этого активизируем переменную y с помощью щелчка левой
кнопки мыши на блоке y. Зададим диапазон изменения переменной y. Для этого
напечатаем -50 50 в поле Range (см. рис. 3.5) и нажмем <Enter>.Затем в
меню Edit выберем командуAdd MFs.... В появившимся диалоговом окне
выбираем 5 термов в поле Number of MFs. После этого нажимаем<Enter>.
57
Рис 3.5. Функции принадлежности переменной y
Шаг 14. По аналогии с шагом 10 зададим следующие наименования термов
переменной y: Низкий,Ниже среднего, Средний, Выше среднего, Высокий. В
результате получим графическое окно, изображенное на рис. 3.5.
Шаг 15. Перейдем в редактор базы знаний RuleEditor. Для этого выберем в
меню Edit выберем командуEdit rules....
Шаг 16. На основе визуального наблюдения за графиком, изображенным на рис. 3.1
сформулируем следующие девять правил:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Если
Если
Если
Если
Если
Если
Если
Если
Если
x1=Средний, то y=Средний;
x1=Низкий и x2=Низкий, то y=Высокий;
x1=Низкий и x2=Высокий, то y=Высокий;
x1=Высокий и x2=Высокий, то y=Выше Среднего;
x1=Высокий и x2=Низкий, то y=Выше Среднего;
x1=Высокий и x2=Средний, то y=Средний;
x1=Низкий и x2=Средний, то y=Низкий;
x1=Высокий и x2=Выше Среднего, то y=Средний;
x1=Высокий и x2=Ниже Среднего, то y=Средний.
Для ввода правила необходимо выбрать в меню соответствующую комбинацию термов и
нажать кнопкуAdd rule. На рис. 3.6 изображено окно редактора базы знаний после
ввода всех девяти правил. Число, приведенное в скобках в конце каждого правила
представляет собой весовым коэффициент соответствующего правила.
Рис 3.6. База знаний в RuleEditor
Шаг 17. Сохраним созданную систему. Для этого в меню File выбираем в
подменю Export команду To disk.
На рис. 3.7 приведено окно визуализации нечеткого логического вывода. Это окно
активизируется командойView rules... меню View. В поле Input указываются значения
входных переменных, для которых выполняется логический вывод.
58
Рис 3.7. Визуализация нечеткого логического вывода в RuleViewer
На рис. 3.8 приведена поверхность “входы-выход”, соответствующая синтезированной
нечеткой системе. Для вывода этого окна необходимо использовать
команду View surface... меню View. Сравнивая поверхности на рис. 3.1 и
на рис. 3.8 можно сделать вывод, что нечеткие правила достаточно хорошо описывают
сложную нелинейную зависимость.
Рис 3.8. Поверхность “входы-выход” в окне SurfaceViwer
Практическое занятие №2
Проектирование систем типа Сугэно
59
Рассмотрим основные этапы проектирования систем типа Сугэно на примере создания
системы нечеткого логического вывода, моделирующей зависимость
,
(рис. 3.1). Моделирование этой зависимости будем
осуществлять с помощью следующей базы знаний:
1.
2.
3.
4.
5.
6.
Если
Если
Если
Если
Если
Если
x1=Средний, то y=0;
x1=Высокий и x2=Высокий, то y=2x1+2x2+1;
x1=Высокий и x2=Низкий, то y=4x1-x2;
x1=Низкий и x2=Средний, то y=8x1+2x2+8;
x1=Низкий и x2=Низкий, то y=50;
x1=Низкий и x2=Высокий, то y=50.
Проектирование системы нечеткого логического вывода типа Сугэно состоит в
выполнении следующей последовательности шагов.
Шаг 1. Для загрузки основного fis-редактора напечатаем слова fuzzy в командной
строке. После этого откроется нового графическое окно, показанное на рис. 3.2.
Шаг 2. Выберем тип системы. Для этого в меню File выбираем в
подменю New fis… команду Sugeno.
Шаг 3. Добавим вторую входную переменную. Для этого в меню Edit выбираем
команду Add input.
Шаг 4. Переименуем первую входную переменную. Для этого сделаем один щелчок
левой кнопкой мыши на блоке input1, введем новое обозначение x1 в поле
редактирования имени текущей переменной и нажмем<Enter>.
Шаг 5. Переименуем вторую входную переменную. Для этого сделаем один щелчок
левой кнопкой мыши на блоке input2, введем новое обозначение x2 в поле
редактирования имени текущей переменной и нажмем<Enter>.
Шаг 6. Переименуем выходную переменную. Для этого сделаем один щелчок левой
кнопкой мыши на блокеoutput1, введем новое обозначение y в поле редактирования
имени текущей переменной и нажмем <Enter>.
Шаг 7. Зададим имя системы. Для этого в меню File выбираем в
подменю Export команду To disk и введем имя файла, например, FirstSugeno.
Шаг 8. Перейдем в редактор функций принадлежности. Для этого сделаем двойной
щелчок левой кнопкой мыши на блоке x1.
Шаг 9. Зададим диапазон изменения переменной x1. Для этого напечатаем -7 3 в
поле Range (см. рис. 3.9) и нажмем <Enter>.
60
Рис 3.9. Функции принадлежности переменной x1
Шаг 10. Зададим функции принадлежности переменной x1. Для лингвистической
оценки этой переменной будем использовать, 3 терма с треугольными функциями
принадлежности, которые установлены по умолчанию. Зададим наименования термов
переменной x1. Для этого делаем один щелчок левой кнопкой мыши по графику первой
функции принадлежности (см. рис. 3.9). Затем напечатаем наименование
терма Низкий в поле Name. Затем делаем один щелчок левой кнопкой мыши по
графику второй функции принадлежности и вводим наименование терма Средний в
поле Name. Еще раз делаем один щелчок левой кнопкой мыши по графику третьей
функции принадлежности и вводим наименование терма Высокий в поле Name и
нажмем <Enter>. В результате получим графическое окно, изображенное на рис. 3.9.
Шаг 11. Зададим функции принадлежности переменной x2. Для лингвистической
оценки этой переменной будем использовать 3 терма с треугольными функциями
принадлежности, которые установлены по умолчанию. Для этого активизируем
переменную x2 с помощью щелчка левой кнопки мыши на блоке x2. Зададим диапазон
изменения переменной x2. Для этого напечатаем -4.4 1.7 в поле Range (см. рис. 3.10)
и нажмем <Enter>. По аналогии с предыдущим шагом зададим следующие
наименования термов переменной x2: Низкий, Средний,Высокий. В результате
получим графическое окно, изображенное на рис. 3.10.
61
Рис 3.10. Функции принадлежности переменной x2
Шаг 12. Зададим линейные зависимости между входами и выходом, приведенные в базе
знаний. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши
на блоке y. В правом верхнем угле появилось обозначение трех функций
принадлежности, каждая из которых соответствует одной линейной зависимости между
входами и выходам. В базе знаний, приведенной в начале подраздела 3.2 указаны 5
различных зависимостей: y=50; y=4x1-x2; y=2x1+2x2+1; y=8x1+2x2+8; y=0. Поэтому
добавим еще две зависимости путем выбора команды Add Mfs… меню Edit. В
появившимся диалоговом окне в полеNumber of MFs выбираем 2 и нажимаем
кнопку OK.
Шаг 13. Зададим наименования и параметры линейных зависимостей. Для этого делаем
один щелчок левой кнопкой мыши по наименованию первой зависимости mf1. Затем
печатаем наименование зависимости, например 50, в поле Name, и устанавливаем тип
зависимости – константа путем выбора опции Сonstant в меню Type. После этого
вводим значение параметра – 50 в поле Params.
Аналогично для второй зависимости mf2 введем наименование зависимости,
например 8+8x1+2x2. Затем укажем линейный тип зависимости путем выбора
опции Linear в меню Type и введем параметры зависимости8 2 8 в поле Params. Для
линейной зависимости порядок параметров следующий: первый параметр –
коэффициент при первой переменной, второй – при второй и т.д., и последний
параметр – свободный член зависимости.
Аналогично для третьей зависимости mf3 введем наименование зависимости,
например 1+2x1+2x2, укажем линейный тип зависимости и введем параметры
зависимости 2 2 1.
Для четвертой зависимости mf4 введем наименование зависимости, например 4x1-x2,
укажем линейный тип зависимости и введем параметры зависимости 4 -1 0.
Для пятой зависимости mf5 введем наименование зависимости, например 0, укажем
тип зависимости - константа и введем параметр зависимости 0.
В результате получим графическое окно, изображенное на рис. 3.11.
62
Рис 3.11. Окно линейных зависимостей “входы-выход”
Шаг 14. Перейдем в редактор базы знаний RuleEditor. Для этого выберем в
меню Edit команду Edit rules.... и введем правила базы знаний. Для ввода правила
необходимо выбрать соответствующую комбинацию термов и зависимостей и нажать
кнопку Add rule. На рис. 3.12 изображено окно редактора базы знаний после ввода
всех шести правил.
Рис 3.12. Нечеткая база знаний для системы типа Сугэно
На рис. 3.13 приведено окно визуализации нечеткого логического вывода. Это окно
активизируется командойView rules... меню View. В поле Input указываются значения
входных переменных, для которых выполняется логический вывод. Как видно из этого
рисунка значение выходной переменной рассчитывается как среднее взвешенное
значение результатов вывода по каждому правилу.
63
Рис. 3.13 Визуализация нечеткого логического вывода для системы типа Сугэно
На рис. 3.14 приведена поверхность “входы-выход”, соответствующая синтезированной
нечеткой системе. Для вывода этого окна необходимо использовать
команду View surface... меню View. Сравнивая поверхности нарис. 3.1, рис. 3.8 и на
рис. 3.14 можно сделать вывод, что нечеткие правила достаточно хорошо описывают
сложную нелинейную зависимость. При этом, модель типа Сугэно более точная.
Преимущество моделей типа Мамдани состоит в том, что правила базы знаний являются
прозрачными и интуитивно понятными, тогда как для моделей типа Сугэно не всегда
ясно какие линейные зависимости “входы-выход” необходимо использовать.
Рис 3.14. Поверхность “входы-выход” для системы типа Сугэно
64
Практическое занятие №3
Структура данных системы нечеткого логического вывода
Система нечеткого логического вывода представляется в рабочей области MatLab в
виде структуры данных, изображенной на рис. 5.1.
65
66
Существует два способа загрузки FIS в рабочую область:


считывание с диска с помощью функции readfis;
передача из основного fis-редактора путем выбора в
меню File подменю Export и командыTo workspace.
Поля структуры данных системы нечеткого логического вывода предназначены для
хранения следующей информации:
name
-
наименование системы нечеткого логического вывода;
type
-
тип системы. Допустимые значения 'Mamdani' и 'Sugeno';
andMethod
-
реализация логической операции И. Запрограммированные
реализации: 'min' - минимум и 'prod' - умножение;
orMethod
-
реализация логической операции ИЛИ. Запрограммированные
реализации: 'max' - максимум и 'probor' - вероятностное ИЛИ;
defuzzMethod
-
метод дефаззификации. Запрограммированные методы для систем типа
Мамдани: 'centroid' - центр тяжести; 'bisector' -медиана; 'lom' наибольший из максимумов; 'som' - наименьший из максимумов;
'mom' - среднее из максимумов. Запрограммированные методы для
систем типа Сугэно: 'wtaver' - взвешенное среднее и 'wtsum' взвешенная сумма;
impMethod
-
реализация операции импликации. Запрограммированные реализации:
'min' - минимум и 'prod' - умножение;
aggMethod
-
реализация операции объединения функций принадлежности
выходной переменной. Запрограммированные реализации: 'max' максимум; 'sum' - сумма и 'probor' - вероятностное ИЛИ;
input
-
массив входных переменных;
input.name
-
наименование входной переменной;
input.range
-
диапазон изменения входной переменной;
input.mf
-
массив функций принадлежности входной переменной;
input.mf.name
-
наименование функции принадлежности входной переменной;
input.mf.type
-
модель функции принадлежности входной переменной.
Запрограммированные модели: dsigmf - функция принадлежности в
виде разности между двумя сигмоидными функциями; gauss2mf двухсторонняя гауссовская функция принадлежности; gaussmf гауссовская функция принадлежности; gbellmf - обобщенная
колокообразная функция принадлежности; pimf - пи-подобная
функция принадлежности; psigmf - произведение двух сигмоидных
функций принадлежности; sigmf - сигмоидная функция
принадлежности; smf - s-подобная функция принадлежности; trapmf трапециевидная функция принадлежности; trimf - треугольная
функция принадлежности; zmf - z-подобная функция принадлежности;
input.mf.params
-
массив параметров функции принадлежности входной переменной;
output
-
массив выходных переменных;
output.name
-
наименование выходной переменной;
67
output.range
-
диапазон изменения выходной переменной;
output.mf
-
массив функций принадлежности выходной переменной;
output.mf.name
-
наименование функции принадлежности выходной переменной;
output.mf.type
-
модель функции принадлежности выходной переменной.
Запрограммированные модели для системы типа Мамдани: dsigmf функция принадлежности в виде разности между двумя сигмоидными
функциями; gauss2mf - двухсторонняя гауссовская функция
принадлежности; gaussmf - гауссовская функция принадлежности;
gbellmf - обобщенная колокообразная функция принадлежности; pimf пи-подобная функция принадлежности; psigmf - произведение двух
сигмоидных функций принадлежности. Запрограммированные модели
для системы типа Сугэно: constatnt - константа (функция
принадлежности в виде синглтона); linear - линейная комбинация
входных переменных;
output.mf.params
-
массив параметров функции принадлежности выходной переменной;
rule
-
массив правил нечеткой базы знаний;
-
посылки правила. Указываются порядковые номера термов в порядке
записи входных переменных. Число 0 указывает на то, что значение
соответствующей входной переменной не влияет на истинность
правила;
rule.consequent
-
заключения правила. Указываются порядковые номера термов в
порядке записи выходных переменных. Число 0 указывает на то, что
правило не распространяется на соответствующую выходную
переменную;
rule.weight
-
вес правила. Задается числом из диапазона [0, 1];
rule.connection
-
логическая связка переменных внутри правила: 1 - логическое И; 2 логическое ИЛИ.
rule.antecedent
Для доступа к свойствам системы нечеткого логического вывода достаточно указать
имя соответствующего поля. Например,
команда FIS_NAME.rule(1).weight=0.5 устанавливает вес первого правила в 0.5,
команда length(FIS_NAME.rule) определяет количество правил в базе знаний, а
командаFIS_NAME.input(1).mf(1).name='низкий' переименовывает первый терм
первой входной переменной в "низкий".
Структура fis-файла
Системы нечеткого логического вывода сохраняется надиске в виде fis-файлов текстовых файлов специального формата. Функции readfis и writefis используются
для чтения и записи этих файлов. Иногда удобно модифицировать системы нечеткого
логического вывода путем редактирования их fis-файлов, без вызова GUI модулей Fuzzy Logic Toolbox. Для изменения fis-файлов можно использовать любой
текстовый редактор. Однако редактировать fis-файлы надо осторожно так как,
изменения некоторых строчек файла влечет за собой необходимость корректирования
нескольких других. Например, если при редактировании удален терм, используемый
для лингвистической оценки входной или выходной переменной, то необходимо
убедиться, что в базе знаний отсутствуют правила, включающие этой терм.
68
Формат fis-файла описан в табл. 5.1 на примере файла tipper .fis - демонстрационной
системы нечеткого логического вывода, определяющей размер чаевых в ресторане.
Обратим внимание, что правила базы знаний представлены в индексном формате.
Таблица 5.1 - Формат fis - файла (на примере файла tipper.fis)
Строки файла
Описание
% $ Revision: 1.1 $
строка комментария
[System]
указатель, на начало описания общих параметров
системы нечеткого логического вывода
Name='tipper'
наименование системы
Type='mamdani'
тип системы нечеткого логического вывода
NumInputs=2
количество входных переменных системы
NumOutputs=1
количество выходных переменных системы
NumRules=3
количество правил в базе знаний
AndMethod='min'
реализация логической операции И
OrMethod='max'
реализация логической операции ИЛИ
ImpMethod='min'
реализация операции импликации
AggMethod='max'
реализация операции аггреатирования
DefuzzMethod='centroid'
метод дефаззификации
[Input1]
указатель, на начало описания первой входной
переменной
Name='service'
наименование первой входной переменной
Range=[0 10]
диапазон изменения
NumMFs=3
количество термов
MF1='poor':'gaussmf',[1.5 0]
наименование первого терма, тип функции
принадлежности и ее параметры
MF2='good':'gaussmf',[1.5 5]
наименование второго терма, тип функции
принадлежности и ее параметры
MF3='excellent':'gaussmf',[1.5
10]
наименование второго терма, тип функции
принадлежности и ее параметры
[Input2]
указатель, на начало описания второй входной
переменной
Name='food'
наименование второй входной переменной
Range=[0 10]
диапазон изменения
NumMFs=2
количество термов
MF1='rancid':'trapmf',[0 0 1 3]
наименование первого терма, тип функции
принадлежности и ее параметры
MF2='delicious':'trapmf',[7 9 10
10]
наименование второго терма, тип функции
принадлежности и ее параметры
[Output1]
указатель, на начало описания первой выходной
переменной
Name='tip'
наименование выходной переменной
Range=[0 30]
диапазон изменения
NumMFs=3
количество термов
69
MF1='cheap':'trimf',[0 5 10]
наименование первого терма, тип функции
принадлежности и ее параметры
MF2='average':'trimf',[10 15 20]
наименование второго терма, тип функции
принадлежности и ее параметры
MF3='generous':'trimf',[20 25
30]
наименование второго терма, тип функции
принадлежности и ее параметры
[Rules]
указатель, на начало описания правил базы знаний
1 1, 1 (1) : 2
2 0, 2 (1) : 1
правила базы знаний в индексном формате
3 2, 3 (1) : 2
Практическое занятие №4
FIS-редактор
FIS-редактор предназначен для создания, сохранения, загрузки и вывода на печать
систем нечеткого логического вывода, а также для редактирования следующих свойств:





тип системы;
наименование системы;
количество входных и выходных переменных;
наименование входных и выходных переменных;
параметры нечеткого логического вывода.
Загрузка FIS-редактора происходит с помощью команды fuzzy. В результате
появляется интерактивное графическое окно, приведенное на рис. 3.2. На этом же
рисунке также указаны функциональные назначения основных полей графичекого
окна. В нижней части графического окна FIS-редактора расположены
кнопки Help и Close, которые позволяют вызвать окно справки и закрыть редактор,
соответственно.
FIS-редактор содержит 8 меню. Это три общесистемных меню - File, Edit, View, и
пять меню для выбора параметров нечеткого логического вывода – And Method, Or
Method, Implication, Aggregation иDefuzzification.
Меню File
Это общее меню для всех GUI-модулей используемых с системами нечеткого
логического вывода. Общий вид меню показан на рис. 7.1.
Рисунок 7.1 – Меню File
70
С помощью команды New FIS… пользователь имеет возможность создать новую
систему нечеткого логического вывода. При выборе этой команды появятся две
альтернативы: Mamdani и Sugeno, которые определяют тип создаваемой системы.
Создать систему типа Mamdani можно также нажатиемCtrl+N.
С помощью команды Import пользователь имеет возможность загрузить ранее
созданную систему нечеткого логического вывода. При выборе этой команды появятся
две альтернативыFrom Workspace… и From disk, которые позволяют загрузить
систему нечеткого логического вывода из рабочей области MatLab и с диска,
соответственно. При выборе команды From Workspace… появится диалоговое окно, в
котором необходимо указать идентификатор системы нечеткого логического вывода,
находящейся в рабочей области MatLab. При выборе команды From disk появится
диалоговое окно (рис. 7.2), в котором необходимо указать имя файла системы
нечеткого логического вывода. Файлы систем нечеткого логического вывода имеют
расширение .fis . Загрузить систему нечеткого логического вывода с диска можно
также нажатием Ctrl+N или командой
fuzzy FIS_name,
где FIS_name – имя файла системы нечеткого логического вывода.
Рисунок 7.2 – Окно загрузки системы нечеткого логического вывода с диска
При выборе команды Export появятся две альтернативы To Workspace… и To disk,
которые позволяют скопировать систему нечеткого логического вывода в рабочую
область MatLab и на диск, соответственно. При выборе
команды To Workspace… появится диалоговое окно, в котором необходимо указать
идентификатор системы нечеткого логического вывода, под которым она будет
сохранена в рабочей области MatLab. При выборе команды To disk появится
диалоговое окно, в котором необходимо указать имя файла системы нечеткого
логического вывода. Скопировать систему нечеткого логического вывода в рабочую
область и на диск можно также нажатием Ctrl+T и Ctrl+S, соответственно.
Команда Print позволяет вывести на принтер копию графического окна. Печать
возможна также по нажатию Ctrl+P.
Команда Close закрывает графическое окно. Закрытия графического окна происходит
по нажатиюCtrl+W или однократного щелчка левой кнопки мыши по кнопке Close.
Меню Edit
71
Общий вид меню приведен на рис. 7.3.
Рисунок 7.3 – Меню Edit
Команда Undo отменяет ранее совершенное действие. Выполняется также по
нажатию Ctrl+Z.
Команда Add Variable… позволяет добавить в систему нечеткого логического вывода
еще одну переменную. При выборе этой команды появятся две
альтернативы Input и Output, которые позволяют добавить входную и выходную
переменную, соответственно.
Команда Remove Selected Variable удаляет текущую переменную из системы.
Признаком текущей переменной является красная окантовка ее прямоугольника.
Назначение текущей переменной происходит с помощью однократного щелчка левой
кнопки мыши по ее прямоугольнику. Удалить текущую переменную можно также с
помощью нажатия Ctrl+X.
Команда Membership Function… открывает редактор функций принадлежностей. Эта
команда может быть также выполнена нажатием Ctrl+2.
Команда Rules… открывает редактор базы знаний. Эта команда может быть также
выполнена нажатиемCtrl+3.
Меню View
Это общее меню для всех GUI-модулей, используемых с системами нечеткого
логического вывода. Общий вид меню показан на рис. 7.4. Это меню позволяет открыть
окно визуализауии нечеткого логического вывода (команда Rules или нажатие
клавиш Ctrl+5) и окно вывода поверхности “входы-выход”, соответствующей системе
нечеткого логического вывода (команда Surface или нажатие клавиш Ctrl+6).
Рисунок 7.4 – Меню View
Меню And Method
Это меню позволяет установить следующие реализации логической операции И:


min – минимум;
prod – умножение.
Пользователь также имеет возможность установить собственную реализацию операции
И. Для этого необходимо выбрать команду Custom… и в появившемся графическом
окне напечатать имя функции, реализующей эту операцию.
72
Меню Or Method
Это меню позволяет установить следующие реализации логической операции ИЛИ:


max – умножение;
probor - вероятностное ИЛИ.
Пользователь также имеет возможность установить собственную реализацию операции
ИЛИ. Для этого необходимо выбрать команду Custom… и в появившемся графическом
окне напечатать имя функции, реализующей эту операцию.
Меню Implication
Это меню позволяет установить следующие реализации импликации:


min – минимум;
prod – умножение.
Пользователь также имеет возможность установить собственную реализацию
импликации. Для этого необходимо выбрать команду Custom… и в появившемся
графическом окне напечатать имя функции, реализующей эту операцию.
Меню Aggregation
Это меню позволяет установить следующие реализации операции объединения
функций принадлежности выходной переменной:



max – максимум;
sum – сумма;
probor - вероятностное ИЛИ.
Пользователь также имеет возможность установить собственную реализацию этой
операции. Для этого необходимо выбрать команду Custom… и в появившемся
графическом окне напечатать имя функции, реализующей эту операцию
Меню Defuzzification
Это меню позволяет выбрать метод дефаззификации. Для систем типа Мамдани
запрограммированы следующие методы:





centroid – центр тяжести;
bisector –медиана;
lom – наибольший из максимумов;
som – наименьший из максимумов;
mom – среднее из максимумов.
Для систем типа Сугэно запрограммированы следующие методы:


wtaver – взвешенное среднее;
wtsum – взвешенная сумма.
Пользователь также имеет возможность установить собственный метод
деффазификации. Для этого необходимо выбрать команду Custom… и в появившемся
графическом окне напечатать имя функции, реализующей эту операцию.
Практическое занятие №5
73
Редактор функций принадлежности
Редактор функций принадлежности-(Membership Function Editor) редактор
предназначен для задания следующей информации о терм-множествах входных и
выходных переменных:



количество термов;
наименования термов;
тип и параметры функций принадлежности, которые необходимы для
представления лингвистических термов в виде нечетких множеств.
Редактор функций принадлежности может быть вызван из любого GUI-модуля,
используемого с системами нечеткого логического вывода,
командой Membership Functions… меню Edit или нажатием клавиш Ctrl+2. В FISредакторе открыть редактор функций принадлежности можно также двойным щелчком
левой кнопкой мыши по полю входной или выходной переменных. Общий вид
редактора функций принадлежности с указанием функционального назначения
основных полей графичекого окна приведен на рис. 7.5. В нижней части графического
окна расположены кнопки Help и Close, которые позволяют вызвать окно справки и
закрыть редактор, соответственно.
Рисунок 7.5. Редактор функций принадлежности
Редактор функций принадлежности содержит четыре меню - File, Edit, View, Type и
четыре окна ввода информации – Range, Display Range, Name и Params. Эти четыре
окно предназначенны для задания диапазона изменения текущей переменной,
диапазона вывода функций принадлежности, наименования текущего лингвистического
терма и параметров его функции принадлежности, соответственно. Параметры функции
принадлежности можно подбирать и в графическом режиме, путем изменения формы
функции принадлежности с помощью технологии “Drug and drop”. Для этого
74
необходимо позиционировать курсор мыши на знаке режима “Drug and drop” (см. рис.
7.5), нажать на левую кнопку мыши и не отпуская ее изменять форму функции
принадлежности. Параметры функции принадлежности будут пересчитываться
автоматически.
Меню File и View одинаковые для всех GUI-модулей используемых с системами
нечеткого логического вывода. Они подробно описаны в разделе 7.1.
Меню Edit
Общий вид меню приведен на рис. 7.6.
Рисунок 7.6. Меню Edit
Команда Undo отменяет ранее совершенное действие. Выполняется также по
нажатию Ctrl+Z.
Команда Add MFs… позволяет добавить термы в терм-множество, используемое для
лингвистической оценки текущей переменной. При выборе этой команды появится
диалоговое окно (рис. 7.7), в котором необходимо выбрать тип функции
принадлежности и количество термов. Значения параметров функций принадлежности
будут установлены автоматически таким образом, чтобы равномерно покрыть область
определения переменной, заданной в окне Range. При изменении области
определения в окне Rangeпараметры функций принадлежности будут
промасштабированы.
Рисунок 7.7. Выбор количества термов и типа функций принадлежности
Команда Add Custom MF… позволяет добавить один лингвистический терм, функция
принадлежности которого отличается от встроенных. После выбора этой команды
появится графическое окно (рис. 7.8), в котором необходимо напечатать
лингвистически терм (поле MF name),, имя функции принадлежности (поле MFile function name) и параметры функции принадлежности (поле Parameter list).
75
Рисунок 7.8. Задание лингвистического терма с невстроенной функцией
принадлежности
Команда Remove Selected MF удаляет текущий терм из терм-множества текущей
переменной. Признаком текущей переменной является красная окантовка ее
прямоугольника. Признаком текущего терма является красный цвет его функции
принадлежности. Для выбора текущего терма необходимо провести позиционирования
курсора мыши на графике функции принадлежности и сделать щелчок левой кнопкой
мыши.
Команда Remove All MFs удаляет все термы из терм-множества текущей переменной.
Команда FIS Properties… открывает FIS-редактор. Эта команда может быть также
выполнена нажатиемCtrl+1.
Команда Rules… открывает редактор базы знаний. Эта команда может быть также
выполнена нажатиемCtrl+3.
Меню Type
Это меню позволяет установить тип функций принадлежности термов, используемых
для лингвистической оценки текущей переменной. На рис. 7.9 приведено меню Type, в
котором указаны возможные типы функций принадлежности.
Рисунок 7.9. Меню Type
Практическое занятие №6
Редактор базы знаний
Редактор базы знаний (Rule Editor) предназначен для формирования и модификации
нечетких правил. Редактор базы знаний может быть вызван из любого GUI-модуля,
используемого с системами нечеткого логического вывода,
командой Rules… меню Edit или нажатием клавиш Ctrl+3. В FIS-редакторе открыть
редактор базы знаний можно также двойным щелчком левой кнопкой мыши по
76
прямоугольнику с названием системы нечеткого логического вывода, расположенного в
центре графического окна.
Общий вид редактора базы знаний с указанием функционального назначения основных
полей графического окна приведен на рис. 7.10. В нижней части графического окна
расположены кнопки Helpи Close, которые позволяют вызвать окно справки и закрыть
редактор, соответственно.
Рисунок 7.10. Редактор базы знаний
Редактор функций принадлежности содержит четыре системных меню File,
Edit, View, Options, меню выбора термов входных и выходных переменных, поля
установки логических операций И, ИЛИ, НЕ и весов правил, а также кнопки
редактирования и просмотра правил.
Для ввода нового правила в базу знаний необходимо с помощью мыши выбрать
соответствующую комбинацию лингвистических термов входных и выходных
переменных, установить тип логической связки (И или ИЛИ) между переменными
внутри правила, установить наличие или отсутствие логической операции НЕ для
каждой лингвистической переменной, ввести значение весового коэффициента правила
и нажать кнопку Add Rule. По умолчанию установлены следующие параметры:



логическая связка переменных внутри правила – И;
логическая операция НЕ – отсутствует;
значение весового коэффициента правила – 1.
77
Возможны случаи, когда истинность правила не изменяется при произвольной значении
некоторой входной переменной, т.е. это переменная не влияет на результат нечеткого
логического вывода в данной области факторного пространства. Тогда в качестве
лингвистического значения этой переменной необходимо установить none.
Для удаления правила из базы знаний необходимо сделать однократный щелчок левой
кнопкой мыши по этому правилу и нажать кнопку Delete Rule.
Для модификации правила необходимо сделать однократный щелчок левой кнопкой
мыши по этому правилу, затем установить необходимые параметры правила и нажать
кнопку Edit Rule.
Меню File и View одинаковые для всех GUI-модулей используемых с системами
нечеткого логического вывода. Они подробно описаны в разделе 7.1.
Меню Edit
Общий вид меню приведен на рис. 7.11.
Рисунок 7.11. Меню Edit
Команда Undo отменяет ранее совершенное действие. Выполняется также по
нажатию Ctrl+Z.
Команда FIS Properties… открывает FIS-редактор. Эта команда может быть также
выполнена нажатиемCtrl+1.
Команда Membership Function… открывает редактор функций принадлежностей. Эта
команда может быть также выполнена нажатием Ctrl+2.
Меню Options
Это меню позволяет установить язык и формат правил базы знаний (рис. 7. 12).
Рисунок 7.12. Меню Options
При выборе команды Language появится список
языков English (Английский), Deutsch (Немецкий),Francais (Французкий), из которого
необходимо выбрать один.
При выборе команды Format появится список возможных форматов правил базы
знаний: Verbose -лингвистический; Symbolic – логический; Indexed –
индексированный. Различные форматы база знаний демо-системы нечеткого
логического вывода Tipper приведены на рис. 7.10 (формат правилVerbose), рис. 7.13
(формат правил Symbolic) и рис. 7.14 (формат правил Indexed).
78
Рисунок 7.13. База знаний в формате Symbolic
Рисунок 7.14. База знаний в формате Indexed
Практическое занятие №7
Визуализация нечеткого логического вывода
Визуализация нечеткого логического вывода осуществляется с помощью GUIмодуля Rule Viewer. Этот модуль позволяет проиллюстрировать ход логического
вывода по каждому правилу, получение результирующего нечеткого множества и
выполнение процедуры дефаззификации. Rule Viewer может быть вызван из любого
GUI-модуля, используемого с системами нечеткого логического вывода,
командойView rules … меню View или нажатием клавиш Ctrl+4. Вид Rule Viewer для
системы логического вывода tipper с указанием функционального назначения
основных полей графического окна приведен на рис. 7.15.
79
Рисунок 7.15 – Визуализация логического вывода для системы tipper с
помощью Rule Viewer
Rule Viewer содержит четыре меню - File, Edit, View, Options, два поля ввода ввода
информации –Input и Plot points и кнопки прокрутки изображения влево-вправо (leftright), вверх-вниз (up-down). В нижней части графического окна расположены также
кнопки Help и Close, которые позволяют вызвать окно справки и закрыть редактор,
соответственно.
Каждое правило базы знаний представляется в виде последовательности горизонтально
расположенных прямоугольников. При этом первые два прямоугольника (см. рис. 7.15)
отображают функции принадлежностей термов посылки правила (ЕСЛИ-часть правила),
а последний третий прямоугольник соответствует функции принадлежности термаследствия выходной переменной (ТО-часть правила). Пустой прямоугольник в
визуализации второго правила означает, что в этом правиле посылка по переменной
food отсутствует (food is none). Желтая заливка графиков функций принадлежностей
входных переменных указывает насколько значения входов, соответствуют термам
данного правила. Для вывода правила в формате Rule Editor необходимо сделать
однократный щелчок левой кнопки мыши по номеру соответствующего правила. В этом
случае указанное правило будет выведено в нижней части графического окна.
Голубая заливка графика функции принадлежности выходной переменной
представляет собой результат логического вывода в виде нечеткого множества по
данному правилу. Результирующее нечеткое множество, соответствующее логическому
выводу по всем правилам показано в нижнем прямоугольнике последнего столбца
графического окна. В этом же прямоугольнике красная вертикальная линия
соответствует четкому значению логического вывода, полученного в результате
дефаззификации.
Ввод значений входных переменных может осуществляться двумя способами:
80


путем ввода численных значений в поле Input;
с помощью мыши, путем перемещения линий-указателей красного цвета.
В последнем случае необходимо позиционировать курсор мыши на красной
вертикальной линии, нажать на левую кнопку мыши и не отпуская ее переместить
указатель на нужную позицию. Новое численное значения соответствующей входной
переменной будет пересчитано автоматически и выведено в окноInput.
В поле Plot points задается количество точек дискретизации для построения графиков
функций принадлежности. Значение по умолчанию – 101.
Меню File и View одинаковые для всех GUI-модулей используемых с системами
нечеткого логического вывода. Они подробно описаны в разделе 7.1.
Меню Edit
Общий вид меню приведен на рис. 7.16.
Рисунок 7.16. Меню Edit
Команда FIS Properties… открывает FIS-редактор. Эта команда может быть также
выполнена нажатиемCtrl+1.
Команда Membership Functions… открывает редактор функций принадлежностей. Эта
команда может быть также выполнена нажатием Ctrl+2.
Команда Rules… открывает редактор базы знаний. Эта команда может быть также
выполнена нажатиемCtrl+3.
Меню Options
Меню Options содержит только одну команду Format, которая позволяет установить
один из следующих форматов вывода выбранного правило в нижней части
графического окна:



Verbose - лингвистический;
Symbolic – логический;
Indexed – индексированный.
Визуализация поверхности “входы-выход”
Визуализация поверхности “входы-выход” осуществляется с помощью GUIмодуля Surface Viewer. Этот модуль позволяет вывести графическое изображение
зависимости значения любой выходной переменной от произвольных двух (или одной)
входных переменных. Surface Viewer может быть вызван из любого GUI-модуля,
используемого с системами нечеткого логического вывода, командой View surface
… менюView или нажатием клавиш Ctrl+4. Общий вид модуля Surface Viewer с
указанием функционального назначения основных полей графического окна приведен
на рис. 7.17.
81
Рисунок 7.17. Визуализация поверхности “входы-выход” для системы tipper с помощью
Surface Viewer
Surface Viewer содержит верхних системных меню - File, Edit, View, Options, три
меню выбора координатных осей - X (input), Y (input), Z (output), три поля ввода
ввода информации – X girds,Y girds, Ref. Input и кнопку Evaluate для построения
поверхности при новых параметрах. В нижней части графического окна расположены
также кнопки Help и Close, которые позволяют вызвать окно справки и закрыть
редактор, соответственно.
Surface Viewer позволяет вращать поверхность “входы-выход” с помощью мыши. Для
этого необходимо позиционировать курсор мыши на поверхности “входы-выход”,
нажать на левую кнопку мыши и не отпуская ее повернуть графическое изображение
на требуемый угол.
Поля X girds и Y girds предназначены для задания количества точек дискретизации по
осям X и Y, для построения поверхности “входы-выход”. По умолчанию количество
дискрет по каждой оси равно 15. Для изменения этого значения необходимо установить
маркер на поле X girds (Y girds) и ввести новое значение.
Поле Ref. Input предназначено для задания значений входных переменных, кроме тех,
которые ассоциированы с координатными осями. По умолчанию это значения середины
интервалов изменения переменных. Для изменения этого значения необходимо
установить маркер на поле Ref. Input и ввести новые значение.
Меню File и View одинаковые для всех GUI-модулей используемых с системами
нечеткого логического вывода. Они подробно описаны в разделе 7.1.
Меню координатных осей
82
Меню X (input), Y (input), Z (output) позволяют поставить в соответствие осям
координат входные и выходные переменные. При этом входные переменные могут
отображаться только по осям X и Y, а выходные переменные только по оси Z.
В Surface Viewer предусмотрена возможность построения однофакторных
зависимостей “вход-выход”. Для этого в меню второй координатной оси
(X (input) илиY (input)) необходимо выбрать none.
Меню Edit
Общий вид меню приведен на рис. 7.16. Назначения команд меню описано в
разделе 7.4.
Меню Options
Меню Options изображено на рис. 7.18. Оно содержит
команды Plot, Color Map и Always evaluate.
Рисунок 7.18. Меню Options
Команда Plot позволяет управлять форматом вывода поверхности “входы-выход”. При
выборе этой команды появляется меню (рис. 7.19) в котором необходимо выбрать
формат вывода поверхности. На рис. 7.20 приведены поверхности “входы-выход” для
системы tipper для всех поддерживаемых форматов.
Рисунок 7.19. Меню Plot
83
Рисунок 7.20. Примеры форматов поверхности “входы-выход”
Команда Color Map позволяет управлять палитрой цветов при выводе поверхности
“входы-выход”. При выборе этой команды появляется меню, в котором необходимо
выбрать одну из палитр:
default – использовать палитру, установленную по умолчанию;
blue – холодная сине-голубая палитра;
hot – теплая палитра, состоящая из черного, красного, желтого и белого цветов;
HSV – палитра насыщенных цветов: красный, желтый, зеленый, циан, голубой,
мажента, красный.
84
Команда Always evaluate позволяет установить / отменить режим автоматического,
т.е. без нажатия кнопки Evaluate, перерисовывания поверхности “входы-выход" при
любом изменении параметров.
Практическое занятие №8
ANFIS-редактор
ANFIS является аббревиатурой Adaptive Neuro-Fuzzy Inference System – (адаптивная
нейро-нечеткая система). ANFIS-редактор позволяет автоматически синтезировать из
экспериментальных данных нейро-нечеткие сети. Нейро-нечеткую сеть можно
рассматривать как одну из разновидностей систем нечеткого логического вывода типа
Сугэно. При этом функции принадлежности синтезированных систем настроены
(обучены) так, чтобы минимизировать отклонения между результатами нечеткого
моделирования и экспериментальными данными. Загрузка ANFIS-редактора
осуществляется по команде anfisedit. В результате выполнения этой команды появится
графическое окно, изображенное рис. 7.21. На этом же рисунке указаны
функциональные области ANFIS-редактора, описание которых приведено ниже.
Рисунок 7.21. Основное окно ANFIS-редактора
ANFIS-редактор содержит 3 верхних меню - File, Edit и View, область визуализации,
область свойств ANFIS, область загрузки данных, область генерирования исходной
системы нечеткого логического вывода, область обучения, область тестирования,
область вывода текущей информации, а также кнопкиHelp и Close, которые позволяют
вызвать окно справки и закрыть ANFIS-редактор, соответственно.
Меню File и View одинаковые для всех GUI-модулей используемых с системами
нечеткого логического вывода. Они подробно описаны в разделе 7.1.
85
Меню Edit
Общий вид меню приведен на рис.7.22.
Рисунок 7.22. Меню Edit
Команда Undo отменяет ранее совершенное действие. Выполняется также по
нажатию Ctrl+Z.
Команда FIS Properties… открывает FIS-редактор. Эта команда может быть также
выполнена нажатиемCtrl+1.
Команда Membership Functions… открывает редактор функций принадлежностей. Эта
команда может быть также выполнена нажатием Ctrl+2.
Команда Rules… открывает редактор базы знаний. Эта команда может быть также
выполнена нажатиемCtrl+3.
Команда Anfis… открывает ANFIS-редактор. Эта команда может быть также выполнена
нажатиемCtrl+3. Заметим, что данная команда, запущенная из ANFIS-редактора не
приводит к выполнению каких-либо действий, так этот редактор уже открыт. Однако, в
меню Edit других GUI-модулей, используемых с системами нечеткого логического
вывода, добавляется команда Anfis…, позволяющая открыть ANFIS-редактор из этих
модулей.
Область визуализации
В этой области выводится два типа информации:


при обучении системы – кривая обучения в виде графика зависимости ошибки
обучения от порядкового номера итерации.
при загрузке данных и тестировании системы – экспериментальные данные и
результаты моделирования.
Экспериментальные данные и результаты моделирования выводятся в виде множества
точек в двумерном пространстве. При этом по оси абцисс откладывается порядковый
номер строчки данных в выборке (обучающей, тестирующей или контрольной), а по оси
ординат - значение выходной переменной для данной строчки выборки. Используются
следующие маркеры:
голубая точка (.) – теструющая выборка;
голубая окружность (o) – обучающая выборка;
голубой плюс (+) – контрольная выборка;
красная звездочка (*) – результаты моделирования.
Область свойств ANFIS
86
В области свойств ANFIS (ANFIS info) выводится информация о количестве входных и
выходных переменных, о количестве функций принадлежностей для каждой входной
переменной, а также о количестве строчек в выборках. В этой области расположены
две кнопки Structure и Clear Plot.
Нажатие кнопки Structure открыет новое графическое окно, в котором система
нечеткого логического вывода представляет в виде нейро-нечеткой сети. В качестве
иллюстрации на рис. 7.23 приведна нейро-нечеткая сеть, содержащая четыре входных
переменных и одну выходную. В этой системе по три лингвистических терма
используеться для оценки каждой из входных переменных и четыре терма для
выходной.
Нажатие кнопки Clear Plot позволяет очистить область визуализации.
Рисунок 7.23. Пример структуры нейро-нечеткой сети
Область загрузки данных
В области загрузки данных (Load data) расположены:

меню выбора типа данных (Type), содержащее альтернативы:
o
o
o
o

меню выбора источника данных (From), содержащее альтернативы:
o
o

Traning - обучающая выборка;
Testing - тестирующая выборка;
Checking - контрольная выборка;
Demo - демонстрационный пример;
disk – диск;
worksp. - рабочая область MatLab;
кнопка загрузки данных Load Data…, по нажатию которой появляется
диалоговое окно выбора файла, если загрузка данных происходит с диска, или
окно ввода идентификатора выборки, если загрузка данных происходит из
рабочей области;
87

кнопка очистки данных Clear Data.
Примечание. В течении одной сеанса работы ANFIS-редактора можно загружать
данные одного формата, т.е. количество входных переменных в выборках должно быть
одинаковым.
Область генерирования исходной системы нечеткого логического вывода
В области генерирования (Generate FIS) расположены меню выбора способа создания
исходной системы нечеткого логического вывода. Меню содержит следующие
альтернативы:




Load from disk – загрузка системы с диска;
Load from worksp. – загрузка системы из рабочей области MatLab;
Grid partition - генерирование системы по методу решетки (без кластеризации);
Sub. clustering – генерирование системы по методу субкластеризации.
В области также расположена кнопка Generate, по нажатию которой генерируется
исходная система нечеткого логического вывода.
При выборе Load from disk появляется стандартное диалоговое окно открытия файла.
При выборе Load from worksp. появляется стандартное диалоговое окно ввода
идентификатора системы нечеткого логического вывода.
При выборе Grid partition появляется окно ввода параметров метода решетки
(рис. 7.24), в котором нужно указать количество термов для каждой входной
переменной и тип функций принадлежности для входных и выходной переменных.
Рисунок 7.24. Окно ввода параметров для метода решетки
При выборе Sub. clustering появляется окно ввода следующих параметров метода
субкластеризации (рис. 7.25):
Range of influence – уровни влияния входных переменных;
Squash factor – коэффициент подавления;
88
Accept ratio – коэффициент, установливающий во сколько раз потенциал данной
точки должен быть выше потенциала центра первого кластера для того, чтобы центром
одного из кластеров была назначена рассматриваемая точка;
Reject ratio –коэффициент, установливающий во сколько раз потенциал данной точки
должен быть ниже потенциала центра первого кластера, чтобы рассматриваемая точка
была исключена из возможных центров кластеров.
Рисунок 7.25. Окно ввода параметров для метода субкластеризации
Более подробно параметры и алгоритм субкластеризации будут рассматриваться при
описании функцииsubclust.
Область обучения
В области обучения (Train FIS) расположены меню выбора метода оптимизации
(Optim. method), поле задания требуемой точности обучения (Error tolerance), поле
задания количества итераций обучения (Epochs) и кнопка Train Now, нажатие
которой запускает режим обучение. Промежуточные результаты обучения выводятся в
область визуализации и в рабочую област MatLab. В ANFIS-редакторе реализованы два
метода обучения:


backpropa – метод обратного распространения ошибки, основанный на идеях
метода наискорейшего спуска;
hybrid – гибридный метод, объединяющий метод обратного распространения
ошибки с методом наименьших квадратов.
Область тестирования
В области тестирования (Test FIS) расположены меню выбора выборки и
кнопка Test Now, по нажатию по которой происходит тестирование нечеткой системы с
выводом результатов в область визуализации.
Область вывода текущей информации
В этой области выводится наиболее существенная текущая информация, например,
сообщения об окончании выполнении операций, значение ошибки обучения или
тестирования и т.п.
Практическое занятие №9
Findcluster
89
GUI-модуль Findcluster позволяет автоматически находить центры кластеров
многомерных данных с помощью нечеткого c-means алгоритма и алгоритма
субтрактивной кластеризации. Загрузка модуляFindcluster осуществляется по
команде findcluster. Основное графическое окно модуля Findcluster с указанием
назначения функциональных областей приведено на рис. 7.26.
Рисунок 7.26. Основное окно модуля Findcluster
Модуль Findcluster содержит 7 верхних типовых меню графического окна (File,
Edit, View, Insert,Tools, Windows и Help), область визуализации, область загрузки
данных, область кластеризации, область вывода текущей информации а также
кнопки Info и Close, которые позволяют вызвать окно справки и закрыть модуль,
соответственно.
Область визуализации
В этой области в двумерном пространстве выводятся экспериментальные данные
(образы) и найденные центры кластеров. Для образов используется маркер в виде
красной окружности (o), а для центров кластеров – маркер в виде черной точки ( ).
В области также расположены меню выбора координатных осей X-axis и Y-axis,
позволяющие ассоциировать признаки образов с осями абсцисс и ординат,
соответственно.
Область загрузки данных
90
В этой области, которая расположена в правом верхнем углу окна, находится
кнопка Load Data…. Нажатие этой кнопки позволяет загрузить данные для
кластеризации, хранящиеся на диске. После нажатия кнопки Load Data… открывается
типовое окно открытия файла. В файле данные должны быть записаны построчно, т. е.
каждому образу должна соответствовать одна строка файла данных.
Область вывода текущей информации
В этой области, которая расположена внизу графического окна, выводится наиболее
важная текущая информация, например, состояние модуля, номер итерации алгоритма
кластеризации, значение целевой функции и т.п.
Область кластеризации
В этой области пользователь может выбрать алгоритм кластеризации, установить
параметры алгоритма кластеризации, провести кластеризацию и сохранить координаты
центров кластеров в виде файла. В области расположены следующие меню и кнопки.
Меню Method… позволяет выбрать один из двух алгоритмов
кластеризации: subtractiv – алгоритм субтрактивной кластеризации; fcm - нечеткий cmeans алгоритм. При выборе алгоритма субтрактивной кластеризации графическое
окно модуля Findcluster имеет вид, показанный на рис. 7.26. В этом случае
пользователь имеет возможность установить значения следующих параметров
алгоритмаInfluence Range, Squash, Accept Ratio и Reject Ratio, смысл которых
объяснен в описании функцииsubclust. При выборе нечеткого c-means алгоритма
область кластеризации принимает вид, изображенный на рис. 7.27. В этом случае
пользователь имеет возможность установить значения следующих
параметров: Cluster Num. - количество кластеров; Max Iteration # - максимальное
количество итераций алгоритма; Min - минимально допустимое значение улучшения
целевой функции за одну итерацию алгоритма; Exponent - значения
экспоненциального веса. Дополнительная информация об этих параметрах приведена в
описании функции fcm (подраздел 8.8).
Рисунок 7.27. Область кластеризации для нечеткого c-means алгоритма кластеризации
Кнопка Start – запускает кластеризацию. При использовании алгоритма fcm значения
координат центров кластеров выводятся в окне визуализации после каждой итерации.
При использовании субтрактивной алгоритма открывается дополнительное окно
(рис. 7.28), показывающее динамику процесс кластеризации. Координаты центров
кластеров выводятся по окончанию выполнения алгоритма.
91
Рисунок 7.28. Окно выполнения алгоритма субтрактивной кластеризации
Кнопка Save Center… - позволяет сохранить координаты найденных центров
кластеров. По нажатию этой кнопки открывается типовое окно записи данных в файл.
Координаты центров записываются в таком же формате, как и данные для
кластеризации, т. е. каждая строчка файла содержит значения координат одного
центра.
Кнопка Clear Plot позволяет очистить поле вывода данных.
Практическое занятие 10. Моделирование работы светофора с нечеткой
логикой.
Вместо
предисловия:
Идея нечеткого светофора была позаимствована с сайта Томского Политеха. Судя по
стилю изложения - там был не совсем качественный перевод некоего зарубежного
источника, поэтому решено было провести моделирование подобного устройства
собственными силами.
ЦЕЛЬ:
Исследование возможностей светофора с нечеткой логикой, установленного на
перекрестке, при различных интенсивностях потоков автомашин и сравнение его работы
с обычным светофором.
ПОСТАНОВКА:
В обычном светофоре время работы зеленого и красного света, а также время цикла
фиксированы. Это создает некоторые трудности в движении машин, особенно, при
изменении их потоков в часы пик, что довольно часто приводит к появлению
автомобильных пробок.
В предлагаемом нечетком светофоре время цикла остается постоянным, однако, время
его работы в режиме зеленого света должно меняться в зависимости от количества
подъезжающих к перекрестку машин.
Пусть время цикла традиционного и нечеткого светофоров будет одинаковым и равным
1мин.=60сек. Длительность зеленого света обычного светофора зададим 30сек., тогда
красный свет будет гореть тоже 30сек.
Для работы нечеткого светофора на перекрестке улиц Север-Юг (СЮ) и Запад-Восток
(ЗВ) необходимо установить 8 датчиков (рис.1), которые считают проехавшие мимо них
машины.
Рис.1. Расположение датчиков на перекрестке.
92
Светофор использует разности показаний четырех пар датчиков: (Д1-Д2), (Д3-Д4), (Д5Д6) и (Д7-Д8). Таким образом, если для улицы СЮ горит зеленый свет, машины
проезжают перекресток и показания двух пар датчиков равны: Д1=Д2, Д5=Д6, а,
следовательно, их разность равна нулю. В это же время на улице ЗВ перед светофором
останавливаются машины, которые успели проехать только Д4 и Д7. В результате
можно рассчитать суммарное количество автомобилей на этой улице следующим
образом:
(Д4-Д3)+(Д7-Д8)=(Д4-0)+(Д7-0)=Д4+Д7.
Для сравнения работы обоих светофоров введем показатель эффективности, в качестве
которого будем рассматривать число машин, не проехавших перекресток за один цикл
светофора.
Данную задачу можно сравнить с системой массового обслуживания (СМО), по двум
каналам которой поступают заявки на обслуживание в виде автомашин. Показатель
эффективности в этом случае число заявок, получивших отказ.
РЕШЕНИЕ :
Для решения поставленной задачи используется пакет Matlab, т.к. он имеет в своем
составе fuzzy-приложение, необходимое для моделирования работы нечеткого
светофора.
Более подробно рассмотрим проектирование нечеткой подпрограммы. Здесь однозначно
должны быть определены все входы и выходы.
Поскольку работа светофора зависит от числа машин на обеих улицах и текущего
времени зеленого света, для нашей подпрограммы предлагается использовать 3 входа:
число машин на улице СЮ по окончанию очередного цикла, число машин на улице ЗВ
по окончанию цикла и время зеленого света нечеткого светофора.
Теперь для каждой переменной надо задать лингвистические термы, соответствующие
некоторым диапазонам четких значений. Так, для переменной время зеленого света
предлагается использовать три терма (рис.2):
 малое (10-25сек.);
 среднее(20-40сек.);
 большое(35-50сек.).
Рис.2. Функция принадлежности первой входной переменной.
Степень принадлежности четких значений термам задается с помощью функций
принадлежности (в нашем случае эти функции имеют форму трапеции).
Аналогично, термы для двух оставшихся переменных будут (рис.3):
 очень малое (0-18);
 малое (16-36);
 среднее (34-56);
 большое (54-76);
 очень большое (72-90).
93
Рис.3. Функция принадлежности второй и третьей входных переменных.
Функции принадлежности здесь также имеют форму трапеции.
Так как суть работы светофора состоит в изменении времени зеленого света, в качестве
выходного параметра предлагается использовать величину этого изменения. Термы в
этом случае будут следующие (рис.4):
 уменьшить (-20-0сек.);
 не изменять (-15-15сек.);
 увеличить (0-20сек.).
Рис.4. Функция принадлежности выходной переменной.
Функции принадлежности имеют форму Гаусса.
Кроме того, в подпрограмму записывается таблица правил на основе условных
высказываний, которая формирует выходное значение исходя из величин входных
параметров, например:
Если (число машин на улице СЮ=малое)&(число машин на улице ЗВ=большое)&(время
зеленого света на улице СЮ=большое), то (время зеленого света=уменьшить).
Результаты моделирования и программа на Матлабе представлены в соттветствующих
пунктах.
Практическое занятие 10 Результаты моделирования работы светофора с нечеткой
логикой
Основная программа работает следующим образом: с помощью встроенного в Matlab
генератора случайных чисел происходит генерирование числа машин за один цикл
светофора для улиц СЮ и ЗВ.
Часть машин из этого числа успевает проехать на зеленый свет, остальные
останавливаются перед перекрестком, ожидая окончания действия красного света
94
светофора. Все те автомобили, которые остались стоять перед светофором после одного
цикла, считаются не обслуженными заявками.
За показатель эффективности данной системы принимается среднее число не
обслуженных заявок за заданное количество циклов светофора. Соответственно, чем
меньшее значение имеет показатель эффективности, тем большее количество машин
пропускает светофор.
Число циклов светофора не должно быть слишком малым, т.к. в этом случае не
получается объективной информации, или слишком большим, т.к. программа будет
очень долго вычислять требуемую величину. Рекомендуемое количество циклов - 100.
Таким образом, алгоритм программы следующий: на светофор с датчиков поступает
информация о количестве автомобилей на двух улицах. Эти данные переводятся в
нечеткий формат согласно заданным функциям принадлежности, далее, внутри
подпрограммы происходит их обработка, полученное значение изменения времени
зеленого света дефаззифицируется (т.е. переводится обратно в четкий формат) и
поступает в виде управляющего сигнала на светофор. В соответствии с этим сигналом
время зеленого света светофора в следующем цикле будет другим.
Результат вычислений представлен в виде графика на рис.6.
Рис.6. Результаты вычислений.
Таким образом, подводя итоги, можно сказать, что нечеткая логика в некоторых
простейших случаях позволяет улучшить качество управления объектами, причем
решающую роль в оптимизации показателей эффективности играют эксперты, которые
определяют количество входных и выходных переменных, число термов для каждой
переменной, виды функций принадлежности, т.к. изменение этих параметров приводит к
улучшению или ухудшению процесса управления объектом.
Важнейшим недостатком нечеткой логики является отсутствие единого метода
моделирования систем, т.е. для каждого случая приходится заново проектировать
нечеткую подпрограмму, определяя шаг за шагом все параметры и строя свою таблицу
решений.
Пример программы с нечеткой логикой, выполненной в Матлабе
Здесь представлена подпрограмма, реализующая нечеткий алгоритм, которую вызывает
основная программа перед каждым циклом работы светофора. Все комментарии
представлены после знака %.
function
tzel=svetofor1(vrz,y1,y2);
%
В
качестве
входных
параметров
здесь
выступают:
% vrz - время зеленого света светофора на текущем такте его работы
% y1 - число машин, подъехавших к перекрестку на улице Север-Юг
% y2 - число машин, подъехавших к перекрестку на улице Запад-Восток
95
r=newfis('svetofor');
%
создание
% под названием svetofor
новой
r=addvar(r,'input','время
зеленого
%
создание
новой
входной
переменной
% [10, 50] - диапазон значений переменной в секундах.
нечеткой
системы
света',[10
в
нечеткой
50]);
системе,
r=addmf(r,'input',1,'малое','trapmf',[10
10
r=addmf(r,'input',1,'среднее','trapmf',[20
25
r=addmf(r,'input',1,'большое','trapmf',[35
40
%
задание
трапециоидных
(trapmf)
функций
% переменной "время зеленого света свуетофора".
r=addvar(r,'input','улица
%
создание
% под названием "улица Север-Юг"
20
35
50
принадлежности
Север-Юг',[0
второй
входной
r=addmf(r,'input',2,'очень
малое','trapmf',[0
r=addmf(r,'input',2,'малое','trapmf',[15
21
r=addmf(r,'input',2,'среднее','trapmf',[34
40
r=addmf(r,'input',2,'большое','trapmf',[53
59
r=addmf(r,'input',2,'очень большое','trapmf',[72 78 90 90]);
90]);
переменной
0
12
18]);
37]);
56]);
75]);
31
50
69
r=addvar(r,'input','улица
Запад-Восток',[0
r=addmf(r,'input',3,'очень
малое','trapmf',[0
r=addmf(r,'input',3,'малое','trapmf',[15
21
r=addmf(r,'input',3,'среднее','trapmf',[34
40
r=addmf(r,'input',3,'большое','trapmf',[53
59
r=addmf(r,'input',3,'очень большое','trapmf',[72 78 90 90]);
0
r=addvar(r,'output','время
зел.света
на
улице
%
задание
единственной
(в
%
выходной
переменной,
%
изменение
работы
светофора
"в
% в следующем цикле.
25]);
40]);
50]);
для
12
31
50
69
90]);
18]);
37]);
56]);
75]);
СЮ',[-20
20]);
нашем
случае)
определяющей
зеленом
режиме"
r=addmf(r,'output',1,'увеличить','gaussmf',[7
r=addmf(r,'output',1,'не
изменять','gaussmf',[7
r=addmf(r,'output',1,'уменьшить','gaussmf',[7
%
для
этой
переменной
% функции принадлежности вида Гаусса
20]);
0]);
-20]);
задаются
list=[
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
%
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
задание
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
таблицы
1
1
1
2
2
1
1
1
2
2
1
1
1
1
2
1
96
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
правил
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3 5 5 3 1 1];
4
4
4
4
5
5
5
5
5
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
1
1
1
1
1
1
1
1
1
2
2
3
3
3
1
2
3
3
3
1
1
2
3
3
1
1
1
2
3
1
1
1
1
2
3
3
3
3
3
3
3
3
3
3
2
3
3
3
3
2
2
2
3
3
2
2
2
3
97
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
r=addrule(r,list);
%
связывание
% с созданной ранее нечеткой системой
таблицы
tzel=evalfis([vrz
y1
%
запуск
вычислений
%
алгоритму
и
%
переменной
tzel
% зеленого света светофора в следующем цикле.
по
возвращение
изменение
правил
y2],r);
нечеткому
значения
времени
Методические указания к практической работе на тему:
Практическое занятие №11 «Нечеткий логический вывод»
Цель: освоить порядок формирования лингвистических переменных и выполнения
нечеткого логического вывода.
Задание
1. Разработайте представление лингвистических переменных по варианту, указанному
преподавателем. Представление лингвистических переменных должно быть реалистично
и удовлетворять правилам построения термов лингвистических переменных.
2. Сформулируйте нечеткие правила вывода с использованием этих переменных.
3. Выполните нечеткий вывод для двух выбранных значений переменных с
использованием алгоритмов Мамдани и Ларсена в программной среде MathCad.
4. Сравните полученные результаты.
5. Оформите отчет о работе.
Варианты заданий Местоположение квартиры (по отношению к центру города),
Стоимость квартиры.
1. Длительность работы банка, Надежность банка.
2. Доход клиента, Доверие клиенту.
3. Размер квартиры, Стоимость квартиры.
4. Капитал фирмы, Надежность фирмы.
5. Возраст человека, Вероятность получения работы.
6. Срок годности продукта, Объем его закупки.
7. Цена автомобиля, Объем продаж.
8. Качество товара, Объем продаж.
9. Качество товара, Срок службы.
10. Срок исполнения заявки, Приоритет заявки.
11. Скорость движения, Вероятность ДТП.
12. Качество товара, Срок гарантии.
13. Возраст автомобиля, Страховой риск (в баллах по 5-балльной шкале).
14. Возраст водителя, Страховой риск (в баллах по 5-балльной шкале).
15. Сложность ремонта (в баллах по 10-балльной шкале), Время ремонта (в днях).
16. Загруженность компьютерной сети, Время реакции сети (время передачи).
17. Загруженность компьютерной сети, Вероятность доставки сообщения.
18. Близость препятствия, Скорость движения.
19. Возраст прибора, Надежность прибора.
20. Температура воздуха в теплице, Время проветривания теплицы.
21. Возраст дерева, Ожидаемая урожайность.
22. Количество выпавших осадков, Ожидаемая урожайность.
23. Максимальная скорость автомобиля, Страховой риск (в баллах по 5-балльной шкале).
24. Опыт работы специалиста (в годах), Вероятность получения работы.
98
1.
2.
3.
4.
5.
6.
7.
8.
4. Контрольные вопросы
Что представляет собой нечеткое правило?
Назовите этапы процесса обработки нечетких правил вывода.
Какие операции используются для композиции нечетких множеств?
Какие используются способы скаляризации (дефазификации)?
Опишите алгоритм Мамдани.
Опишите алгоритм Цукамото.
Опишите алгоритм Сугено.
Опишите алгоритм Ларсена.
5. Содержание отчета
1. Наименование и цель выполняемой работы.
2. Формулировка задания на лабораторную работу.
3. Описание хода выполнения работы по каждому пункту задания.
4. Выводы по проделанной работе.
Литература
1. Корнеев В.В., Гареев А.
Практическое занятие №12 Исследование системы с нечетким
управлением
Цель: получение практических навыков работы с нечетким регулятором.
Задание: разработать систему нечетких правил и функций принадлежности для
управления автомобилем на перекрестке [12].
При этом:
1. Автомобиль должен двигаться со скоростью не ниже 60 км/ч по улице вдали от
светофора.
2. Автомобиль должен останавливаться на перекрестке на красный сигнал светофора.
3. Режим работы светофора в зависимости от варианта:
Вариант
Режим работы светофора
1
"красный", "красный и желтый", "зеленый", "желтый"...
2
"красный", "красный и желтый", "зеленый", "желтый"...
А также светофор может не работать.
3
"красный", "желтый", "зеленый", "желтый"...
4
"красный", "красный и желтый", "зеленый", "желтый"...
А также светофор может мелькать желтым.
5
"красный", "красный и желтый", "зеленый", "желтый"...
А также светофор может не работать и мелькать желтым.
6
"красный", "красный и желтый", "зеленый", "желтый"...
99
7
Сигнала с системы технического зрения не всегда на 100%
достоверен.
"красный", "красный и желтый", "зеленый", "желтый"...
А также светофор может не работать. Сигнал с системы
технического зрения не всегда на 100% достоверен.
Если светофор мелькает желтым (варианты 5 и 6), то автомобиль должен проезжать
перекресток со скоростью ниже 40 км/ч.
При нарушении правил автомобиль попадает в аварию. При этом Вы можете увидеть
соответствующую анимацию.
Ниже приведена таблица состояния флагов опций для каждого варианта:
Таблица 1.
Состояние флагов опций для различных вариантов.
1
2 3 4 5 6 7
Светофор | Может не работать
*
*
*
Светофор | Может мелькать желтым
* *
Светофор | Красный и желтый
*
*
* * * *
Автомобиль | 100% дост-сть датчиков *
* * * *
Описание функциональной схемы автомобиля
Система управления автомобилем состоит из следующих блоков (Рис.1): телекамера,
система технического зрения, нечеткий регулятор, система управления скоростью,
исполнительная часть автомобиля. При этом все блоки, кроме нечеткого регулятора, мы
будем рассматривать, как "черный ящик".
Система технического зрения обрабатывает видеоизображения, получаемые с
телекамеры. При обработке изображения распознается образ светофора. На выходе
системы формируется сигнал расстояния до светофора (X) и сигнал света светофора (С).
Система управления автомобилем
Рис.1
Эти сигналы совместно с сигналом спидометра автомобиля (V) поступают в
нечеткий регулятор. В данной работе Вам предложено "научить" нечеткий регулятор
обрабатывать эти сигналы. На выходе нечеткого регулятора нужно сформировать сигнал
уставки на скорость (Y).
Сигнал уставки поступает на систему управления скоростью, а оттуда на
исполнительную часть автомобиля.
В упрощенном варианте система технического зрения выдает достоверную
информацию о сигнале светофора. Эта информация поступает в нечеткий регулятор в
виде входной переменной С. Причем при красном сигнале светофора значение
100
переменной С равно 0. При сигнале "красный и желтый" значение С=1. При "зеленом"
С=2. И т.д. (см. таблицу 2).
Таблица 2.
Значение переменной С при различном состоянии светофора.
Состояние светофора
Значение С
Красный
О
Красный и желтый
1
Зеленый
2
Желтый
3
Желтый мерцает
4
Не работает
5
В вариантах 6 и 7 система технического зрения выдает недостоверный сигнал. В
этом случае значение переменной С принимает не дискретное, а непрерывное значение.
Т.е. при зеленом сигнале светофора значение С может составлять, например, 2.25. Это
значит, что система технического зрения "видит" на светофоре зеленый свет с
определенной долей вероятности. По умолчанию функции принадлежности по
переменной С составлены так, что значение 2.25 к понятию "зеленый" будет относиться с
достоверностью 0.5.
Сигнал расстояния до светофора (X) измеряется в метрах. Если светофор не найден
или расстояние до него свыше 140 м., то значение этого сигнала равно 140 м. Сигнал со
спидометра (V) и сигнал уставки (Y) измеряются в км/ч.
Порядок выполнения работы
1. Согласно варианту установите соответствующие опции.
2. Выберите пункт меню "Задача | Новая задача" или нажмите на соответствующую
кнопку на панели инструментов.
3. Задайте функции принадлежности и правила (см. Как задать функции принадлежности,
а также Как задать правила).
4. Запустите процесс. Для этого выберите пункт меню "Задача Работа" или выставите
соответствующий флажок на панели инструментов. Также Вы можете воспользоваться
отладчиком. Для этого выберите пункт меню "Fuzzy | Отладка" или нажмите F8.
5. Для перезапуска эксперимента (например, после аварии) выберите пункт меню "Задача
Перезапуск" или нажмите Ctrl-F2.
6. Для изменения функций принадлежности или правил выберите пункт меню "Fuzzy
Изменить" или двойным щелчком щелкните по рабочему полю окна.
7. Повторите пункты 3-6, пока не получите наилучший, на Ваш взгляд, результат.
Как начать новый проект
Чтобы начать новый проект выберите пункт меню "Задача | Новая задача".
Откроется окно "Нечеткий регулятор", в котором следует задать систему нечетких
правил и функций принадлежности.
Как задать функции принадлежности
Откройте окно "Нечеткий регулятор" и выберите страничку "Функции
принадлежности".
Перед Вами графический редактор функций принадлежности.
Чтобы задать новую функцию принадлежности, нажмите кнопку "Добавить" из
группы "функции". В появившемся окне наберите имя новой функции и выберите ее
аргумент.
Для того, чтобы изменить имеющуюся функцию принадлежности, выберите ее в
списке "функции".
101
Редактирование функции заключается в рисовании ее графика. Для этого Вам
предложено 4 инструмента: "Карандаш", "Перенос точки", "Вставка точки, разбив
линию", "Удаление точки". Редактирование возможно только выбранной функции
принадлежности, (см. Как составляются функции принадлежности).
Имена функций принадлежности пишутся непосредственно над их графиками.
Функции принадлежности можно удалять (кнопка "Удалить" из группы
"функции"), копировать в буфер обмена (кнопка "Копировать"), вставлять из буфера
обмена (кнопка "Вставить"), а также переименовывать (кнопка "Смена имя").
Функции принадлежности по переменной С жестко заданы и их изменять смысла
не имеет. Однако, при необходимости можно получить к ним доступ, сняв с них флажок
"только для чтения".
Как задать нечеткие правила
Откройте окно "Нечеткий регулятор" и выберите страничку "Правила".
В появившемся редакторе необходимо записать систему нечетких правил в виде
текста, (см. Как составляются нечеткие правила).
Для удобства Вы можете воспользоваться макротекстом. Под полем редактора
имеются списки из зарезервированных слов, имен переменных и функций
принадлежности.
Для проверки ошибок в написании нажмите кнопку "Проверить".
Если есть необходимость сохранить правила в текстовый файл или загрузить
правила из него, необходимо щелкнуть правой клавишей мыши по редактору и выбрать в
всплывающем меню соответственно пункт "Сохранить правила" или "Загрузить правила".
Как выбрать метод деффазификации
Чтобы выбрать метод деффазификации (см. Как работает нечеткий регулятор)
откройте окно "Нечеткий регулятор" и выберите соответствующий метод в группе
"Метод".
Как запустить/перезапустить эксперимент
Для того чтобы запустить эксперимент, выберите пункт меню "Задача |
Перезапустить".
Если же необходимо остановить/запустить время, выставьте/снимите галочку с
пункта меню "Задача Работа" или выставьте/снимите соответствующий флажок на панели
инструментов.
Как открыть окно "Нечеткий регулятор" снова
Для того чтобы открыть окно "Нечеткий регулятор" , выберите пункт меню "Fuzzy |
Изменить" или нажмите соответствующую кнопку на панели инструментов или двойным
щелчком щелкните по полю окна.
Как пользоваться отладчиком
Для запуска отладчика, выберите пункт меню "Fuzzy Отладка" или нажмите
соответствующую кнопку на панели инструментов или просто нажмите F8.
Появится окно "Отладчик". В нем Вы можете увидеть систему нечетких правил и
функций принадлежностей, набранных Вами (функции принадлежности не именуются).
Дальнейшее нажатие F8 будет выполнять нечеткие правила по шагам. При этом Вы
можете наблюдать текущее значение всех переменных.
Вы можете изменять их значение, путем перемещения мышкой вертикальной
черты на графиках функций принадлежности.
Также Вы можете видеть последнее значение оценки достоверности (Ak) (см. Как
работает нечеткий регулятор).
102
Кроме того, результирующая фигура также отображается на графиках (см. Как
работает нечеткий регулятор).
Как сохранить или загрузить результаты
Для того чтобы сохранить/загрузить результаты проделанной работы, откройте
окно "Нечеткий регулятор" и нажмите соответственно кнопку "Сохранить" или
"Загрузить".
Как составляются функции принадлежности
Функции принадлежности составляются по каждой входной и выходной
переменной. В данной работе нечеткий регулятор имеет три входные переменные (с - свет светофора, х - расстояние до светофора, v текущая скорость автомобиля) и одну выходную переменную (у - уставка на скорость для
системы управления автомобилем).
А) Функции принадлежности по входным переменным
Для составления функций принадлежности необходимо разбить всю область
допустимых значений по каждой входной переменной на конечное число характеристик,
называемых термами. Например, для скорости v можно сказать: "медленно", "средне",
"быстро" и т.д.
Затем следует составить функции принадлежности к каждому терму. Т.е. составить
график, показывающий с какой долей уверенности можно отнести то или иное значение
переменной к тому или иному терму. Например:
Скорости 40-50 км/ч можно смело отнести к понятию "средне", т.к. степень
достоверности по данному графику для этого значения скоростей равняется 1. Скорость
35 км/ч и 55 км/ч относится к понятию "средне" со степенью достоверности ~0.5.
Скорости вне диапазона 30-60 км/ч к понятию "средне" не относятся. То же само для
остальных термов ("быстро", "медленно" и т.д.).
Следует отметить, что функции принадлежности должны иметь максимум, равный 1.
Все значения функции принадлежности должны лежать в пределах [0,1]. Функция
принадлежности может быть не только трапецеидальной формы, но и любой другой.
Практически ни в одной литературе не приводятся рекомендации о форме функций
принадлежности, но наиболее распространены прямоугольные, треугольные,
трапецеидальные формы, а также в виде функции нормального распределения.
Полный набор функций принадлежности по переменной можно, например,
представить так:
103
Для введения функции принадлежности в данной лабораторной работе выберите
пункт меню Fuzzy | Изменить или нажмите соответствующую кнопку на панели
инструментов.
Б) Функции принадлежности по выходной переменной
Также, как и для входной переменной, весь диапазон значений выходной
переменной следует разбить на конечное число термов. В нашем случае выходная
переменная у есть уставка на скорость. Ее можно характеризовать как: "Медленно",
"Средне", "Быстро" и т.д. Но, чтобы не повторять имена функций принадлежности,
назовем их так: "Плестись", "Ехать", "Гнать" и т.д.
Составляются функции принадлежности точно так же, как и по входным
переменным. Однако часто выходные функции принадлежности делают вырожденными:
Как составляются правила
Нечеткие правила составляются на основе конструкции "Если ... то ....". Т.е.,
например:
Если Свет есть Зеленый, то Скорость есть Быстро. Здесь:
Свет
- входная переменная.
Скорость - выходная переменная.
Зеленый - функция принадлежности по переменной Свет.
Быстро
- функция принадлежности по переменной Скорость.
Нечеткий регулятор оперирует с "нечеткой" информацией. Поэтому достоверность
конструкции "если..." не всегда равна 0 или 1, как в булевой алгебре, а может принимать и
промежуточные значения из интервала [0,1]. Это обстоятельство соответствующим
образом учитывается в конструкции "то...", (см. Как работает нечеткий регулятор).
В данной работе нечеткие правила записываются в виде текста и имеют следующий
формат:
104
IF [NOТ]<вх.переменная> IS <функция> [<знак> [NOT] <вх.переменная> IS
<функция>[...]] THEN <вых.переменная> IS <функция> [AND <вых.переменная>[...]]
где:
<вх.переменная>
- входная переменная.
<вых.переменная>
- выходная переменная.
<функция>
- функция принадлежности.
<знак>
- AND или OR соответственно "И" или "ИЛИ"
Пример:
IF с is Зеленый and x is Близко then у is Гнать
IF с is Красный and x is Близко then у is Стоять

IF x is Недалеко and (с is Красный or с is Желтый) then у is Стоять

IF v is ОченьБыстро and с is Желтый and x is Близко then у is Быстро

IF not v is Быстро and not (c is Желтый or с is КрасЖел) then у is Медленно
Нечеткий регулятор обычно содержит несколько нечетких правил. Каждое
нечеткое правило должно быть записано в одну строчку. Для задания нечетких правил в
данной лабораторной работе выберите пункт меню Fuzzy | Изменить или нажмите
соответствующую кнопку на панели инструментов.
Как работает нечеткий регулятор
Процесс работы нечеткого регулятора можно наглядно представить увидеть в окне
отладчика. Рассмотрим алгоритм работы нечеткого регулятора на примере.
Пусть нечеткий регулятор имеет две входные переменные (х, v) и одну выходную
(у), функции принадлежности по которым представлены ниже.
Пусть в данный момент времени значение переменной х будет х ь а переменной v будет v1.
Пусть нечеткие правила выглядят так:
IF not х is Al and v is A3 then у is Bl
IF x is A2 or v is A4 then у is B2
Следуя первому правилу, нечеткий регулятор выполнит следующее:
1. Оценит степень достоверности выражения "х is Al". Достоверность этого выражения
есть значение функции Al(xt). В нашем случае А1(х1)= 1 . Этот процесс называется
фаззификацией.
2. Оценит степень достоверности выражения "v is A3". Достоверность этого выражения
есть значение функции A3(v). В нашем случае это значение равно 3.
105
3. Перед выражением "х is Al" стоит связка "NOT". Это значит, что степень достоверности
выражения "not x is Al" нечеткий регулятор будет считать как:
1*  1  1
4. Далее нечеткий регулятор вычислит степень достоверности всего выражения "not x is Al
and v is A3".
Т.к. стоит связка "AND", ищется минимум из  1* è 3: к=min(  1* , 3).
Если бы была связка "OR", искался максимум из  1* è 3: к=max(  1* , 3).
Дальнейшие действия нечеткого регулятора зависят от метода нечеткого вывода.
Известно два основных метода: MAX-МIN(усечение), МАХ-DОТ(масштабирование).
5. Выходная функция принадлеж5. Выходная функция принадлеж- ности (В1),
стоящая в правиле,
ности (В1), стоящая в правиле,
усекается значением ,
масштабируется значением,
полученным в п.4
полученным в п.4
6. Результирующие фигуры, получаемые при выполнении правил, накладываются друг на
друга (объединяются множества), образуя результирующую фигуру.
106
7. Далее нечеткий регулятор определяет значение выходной переменной путем поиска
центра масс результирующей фигуры.
Данный процесс называется дефаззификацией. Поиск центра масс осуществляется по
формуле:
Здесь: R(y) - результирующая фигура; y1 - получаемое значение выходной переменной в
данный момент времени.
Следует отметить, что в общем случае результаты, полученные методами "MAXDOT" и "MAX-MIN", могут отличаться.
Практическое занятие №13 Исследование САУ с комбинированным
управлением
Цель: на основе математического моделирования оценить возможности САУ
с
комбинированным способом управления.
Задание: для привода руки робота используется реверсивный, замкнутый по скорости
электропривод постоянного тока по системе ТП-ДПТ. Регулирование скорости двигателя
постоянного тока (ДПТ) осуществляется изменением напряжения на якоре. Плавный
разгон до номинальной скорости осуществляется с использованием задатчика
интенсивности. Для компенсации скоростной ошибки применено комбинированное
управление с передаточной функцией Wку (p)=b, охватывающее промежуточный
усилитель Ку и регулятор скорости. Структурная схема изображена на рис. 2.
Передаточные функции двигателя и тиристорного преобразователя принять в виде:
Wтп(р)=Ктп/(Tтпр +1); Wдпт(р)=(р)/Uд (р)=Кд/(TяTмр2 + Тмр +1);
Wдпт(р)=(р)/Мс (р)= - Rя(Tяр +1) /(СеФ)2 (TяTмр2 + Тмр +1).
Структурная схема электропривода
107
Рис.2
Требуется:
1. Рассчитать величину Кдс, чтобы напряжение задания Uз для получения номинальной
скорости не превышало 10В;
2. Настроить электропривод на модульный (технический) оптимум с использованием
ПИ- или ПИД-регулятора. Построить л.а.х. и л.ф.х. разомкнутой скорректированной
системы. Рассчитать параметры регулятора;
3. Рассчитать коэффициент компенсации b, обеспечивающий астатизм второго порядка
по управлению;
4. Рассчитать величину постоянной заводки задатчика интенсивности, позволяющего
плавно разгонять нагруженный электропривод
с максимально-допустимым
динамическим моментом. При этом принять Мс=Мн. ;
5. Определить установившееся значение скоростной ошибки, если момент нагрузки
изменяется по закону Мс= 2t ;
6. Разработать математическую модель системы и, используя любой математический
пакет прикладных программ, составить схему для исследования;
7. Провести экспериментальные исследования с использованием ЭВМ по п.п. 15.
К. П. Д. , %
Маховый момент GD2, кГ м2
4
5
6
7
8
9
10
1
221
3
431
532
641
742
8
952
ДПДП-22
ДПДПДПДПДП-42
ДПП42
4,5
6
8,5
12
16
21
29
32
4,5
22
22
0
22
0
22
0
22
0
22
0
44
0
22
0
0
22
0
10
11
50
87
30
79
0
71
0
66
0
10
0
76
40
0
15
00
26
33
47
65
85
11
75
0
16
4
25,
4
78,
82,
5
82,
5
84
5
86
83
84
86
90,
5
0,5
8,62
1,2
1,7
3,2
4,2
4,2
7,5
0,18
0,66
0,37
0,325
0,19
0,11
0,072
0,132
5
0,033
0,545
0,28
0,196
0,098
0,076
0,057
0,043
0,08
0,021
5
0,235
108
Последовательного
возбуждения или
компенсационной
Число главных полюсов 2р
rК, Ом
Ток IН, А
3
Добавочных
полюсов rдп, Ом
Скорость вращения nН, об/мин
2
Якоря rа, Ом
Напряжение UН, В
1
№ Варианта ( по списку в
журнале гр.)
Тип двигателя
Мощность РД НОМ, кВт
Порядок выполнения работы
Параметры тиристорного преобразователя и элемента сравнения: Ктп = 8; Tтп=0,002; Ку=
4; двигатель выбирается согласно № по списку группы (см.Таблицу 3);
Таблица 3
Технические данные электродвигателей постоянного тока
Сопротивление
обмоток при 20° С,
Ом
1
2
—
4
—
4
—
4
—
4
—
4
—
4
—
4
—
4
0,039 4
2
11
10 П51
11 П52
12 П61
13 П62
14 П71
15 П71
16 П72
17 П81
18 П82
19 П82
20 П82
21 П91
22 П91
23
П92
24
П101
6
8
11
14
19
19
25
32
25
42
42
25
55
42
42
22
0
22
22
0
22
0
11
0
22
0
22
0
22
0
44
0
22
0
44
0
11
0
44
0
44
0
11
0
0
15
00
15
15
00
15
00
15
00
15
00
15
00
15
00
10
00
15
00
15
00
75
00
15
0
10
00
75
00
0
33,
2
43,
59,
5
73,
5
21
5
10
0
13
3
11
2
66
6
21
10
8
27
7
14
9
11
3
44
0
6
82
84
84
86,
82,
5
84
5
86
87,
85,
5
87,
5
89
5
81,
87,
5
87
5
85,
5
0,35
0,4
0,56
0,65
1,4
1,4
1,6
2,7
3,1
3,1
3,1
5,9
5,9
7,0
10,3
0,34 0,132 0,007 4
36
0,185 0,084 0,006
4
0,135 0,052 0,006
4
8
0,087 0,04 0,004 4
0,023
0,007 0,000 4
5
0,091
0,032
0,004
4
4
9
98
0,058
0,024
0,004
4
2
3
86
0,057
0,018 0,002
4
5
32
0,27 0,094 0,007
4
6
0,026 0,009
0,000
4
8
96
0,105
0,038
0,002
4
3
57
79
0,018 0,006
0,001
4
3
16
0,074
0,027
0,004
4
75
9
02
0,161
0,054
0,004
4
8
5
07
0,008 0,003
0,000
4
4
8
64
23
34
Продолжение табл.
1
2
3 4 5 6 7
8
9
10
11 1
25 П20- 17 63 33 29 93, 1360 0,003 0,000 0,002 82
26
П19- 17
0,003
0,000
8
30-7К
50 63
0 37
0 29
70 94,
5 1250
0
96
429 0,001
58
27
П19- 21
0,003
0,000
8
50-7к
50 75
0 35
0 29
50 94,
2 1400
0
32
517 0,002
88
28
П20- 24
0,004
0,000
8
50-7к
00 86
0 35
0 29
70 94,
1 1610
0
89
607 0,002
01
29
П19- 24
0,003
0,000
0,001
8
40-7к
00 86
0 45
0 29
70 94,
1 1450
0
28
52
76
30
П20- 28
0,004
0,000
45-7к
00 10
0 45
0 29
50 94,
6 14
0
45
563 0,002
945 8
31
П20- 28
0,000
8
35-7к
00 10
00 53
0 29
65 94,
4 1360
900 0,003
11
475 0,002
67
32
П21- 33
0,001
0,000
1
30-7К
00 63
00 31
0 55
60 94,
5 3012
0
96
429 0,001
58
33
П21- 40
0,001
0,000
35-5к
00 75
0 37
0 56
40 95
2 3012
0
38
174 0,001
027 10
35-5к
00 для
0 всех
0 20
0 перегрузочная
38
174 027
0
Примечание:
двигателей
способность
=Iдоп/Iн равна 2,4; LЯ=5.5 Uн/2pnнIн –индуктивность якоря.
Расчетные формулы для определения параметров системы управления следующие:
СеФ =
U н  I н  (rа  rд.п. )
ωн
, где: Rя = ra + rдп , н= nн/30;
J R
1
L
GD 2
; Тя = я ; Тм = д я2 , где: J д 
.
4
Rя
СеФ
СеФ
1. Принимая во внимание, что САУ электроприводом с применением ПИД- или ПИрегулятора будет астатической, то требуемое значение коэффициента усиления
датчика скорости Кдс можно найти по формуле:
Uз = 10 = Кдс н
Кдс = 10/ н.
2. При настройке системы на модульный оптимум не скомпенсированной малой
постоянной времени будет Tтп. При этом передаточную функцию регулятора скорости
следует принять в виде:
Wрс(р)= (TяTмр2 + Тмр +1)/ Ти р.
Тогда передаточная функция разомкнутой скорректированной
системы будет иметь вид:
к у к тп к д к дс
1
Wраз (р) 

,
2Т тп р(Т тп р  1) Т и р(Т тп р  1)
Kд =
Откуда определяется величина Ти регулятора скорости. Структурная схема ПИДрегулятора приведена ниже.
109
где: ks = (TяТм/Ти)s, K=Тм/Ти , К/s = 1/Тиs – параметры ПИД-регулятора.
3. Коэффициент компенсации b, обеспечивающий астатизм второго порядка по
управлению, можно определить в соответствии с выражением: 1 – b ктпкдкдс=0.
В этом случае из числителя передаточной функции по ошибке от управляющего
воздействия можно вынести оператор Р, что соответствует повышению порядка астатизма
на 1.
4. Величину постоянной заводки задатчика интенсивности, позволяющего плавно
разгонять нагруженный электропривод с максимально-допустимым динамическим
моментом можно рассчитать из основного уравнения движения:
Мд - Мс = Jд d/dt, где: Мд = Iн (СмФ); Мс = Iн (СмФ); (СмФ)=(СеФ); d=н.
Тогда dt = tпуска.
Uз
10
tпуска
t
5. Для определения скоростной ошибки по моменту нагрузки необходимо взять
передаточную функцию по ошибке от возмущающего воздействия без учета
компенсирующего устройства по управляющему воздействию.
6. Смоделировать САУ с применением пакета SyAn и провести экспериментальные
исследования для подтверждения расчетов по пунктам 15.
Модель двигателя постоянного тока в зависимости от соотношения постоянных
времени якорной цепи представляется или колебательным звеном, или апериодическим 2го порядка, т.е.:
Wдпт(р)=(р)/Uд (р)=Кд/(TяTмр2 + Тмр +1)=Кд/(Т1р + 1)(Т2р + 1) если 4Тя Тм;
Wдпт(р)=(р)/Uд (р)=Кд/(TяTмр2 + Тмр +1)=Кд/(Т2р2 + 2Тр + 1) если 4Тя Тм,
где:
T  Tя Tм ,  
1
- параметры колебательного
2 Tя / Tм
звена.
Структурная схема ДПТ для исследования влияния нагрузки может быть
представлена в виде (для случая 4Тя Тм):
где форс. - Rя(Tяр +1) /(СеФ).
110
В отчете по лабораторной работе должны быть представлены л.ч.х. и графики
переходных процессов по управлению и возмущению в скорректированной
комбинированной системе.
Практическое занятие №14 Исследование САУ с наблюдающим
устройством идентификации
Цель: получение практических навыков настройки адаптивного регулятора.
Задание: для системы управления скорости двигателя постоянного тока (ДПТ) с
независимым возбуждением применено адаптивное наблюдающее устройство
идентификации рис. 3.
Структурная схема
Рег. скорости

iя
зад

К’рс
(-)
Кдс
К’’рс

(-)

1


Кдс( - )
Наблюдающее устройство
Рис.3.
Предполагается, что контур тока настроен на модульный оптимум с ПИ –
регулятором, и передаточная функция замкнутого контура тока имеет вид
1/(2Т р + 1).
Принять величину нескомпенсированной малой постоянной времени Т =0.02 с.
Для простоты считаем, что в замкнутой следящей системе обратной связью по ЭДС
двигателя можно пренебречь и момент нагрузки отсутствует.
Электропривод
представляет из себя нестационарную систему, т.к. могут меняться или приведенный
момент инерции Jд, или параметры якорной цепи - Kд, Rяц. В качестве управляющего
воздействия на нестационарную часть объекта рассматривается ток двигателя Iя, а в
качестве выходной координаты – скорость двигателя . Предположим, линейная часть
объекта неизвестна и имеет передаточную функцию
W(p) = я = b/p, где b =RяцКд/Тм.
111
Требуется:
1. Применяя П-регулятор скорости, рассчитать его передаточный коэффициент Крс
при условии настройки на модульный оптимум. Разделить его на два сомножителя,
представляющие постоянную и переменную величины.
2. Построить модель САУ скоростью электропривода без адаптивного наблюдающего
устройства и получить основной переходный процесс по скорости, определить его
параметры с рассчитанным в п.1 коэффициентом Крс.
3. Исследовать влияние на параметры основного переходного процесса изменений
момента инерции в САУ.
4. Построить модель адаптивного наблюдающего устройства и опытным путем найти
коэффициенты  и  из условия протекания в системе процесса оценки быстрее
основного переходного процесса.
5. Исследовать влияние на параметры основного переходного процесса изменений
момента инерции в САУ с адаптивным наблюдающим устройством.
Порядок выполнения работы
Исходные данные объекта управления ( электропривода) взять из лабораторной работы
«Исследование САУ с комбинированным управлением».
1. Для приведенной на рис.1 структурной схемы при настройке контура тока на МО
(модульный оптимум) требуемый коэффициент регулятора скорости рассчитывается по
формуле (для получения МО в контуре скорости):
K рс 
Тм
.
4Т  К д R яц К дс
Разделить Крс на два сомножителя Крс=К’рсК’’рс,
где К’рс =
1/4ТКдс – постоянная величина,
а К’’рс = Тм /Кд Rяц – переменная величина.
2. Подавая на вход САУ скоростью электропривода единичное ступенчатое воздействие,
убедиться, что на выходе (скорость) будет переходный процесс с перерегулированием не
более 4,3 % и временем  20 Т . Также вывести значение тока якоря двигателя.
3. Момент инерции Jд определяет значение постоянной времени Тм , поэтому, изменяя в
объекте управления Тм в пределах (0.52.0) Тм, оценить (построить) зависимости
перерегулирования (колебательности) и времени регулирования от момента инерции
САУ.
4. При построении адаптивного наблюдающего устройства в общем случае объект
управления характеризуется передаточной функцией любого порядка. Но степень
числителя ее должен быть по крайней мере на единицу меньше степени знаменателя
Wo ( p) 
y
B p n 1  B1p n  2  
 no
.
u
p  A1p n 1    A n
Коэффициенты Аi и Вi могут быть неизвестны и подлежат восстановлению.
Разделив числитель и знаменатель передаточной функции объекта на полином (n-1)
степени (р+2) (р+3) (р+n), где 2, 3,n – действительные и отрицательные корни, и
разложив числитель и знаменатель на простые дроби, а также учтя первый корень 1,
получим
y
1 
1
1   '
1
1  
u   a 1  a 2
 y ,
   bn
 an
 b1  b 2
p  1 
p  2
p  n  
p  2
p   n  
где а’1=а1+1, а1=(2++n) – А1, b1=B0. Остальные коэффициенты bi и ai связаны
сложными полиномами с параметрами Ai , Bi и I и здесь не приводятся. На основании
112
полученного уравнения можно построить структурную схему наблюдающего устройства
(рис.4).
Структурная схема наблюдающего устройства
Рис.4
ˆ i - промежуточные
где: aˆ i , bˆ i - оценочные значения параметров аi и bi; zˆ i , w
переменные; I, I – коэффициенты усиления цепей адаптации, предназначенные для
настройки параметров â i и b̂ i . Они выбираются из условия обеспечения минимального
времени адаптации при одновременном обеспечении устойчивой работы наблюдателя.
Для объекта первого порядка, исследуемого в данной лабораторной работе, алгоритм
работы наблюдающего устройства может быть описан уравнениями
de
 i я  K дс ,
dt
где: е= -  и =( RяцКд/Тм) - (RяцКд/Тм).
d
 K дс i я e.
dt
Асимптотическую устойчивость наблюдающего устройства можно проверить с
помощью функции Ляпунова в виде положительно-определенной квадратичной формы:
V
1 2 1 1
e 
2.
2
2 K дс
Набрать модель наблюдателя (рис.5) и, изменяя значения параметров (100010000)
и (5002000), добиться устойчивой его работы, при этом время адаптации должно быть
намного меньше времени переходного процесса, полученного в п.2.
Модель наблюдающего устройства
113
Рис.5
Удостовериться, что в точке D значение оцениваемого параметра равно заданному в
объекте.
Собрать полную модель системы регулирования совместно с наблюдающим
устройством и для различных Jд получить переходные процессы по скорости и току
двигателя. Переходные процессы по скорости должны быть одинаковыми.
На рис.6 приведена полная схема электропривода с адаптивным наблюдающим
устройством. Следует при моделировании задаться начальными условиями интегратора с
параметром . При этом принять начальные условия, близким или  КдRяц/(Tм).
Модель ЭП с наблюдателем
Объект
наблюдате
ль
Рис.6
В отчете по лабораторной работе должны быть представлены структурные схемы,
модели и переходные процессы исследуемой системы при различных значениях
параметров объекта.
114
Практическое занятие №15 Исследование одномерной
экстремальной САУ
Цель: получение практических навыков настройки экстремального регулятора.
Экстремальные системы целесообразно применять в следующих случаях:
1) если существует показатель качества, с изменением которого происходит
достаточно ощутимое изменение технико-экономической эффективности;
2) когда выгоды от увеличения технико-экономической эффективности существенно
компенсируют затраты, обусловленные применением принципа экстремального
управления;
3) если существуют возможности определения экстремума функционала качества и
воздействия на регулирующие органы объекта с целью получения экстремального
режима его работы.
Экстремальное управление применяют также в сложных системах комплексной
автоматизации. При этом ставится задача определения оптимальных настроек локальных
регуляторов автоматических систем из условия экстремума некоторого показателя
качества в статических или установившихся режимах при различных возмущениях,
нарушающих экстремальный режим. На рис.7 представлена система с запоминанием
экстремума.
Управляющее воздействие на линейную часть объекта (ЛЧО) системы формируется
в результате выявления разности между текущим значением показателя качества и его
экстремальным значением. В качестве регулятора (Р) чаще всего используется
сервопривод. Для определения экстремального значения показателя качества используют
запоминающее устройство (ЗУ), включаемое параллельно каналу, через который проходит
сигнал текущего значения показателя качества.
Функциональная схема одномерной релейной
экстремальной САУ
Рис.7
ЗУ реагирует только на увеличение сигнала Q (при максимуме). До тех пор, пока
максимум не достигнут, сигналы, поступающие на элемент сравнения, равны и их
разность равна нулю. После достижения экстремального значения Qmax показатель
качества при дальнейшем увеличении сигнала X на входе экстремального звена будет
уменьшаться. В результате этого появится сигнал на входе логического устройства (ЛУ),
формирующий сигнал управления U = h0 sign (Q — Qmax) и воздействующий на систему
так, чтобы происходило уменьшение сигнала X и возрастание показателя качества Q.
После срабатывания ЛУ сигнал поступает на стирание Qmax в ЗУ. Далее процесс поиска
115
экстремума повторяется. Система с запоминанием экстремума является релейной,
поэтому протекающие в ней процессы будут иметь колебательный характер. Амплитуда
колебаний показателя качества определяется величиной зоны нечувствительности
релейного элемента, формирующего сигнал управления в функции разности Q — Qmax.
Достоинством систем с запоминанием экстремума является сравнительно небольшая амплитуда колебаний параметров в процессе поиска. К недостаткам этих систем
относится необходимость применения стабилизирующих устройств, входящих в ЛУ.
Объясняется это тем, что при влиянии помех, например, смещающих экстремальную
характеристику вверх, сигнал на входе ЛУ будет равен нулю, и изменения знака
управляющего сигнала не произойдет. В результате этого принцип работы системы
нарушается. Для обеспечения устойчивости работы системы используют специальные
способы стабилизации. С целью улучшения процессов в экстремальных системах данного
типа на вход ЗУ можно подавать кроме сигнала Q его производные и предусматривать
соответствующие устройства связи выхода ЛУ с ЗУ. Системы с запоминанием экстремума
наиболее целесообразны для малоинерционных объектов, имеющих высокочастотные
помехи.
Задание:
1.
Применяя пакет прикладных программ SyAn построить модель
экстремальной системы, представленной на рис.7. ЛЧО принять в виде
апериодического звена 1-го порядка с коэффициентом усиления 1и постоянной
времени То. Экстремальная статическая характеристика имеет вид: Q* = - КX*2 .
Регулятор представляет собой идеальный интегратор
1/(Ти p). ЛУ взять в виде
трехпозиционного реле с зоной нечувствительности (амплитуда 1, а скважность 
изменяется от 0 до 1).
2.
Исследовать влияние на показатели качества САУ величины Ти , То и .
3.
С целью улучшения качества работы экстремальной системы применить
динамический преобразователь (ДП) в виде реального дифференцирующего звена.
4.
Провести настройку и исследование качества с быстродействующим
экстремальным регулятором.
Порядок выполнения работы
Параметры объекта и регулятора задаются преподавателем.
Основными показателями качества процессов поиска релейных одномерных
экстремальных систем являются: время поиска экстремума, амплитуда и период
колебаний, потери на поиск экстремума. Эти системы характеризуются наличием
поисковых колебаний («рысканий») около экстремума. Из рис. 7,а устанавливаем, что при
постоянной скорости изменения входной переменной в интервале 0.5Т*i  t Т*i
X* =K1t, где K1= tg .
Диаграмма «рыскания»
Рис. 7
Период Т*i «рысканий» системы определяется моментом переключения реле рис.
2,б. Тогда отклонение экстремального параметра на одном участке периода:
116
Q* = - K K12 t2.
Скорость изменения этого отклонения на участках между переключениями 0.5Т *i 
t Т*i определяется производной
dQ*/dt = - 2K K12 t.
Среднее за период поиска «рыскания» значение отклонения экстремального
параметра называют потерей на поиск (см. рис.7,б):
D* =-K(K1T*i)2/12.
Амплитуда колебаний экстремального параметра получается подстановкой (см.
рис.7,б) t = 0,5 T*i :
Q* = - 0.25 K (K1 Т*i )2,
т.е. амплитуда «рысканий» в три раза больше потерь на «рыскание»:
Q* = 3 D*.
Амплитуда колебаний и потери на поиск зависят от формы экстремальной
характеристики и нелинейно зависят от периода колебаний.
Чтобы улучшить качество работы экстремальных систем, необходимо повысить их
быстродействие (уменьшить время выхода на экстремум после смещения характеристики
объекта), уменьшить амплитуду автоколебаний и снизить потери на поиск. Для этого
применяют известные методы коррекции автоматических систем. Специфика экстремальных систем, имеющих нелинейные звенья, обусловливает сложность задач синтеза
корректирующих устройств.
В ряде случаев для улучшения качества работы экстремальных систем используют
инженерные рекомендации [7]. Например, для уменьшения времени поиска в системах с
запоминанием экстремума и с коммутатором (см. рис. 8) А. П. Юркевич предложил
применять динамический преобразователь входного сигнала экстремального регулятора в
виде реального дифференцирующего звена, который выполняет роль последовательного
корректирующего устройства, включаемого между выходом одномерного объекта (О) и
экстремальным регулятором (ЭР) — рис. 8, а.
Динамический преобразователь
Рис. 8
Структура динамического преобразователя (ДП) представлена в виде безынерционного
звена, охваченного отрицательной обратной связью, содержащей идеальный интегратор
[9]:
117
Wдп(р) = Кдп /(1+ Кдп /р Tдп),
коэффициент передачи и постоянная времени динамического
где Кдп и Тдп преобразователя.
Рассмотрим процесс поиска экстремума системы с запоминанием экстремума и
динамическим преобразователем ( рис. 8,6). Пусть начальная точка работы экстремальной
системы после смещения характеристики Q(Xэр) соответствует точке А на кривой 1. В
результате действия ЭР сигнал Xэр будет увеличиваться и при величине Х2 значение Q1
= Q (точка а). Затем, после того как Q2 станет больше Q, сигнал Q1 начнет уменьшаться.
Это вызовет срабатывание ЭР при значении сигнала Хэр = Х3 (точка b), осуществляющего
«ложный» реверс. Далее уменьшается сигнал Хэр до величины Х4, когда снова произойдет
реверс ЭР (точка с). При значении Х5 осуществляется последующий «ложный» реверс ЭР
(точка d) и т. д. Введение ложных реверсов ускоряет движение к экстремуму (см. кривую
2 на рис. 8, б). Если характеристика Q (Хэр) дрейфует, то в результате действия ДП и ЭР
система следит за смещением экстремума. Чем меньше инерционность объекта О, тем
эффективнее действие ДП.
Для улучшения процессов поиска экстремума инерционных объектов высокого
порядка, а также нейтральных и неустойчивых объектов В. В. Казакевичем предложен
быстродействующий экстремальный регулятор — ЭРБ [7], в котором осуществляется
поиск экстремума по максимуму производной (dQ/dt)max, реализуемый с помощью
устройства формирования входного сигнала — УФС (рис. 9, а), представляющего собой
автоматический компенсатор. Скорость компенсации при этом настраивается
соответственно свойствам объекта.
В отличие от динамического преобразователя УФС имеет нелинейную обратную
связь (реверсивный двигатель автоматического компенсатора). На линейных участках
характеристики  (Q1) структурная схема УФС эквивалентна структурной схеме ДП. В
пределах зоны нечувствительности характеристики  (Q1) сигнал производной dQ/dt = 0.
Устройство формирования сигнала
Рис.9
Это означает, что при медленном изменении сигнала Q (при медленном смещении Q
(X) и при малом наклоне характеристики Q (X) вблизи экстремума) на вход
экстремального регулятора будет поступать сигнал, пропорциональный параметру Q, без
его производной. Следовательно, ЭРБ обеспечивает слежение за экстремумом при
медленном изменении Q и форсированно выводит объект в область экстремума при
быстром смещении характеристики Q (X).
Рассмотрим процесс поиска экстремума системы с ЭРБ и коммутатором. Пусть
начальная точка работы экстремальной системы после смещения характеристики Q (Хэр)
соответствует точке А на кривой 1 (рис. 9, б). В результате действия коммутатора и УФС
при значении X 2 происходит ложный реверс (точка a), а при значении Хз - последующий
реверс от действия УФС (точка b). При значении Хэр = = Хэ производная dQ/dt достигает
118
максимума. После того как Q2 станет больше нуля, сигнал Q1 уменьшится и при Хэр = Х4
ЭРБ произведет ложный реверс (точка c). Затем при Х5 произойдет реверс от действия
УФС (точка d) и т. д. Система форсированно выводит объект в область экстремума
(кривая 2 на рис. 9, б). Вблизи экстремума при малой величине dQ/dt система перейдет на
поиск экстремума по параметру Q.
В процессе форсированного поиска система с ЭРБ не переходит на
противоположную ветвь характеристики Q (Хэр), поэтому время поиска для инерционных
объектов по сравнению с регуляторами без ЭРБ уменьшается на порядок без ухудшения
качества установившихся режимов.
Рассмотренные основные методы улучшения качества работы экстремальных
систем применяются при разработке как одномерных, так и многомерных систем.
На Рис.10 представлена одна из возможных моделей экстремальной САУ без УФС
и ДП.
Модель экстремальной САУ
Рис.10
В отчете по лабораторной работе привести как временные так и фазовые
характеристики поиска экстремума. Кроме того в выводах по работе должен содержаться
сравнительный анализ влияния на показатели работы экстремальной системы ее
параметров и методов поиска.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Советов, Б.Я. Моделирование систем: Учеб. для вузов – 3-е изд.,перераб. и доп./Б.Я.Советов,
С.А.Яковлев. – М.: Высш. шк., 2001. –343 с.: ил.
2. Веников, В.А. Теория подобия и моделирование/ В.А. Веников, Г.В.Веников . – М.: Высш. шк.,
1984. –243 с.: ил.
3. Кор шунов, Ю.М. Математические основы кибернетики: Учеб. пособие для
вузов/Ю.М.Коршунов. - М.: Энергоатомиздат, 1987.- 496 с.: ил.
4. Бусленко, Н.П. Моделирование сложных систем/Н.П.Бусленко.-М.: Наука, 1978.-399 с.: ил.
5. Справочник проектировщика АСУ ТП/ Г.Л.Смилянский, Л.З.Амлинский, В.Я.Баранов и др.; Под
ред. Г.Л.Смилянского.-М.:Машиностроение, 1983.-527 с.: ил.
6. Шеридан, Т.Б. Системы человек – машина. Модели информации, управления и принятия
решений человеком – оператором: Пер. с англ./Т.Б. Шеридан, У.Р.Феррелл. - М.:
Машиностроение, 1980. - 400 с.: ил.
7. Казакевич, В.В. Системы автоматической оптимизации /В.В.
Казакевич, А.Б. Родов.- М.: Энергия, 1977.- 384 с.: ил.
8. Иващенко, Н.Н. Автоматическое регулирование/Н.Н.Иващенко. - М.: Машиностроение, 1978. 609 с.: ил.
9. Куропаткин, П.В. Оптимальные и адаптивные системы/П.В.Куропаткин. –М.: Высш. шк., 1980. –
288 с.
10.Топчеев,
Ю.И.
Атлас
для
проектирования
систем
автоматического
регулирования/Ю.И.Топчеев. - М.: Машиностроение, 1989. - 752 с.: ил.
11.Сю, Д. Современная теория автоматического управления и ее применение: Пер. с англ./Д.Сю,
А.Мейер. -М.: Машиностроение, 1972. –552 с.: ил.
119
12. Официальный сайт МИРЕА. Режим доступа:
http://www.cpd.mirea.ru/
СОДЕРЖАНИЕ
Стр
1. Исследование системы с нечетким управлением….…...3
2. Исследование САУ с комбинированным
управлением………………………………………………15
3. Исследование САУ с наблюдающим устройством
идентификации ……………..…………………………..21
4. Исследование одномерной экстремальной САУ……….27
МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ИЗУЧЕНИЮ ДИСЦИПЛИНЫ
ВВЕДЕНИЕ
Моделирование - один из наиболее распространенных подходов к изучению различных
процессов и явлений. Создание сложных систем, производственных комплексов, систем
управления этими комплексами часто требует использования знаний о количественных и
качественных закономерностях, свойственных рассматриваемым системам. Главными
проблемами при этом являются общесистемные вопросы, включающие: определение
структуры, организацию взаимосвязи между элементами, взаимодействие с внешней средой,
управление функционированием как всей системой, так и ее отдельными элементами.
Приведенный перечень проблем, являющийся далеко не полным, относится к задачам
системного анализа и системного моделирования.Часто, к сожалению, разработчик быстро
убеждается в том, что классические методы прикладной математики не всегда удается
успешно использовать для исследования сложных систем. Поэтому всё чаще приходится
применять нетрадиционные методы исследования: имитационное, аналитическое и нечеткое
моделирования.
1.1. ОБЩИЕ ВОПРОСЫ ТЕОРИИ МОДЕЛИРОВАНИЯ
Центральными понятиями системного моделирования являются система, системный
подход, структура системы, модель, теория моделирования.
Под системой обычно понимается совокупность объектов, элементов или составляющих
произвольного характера, образующих в некотором смысле определенную целостность.
Кроме того, часто используется термин сложная (большая) система. В этом случае
предполагается, что в системе имеется большое количество связанных и взаимодействующих
между собой элементов, обеспечивающих выполнение системой определенной достаточно
сложной задачи. Примеры сложных систем, встречающиеся в окружающем мире, можно
120
перечислять достаточно долго. Это и компьютер, и автомашина, и телефонный аппарат, и
автоматизированная система, и вычислительная система, и деканат, и производственный
комплекс, и так далее.
Понятие элемента системы и расчленение ее на отдельные компоненты является
относительным. Формально элементом можно считать объект, не подлежащий дальнейшему
расчленению на части. Например, рассматривая в качестве сложной системы
вычислительную сеть, можно считать ее элементами отдельные компьютеры. Если же
сложной системой служит компьютер, то элементами можно считать процессор, память,
монитор и так далее.
Системный подход заключается в том, что исследователь пытается изучать поведение
системы в целом, а не концентрировать свое внимание на отдельных ее частях. Такой подход
основывается на признании того, что если даже каждый элемент или подсистема имеет
оптимальные конструктивные или функциональные характеристики, то результирующее
поведение системы в целом может оказаться лишь субоптимальным вследствие
взаимодействия между ее отдельными частями. Возрастающая сложность организационных
систем и потребность преодолеть эту сложность привели к тому, что системный подход
становится все более и более необходимым методом исследования.
Обычно приводят такой пример: «Архитектор может рассматривать дом вместе с его
электрической, отопительной и водопроводной системами как одну большую систему. Но
инженер-теплотехник вправе рассматривать отопительную систему как законченную систему,
а дом как окружающую среду. Для социопсихолога дом может рассматриваться как среда,
окружающая семью, а последняя - как система, исследованием которой он занимается. Для
него связь между отопительной и электрической системами может не иметь никакого
значения, но для архитектора эта взаимосвязь может быть очень важной». Таким образом,
необходимо проявлять значительную осторожность при определении изучаемой системы и её
границ с окружающей средой.
Определенная совокупность элементов рассматриваемой системы может представляться как
ее подсистема. Считается, что к подсистемам относят некоторые самостоятельно
функционирующие части системы. Поэтому для упрощения процедуры исследования
первоначально необходимо грамотно выделить подсистемы сложной системы, то есть определить ее структуру.
Структура системы - это устойчивая во времени совокупность взаимосвязей между ее
компонентами (подсистемами). И при системном подходе важным этапом является
определение структуры изучаемой, описываемой системы. Это связано с тем, что грамотное
выделение подсистем способствует упрощению процедур исследования и анализа
результатов.
В исследовании структуры системы существует ряд направлений, основными из которых
являются структурный и функциональный подходы. Названия подходов уже говорят о смысле
и содержании используемых методик. Структурный подход подразумевает описание состава
элементов системы и связи между ними. Функциональный подход заключается в
исследовании отдельных алгоритмов ее поведения.
В сложных системах одной из главных является задача управления, которая представляет
собой процесс сбора, передачи и переработки информации, осуществляемый специальными
средствами. От элементов системы к управляющим устройствам поступает осведомительная
информация, характеризующая состояния элементов системы. Кроме того, средства
управления могут получать информацию извне в виде управляющих команд от вышестоящих
органов управления или воздействий внешней среды. Управляющие устройства
перерабатывают всю поступающую к ним информацию. В результате этой переработки
синтезируются управляющие команды, которые изменяют состояния и режимы
функционирования элементов системы.
Реальные сложные системы обычно функционируют в условиях воздействия на них большого
количества случайных факторов, в качестве источников которых могут быть внешние
(соседние) системы, стоящие на других уровнях иерархии. Кроме того, случайными
факторами воздействия могут быть ошибки, шумы и отклонения различных величин внутри
системы. Внешние и внутренние случайные воздействия, естественно, влияют на режимы
работы элементов системы и могут существенно менять характер ее функционирования.
На основании сказанного можно перечислить основные отличительные признаки сложных
систем:
1. Наличие большого количества взаимно связанных и взаимодействующих между собой
элементов.
121
2. Сложность функции, выполняемой системой и направленной на достижение заданной цели
функционирования.
3. Возможность разбиения системы на подсистемы, цели функционирования которых
подчинены общей цели функционирования всей системы.
4.Наличие управления (часто имеющего иерархическую структуру), разветвленной
информационной сети и интенсивных потоков информации.
5. Наличие взаимодействия с внешней средой и функционирование в условиях воздействия
случайных факторов.
В соответствии с пунктами 1 -3 перечисленных признаков считают, что сложная система,
рассматриваемая как совокупность объектов (элементов, подсистем), предназначена для
выполнения определенных работ или решения некоторого класса задач. Поэтому процесс
функционирования сложной системы является совокупностью действий ее элементов,
подчиненных единой цели.
Если цели и задачи системы определены, можно ставить вопрос об определении качества ее
функционирования, которое оценивается при помощи показателя эффективности. Это
такая числовая характеристика, которая, с одной стороны, оценивает степень
приспособленности системы к выполнению поставленных перед нею задач, а с другой, –
существенно влияет на результаты ее исследования.
Для пояснения сказанного можно рассмотреть некоторый производственный процесс. При
описании целей и задач необходимо указать перечень изделий, для выпуска которых
предназначена данная система. Но, приведя только этот перечень, невозможно получить
сведения для определения оценки качества функционирования. Если выбрать в качестве
показателя эффективности рассматриваемого производственного
процесса производительность, измеряемую количеством изделий, выпускаемых в течении
фиксированного интервала времени (смена, неделя, месяц), то может оказаться, что
формально будет отдаваться предпочтение факторам, способствующим достижению
максимальной производительности. Это может привести к ухудшению других характеристик
производственного процесса (экономия сырья, износ оборудования, расход энергии). Если же
в качестве показателя эффективности использовать себестоимостьпродукции, то, наоборот,
экономия сырья, износ оборудования, расход энергии и фонда заработной платы будут иметь
важное значение, в тоже время окажется, что производительность может вообще не
учитываться.
В итоге для производственного процесса необходимо выбирать такие показатели
эффективности, которые учитывают как себестоимость продукции, так и производительность
оборудования, например величину прибыли, рентабельность.
Для того чтобы показатель эффективности полно характеризовал качество работы системы,
должны учитываться все основные особенности и свойства системы, а также условия ее
функционирования и взаимодействия с внешней средой. Таким образом, показатель
эффективности должен зависеть от структуры системы, значений ее параметров, характера
воздействия внешней среды, внешних и внутренних случайных факторов.
На основании сказанного, показатель эффективности определяется процессом
функционирования системы. Он отражает поведение системы во времени и может быть
представлен как последовательное изменение ее состояний. Если система изменяет одно
свое состояние на другое, то говорят, что система переходит из одного состояния в другое.
Поэтому можно представить множество возможных процессов функционирования системы,
элементы которого отличаются друг от друга за счет различных условий и режимов работы
системы. Каждому элементу этого множества ставится в соответствие элемент другого
множества, а именно множества значений показателя эффективности системы. Так как
значения показателя представляют собой действительные числа, то можно говорить об
отображении множества процессов функционирования системы на множество
действительных чисел, заключенных внутри некоторого интервала (в пределах изменения
значений показателя эффективности). На основании сказанного показатель эффективности
можно считать функционалом от процесса функционирования системы.
В связи с тем, что сложные системы работают в условиях действия случайных факторов,
значения функционалов оказываются случайнымивеличинами. Это создает некоторые
сложности и поэтому при выборе показателя эффективности пользуются средними
значениями соответствующих функционалов. Примерами таких средних значений
функционалов служат средние количества изделий, выпускаемых за смену, средняя
себестоимость продукции, средняя прибыль (для производственных процессов), средняя
122
длительность поездки, средняя стоимость перевозки (для транспорта), среднее время
ожидания в очереди (для систем массового обслуживания).
Иногда в качестве показателя эффективности используются вероятности некоторых
случайных событий, например вероятность успешной посадки самолета (для системы слепой
посадки), вероятность застать абонентскую линию занятой (для систем телефонной связи),
вероятность попасть в очередной автобус (для пассажира, находящегося в очереди).
Модель (лат. modulus – мера) является представлением объекта, системы или понятия
(идеи) в некоторой форме, отличной от формы их реального существования. Модель обычно
служит средством, помогающим в объяснении, понимании или совершенствовании системы.
Можно ознакомиться с несколькими определениями этого понятия, приведенными
различными авторами.
Модель– это используемый для предсказания и сравнения инструмент, позволяющий
логическим путем спрогнозировать последствия альтернативных действий и достаточно
уверенно указать, какому из них отдать предпочтение.
Модель– это некоторое представление о системе, отражающее наиболее существенные
закономерности ее структуры и процесса функционирования и зафиксированное на
некотором языке или в некоторой форме.
Модель– это объект-заместитель объекта-оригинала, обеспечивающий изучение некоторых
свойств оригинала.
Замещение одного объекта другим с целью получения информации о важнейших свойствах
объекта-оригинала с помощью объекта-модели называется моделированием. Это один из
наиболее распространенных способов изучения различных процессов и явлений.
Существует много подходов к классификации методов и приемов моделирования, но
основным является подразделение на физическое иматематическое моделирование.
При физическом моделировании модель воспроизводит изучаемый процесс (оригинал) с
сохранением его физической природы и поэтому, конечно, имеет ограниченное применение.
Математическое моделирование - это способ исследования различных процессов путем
изучения явлений, имеющих различное физическое содержание, но описываемых
одинаковыми математическими соотношениями.
Под математической моделью реальной системы понимают совокупность
соотношений (например, формул, уравнений, неравенств, логических условий,
операторов), определяющих характеристики состояний системы (а через них и
выходные сигналы) в зависимости от параметров системы, входных сигналов,
начальных условий и времени.
Можно перечислить следующие основные способы использования (исследования)
математической модели:
Аналитическое исследование процессов.
Исследование процессов при помощи численных методов.
Моделирование процессов на ЭВМ.
Конечно, первые два подхода в настоящее время немыслимы без реализации всего процесса
или некоторых его элементов на компьютерах. Но всё же есть потребность в выделении
третьего подхода в самостоятельное направление.
Методы, изучаемые в данном курсе, относятся ко всем трём направлениям. Аналитическому
исследованию посвящено аналитическое моделирование (тема 1.1.3 рабочей программы).
Исследовать процессы при помощи численных методов предлагается студенту при изучении
имитационного моделирования (тема 1.1.2) тем более, что этот подход является
разновидностью численных методов решения задач. И при освоении методики нечеткого
моделирования (тема 1.1.4) осуществляется именно моделирование на ЭВМ, так как без
компьютера оно нереализуемо. При этом в различных темах возможно использование
следующих программных средств: MAPLE, MATLAB, GPSS, CubiCalc, FuziCalc, FIDE.
Вопросы для самопроверки
1. Какие цели преследует моделирование?
2. Дайте определение математической модели.
3. Опишите методику составления моделирующего алгоритма.
1.2. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
123
Метод имитационного моделирования является принципиально новым численным методом
решения задач, который не накладывает никаких ограничений на сложность задачи и
позволяет учитывать в модели любое число cущecтвенных факторов. Поэтому данный метод
– практически единственный приемлемый метод получения численного решения тех задач,
которые трудно сформулировать аналитически. Суть этого метода заключается в том, что
операция, исход которой определяется случайными факторами, представляет собой
случайный процесс. Приближенное значение его вероятных характеристик может быть
найдено путем проведения натурного эксперимента с последующей статистической
обработкой результатов отдельных наблюдений, для чего данная операция должна быть
проведена многократно в заданных фиксированных условиях. Каждое наблюдение является
реализацией случайного процесса, а отдельный результат наблюдения - случайной
величиной, подчиненной тому закону распределения, который и отыскивается при
проведении эксперимента.
Методом имитационного моделирования могут быть решены вероятностные задачи любой
сложности, если известны вероятностные характеристики параметров исследуемого процесса
и их взаимосвязи. Практическим ограничением может являться только требование очень
высокой точности результата, так как последнее связано с получением статистической
выборки большого объема, что потребует выполнения большого числа реализаций процесса.
Время выполнения каждой реализации в значительной степени определяется способом
формирования случайных чисел, которые используются как случайные параметры реального
процесса. Рациональные способы получения таких чисел обеспечивают решение методом
имитационного моделирования задач большой сложности, в том числе задач моделирования
процесса функционирования сложных систем управления.
При моделировании сложных систем для удовлетворения требований точности проводится
большое количество испытаний, что сопряжено со значительными затратами машинного
времени для хранения информации о состояниях системы, усложняет последующую
обработку и анализ результатов. Отсюда следует необходимость такой организации
вычислительного процесса, при которой оценки интересующих параметров могли бы быть
получены в ходе моделирования и не требовали бы сохранения и последующей переработки
больших объемов данных.
Следует помнить, что значительное количество операций расходуется на действия со
случайными числами. Поэтому с уверенностью можно сказать, что наличие простых и
экономных способов формирования последовательностей случайных чисел во многом
определяется возможностью практического применения этого метода. В качестве исходной
совокупности случайных чисел, используемых для образования случайных элементов
различной природы (таких, как случайные события, случайные величины и случайные
процессы), необходимо выбирать такую совокупность, которая может быть получена с
наименьшими, по возможности, затратами машинного времени и, кроме того, обеспечивает
простоту и удобство дальнейших преобразований. Считается, что этим требованиям
удовлетворяет совокупность случайных чисел с равномерным распределением в интервале
(0, 1). Наибольшее распространение получили так называемые программные генераторы этих
случайных чисел, реализуемые на ЭВМ при помощи специальных программ. Разработаны
специальные тесты, позволяющие осуществить статистический анализ качества
последовательности случайных чисел и выявить те или иные отклонения. На этом пути
проводится сравнительная оценка способов формирования случайных чисел и выбираются
для практического использования наиболее точные и экономичные способы.
Студенту следует обратить внимание на то, что существуют два основных пути
преобразования случайных величин, имеющих равномерное распространение в интервале (0,
1), в возможные значения случайных величин, закон распределения которых задан. Один из
них — так называемый прямой — состоит в реализации некоторой операции, формирующей
число уi над числом хi имеющим (точно или приближенно) заданный закон распределения.
Другой основывается на моделировании условий соответствующей предельной теоремы
теории вероятностей.
Кроме того, при изучении данной темы необходимо особое внимание уделить структуре
моделирующих алгоритмов одно- и многоканальных СМО, освоить методику моделирования
СМО на ЭВМ. Необходимо учесть, что наличие имитационной модели, реализованной на
ЭВМ, позволяет провести интересные в теоретическом и практическом отношении
исследования СМО. В первую очередь очевидны пути решения ряда задач анализа системы.
К ним относятся определения показателей эффективности, надежности, помехоустойчивости
124
и другие свойства системы по известным ее параметрам: интенсивности потока требований,
количеству каналов и их характеристикам, времени обслуживания и т. д.
Вопросы для самопроверки
1. Как получить последовательность случайных величин, распределенных по заданному
закону?
2. Как вычислить определенный интеграл методом имитационного моделирования?
3. Как определить вероятность того, что заявка получит отказ при моделировании процесса
функционирования одноканальной СМО?
4. Как преобразовать модель СМО с ограниченным временем ожидания в модель СМО с
отказами?
1.3. АНАЛИТИЧЕСКОЕ МОДЕЛИРОВАНИЕ
В большинстве практических случаев трудно построить точную математическую модель
рассматриваемого процесса, с помощью которой можно было бы найти характеристики
эффективности процесса в зависимости от определяющих параметров. Однако это удается
сделать, когда исследуемая система (задача, процесс) может быть представлена в терминах
марковских случайных процессов.
Пусть рассматривается некоторая физическая система. Под физической системой может
подразумеваться ЭВМ, предприятие, любое техническое устройство, АСУ и т. п. Состояние
этой системы меняется с течением времени (т. е. она переходит из одного состояния в другое
случайным образом). Обычно можно сказать, что в этой системе протекает случайный
процесс. Труднее найти пример системы, в которой происходит неслучайный процесс. В
общем случае можно считать, что случайные воздействия присущи любому процессу. Просто
в связи с трудностью учета этих случайных воздействий часто ими пренебрегают и процесс
рассматривается как детерминированный, неслучайный. И только в том случае, когда учет
случайных факторов непосредственно влияет на результаты исследования, приходится
принимать их во внимание.
Случайный процесс, протекающий в системе, называется марковским (или «процессом без
последствия»), если для любого момента времени t0 вероятностные характеристики процесса
в будущем (при t > t0) зависят только от его состояния в данный момент времени t0 и не
зависят от того, когда и как система пришла в это состояние (т.е. как развивался процесс в
прошлом).
В практической деятельности часто удается с некоторой степенью приближения свести
случайные процессы к марковским. Теория марковских случайных процессов является
разделом теории вероятностей и получила сейчас очень широкое распространение.
Студенту необходимо знать, что случайные процессы можно подразделить на процессы с
дискретными состояниями и на процессы с непрерывными состояниями. Процесс называется
процессом с дискретными состояниями, если возможные состояния системы можно заранее
перечислить (перенумеровать), а переход системы из состояния в состояние происходит
скачком (мгновенно). Примером процесса с дискретными состояниями может быть процесс
перехода технического устройства из одного состояния в другое: исправно, неисправно,
осматривается, ремонтируется и т.д. В качестве примера случайного процесса с
непрерывными состояниями (плавный переход из состояния в состояние) можно привести
процесс изменения напряжения в осветительной сети.
Для наглядности изображения случайных процессов с дискретными состояниями удобно
пользоваться графами состояний. Вершины графа - это состояния системы, а дуги –
возможные переходы из состояния в состояние.
Случайный процесс называется процессом с дискретным временем, если переходы системы
из состояния в состояние возможны только в строго определенные, заранее фиксированные
моменты времени. В промежутках времени между этими моментами система сохраняет свое
состояние.
Случайный процесс называется процессом с непрерывным временем, если переход системы
из состояния в состояние возможен в любой случайный момент времени.
Случайная последовательность событий называется марковской цепью, если для каждого
шага вероятность перехода из любого состоянияSi в любое состояние Sj не зависит от того,
125
когда и как система пришла в состояние Si. Марковская цепь описывается с помощью
вероятностей состоянии.
Обычно ставится следующая задача: найти вероятности состояний системы pi(k) для
любого k. Для этого удобно пользоваться графом состояний системы. При этом марковская
цепь представляется точкой, перемещающейся по графу и перескакивающей из состояния в
состояние в моменты времени t1, t2, …, tk, … или задерживающейся в некоторых состояниях.
Очевидно, что для любого tkсуществуют вероятности перехода системы из
состояния Si в Sj (некоторые из них могут равняться нулю при невозможности перехода), а
также существуют вероятности задержки системы в определенных состояниях. Они
называются переходными вероятностями марковской цепи.
Марковская цепь называется однородной, если переходные вероятности не зависят от
номера шага. В противном случае марковская цепь называется неоднородной.
При использовании графа состояний марковской цепи на нем у стрелок обычно ставят
соответствующие вероятности Pij и такой граф называется размеченным. Вероятности Piiна
таком графе не проставляются в связи с тем, что они легко вычисляются, так как каждая из
них дополняет до единицы сумму вероятностей, соответствующих стрелкам, исходящим из
данной вершины (данного состояния).
Как определить вероятности состояний pi(k) после любого k-го шага, если известны матрица
переходных вероятностей и начальное состояние системы? Пусть известно, что перед
первым шагом (в начальный момент времени) система находится в состоянии Sm. После k-го
шага:
При освоении материала данного раздела необходимо помнить, что марковские процессы
(марковские процессы с дискретными состояниями и непрерывным временем), имея простую
структуру, легко описываются математически. Однако практика показывает, что не все
процессы массового обслуживания являются марковскими. При наличии последействия во
входящем потоке требований или в потоке обслуживания случайный процесс в СМО является
уже немарковским и при этом весь математический аппарат становится значительно более
сложным. В связи с этим разработаны специальные методы исследования немарковских
случайных процессов в СМО, но они выходят за пределы данного курса.
Вопросы для самопроверки
1. Дайте определение марковской цепи.
2. Изложите методику составления уравнений Колмогорова.
3. Составьте систему уравнения Эрланга для конкретного примера.
1.4. НЕЧЕТКОЕ МОДЕЛИРОВАНИЕ
Этот раздел посвящен основам оперирования нечеткими понятиями - нечеткими
множествами, нечеткой логикой. Эти понятия отличаются от традиционной формальной
логики, известной со времен Аристотеля и оперирующей точными и четкими понятиями,
такими как «да» или «нет», «истина» или «ложь», «единица» или «ноль», тем, что нечеткая
логика имеет дело со значениями, лежащими в некотором (непрерывном или дискретном)
диапазоне. Очевидно, что оперировать нечеткими величинами (понятиями) много труднее,
чем двоичными битами. Но жизнь и практика постоянно ставят новые задачи, так как
оказалось, что понятия повседневной деятельности не укладываются в рамки классической
бинарной логики.
Можно привести только несколько примеров из повседневной практики. Какой момент считать
началом жизни живого существа? Какое значение веса отличает толстого человека от худого?
Какую прибыль можно считать средней, какую хорошей, а какую сверхприбылью? Если
формально «загонять» перечисленные понятия в конкретные границы, то это может привести
к значительному усложнению задачи или к недопустимому огрублению предметной области.
Джон фон Нейман (один из основоположников кибернетики) отмечал, что стремление
получить точную, исчерпывающую модель для достаточно сложного объекта (процесса) не
имеет смысла, поскольку сложность такого описания становится соизмеримой со сложностью
самого объекта. Следовательно, использование такой модели не позволит просто и наглядно
объяснить механизм его функционирования, воспользоваться какими-либо стандартными
математическими процедурами для исследования характеристик объекта и синтеза системы
126
управления им. Это особенно относится к таким объектам управления, как производственные
процессы, организационные, транспортные, биологические системы.
Более того, согласно знаменитой теореме FAT (Fuzzy Approximation Theorem) любая
математическая система может быть аппроксимирована системой, основанной на нечеткой
логике.
Становление, развитие и применение теории нечеткой логики и нечеткого управления
началось с 1964 года в результате публикации Л.А. Заде статьи «Нечеткие множества»
(«Fuzzy Sets”).
Выражаясь словами Л.А. Заде, «в большинстве основных задач, решаемых человеком, не
требуется высокая точность. Человеческий мозг использует допустимость такой неточности,
кодируя информацию, «достаточную для задачи» (или «достаточную для решения»),
элементами нечетких множеств, которые лишь приближенно описывают исходные данные.
Поток информации, поступающий в мозг через органы зрения, слуха, осязания и др.,
суживается, таким образом, в тонкую струйку информации, необходимой для решения
поставленной задачи с минимальной степенью точности. Способность оперировать
нечеткими множествами и вытекающая из неё способность оценивать информацию является
одним из наиболее ценных качеств человеческого разума, которое фундаментальным
образом отличает человеческий разум от так называемого машинного разума… Наш мир
состоит не из одних нулей и единиц - нам нужна более гибкая логика для того, чтобы
представлять реальные взаимосвязи… Нужны подходы, для которых точность, строгость и
математический формализм не являются чем-то абсолютно необходимым и в которых
используется методологическая схема, допускающая нечеткости и частичные истины».
Суть данного подхода, получившего название «нечеткой логики» («Fuzzy Logic»), заключается
в следующем: в нем используются так называемые «лингвистические» переменные вместо
обычных числовых переменных или в дополнение к ним; простые отношения между
переменными описываются с помощью нечетких высказываний; сложные отношения
описываются нечеткими алгоритмами.
Прошедшие сорок лет с момента гениальной публикации Л.А. Заде показали, что
методология нечеткого моделирования признана и интенсивно развивается во всем мире. По
этой проблематике уже опубликованы сотни тысяч работ, в том числе и по элементной базе
нечетких компьютеров и контроллеров, инструментальным средствам разработки инженерных
методов расчета и разработки нечетких систем управления и др.
На вопрос: «Что такое нечеткая логика?» обычно дается следующий ответ: «Это технология,
которая обеспечивает разработку систем с помощью интуиции и инженерных знаний «knowhow». Нечеткая логика использует понятия повседневной речи для определения поведения
системы».
Студенту необходимо, восстановив знания по математической логике, освоить методику
применения операций над нечеткими множествами и нечеткими отношениями, понять смысл
использования нечетких продукций и реализации этапов систем нечеткого вывода.
Для манипулирования нечеткими (размытыми, расплывчатыми, неопределенными)
переменными Лотфи Заде ввел специальную логику, в которой факты не только истинны или
ложны, но и могут быть истинны с оценкой, изменяющейся от 0 (ложный факт) до 1
(абсолютно истинный факт). А именно, говорят, что функция f есть нечеткая мера, если она
удовлетворяет следующим свойствам:
- если T - достоверно истинное, а F - достоверно ложное
высказывание, то
f(F) = 0, f(T) = 1;
- для любых недостоверных высказываний A и В
0 < f(A) < 1
и (A  B)  f(A) ≤ F(B).
Это значит, что если кто-то счастлив с оценкой 0, то это очень несчастный человек. Когда же
человек счастлив с оценкой 1, то он безусловно счастлив. И если человек счастлив на 0,4, то
подразумевается, что на 0,6 он несчастлив (например, посетил музей, но не попал в театр).
В основе алгебры нечетких множеств находятся понятия нечеткого множества и нечетких
операций (алгоритмов) над ними.
Нечеткая логика -это логика, в которой высказывание интерпретируется, как имеющее
неточное значение, характеризуемое нечетким множеством, т.е. представляется функцией,
принимающей значение на отрезке [0, 1].
127
Нечетким множеством (fuzzy set) является совокупность элементов произвольного
характера, про которые не удается определенно заявить относятся они или нет к
совокупности элементов данного множества.
Нечеткое множество B - это множество кортежей <x, µB(x)>. Обычно записывают:
B = {<x, µB(x)>}, x X,
где x - элемент универсального множества (универсума) X;
µB(x) - характеристическая функция (или функция принадлежности).
Эта функция µB (x) каждому элементу x X ставит в соответствие определенное
действительное число, принадлежащее интервалу [0, 1]. Когда x X, а µB (x)=1, считают, что
элемент x наверняка принадлежит нечеткому множеству B, если же µB (x)=0 - элемент x
определенно не принадлежит множеству B.
В общем виде для xi  X, i =1, 2,…, n
B = {<x1, µB (x1)>,< x2, µB (x2)>,… ,< xn, µB (xn)>}.
Если для некоторого множества B = {x1, x2, x3, x4, x5, x6} указана мера принадлежности
элементов xi  X, i =1, 6 множеству B :
µB (x1) = 0, µB (x2) = 1, µB (x3) = 0, µB (x4) = 1, µB (x5) = 1, µB (x6) = 0}, то нечеткое множество
представляется так:
B = {<x1, 0>,< x2, 1>,< x3,0>,<x4,1>,< x5,1>,< x6,0>}.
Пусть теперь функция принадлежности µ (x) принимает не только 0 и 1, но и любое значение
a [0, 1], то есть µВ (x3) = a [0, 1]. Благодаря этому элемент xi может или не принадлежать B
(µВ = 0), или быть элементом B в небольшой степени ( µВ близко к 0), или более или менее
принадлежать B (µВ = 0,5), или - в значительной степени быть элементом B (µВ близко к 1),
или, наконец, может быть элементом B (µВ = 1).
Как задают нечеткие множества?
Например, для множества четных натуральных чисел X={0, 2, 4, 6,…} нечеткое множество B «нечеткое число, близкое к нулю», можно задать так:
B = {<0, 1.0>, <2, 0.8>, <4, 0.5>, <6, 0.2>}
или B = {(0, 1.0), (2, 0.8), (4, 0.5), (6, 0.2)}.
Другим способом задания нечеткого множества является графическое представление. В этом
случае в качестве графика представляется зависимость функции принадлежности µВ (x) от
значений самих элементов x нечеткого множества B. Так для указанного множества график
функции можно представить соответствующими точками или, если абстрагироваться от
физического смысла элементов множества, - в виде кривой.
Возможность выполнения операций над нечеткими множествами подразумевает, что
функция принадлежности часто является синонимом нечеткого множества.
Например, пересечением двух нечетких множеств A и B называют третье нечеткое
множество C = A  B, заданное на том же универсуме X, функция принадлежности которого
равна
µ C (x) = min { µA (x), µ B (x)}, x  X.
Это такое множество, элементы которого одновременно содержатся в A и в B:
µC (x) = µA (x)  µ B (x), x  X.
Реализация операции пересечения конечных нечетких множеств A и B выглядит так:
A = {(1, 1.0), (2, 0.9), (3, 0.7), (4, 0.5), (5, 0.3), (6, 0.1)},
B = {(1, 0.2), (2, 0.9), (3, 1.0), (4, 0.9), (5, 0.2), (6, 0)},
C =A  B= {(1, 0.2), (2, 0.9), (3, 0.7), (4, 0.5), (5, 0.2)}.
Объединением двух нечетких множеств A и B называется такое третье нечеткое множество
функция принадлежности которого определяется так:
µD (x) = max { µA (x), µ B (x)}, x  X.
Лингвистическая переменная
Понятие лингвистической переменной используется при описании объектов и явлений с
помощью нечетких множеств. Она используется в нечетком управлении для представления
входных и выходных переменных управляемой системы.
Лингвистическая переменная определяется как кортеж:
<β, T, X, G, M >,
128
где β - наименование или название лингвистической переменной;
T - базовое терм-множество лингвистической переменной или множество её значений
(термов), каждое из которых представляет собой наименование отдельной нечеткой
переменной;
Х - область определения (универсум) нечетких переменных, которые входят в определение
лингвистической переменной β;
G - некоторая синтаксическая процедура, которая описывает процесс образования или
генерирования из множества Т новых, осмысленных значений для данной лингвистической
переменной;
М - семантическая процедура, которая позволяет поставить в соответствие каждому новому
значению данной лингвистической переменной, получаемому с помощью процедуры G,
некоторое содержание посредством формирования соответствующего нечеткого множества.
Пример. В качестве примера можно рассмотреть ситуацию со скоростью движения
автомобильного транспорта в пределах городской черты. Хотя правила дорожного движения
регламентируют величину этой скорости, однако многие автолюбители предпочитают давать
собственную субъективную оценку своей скорости движения. При этом используются такие
определения, как «малая скорость», «средняя скорость» и «высокая скорость» движения.
Очевидно, что подобная практическая оценка скорости может относиться к диапазону
скоростей в пределах интервала от 0 км/ч до некоторой величины, определяемой личными
предпочтениями того или иного водителя. Пусть в нашем примере из соображений удобства
это будет величина 100 км/ч.
Формализация субъективной оценки скорости движения может быть выполнена с помощью
следующей лингвистической переменной < β1, T, X, G, M >,
где β1 - скорость движения автомобиля;
T = {«малая скорость», «средняя скорость», «высокая скорость»}; X = [0, 100];
G - процедура образования новых термов с помощью логических связок «И», «ИЛИ» и
модификаторов типа «очень», «НЕ», «слегка» и др. Например: «малая или средняя скорость»,
«очень высокая скорость» и др;
M - процедура задания на Х = [0, 100] нечетких переменных α1 = «малая скорость», α2 =
«средняя скорость», α3 = «высокая скорость», а также соответствующих нечетких множеств
для термов из G(T) в соответствии с правилами трансляции нечетких связок и модификаторов
«И», «ИЛИ», «НЕ», «очень», «слегка» и других операций над нечеткими множествами вида:
АЗВ, АИВ, ⌐А и т.п.
Для рассматриваемого примера нечеткие множества А1, А2, А3, соответствующие нечетким
переменным: α1 = «малая скорость», α2 = «средняя скорость», α3 = «высокая скорость»,
удобно задать графически с помощью кусочно-линейной функции принадлежности.
Системы нечеткого вывода
Процесс нечеткого вывода представляет собой некоторый алгоритм получения нечетких
заключений на основе нечетких условий или предпосылок с использованием понятий
нечеткой логики.
Системы нечеткого вывода предназначены для реализации процесса нечеткого вывода и
служат базисом всей современной нечеткой логики. Системы нечеткого вывода позволяют
решать задачи автоматического управления, классификации данных, распознавания образов,
принятия решений, машинного обучения и многие другие.
В основе систем нечеткого вывода лежит использование нечетких правил (правил нечеткой
продукции).
Под правилом нечеткой продукции или просто - нечеткой продукцией понимают выражение
следующего вида:
Q; P; A ЮB; S, F, N,
где Q - сфера применения нечеткой продукции;
Р - условие применимости ядра нечеткой продукции;
A Ю B - ядро нечеткой продукции, в котором А - условие ядра, В - заключение ядра, Ю - знак
логического следования, А и В представляют собой нечеткие лингвистические высказывания;
S - метод или способ определения количественного значения степени истинности заключения
ядра;
F - коэффициент определенности или уверенности нечеткой продукции;
N - постусловия продукции.
Система нечетких правил продукции или продукционная нечеткая система представляет
собой некоторое согласованное множество отдельных нечетких продукций или правил
нечетких продукций.
129
Основные этапы нечеткого вывода
Системы нечеткого вывода предназначены для преобразования значений входных
переменных процесса управления в выходные переменные на основе использования
нечетких правил продукции. Для этого системы нечеткого вывода должны содержать базу
правил нечетких продукций и реализовать нечеткий вывод заключений на основе посылок или
условий, представленных в форме нечетких лингвистических высказываний.
Таким образом, основными этапами нечеткого вывода являются:
- формирование базы правил систем нечеткого вывода,
- фаззификация входных переменных,
- агрегирование подусловий в нечетких правилах продукций,
- активизация или композиция подзаключений в нечетких правилах продукций,
- аккумулирование заключений нечетких правил продукций.
База правил нечетких продукций представляет собой конечное множество правил нечетких
продукций, согласованных относительно используемых в них лингвистических переменных.
Под фаззификацией понимается не только отдельный этап выполнения нечеткого вывода, но
и собственно процесс нахождения значений функций принадлежности нечетких множеств, т.е.
это просто введение нечеткости.
Агрегирование представляет собой процедуру определения степени истинности условий по
каждому из правил системы нечеткого вывода, т.е. это просто формирование условий.
Активизация в системах нечеткого вывода представляет собой процедуру нахождения
степени истинности каждого из подзаключений правил нечетких продукций.
Аккумуляция или аккумулирование представляет собой процесс нахождения функции
принадлежности для каждой из выходных лингвистических переменных.
Дефаззификация представляет собой процесс нахождения обычного (не нечеткого) значения
для каждой из выходных лингвистических переменных.
Для реализации процесса нечеткого моделирования, например в среде MATLAB,
предназначен специальный пакет расширения Fuzzy Logic Toolbox. В рамках этого пакета
пользователь может выполнять необходимые действия по разработке и использованию
нечетких моделей в одном из следующих режимов:
- в интерактивном режиме с помощью графических средств редактирования и визуализации
всех компонентов систем нечеткого вывода;
- в режиме команд с помощью ввода имен соответствующих функций с необходимыми
аргументами непосредственно в окно команд системы MATLAB.
Вопросы для самопроверки
1. Дайте определение нечеткого множества.
2. Изложите методику составления правил нечетких продукций.
3. Перечислите этапы реализации системы нечеткого вывода.
4. Приведите названия алгоритмов нечеткого вывода.
ЗАКЛЮЧЕНИЕ
Методы и приемы, изученные в данной дисциплине, могут быть применены не только для
решения задач проектирования вычислительных машин, систем и сетей, но и в смежных
областях: при анализе АСУ и АСУ ТП, гибких производственных систем, систем
автоматизированного проектирования и др.
Среди методов прикладного системного анализа имитационное моделирование является,
пожалуй, самым мощным инструментом исследования сложных систем, управление которыми
связано с принятием решений в условиях неопределенности. По сравнению с другими
методами такое моделирование позволяет рассматривать большее число альтернатив,
улучшать качество управленческих решений и точнее прогнозировать их последствия.
Эффективность его значительно возросла с появлением мощных компьютеров последних
поколений и развитием специальных программных средств. Эти новые возможности открыли
путь к блочному построению моделей и преодолению таких преград для широкого
130
использования сложных имитационных моделей в процессах принятия решений, как их
недостаточная гибкость и трудность отражения в них динамики и многоуровневой структуры
управления.
Чтобы овладеть искусством моделирования, мало одного лишь пассивного знания
математических основ имитационного, аналитического и нечеткого моделирования и умения
разбираться в «книжных» моделях, сильно упрощающих реальные проблемы. Необходимо
также знакомство с практическими аспектами предмета, методологией конструирования
моделей, с возможными причинами успехов и неудач. Необходимо овладение новыми
информационными технологиями, которые всё чаще рекламируются издательствами,
фирмами и индивидуальными разработчиками.
2. ЗАДАНИЯ НА КОНТРОЛЬНЫЕ РАБОТЫ
По данной дисциплине каждый студент выполняет две контрольные работы, которые
включают всего 10 задач. Выбор варианта задания осуществляется по двум последним
цифрам шифра студента (n - последняя цифра, m – предпоследняя цифра) и по последней
цифре z года выполнения работы.
Контрольные работы оформляются в отдельной папке (брошюре, тетради). На обложке
должно быть указано: название дисциплины, фамилия, имя и отчество студента (полностью),
шифр, специальность и адрес (почтовый и/или электронный).
КОНТРОЛЬНАЯ РАБОТА 1
Задача 1. Используя процедуру моделирования дискретной случайной величины,
осуществить моделирование результата реализации случайных событий.
Пользуясь последовательностью случайных величин, равномерно распределенных в
интервале (0, 1), полученных средствами табличного процессора EXCEL (функция СЛЧИС( ))
или средствами пакета MAPLE, или взятых в любом справочнике по теории вероятностей,
произвести серию, состоящую из десяти независимых опытов (т.е. определить, какие события
произошли), при которых искомый результат для z, равной 0, 2, 4, 6, 8 (четные), является
сложным событием, зависящим от двух независимых событитий A и B, а для z, равной 1, 3, 5,
7, 9, (нечетные) - сложным событием, зависящим от двух зависимых событий А и B.
Различные варианты вероятностей рА и рВ для четных z и pА, pВ, р(В/А) для
нечетных z приведены ниже:
pА = |m - n| * 0,02 + (n + m) * 0,01 + 0,1;
pB = 0,01 * (n + m) + 0,30;
p(B/A) = |n - m| * 0,02 + 0,35.
Задача 2. Используя процедуру моделирования дискретной случайной величины,
осуществить моделирование однородной цепи Маркова, состоящее в последовательном
выборе десяти событий Aj по жребию в соответствии с вероятностями pij заданных матрицей
переходов П, и начальными вероятностями p0j. Для этого опять можно воспользоваться
последовательностью случайных величин (как и в первой задаче), равномерно
распределенных в интервале (0, 1), взятых, например, на с. 38 [1].
Размерность v квадратной матрицы П определяется z: для z, равной 1, 3, 5, 7, 9, v = 3, а
для z, равной 0, 2, 4, 6, 8, v = 4.
Начальное состояние цепи задается начальными вероятностями р0j и в простейшем случае
p0j = 1/v.
Для v = 3
131
.
Для v = 4
,
где
Задача 3. Определить последовательность из десяти значений случайной величины x,
распределенной в зависимости от варианта v, по одному из следующих законов
распределения:
v = 1 - равномерно по закону ,
v = 2 – по показательному закону
v = 3 - по закону распределения
v = 4 - по закону распределения
v = 5 - по нормальному закону,
где v вычисляется по следующим формулам: v = z + 1 для z = 0,…, 4 и v = z – 4 для z = 5,…, 9.
В вариантах для v, равной 1, 4 и 5, а или с, или x, т.е. символ q, выбираются во второй
строке в зависимости от n, расположенной в первой строке табл. 1, a b или mx, т.е. символ w,
- в третьей строке в зависимости от m, расположенной в первой строке.
Таблица 1
n или m
0 1
2
3
q
1 2
1
0,5 1,5 2
w
3 3,5 4
5
4
5
6
7
8
2,5 1,5 0,5
5,5 3,5 4
3
6
9
1
3,5
В вариантах v = 2 и 3 параметр  вычисляется по формуле
Задача 4. Производится ряд независимых опытов, в каждом из которых событие А появляется
с вероятностью р. Каково должно быть число опытов (реализаций) для того чтобы с заданной
вероятностью Q можно было ожидать, что частота m/N события А отклонится от его
вероятности р меньше, чем на заданную величину ?
Исходные данные в этой задаче определяются следующим образом:
р = |n - m| * 0,1 + n * m * 0,01,
 = n * m * 0,001 + 0,001.
132
Задача 5. Для однородной марковской цепи, матрица переходных вероятностей которой
представлена в условии задачи 2, рассчитать вероятности состояний pi (k) для k = 0, 1, 2, 3
при условии, что при k = 0 система находилась в состоянии номер w (Aw). При этом w
определяется по следующим зависимостям:
w = 1 при n и m четных,
w = 2 при n и m нечетных,
w = 3 при n четном и m нечетном,
w = 4 при n нечетном и m четном.
КОНТРОЛЬНАЯ РАБОТА 2
Задача 6. Составить систему алгебраических уравнений для нахождения предельных
вероятностей состояний системы, граф которой может быть построен на основании
использования матрицы переходных вероятностей, приведенной в задаче 2, и в которой
необходимо считать величины pij (вероятности перехода системы из состояния Аi в состояние
Аj) величинами плотностей вероятностей перехода λij из i-го состояния в j-е.
Задача 7. Для процесса «размножения и гибели», количество состояний которого равно 5 (т.е.
Si - это S0, S1, S2, S3, S4) построить размеченный граф состояний и рассчитать вероятности
состояний. При этом величины λij для i, изменяющихся от 0 до 3, и j - от 1 до 4,
представленных в первом столбце табл. 2, а величины λji - во втором столбце, для различных
значений n и m выбираются из третьего столбца.
Таблица 2
Значения i и j Значения j и i λij и λji
1
2
3
i=0, j=1
-
(n+m)+0,1
i=1, j=2
j=4, i=3
n+0,4m
i=2, j=3
j=3, i=2
n+0,3m
i=3, j=4
j=2, i=1
n+0,2m
-
j=1, i=0
n+0,1m
Задача 8. Система массового обслуживания (СMО) имеет n + 2 равноправных каналов и
обслуживает поток заявок с интенсивностью  = n + 1 (1/мин). Интенсивность обслуживания
заявок одним каналом  = m + 2 (1/мин). Потоки заявок и обслуживания считать
пуассоновскими. Длина очереди ограничена и равна m. Если n и m имеют значения, большие
пяти, то количества каналов и мест в очереди вычисляются путём деления
значений n и/или m на 2 с округлением до целого.
Построить размеченный граф состояний системы. Найти характеристики СМО: вероятности
состояний системы, вероятность отказа, относительную пропускную способность системы,
абсолютную пропускную способность и среднее количество занятых каналов.
133
Задача 9. Разработать моделирующий алгоритм для СМО, параметры которой приведены в
задаче 8, в предположении, что модель реализуется методом имитационного моделирования.
В алгоритме предусмотреть расчет характеристик с точностью
 = 0,01*n + 0,1.
При обработке результатов моделирования предусмотреть вычисление следующих величин:
вероятность обслуживания заявок, вероятность отказа в обслуживании, производительность
системы, среднее время пребывания заявок в системе.
Задача 10. Разработать пример задачи нечеткого вывода. Знания о рассматриваемой
предметной области (она выбирается студентом самостоятельно, исходя из личных
пристрастий или производственной заинтересованности) представляются в форме
эвристических правил продукций.
Для выбранной предметной области рассмотреть входные и выходные лингвистические
переменные и правила нечетких продукций. Определить функции принадлежности для
входных и выходных переменных. Получить графики результата нечеткого вывода для
конкретных значений входных переменных.
5. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ
КОНТРОЛЬНЫХ РАБОТ
Задачи 1, …, 4 и 9 относятся к разделу имитационного моделирования, 5, …, 8 –
аналитического моделирования, а задача 10 - нечеткого моделирования.
КОНТРОЛЬНАЯ РАБОТА 1
Задача 1. Эта задача посвящена освоению процедуры моделирования дискретной случайной
величины.
Для начала необходимо освоить алгоритм выбора варианта задания. Пусть шифр студента
заканчивается цифрами 3 и 7 (n = 7, m = 3), а для года выполнения работы 2004 z = 4. Это
значит, во-первых, что необходимо реализовать сложное событие, зависящее от двух
независимых событий А и В. В соответствии с приведенными формулами в тексте задачи,
вероятности состояний вычисляются следующим образом:
pА = |m - n| * 0,02 + (n + m) * 0,01 + 0,1 =
= |3 – 7|*0,02+(7 + 3) * 0,01+0,1=4*0,02 +10 *0,01+0,1 = 0,28;
pB = 0,01 * (n + m) + 0.30 = 0,01 * (7 + 3) + 0,3 = 0,40.
Таким образом, определены исходные данные: вероятность pA наступления события A равна
0,28, а вероятность pB = 0,40.
Теория этого вопроса приведена в учебном пособии [1] на с.44-45, а пример реализации на с.
46.
Если же в соответствии с условием задачи будет необходимо реализовать сложное событие,
состоящее из двух зависимых событий А и В (в случае, когда год выполнения работы
заканчивается на нечетную цифру), тогда необходимо вычислить и значение условной
вероятности р(В/A):
p(B/A) = |n - m| * 0,02 + 0,35 = |3 – 7| * 0,02 + 0,35 = 0,43.
Теория же этого вопроса приведена на с. 46-47 того же учебного пособия, а пример
реализации - на с.47-48.
134
Задача 2. Задача посвящена освоению методики моделирования однородной цепи Маркова.
Расчет величин переходных вероятностей матрицы П аналогичен процедуре расчета,
изложенной в предыдущей задаче. При этом нужно помнить, что сумма вероятностей в строке
матрицы П должна равняться единице. Пусть для v = 4 и после подстановки значений n и m в
формулы первой строки матрицы П получены значения вероятностей: p11 = 0,14, p12 = 0,25,
p13 = 0,06. Это значит, что величина вероятности р14 вычисляется как единица минус сумма
всех остальных вероятностей в строке, т.е. р14 = 1 – (0,14+0,25+0,06) = 0,45.
Теория реализации однородной цепи Маркова приведена на с.48-49, а пример - на с. 49-50.
Задача 3. Теория и методики получения последовательностей случайных величин с
заданным законом респределения приведены на с. 50 – 57 учебного пособия [1], там же есть
и примеры реализации этих методик.
Задача 4. Эта задача посвящена освоению методики определения количества реализаций
процесса имитационного моделирования, для того чтобы получить результаты имитации с
требуемой точностью.
Этот вопрос излагается в параграфе 2.7 учебного пособия [1].
Если опять считать, что шифр студента оканчивается цифрами 3 и 7, то исходные данные в
этой задаче определяются следующим образом:
р = |n - m| * 0,1 + n * m * 0,01 = |7 –3|*0,1 + 7 * 3 * 0,01 = 0,61,
 = n * m * 0,001 + 0,001 = 7 * 3 *0,001 + 0,001 = 0,022 ≈ 0,02.
Задача 5. Для решения этой задачи необходимо ознакомиться с содержанием параграфа 4.1
учебного пособия [1], сама методика и пример расчета приведены на с. 107-112.
КОНТРОЛЬНАЯ РАБОТА 2
Задача 6. Данная задача посвящена закреплению знания теоретического метериала,
изложенного в параграфе 4.4 учебного пособия [1]. Сама методика и пример находятся на
с.124-127.
Задача 7. Решение этой задачи необходимо начинать только после ознакомления с
материалом параграфа 4.5 учебного пособия [1]. В этом параграфе, расположенном на с. 127131, есть и пример расчета.
Если шифр студента по-прежнему заканчивается на теже цифры 3 и 7, то, пользуясь табл. 2,
можно получить следующие значения величин λij и λji в качестве исходных данных:
λ01 = 10,1; λ12 = 8,2; λ23 = 7,9; λ34 = 7,6;
λ43 = 8,2; λ32 = 7,9; λ21 = 7,6; λ10 = 7,3.
Задача 8. Задача посвящена овладению аналитических методов определения характеристик
СMО. Этот материал находится в учебном пособии [1] на стр. 133-158. Там же приведены
примеры расчёта.
Для цифр шифра 37 количество каналов в СМО будет равно 9, количество мест в очереди - 3,
интенсивность входного потока заявок = 6 (1/мин), а интенсивность обслуживания  = 5
(1/мин). Таким образом, рассматривается СМО вида М/M/9/3 с характеристиками потоков  =
6 и = 5. Это многоканальная СМО с ограниченной очередью (см. с.143-148 [1]).
Если в шифре студента m = 0, то это СМО с отказами (без очереди) - с. 133-140.
В случае, когда n = 1 - это одноканальная СМО (с. 143-148). А если и m = 0, то это
одноканальная СМО с отказами (с. 140-142). Если же n = 0, то такой вариант недопустим, и
необходимо количество обслуживающих каналов принять равным пяти.
135
При решении задачи необходимо выполнять определенную последовательность этапов
(указанную на с. 137), а именно: построение графа состояний, разметка графа, вычисление
величин pi, вычисление показателей эффективности Ротк, q, A и k.
Задача 9. Как указано в задании, исходные данные для этой задачи берутся из условия
задачи 8. То есть, как выбрано в предыдущей задаче, это, например, СМО с девятью
каналами и тремя местами в очереди. Небходимо разработать моделирующий алгоритм для
такой СМО. В учебном пособии [1] этот материал расположен в главе 3 (с. 74-103).
Никакие расчеты производить не нужно, так как это только моделирующий алгоритм. То есть
нужно разработать блок-схему алгоритма функционирования СМО для своих исходных
данных. Но нужно предусмотреть такое количество реализаций процесса моделирования,
чтобы искомые данные вычислялись с точностью  = 0,001 * n + 0,001 = 0,001 * 7 + 0,001 =
0,008 ≈ 0,01. То есть необходимо задать такое количество реализаций процесса имитации
функционирования СМО, чтобы результаты вычислялись с точностью до сотых (см. § 2.7 на с.
63-70 [1]).
Задача 10. Задача посвящена закреплению теоретического материала, относящегося к
разделу нечеткого моделирования ([7], с. 7…221; [10], c.9…56; [11], c. 80…110).
В качестве примера можно рассмотреть задачу «Чаевые в ресторане» [7,10]. Анализируется
ситуация в ресторане, при которой, согласно принятым в некоторых странах традициям,
после окончания обслуживания принято оставлять официанту чаевые. Основываясь на
устоявшихся обычаях и интуитивных представлениях посетителей ресторанов, величина
суммы чаевых не является постоянной и зависит, например, от качества обслуживания и
приготовления заказанных блюд.
Задача состоит в том, чтобы разработать некоторую систему, которая была бы реализована в
виде системы нечеткого вывода и позволяла бы определять величину чаевых на основе
субъективных оценок посетителя качества обслуживания и приготовления блюд.
Знания о рассматриваемой проблемной области могут быть представлены в форме
следующих эвристических правил продукций:
1. Если обслуживание плохое или ужин подгоревший, то чаевые - малые.
2. Если обслуживание хорошее, то чаевые - средние.
3. Если обслуживание отличное или ужин превосходный, то чаевые - щедрые.
Приведенные правила субъективны и не свободны от критики. В частности, для многих
посетителей наших ресторанов может показаться странным правило 1, согласно которому
следует оставлять чаевые в случае плохого обслуживания или подгоревшего ужина, и
правило 2, согласно которому следует оставлять средние чаевые даже в случае
подгоревшего ужина. Возможно, некоторые пердпочтут вообще не оставлять чаевых в
подобных ситуациях и будут по-своему правы. Тем не менее, данный пример широко
используется в литературе.
В качестве входных параметров системы нечеткого вывода рассматриваются два нечеткие
лингвистические переменные: «качество обслуживания» и «качество приготовления
заказанных блюд» (или сокращенно - «качество ужина»), а в качестве выходных параметров нечеткая лингвистическая переменная «величина чаевых».
В качестве терм - множества первой лингвистической переменной «качество обслуживания»
используется множество Т1 = {«плохое», «хорошее», «отличное»}, а в качестве терм –
множества второй лингвистической переменной «качество ужина» используется множество
Т2 = {«подгоревший», «превосходный»}. В качестве терм – множества выходной
лингвистической переменной «величина чаевых» используется множество Т3 = {«малые»,
«средние», «щедрые»}.
С учетом этих уточнений, рассматриваемая субъективная информация о величине чаевых
может быть представлена в форме трёх правил нечетких продукций следующего вида:
ПРАВИЛО 1: ЕСЛИ «качество обслуживания плохое» ИЛИ «ужин подгоревший», ТО
«величина чаевых малая».
ПРАВИЛО 2: ЕСЛИ «качество обслуживания хорошее», ТО «величина чаевых средняя».
ПРАВИЛО 3: ЕСЛИ «качество обслуживания отличное» ИЛИ «ужин превосходный», ТО
«величина чаевых щедрая».
136
Процесс разработки системы нечеткого вывода в рамках решения задачи 10 контрольной
работы на этом завершается. Продолжением будет выполнение лабораторной работы 3 на
тему «Нечеткое моделирование». Работа реализуется на системе MATLAB в интерактивном
режиме.
http://www.fuzzytech.com/
137
Download