- •Лабораторные работы по курсу "Нечеткие системы управления" Лабораторная работа 1 Описание и принцип действия нечетких систем управления
- •Лабораторная работа 2 Проектирование передаточных характеристик нечетких систем управления
- •Лабораторная работа 3 Типовая методика проектирования нечетких систем управления
- •Лабораторная работа 4 Нечеткие пид- регуляторы
- •Лабораторная работа 5 Нечеткое управление нестационарными объектами
Лабораторная работа 2 Проектирование передаточных характеристик нечетких систем управления
Постановка задачи. Спроектировать нечеткую систему управления, имеющую статическую передаточную характеристику следующего вида:
Вариант 1. y = sin(x), x [-,].
Вариант 2. y = cos(x), x [0,2].
Вариант 3. y = (2)-1/2exp(-x2/2), x [-3,3].
Вариант 4. y = (2/)arctg(x), x [-,].
Вариант 5. y = (1/)arcctg(x), x [-,].
Вариант 6. y = th(x) = (ex-e-x)/ (ex+e-x), x [-,].
Вариант 7. y = e-xsin(x), x [-,].
Вариант 8. y = e-xcos(x), x [0,2].
Подготовка к лабораторной работе.
Выбор подходящих опорных точек для последующей линейной аппроксимации. Рекомендуется построить отображаемую зависимость достаточно точно в укрупненном масштабе на миллиметровке и аппроксимировать ее отрезками прямых, пытаясь достичь разумного компромисса между минимальным числом отрезков и точностью аппроксимации. Полезным является также использование справочников по математике для поиска информации о математических правилах для выбора числа опорных точек, минимизирующих общую ошибку аппроксимации.
По полученной кусочно-линейной аппроксимирующей зависимости формируются функции принадлежности для входной и выходной переменных нечеткой системы.
Входным и выходным лингвистическим переменным и их термам присваиваются имена и аббревиатуры.
Формируется база правил аппроксимации.
Порядок выполнения работы:
Загрузить fuzzyTECH MP Explorer.
Для создания нового проекта выбрать строку «New» пункта главного меню «File». На вопрос программы «Generate system?» ответить утвердительно. В появившемся диалоговом окне «Generate system» задать следующие параметры нечеткой системы:
число входных лингвистических переменных в поле ввода «Input LVs:» (в данной работе 1);
число выходных лингвистических переменных в поле ввода «Output LVs:» (в данной работе 1);
число термов на входную лингвистическую переменную в поле ввода «Input terms/LV:» (по результатам домашней подготовки);
число термов на выходную лингвистическую переменную в поле ввода «Output terms/LV:» (по результатам домашней подготовки);
число блоков правил в поле ввода «Rule blocks:» (в данной работе 1 блок правил).
Зафиксировать результаты ввода нажатием кнопки «ОК». В результате в окне «Project Editor» формируется условное графическое изображение проектируемой нечеткой системы, а в окне лингвистических переменных «LV» список с предопределенными системными именами для входных и выходных переменных: in1, out1. На условном графическом изображении прямоугольник слева со схематическим рисунком функций принадлежности и именем «in1» представляет входную переменную, прямоугольник справа с рисунком дефазификации и именем «out1» отображает выходную переменную. В центре находится блок правил.
3. Для изменения имени лингвистической переменной и ввода ее термов необходимо выделить переменную из списка в окне «LV» (щелчком левой клавиши мышки на имени переменной) и нажать правую клавишу мышки для вызова всплывающего контекстного меню. В контекстном меню выбрать строку «Attributes ...». В появившемся окне «Rename Variable» можно поменять имя переменной в поле «Name:» и нажать на клавишу «Edit ...» для ввода термов для этой переменной.
В появившемся окне все термы в списке «Term» также имеют предопределенные имена, которые можно поменять похожим образом: выделить из списка требуемый терм и вызвать из контекстного меню строку «Attributes ...». Новое имя терма вводится в поле «Term Name». Здесь же можно поменять форму нечеткого множества терма (группа радиопереключателей «Shape») и положение терма в списке (список «Position»).
Перед определением функций принадлежности необходимо задать область определения лингвистической переменной. Для этого с помощью двойного щелчка левой кнопкой мыши на строке «Base_Variable» перейти в окно «Base Variable». Минимальное («Min:») и максимальное («Max:») значение диапазона («Range») задаются в полях колонки «Shell Values». В этом окне можно также поменять подпись под графиком функций принадлежности в поле «Base Variable Name».
Определение функции принадлежности может происходить двумя способами:
определить, какая из опорных точек функции принадлежности (прямоугольники на графике), имеющей тот же цвет, что и имя терма, отмечена «галочкой» внутри. Задать координаты этой опорной точки в полях ввода «x», «y»;
выделить опорную точку щелчком левой клавиши мышки. Нажать левую клавишу и, не отпуская, переместить прямоугольник опорной точки в требуемое место графика и там освободить клавишу.
4. После ввода всех лингвистических переменных и их термов необходимо создать базу правил нечеткой системы. Для этого следует дважды щелкнуть левой клавишей мышки на блоке правил условного графического изображения нечеткой системы. В результате откроется окно редактора правил «Spreadsheet Rule Editor», в котором перечислены все возможные комбинации правил. Необходимо отметить последовательно все правила, которые не нужны для работы системы, щелчками левой клавиши мышки на номерах соответствующих правил и удалить их разом нажатием клавиши «Del» с последующим утвердительным ответом на запрос системы о необходимости удаления. После этого закрыть окно редактора правил.
Открыть двойным щелчком мышки на прямоугольнике входной переменной условного графического изображения окно интерфейсных опций «Interface Options» и проверить, что установлен радиопереключатель «Fast Computation of MBF» группы «INPUT Fuzzification:» и в списке интерфейсных переменных «Interface Variable:» указана правильная входная переменная. Аналогичным образом открыть то же окно для выходной переменной и проверить установку метода дефазификации «CoM» (Center of Maximum) и корректность выходной переменной в списке интерфейсных переменных.
Для получения передаточной характеристики нечеткой системы сформировать входное воздействие, линейно изменяющееся во всем допустимом диапазоне значений. Для этого выбрать строку «Pattern Generator» пункта главного меню «Debug». В появившемся окне «Pattern Generator» задать начальное значение в поле ввода «From:», конечное в поле ввода «То:» и шаг изменения в поле «Step:». Для формирования файла входного воздействия нажать на кнопку «Generate ...». Указать имя файла воздействия в окне сохранения файла «Generate Pattern To ...» и сохранить его нажатием кнопки «ОК». Закрыть окно «Pattern Generator» кнопкой «Close».
Вызвать функцию «File Recorder» из меню «Debug». В окне «Read File Control Information From ...» указать в поле «Filename» имя файла со сформированным входным воздействием и нажать на кнопку «ОК». В результате откроются окна «Debug: File Recorder» и «File Control».
Сформировать окно для построения графика передаточной характеристики. Для этого вызвать функцию «Time Plot ...» из меню «Analyzer». Задать конфигурацию графического вывода в окне «Time Plot Configuration» следующим образом:
в списке «LVs:» выделить щелчком левой клавиши мыши выходную переменную;
переместить эту переменную в окно «Plot Items:» нажатием на кнопку «>>»;
завершить ввод конфигурации нажатием кнопки «ОК».
После этого откроется окно для графика передаточной характеристики «Time Plot - 1». Разместить окна «Time Plot - 1» и «File Control» на экране так, чтобы они не перекрывали друг друга. Окно «Debug: File Recorder» при этом может быть перекрыто этими окнами.
Получить график передаточной характеристики, используя окно «File Control». Для управления процессом используются кнопки поля «Control», похожие на клавиши плейера, расположенные в следующем порядке слева направо:
переход к первой точке входного воздействия;
автоматическая перемотка назад к первой точке;
пошаговая перемотка назад к первой точке;
пауза;
пошаговая перемотка вперед к последней точке;
автоматическая перемотка вперед к последней точке;
переход к последней точке входного воздействия.
Для получения графика нажать кнопку автоматической перемотки вперед.
После зарисовки графика полученной передаточной характеристики закрыть окно «Time Plot - 1», перейти опять к первой точке входного воздействия и перемотать входное воздействие в пошаговом режиме, фиксируя вход («Inputs:») и выход («Outputs:») системы в окне «Debug: File Recorder». Эти данные будут использоваться для оценки точности аппроксимации передаточной характеристики. Закрыть окно «Debug: File Recorder», перейти опять к первой точке входного воздействия и открыть окно с функциями принадлежности выходной переменной, дважды щелкнув левой клавишей мыши на имени переменной в окне «LV». Изучить и зарисовать процесс дефазификации по методу «CoM» в пошаговом режиме.
Изменить установку метода дефазификации с «CoM» на «МоМ» (Mean of Maximum). Для этого необходимо перейти в окно «Project Editor» либо щелкнув на нем левой клавишей мыши, либо выбрав его из списка окон в меню «Window» и открыть двойным щелчком мышки на прямоугольнике выходной переменной условного графического изображения окно интерфейсных опций «Interface Options», чтобы установить радиопереключатель «MoM» группы «OUTPUT Defuzzification:». После этого следует повторить вышеописанную процедуру получения передаточной характеристики для нового метода дефазификации.
Закрыть все открытые окна и завершить работу программы (строка «Exit» пункта главного меню «File»).