Экспертные системы (техника и технология проектирования). Методические указания к лабораторным работам
.pdf
Рисунок 27 – Окно создания нового графика
Нечеткая экспертная система начала работать. На графике видно, что температура изменяется в окрестностях некоторого значения, которое мы косвенно определили при задании функций принадлежности для температуры воздуха в комнате,
Понаблюдаем, как ведет себя система в начале работы. Остановим ее. Для этого в меню "Execute" (выполнение) выберем команду "Terminate" (прервать работу). Запустим пошаговое выполнение нашей экспертной системы. Этот режим инициируется в CubiCalc клавишей F8. По этой же клавише выполняется одна итерация цикла, представленного на рисунке. На рисунке 28 показан график, который был получен после нескольких итераций.
Рисунок 28 – График после нескольких итераций
Представляет интерес сравнение нашей системы с какой-нибудь традиционный схемой терморегуляции. Сравним ее с термостатом – устройством, которое будет включать вентилятор при превышении температурой некоторого порога (в нашем случае 20°С).
Введем две дополнительных переменных:
1)UsualFanS – скорость вращения обычного вентилятора;
2)UsualRoomT – температура воздуха в комнате для схемы охлаждения с термостатом.
21
Обе переменные будут иметь тип "Temporary". Для их добавления надо в меню "Project" (проект) выбрать пункт "Variables..." (переменные). Не забудьте правильно указать их тип в панели "EditVariable" (редактировать переменную). Для имитации схемы на термостате модифицируем выражения, выполняющиеся на этапах инициализации и моделирования. Вот как должны выглядеть тексты программ, выполняющихся на этих этапах после модификации (рисунки 29 и 30).
Рисунок 29 – Текст программы на этапе инициализации
Рисунок 30 – Текст программы на этапе моделирования
Дополним график, выводимый во время работы проекта. В меню "Project" (проект) выберите команду "Plots..." (графики). Выберите в списке график "Temperature" и нажмите кнопку "Change". Измените диапазон значений по оси Y: от 5 до 45 градусов. Это позволит нам более точно рассмотреть, чем различается работа двух систем терморегуляции. Во второй строке со списком "YVariable" выберите переменную UsualRoomT. Назначьте ее графику цвет и форму точки (рисунок 31). Нажмите "ОК". В панели со списком графиков щелкните мышкой на кнопке "Done" (готово).
Запустим проект (меню "Execution/Run"). График изменения температуры при работе двух систем представлен на рисунке 32.
22
Рисунок 31 – Окно изменения графика температуры
Рисунок 32 – График изменения температуры при работе двух систем
Анализируя графики, нетрудно сделать вывод о том, что система управления вентилятором на базе нечеткой логики быстрее адаптируется к изменениям температуры в помещении. Колебания температуры при ее работе, в отличие от термостатной схемы, малозаметны
4.2 Задача 2 – Модель управления грузовиком TRACKXY
1)Запустить систему CubiCalc и познакомиться с основными функциями меню данной системы.
2)Загрузить демонстрационную программу TRUCKXY – модель системы управления грузовиком для въезда его в узкие ворота.
3)В режиме пошагового исполнения (клавиша (F8)) поработать с данной моделью, запустив ее несколько раз, исследовав траекторию движения грузовика (окно Track Yard), активацию нечетких правил (окно X vs Y activation), результат нечеткого вывода в виде угла нечеткого множества угла поворота руля (окно Theta Resultant) (рисунок 33). Несколько траекторий движения грузовика внести в отчет по лабораторной работе.
23
Рисунок 33 – Траектории движения грузовика
Продолжение рисунка 33
Формально модель работы данной системы задается в разделе PROJECT меню и включает
всебя следующие основные разделы.
меню Variables – конструктор входных, выходных лингвистических и временных переменных модели;
меню Adjectives – конструктор лингвистических переменных модели, позволяющий формировать их значения – нечеткие переменные;
меню Values – исследование текущих значений определенных в модели переменных;
меню Rules – конструктор нечетких продукционных правил модели вида (1), согласно которым происходит функционирование системы;
24
меню Initialization – раздел инициализации значений переменных модели;
меню Preprocessing (предобработка) – раздел действий, выполняемых перед каждым циклом отработки нечетких правил;
меню Postprocessing (постобработка) – раздел действий, выполняемых после каждого цикла отработки нечетких правил;
меню Simulation (моделирование) – раздел действий, определяющих функционирование нечеткой модели (изменение значений переменных моделей по результатам нечеткого вывода);
меню Plots – графики, отображающие работу модели.
Вернемся к модели управления грузовиком. Работа данной модели основана на следующих интуитивных соображениях эксперта.
расстояние грузовика до ворот по Y описывается с помощью двух категорий – БОЛЬШОЕ и МАЛЕНЬКОЕ;
если расстояние БОЛЬШОЕ, то поступаем по обычным правилам модели (в модели они
заданы), если МАЛЕНЬКОЕ, то стараемся отогнать грузовик от нижней границы и выгнать на середину площадки.
В модели управления грузовиком кроме расстояния до ворот Y вводятся, также следующие переменные:
Phi (ориентация грузовика);
Phi45 (ориентация грузовика по отношению к 45 градусов);
Phi135 (ориентация грузовика по отношению к 135 градусам);
X (горизонтальная позиция);
Theta (Поворот руля);
Phi (ориентация грузовика);
Phi45 (ориентация грузовика по отношению к 45 градусов);
Phi135 (ориентация грузовика по отношению к 135 градусам);
X (горизонтальная позиция);
Theta (Поворот руля).
Значения лингвистической переменной Phi (ориентация грузовика):
VL0 – Намного левее от нулевого угла;
L0 – Левее от нулевого угла;
M0 – Более-менее нулевой угол;
R0 – Правее от нулевого угла;
VR0 – Намного правее от нулевого угла;
VL90 – Намного левее 90 градусов;
L90 – Левее 90 градусов;
M90 – Более менее 90 градусов;
R90 – Правее 90 градусов;
VR90 – Намного правее 90 градусов;
VL180 – Намного левее 180 градусов;
L180 – Левее 180 градусов;
M180 – Более-менее 180 градусов;
R180 – Правее 180 градусов;
VR180 – Намного правее 180 градусов.
Значения лингвистической переменной Phi45 (ориентация грузовика по отношению к 45 градусов):
VL45 – Намного правее 45 градусов;
L45 – Левее 45 градусов;
M45 – Более – менее 45 градусов;
R45 – Правее 45 градусов;
VR45 – Намного правее 45 градусов.
25
Значения лингвистической переменной Phi135 (ориентация грузовика по отношению к
135градусам):
VL135 – Намного левее 135 градусов;
L135 – Левее 135 градусов;
M135 – Более-менее 135 градусов;
R135 – Правее 135 градусов;
VR135 – Намного правее 135 градусов.
Значение лингвистической переменной X (горизонтальная позиция):
LG_LEFT – Намного левее от центра;
LEFT – Левее центра;
LG_LCTR – Близко к центру слева;
LCTR – Очень близко к центру слева;
CENTER – Более-менее в центре;
RCTR – Очень близко к центру справа;
LG_RCTR – Близко к центру справа;
RIGHT – Правее центра;
LG_RIGHT – Намного правее справа от центра.
Значение лингвистической переменной Theta (Поворот руля):
NB – Намного против часовой стрелки;
NM – Средне против часовой стрелки;
NS – Немного против часовой стрелки;
ZE – Нулевой поворот;
PS – Немного по часовой стрелке;
PM – Средне по часовой стрелке;
PB – Намного по часовой стрелке.
4) Вызвать пункт меню Project→Variables, изучить все лингвистические переменные модели TRACKXY, изучить их семантику и ответить на следующие вопросы (ответы на них внести в отчет):
4.1) Сколько переменных, и какие присутствуют в разработанной модели? 4.2) Какие типы переменных поддерживает система CubiCalc?
4.3) Какие переменные в модели TRACKXY являются входными, какие выходными, какие временными?
4.4) Что понимается в модели CubiCalc под понятием «Повернуть руль намного против часовой стрелки»? «Находиться очень близко к центру слева»? Внесите их в отчет и дайте естественно языковую интерпретацию их значениям.
4.5) Для каждой их нечетких переменных модели проинтерпретировать два произвольных их значения (их функции принадлежности). Внести их в отчет и проинтерпретировать семантику.
5)Войти в раздел Project→Rules и изучить правила, по которым функционирует модель TRUCKXY. Ответить на следующие вопросы:
5.1) Сколько правил включает нечеткая модель системы?
5.2) Переведите на естественный язык 10 любых правил данной системы и внесите их естественно-языковую интерпретацию в отчет по лабораторной работе.
6)Изучите действия, которые выполняются на фазе инициализации системы.
7)Во вкладке Simulation изучите действия, по которым моделируется поведение системы на каждой итерации.
8)Во вкладке Plots изучите графики, которые отражают результаты работы системы. Какие типы графиков доступны для создания?
9)Запустить модель на выполнение и посмотреть результаты работы модели.
10)Попытаться изменить функционирование модели – например, увеличьте скорость автомобиля, измените значения лингвистических переменных (например, переопределите ряд значений лингвистической переменной X). После этого заново запустить модель и изучить,
26
насколько корректно она функционирует, будет ли грузовик въезжать в ворота в данном случае. Показать результаты модифицированной модели преподавателю.
Ответы на вопросы:
4.1) В модели присутствуют семь переменных: Phi, Phi135, Phi45, Speed, Theta, X, Y.
4.2) Fuzzy input (входные переменные), fuzzy input (выходные переменные), constant (переменная с постоянным значением), temporary (временные).
4.3) Phi, Phi135, Phi45, X, Y – входные; Speed - временная; Theta – выходная переменная. 4.4) Под понятием «Повернуть руль намного против часовой стрелки» понимается изме-
нение текущего значения выходной переменной Theta на значение NB. «Находиться очень близко к центру слева» - текущее значение входной переменной X в позиции LCTR.
4.5) Значения функции принадлежности нечетких переменных модели. Phi (ориентация грузовика):
VLO – 180-360º (намного левее от нулевого угла);
L180 – 150-180º (левее 180 градусов).
Phi45 (по отношению к 45-ти градусам):
VL45 – 225-30º (намного правее 45 градусов);
R45 – 45-65º (правее 45 градусов).
Phi135 (по отношению к 135-ти градусам):
L135 – 110-135º (левее 135 градусов);
VR135 – 150-315º (намного правее 135 градусов). X (горизонтальная позиция):
LCTR – 40-50 (очень близко к центру слева);
LG_RCTR – 50-70 (близко к центру справа).
Y (расстояние до цели, вертикальная позиция):
LARGE – от 15 до 100 (большое);
SMALL – от -10 до 24,5 (маленькое). Theta (поворот руля):
NM – от -10 до -2,5 (средне против часовой стрелки);
PB – от 6,25 до 30 (намного по часовой стрелке). 5.1) Модель включает в себя 50 правил.
5.2) Естественно-языковая интерпретация правил системы:
Y LARGE, X CENTER, Phi VL90 : Theta PM;
Если расстояние большое И грузовик более-менее в центре И ориентация грузовика на-
много левее 90º, ТО повернуть руль средне по часовой стрелке.
Y LARGE, X LG_LEFT, Phi VL45 : Theta PB;
Если расстояние большое И грузовик намного левее центра И ориентация намного левее 45-ти градусов, ТО повернуть руль намного по часовой стрелке.
Y LARGE, X LG_LCTR, Phi45 VL45 : Theta PB;
Если расстояние большое И грузовик близко к центру слева И ориентация намного левее 45-ти градусов, ТО повернуть руль намного по часовой стрелке.
Y LARGE, X LG_RCTR, Phi135 VL135 : Theta PM;
Если расстояние большое И грузовик близко к центру справа И ориентация намного левее 135-ти градусов, ТО повернуть руль средне по часовой стрелке.
Y LARGE, X LG_RIGHT, Phi135 VL135 : Theta PB;
Если расстояние большое И грузовик намного правее центра ориентация намного левее 135-ти градусов, ТО повернуть руль намного по часовой стрелке.
Y SMALL, X LEFT, Phi VL0 : Theta PB;
Если расстояние малое И грузовик левее центра И ориентация намного левее от нулевого угла, ТО повернуть руль намного по часовой стрелке.
Y SMALL, X LCTR, Phi VL0 : Thena PM;
27
Если расстояние малое И грузовик очень близко к центру слева И ориентация намного левее от нулевого угла, ТО повернуть руль средне по часовой стрелке.
Y SMALL, X CENTER, Phi VL90 : Theta PB;
Если расстояние малое И грузовик более-менее в центре И ориентация грузовика намного левее 90º, ТО повернуть руль намного по часовой стрелке.
Y SMALL, X RCTR, Phi VL180 : Theta PM;
Если расстояние малое И грузовик очень близко к центру справа И ориентация грузовика намного левее 180º, ТО повернуть руль средне по часовой стрелке.
Y SMALL, X RIGHT, Phi VL180 : Theta PB;
Если расстояние малое И грузовик правее центра И ориентация грузовика намного левее 180º, ТО повернуть руль намного по часовой стрелке.
6)При инициализации системы определяется начальное расстояние грузовика до ворот (Y); начальная горизонтальная позиция грузовика, относительно ворот (X); ориентация направленности грузовика.
7)Действия, по которым моделируется поведение системы на каждой итерации. Phi=angle360 (Phi+Theta) – система моделирует направление исходя из суммы направле-
ния на предыдущей итерации и градуса поворота руля.
Phi45 = Phi, Phi135 = Phi – ориентация грузовика по отношению к 45-ти и 135-ти градусам равна ориентации грузовика.
X=X+(Speed*cosD(Phi)) – система рассчитывает следующее горизонтальное расположение грузовика руководствуясь значением текущего горизонтального положения, а также значением скорости и направления.
Y=Y-(Speed*sinD(Phi)) – система рассчитывает следующее расстояние грузовика до ворот, руководствуясь значением текущего расстояния, а также значением скорости и направления.
8) Типы графиков, доступны для создания:
X-Y Scatter Chart – график пары перменных X и Y;
Polar plot – график переменных в полярных координатах;
Strip Chart – график переменных во времени;
Activisation plot – отображение уровней активизации;
Resultant plot – график отображения нечѐткого множества. 10) Изменение функционирования модели.
а) изменена скорость движения до двух единиц:
28
б) изменѐн ряд значений X:
В обоих случаях грузовик успешно продолжает въезжать в ворота.
4.3 Задача 3 – Модель управления вентилем подачи пара
Имеется некая техническая система, на вход которой подается информация с двух датчиков – датчика температуры (пределы изменения 0–100
С) и давления (пределы изменения
100–1000 МПа).
Назначение системы – управление вентилем подачи пара согласно следующему набору правил.
Вентиль может быть повернут влево или вправо максимум на 90 градусов (влево – отрицательный угол, то есть пределы изменения угла поворота: [-90, 90]).
Набор правил.
1)Если температура маленькая и давление маленькое, то повернуть вентиль очень сильно влево.
29
2)Если температура маленькая и давление среднее, то повернуть вентиль сильно влево.
3)Если температура маленькая и давление большое, то повернуть вентиль немного влево.
4)Если температура средняя и давление маленькое, то повернуть вентиль немного влево.
5)Если температура средняя и давление среднее, то повернуть вентиль в нейтральное положение.
6)Если температура средняя и давление большое, то повернуть вентиль немного вправо.
7)Если температура большая и давление малое, то повернуть вентиль немного вправо.
8)Если температура большая и давление среднее, то повернуть вентиль сильно вправо.
9)Если температура большая и давление большое, то повернуть вентиль очень сильно вправо.
Модель изменения температуры и давления (simulation) после выполнения каждого цикла имеет следующий вид:
Температура = температура – угол поворота вентиля/4 + + uniform()*10-uniform()*10 + Давление/100.
Давление = давление – угол поворота вентиля/4 + uniform()*10 –
– uniform()*10 + Температура/10.
или
где
T – температура: cold (малая), warm, hot(большая). D – давление: low(малое), middle, high (большое).
V – положение вентиля: vl (влево), ml, ll, c, lr, mr, vr(вправо).
В5 случаях из 100 после выполнения каждого цикла температура поднимается вверх на 5 градусов.
В5 случаях из 100 после выполнения каждого цикла давление поднимается на 25 МПа. Где uniform () – случайное число от 0 до 1.
Перед первым запуском, проинициализировать данные переменные следующим образом:
Температура = 50. Давление = 600.
или
Описать систему, функционирующую по данным правилам и отображающую диаграмму срабатывания правил, графики изменения значений переменных давления и температуры с течением времени.
Поработать с созданной моделью. Что Вы можете сказать по поводу ее устойчивости? Добиться устойчивой работы модели (без выходов параметры за предельные для них границы) в течение длительного времени.
Ответ:
Графики, выданные системой после 10-ти тысяч итераций:
30
