Установка параметров алгоритма кластеризации

Пользователь может с помощью меню выбрать количество кластеров (от 2 до 9), а также установить значения следующих параметров нечеткого c-means алгоритма:

  • в поле Expo - значение экспоненциального веса;
  • в поле Iterat - максимальное количество итераций алгоритма;
  • в поле Improv - минимально допустимое значение улучшения целевой функции за одну итерацию алгоритма.

В оглавление \ К следующему разделу \ К предыдущему разделу

FUZDEMOS

Демонстрационная программа fuzdemos выводит на экран меню (рис. 9.48), позволяющее запустить основные демо-программы пакета Fuzzy Logic Toolbox:

  • ANFIS: Noise cancellation – адаптивное нелинейное подавление шумов с помощью ANFIS;
  • ANFIS: Time-series prediction – предсказание временного ряда Маккея-Глэсса (Mackey-Glass) с помощью ANFIS;
  • ANFIS: Gas mileliage prediction - применение ANFIS для идентификации зависимости топливной эффективности (расход топлива на одну милю) от шести параметров автомобиля;
  • Fuzzy c-means clustering – применения алгоритма нечеткой c-means кластеризации;
  • Subtractive clustering – применение субтрактивной кластеризации для идентификации демографической зависимости;
  • Ball juggler – жонглирование шариком с помощью теннисной ракетки;
  • Inverse kinematics – инверсная кинематика робота-манипулятора;
  • Defuzzification – дефаззификация различными методами;
  • Membership function gallery – галерея функций принадлежности;
  • Water Tank (sim) – управление уровнем воды (необходим пакет Simulink);
  • Water Tank with Rule View (sim) – управление уровнем воды с демонстрацией нечеткой базы знаний (необходим пакет Simulink);
  • Cart and pole (sim) – управление тележкой с перевернутым маятником (необходим пакет Simulink);
  • Cart and two poles (sim) – управление тележкой с двумя перевернутыми маятниками (необходим пакет Simulink);
  • Ball and beam (sim) – удержание шарика на коромысле;
  • Backing truck (sim) - парковка грузовика (необходим пакет Simulink).

Для запуска демо-программы необходимо установить курсор мыши на соответствующий пункт меню, нажать левую кнопку мыши, а затем нажать кнопку Run this demo. Нажатие кнопки Close завершает работу программы fuzdemos.

В оглавление \ К следующему разделу \ К предыдущему разделу

GASDEMO
Иллюстрация применения технологии ANFIS для предсказания топливной эффективности автомобиля

В этом разделе описывается демонстрационная программа gasdemo, иллюстрирующая применение технологии ANFIS для предсказания топливной эффективности автомобиля. Топливная эффективность (MPG - miles per gallon) оценивается как количество миль, проеханных автомобилем на одном галлоне топлива. При выполнении демонстрационной программы gasdemoна экран выводится 10 слайдов. Для управления демонстрацией каждый слайд имеет такие кнопки (см. рис.9.6):

  • Next>> - показ следующего слайда (на первом слайде вместо этой кнопки расположена кнопка Start>> – начало демонстрации слайдов);
  • Prev<< - показ предыдущего слайда;
  • Reset - возврат на первый слайд;
  • AutoPlay -демонстрация слайдов в автоматическом режиме;
  • Info - вывод справочной информации о программе;
  • Close – завершение работы программы.

На первом слайде (рис. 9.6) выводится аннотация программы gasdemo.Для запуска демонстрации необходимо нажать кнопку Start>>.

Рисунок 9.6 – Первый слайд демо-программы gasdemo

На втором и третьем слайде приводится следующее описание задачи. Прогнозирование топливной эффективности автомобиля является типовой задачей нелинейного регрессионного анализа, которое осуществляется на основе значений следующих параметров автомобиля: количество цилиндров, литраж, мощность, масса, ускорение и год выпуска. Экспериментальные данные записаны в файле auto-gas.dat, фрагмент которых показан на третьем слайде. Эти данные также доступны через веб-репозитарий задач автоматического обучения Калифорнийского университета в Ирвине (http://www.ics.edu/~mlearn/MLRepository.html). Выборка содержит данные об автомобилях различных фирм, логотипы которых показаны на втором слайде. На третьем слайде также указано, что для построения модели топливной эффективности выборка экспериментальных данных разделена на обучающую (нечетные строки файла) и тестирующую (четные строки).

Слайды с четвертого по шестой описывают выбор наилучшего набора входных атрибутов с помощью функции exhsrch. На четвертом слайде приведено описание процедуры оценки информативности входных атрибутов на основе грубых моделей “вход-выход”. Слайд сопровождается дополнительным графическим окном (рис. 9.7), в котором приводятся результаты тестирования шести синтезированных моделей “вход-выход”. В этом окне используются следующие обозначения: Weight – масса автомобиля; Disp – литраж; Power – мощность; Cylinder – количество цилиндров; Year – год выпуска; Acceler – ускорение; маркер в виде окружности (звездочки) – значения корня квадратного из средней квадратической невязки на обучающей (тестирующей) выборке. Как видно из графика, наиболее информативным является атрибут масса автомобиля, а вторым по рангу – литраж. Дополнительное графического окно появляется как результат выполнения команды exhsrch(1, trn_data, chk_data, input_name); . Численные значения невязок выводятся в рабочую область MatLab. Невязки на обучающей и тестирующей выборках одного порядка, что позволяет предположить об отсутствии эффекта переобучения. Следовательно, можно попытаться добавить еще одну входную переменную. Интуитивно, мы могли бы просто выбрать массу и литраж автомобиля, так как для этих атрибутов значения ошибок обучения минимальны. Однако такой директивный подход не гарантирует того, что построенная двухвходовая ANFIS-модель обеспечит максимальную точность прогнозирования.

Рисунок 9.7 – Ранжирование важности входных атрибутов

На пятом слайде приведено описание процедуры оценки информативности пар входных атрибутов. Слайд сопровождается дополнительным графическим окном, в котором приводятся результаты тестирования 15-ти синтезированных моделей “два входа – один выход”. Дополнительное графического окно появляется как результат выполнения команды input_index = exhsrch(2, trn_data, chk_data, input_name); . Как видно из графика, наиболее информативной является пара атрибутов масса автомобиля и год выпуска, что не противоречит здравому смыслу. Разница невязок на обучающей и тестирующей выборках увеличивается, что сигнализирует о приближении эффекта переобучения.

На шестом слайде приведено описание процедуры оценки информативности троек входных атрибутов. Слайд сопровождается дополнительным графическим окном, в котором приводятся результаты тестирования 20-ти синтезированных моделей “три входа – один выход”. Как видно из графика, наиболее информативной является тройка атрибутов: масса автомобиля, ускорение и год выпуска. Заметим, что минимальная невязка как на обучающей, так и на тестирующей выборке существенно не уменьшилась по сравнению с наилучшей моделью “два входа – один выход”. Следовательно, добавление нового атрибута к паре входных переменных масса автомобиля и год выпуска не слишком повышает точность прогнозирования топливной эффективности автомобиля. Для обеспечения лучших генерализирующих свойств предпочтительно использование более простых моделей, поэтому для дальнейших исследований выбирается модель “два входа – один выход”.

На седьмом слайде изображена поверхность “входы - выход” (рис. 9.8) для лучшей двухвходовой ANFIS-модели, т.е. для модели, которая обеспечивает прогнозирование топливной эффективности автомобиля на основе информации об его массе и годе выпуска. На этом слайде хорошо видно, что поверхность “входы-выход” является нелинейной и монотонной, причем прогнозируемый уровень топливной эффективности уменьшается с увеличением массы автомобиля, и возрастает с увеличением года выпуска. Для рассматриваемой ANFIS-модели значения RMSE (Root Mean Squared Error – квадратный корень из средней квадратической невязки) на обучающей и тестирующей выборках равны 2.766 и 2.995, соответственно. Для сравнения, обычная линейная регрессионная модель, которая использует в качестве входных переменных все атрибуты, обеспечивает значения RMSE 3.452 и 3.444 на обучающей и тестирующей выборках, соответственно.

Рисунок 9.8 – Поверхность “входы – выход” для наилучшей нечеткой модели после одной итерации обучения

На восьмом слайде приведены результаты обучения выбранной двухвходовой модели. На предыдущих этапах модели-кандидаты обучались с помощью функции exhsrchтолько на протяжении одной итерации ANFIS-алгоритма. Это было сделано для того, чтобы быстро выбрать подходящее множество входных переменных модели. Сейчас, когда входные переменные выбраны, можно потратить больше времени на обучение нечеткой модели прогнозирования топливной эффективности. На восьмом слайде приведены кривые обучения ANFIS-модели в виде зависимостей ошибок обучения (зеленая кривая) и тестирования (красная кривая) от количества итераций алгоритма. Минимум ошибки тестирования достигается в районе 45-й итерации алгоритма (см. рис. 9.9). Точка минимума отмечена на графике окружностью. Заметим, что после 50-й итерации ошибка тестирования начинает возрастать, что указывает на эффект переобучения, т.е. на потерю моделью свойств обобщения.

Рисунок 9.9 – Кривые обучения нечеткой модели

На девятом слайде показана поверхность “входы-выход” (рис.9.10) нечеткой модели с минимальной ошибкой тестирования. Для этой модели ошибки на обучающей и тестирующей выборках меньше, чем для первоначальной. Однако при рассмотрении дальнего угла поверхности обнаруживается парадоксальный эффект - для новых моделей топливная эффективность возрастает с увеличением массы автомобиля. Такое противоречие объясняется отсутствием необходимого количества данных из этой области в обучающей выборке.

Рисунок 9.10 – Поверхность “входы – выход” для нечеткой модели с минимальной ошибкой тестирования

На десятом слайде (см. рис. 9.10) приведено распределение данных из обучающей (зеленные окружности) и тестирующей (красные крестики) выборок. Как видно из рисунка, в правом верхнем углу факторного пространства отсутствуют экспериментальные данные. Это и является причиной описанного выше парадоксального вида поверхности ANFIS-модели. Поэтому, используя модели, синтезированные с помощью ANFIS (как, впрочем, и с помощи любой другой технологии автоматического обучения) необходимо помнить, что они могут адекватно описывать лишь закономерности, представленные репрезентативными выборками данных.

Рисунок 9.11 – Распеределения данных из обучающей и тестирующей выборок

INVKINE

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

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

Запуск анимация осуществляется по нажатию кнопки Start Animation…, которая расположена внизу графического окна. Для вывода траекторий движения руки робота необходимо установить флажок в окне Show Trails. Очистка графического окна от траекторий происходит по нажатию кнопки Clear Trails. После начала анимации в нижней части графического окна появляются две кнопки:

Stop - прекращение анимации;

Pause… пауза в анимации.

По нажатию кнопки Pause… появляются две новые кнопки:

Continue - продолжение анимации;

Step - выполнение анимации в пошаговом режиме.

Рисунок 9.49 - Демонстрационная программа invkine

Управлением роботом осуществляют два нечетких контроллера, реализованных в виде систем нечеткого логического вывода типа Сугэно. Первый контроллер рассчитывает угол поворота первого звена робота (красного прямоугольника), а второй контроллер - второго (голубого прямоугольника). Входными переменными для нечетких контроллеров являются координаты точки, в которой должен находится рабочий элемент робота. Для лингвистической оценки входных переменных используется по три терма с обобщенными колокообразными функциями принадлежности. Нечеткое управление в каждом контроллере происходит по девяти правилам. Поверхности "входы-выход" для нечетких контроллеров робота-манипулятора показаны на рис. 9.50. Видно, что при попарно малых и попарно больших значениях координат цели нечеткие контроллеры выдают неадекватные управляющие воздействия. Это объясняется отсутствием в обучающих выборках данных с такими координатами. Для настройки каждого контроллера использовались обучающие выборки из 229 пар "входы-выход", показанные на рис. 9.49 маркерами в виде желтых крестиков. При установке желтого овала за пределы зоны обучения, нечеткие контроллеры не смогут обеспечить движения руки робота по требуемой траектории. В пределах зоны обучения траектория руки робота, управляемого нечеткими контроллерами, практически не отличается от требуемой.

Рисунок 9.50 - Поверхности "входы-выход" для нечетких контроллеров робота-манипулятора

В оглавление \ К следующему разделу \ К предыдущему разделу

IRISFCM
Иллюстрация возможности применения нечеткого c-means алгоритма для задачи кластеризации ирисов

Описание:

В этом разделе описывается демонстрационная программа irisfcm, предназначенная для иллюстрации возможности применения нечеткого c-means алгоритма для задачи кластеризации ирисов.

Задача классификации ирисов была предложена Р. Фишером в 1936 году. С тем пор она часто используется в качестве полигона для тестирования различных методов распознавания образов, машинного обучения, экстракции знаний, статистического и интеллектуального анализов данных и т.п. Задача класификации ирисов ставится следующим образом. По известным значениям четырех признаков цветка необходимо отнести ирис к одному из трех классов: 1 - Iris Setosa, 2 - Iris Versicolor; 3 - Iris Virginica. Признаками ирисов, которые используются для принятия решения являются: x1 - длина чашелистика; x2 - ширина чашелистика; x3 - длина лепестка; x4 - ширина лепестка. Исходные данные для классификации ирисов записаны в файле iris.dat . Файл содержит 150 строк, каждая из которых соответствует одному ирису. Информация об ирисе представлена пятеркой чисел - первые четыре числа соответствуют значениям признаков, а пятое число – классу ириса.

На рис. 1 приведены 2D-диаграммы распределения ирисов по классам. Ирисы класса Iris Setosa изображены синими точками, ирисы класса Iris Versicolor - зелеными точками и ирисы класса Iris Virginica – красными точками. Как видно из рисунка ирисы Iris Setosa линейно отделимы от остальных классов ирисов по признаку длина лепестка или ширина лепестка, а также по любому набору из двух признаков. В тоже время ирисы оставшихся классов Iris Versicolor и Iris Virginica неотделимы линейно один от другого ни по одному из шести возможных наборов из двух признаков.

Задача кластеризации ирисов состоит в нахождении центров кластеров, т.е. в определении значений признаков типовых ирисов каждого класса. Для этого демо-программа irisfcmиспользует нечеткий c-means алгоритм, реализованный функцией fcm. При кластерном анализе используются следующие параметры нечеткого c-means алгоритма:

  • экспоненциальный вес – 2.0;
  • количество кластеров –3;
  • максимальное количество итераций алгоритма – 100;
  • минимально допустимое значение улучшения целевой функции за одну итерацию – 0.000001.

Во время работы демо-программа irisfcmна экран выводится следующая информация:

  1. центры кластеров на каждой итерации алгоритма. Центры кластеров выводятся в виде цифр ‘1’, ‘2’ и ‘3’ на 2D- диаграммы распределения ирисов по классам. На рис. 1 изображены центры кластеров, найденные в результате выполнения нечеткого с-means алгоритма. Обратим внимание на то, что ‘1’ соответствует типовому ирису класса Iris Virginica, ‘2’ - Iris Setosa, ‘3’ - Iris Versicolor;
  2. график значений целевой функции на итерациях алгоритма (рис. 2);
  3. значения целевой функции на каждой итерации алгоритма.

Рисунок 1. Кластерный анализ ирисов

Рисунок 2. Зависимость качества кластеризации от количества итераций алгоритма

JUGGLER
 

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

После запуска программы jugglerна экране появляется диалоговое графическое окно, изображенное на рис. 9.19. Шарик изображен в виде зеленой окружности, теннисная ракетка – в виде желтого прямоугольника. Точка, в окрестности которой необходимо обеспечить вертикальное перемещение шарика указана красным треугольником. Шарик упруго отражается от ракетки, а также от границ графического окна и синей горизонтальной линии.

Запуск анимация осуществляется по нажатию кнопки Start Animation…, которая расположена внизу графического окна. Для вывода траекторий движения шарика и ракетки необходимо установить флажок в окне Show Trails. Очистка графического окна от траекторий происходит по нажатию кнопки Clear Trails. Пользователь имеет возможность управлять углом наклона ракетки вручную либо с помощью нечеткого контроллера. Выбор способа управления осуществляется через меню Controller:, которое содержит следующие альтернативы: Fuzzy – нечеткий контроллер и Human – управление человеком-оператором.

Рисунок 9.19 – Демонстрационная программа Juggler

Нечеткий контроллер представляет собой систему нечеткого логического вывода типа Сугэно. Система имеет одну выходную переменную – theta - угол наклона ракетки и две входных: xHit – расстояние от точки пересечения траектории шарика с горизонталью до заданной точки жонглирования и projectAngle – угол наклона траектории шарика. Для лингвистической оценки входных переменных используется по три терма с колокообразными функциями принадлежности. Нечеткое управление происходит по девяти правилам. Эти правила показаны на рис. 9.20 в окне модуля RuleViewer, которое выводится при работе программы juggler.

Рисунок 9.20 – База правил нечеткого контроллера теннисной ракеткой в окне модуля RuleViewer

При ручном управлении ракеткой в верхнем правом угле графического окна (см. рис. 9.21) появляется “рулевое колесо”. Изменение угла наклона ракетки происходит по перемещению мышкой красной линии “рулевого колеса”.

Рисунок 9.21 – Управление теннисной ракеткой человеком-оператором

После начала анимации в нижней части графического окна появляются две кнопки:

Stop– прекращение анимации;
Pause…- пауза в анимации.

По нажатию кнопки Pause… появяляются две новые кнопки:

Continue– продолжение анимации;
Step– выполнение анимации в пошаговом режиме.

При нечетком управлении перемещение точки жонглирования (красного треугольника) происходит случайно через каждые 200 шагов анимации. Количество пройденных шагов анимации выводится в нижнем левом углу графического окна.

NOISEDM
Адаптивное подавление шумов

В этом разделе описывается демонстрационная программа noisedm, иллюстрирующая применение технологии ANFIS для нелинейного шумоподавления. При выполнении демонстрационной программы noisedmна экран выводится 10 слайдов.

На первом слайде выводится аннотация программы noisedm.Для запуска демонстрации необходимо нажать кнопку Start>>.

На втором слайде показан гипотетический информационный сигнал x длительностью 6 секунд (рис. 9.12). Сигнал задан следующим фрагментом программы:

time = (0:0.01:6);
x = sin(40./(time+0.01));

Рисунок 9.12 – Информационный сигнал без шума

На третьем слайде указано, что информационный сигнал x не может быть измерен без наложения сигнала n2. Сигнал n2 представляет собой нелинейно-искаженный шум n1 (рис. 9.13), который определен как: n1 = randn(size(time));.

Рисунок 9.13 – Неискаженный шум

На четвертом слайде показана нелинейная характеристика канала связи (рис. 9.14), в результате прохождения по которому шум n1 искажается в сигнал n2. Показанной на рисунке поверхности соответствует такое нелинейное уравнение: n2(k) = 4*sin(n1(k))*n1(k-1)/(1+n1(k-1)^2).

Рисунок 9.14 – Характеристика канала связи

На пятом слайде показаны исходный и искаженный шумы (рис. 9.15). Заметим, что сигналы n1 и n2 связаны посредством сильно нелинейной зависимости, показанной на рис. 9.15. Визуально трудно определить, что сигналы n1 и n2 являются коррелированными.

Рисунок 9.15 – Шум до и после прохождения через канал связи

На шестом слайде показан измеренный сигнал m (рис. 9.16), полученный сложением исходного информационного сигнала x и искаженного шума n2. Наша задача выделить из зашумленного сигнала m исходный информационный сигнал x. Обратим внимание на то, что нам неизвестен сигнал n2. Доступной информацией является лишь измеренный сигнал m и неискаженный шум n1.

Рисунок 9.16 – Измеренный сигнал

На седьмом слайде указано, что для идентификации нелинейной взаимосвязи между сигналами n1 и n2 будет использоваться функция ANFIS. Хотя сигнал n2 неизвестен, для обучения можно использовать сигнал m как зашумленную версию сигнала n2. Таким образом, при решении указанной задачи идентификации информационный сигнал x будет трактоваться как шум. Будем предполагать, что порядок нелинейности канала связи известен (в нашем случае он равен 2), поэтому необходимо использовать ANFIS-модель с двумя входами.

На восьмом слайде приведена программа обучения ANFIS-модели. В нечеткой модели используется по два терма для каждого входа. Следовательно, база знаний состоит из четырех правил. Общее количество настраиваемых параметров равно 24 – 12 линейных и 12 нелинейных. Длина шага при обучении установлена равной 0.2. Нечеткая модель обучается на протяжении 10 итераций. Информация о процессе обучения модели выводиться в командное окно MatLab.

На девятом слайде приведены искомый и обнаруженный шумы. На рис. 9.17 искомый шум показан вверху, а обнаруженный – внизу. Шум обнаруживается функцией evalfis с помощью обученной нечеткой модели. Заметим, что сигнал n2 на момент моделирования является неизвестным.

Рисунок 9.17 – Искомый и обнаруженный шумы

На десятом слайде показан измеренный сигнал после удаления шума. Отфильтрованный сигнал (estimated_x) получен вычитанием из измеренного сигнала x обнаруженного нечеткой моделью шума (estimated_n2). Для сравнения на десятом слайде показаны искомый информационный сигнал x и отфильтрованный сигнал estimated_x (рис. 9.18). Как видно из рисунка, даже без длительного обучения нечеткая модель достаточно хорошо удаляет шумы из измеренного сигнала m (см. рис. 9.15).

Рисунок 9.18 – Искомый и отфильтрованный сигналы

SLBB
 

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

После запуска программы slbbна экране появляется графическое окно пакета Simulink.Это окно содержит симулинк-модель (рис. 9. 22), используемую демонстрационной программой slbb.

Рисунок 9.22 – Симулинк-модель системы “шарик на коромысле”

Для запуска анимации необходимо выбрать команду Start меню Simulation.После этого появиться диалоговое графическое окно (рис. 9.23), в котором будет происходить анимация. Шарик изображен в виде сиреневого круга, коромысло – в виде желтого прямоугольника, опора коромысла – в виде желтого треугольника. Точка, в окрестности которой необходимо удерживать шарик указана красным треугольником. Управляющая сила показана голубой стрелкой, длина которой пропорциональна ее значению. Запуск анимации осуществляется автоматически по открытию окна. Для вывода траекторий движения шарика и коромысла необходимо установить флажок в окне Show Trails. Очистка графического окна от траекторий происходит по нажатию кнопки Clear Trails. После начала анимации в нижней части графического окна появляются две кнопки: Stop– прекращение анимации и Pause…- пауза в анимации. По нажатию кнопки Pause… появляются две новые кнопки: Continue– продолжение анимации и Step– выполнение анимации в пошаговом режиме. Меню Target Position: позволяет установить следующие законы перемещение точки, в окрестности которой необходимо удерживать шарик:

Sinosoid Wave– синусоидальная волна;
Square Wave– прямоугольная волна (меандр);
Saw Wave– пилообразная волна;
Mouse-Driven – определяемый пользователь с помощью мышки.

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

Рисунок 9.23 – Анимационное окно программы slbb

Управление системой “шарик на коромысле” осуществляет нечеткий контроллер. Он реализован в виде системы нечеткого логического вывода типа Сугэно с четырьма входами. Для лингвистической оценки входных переменных используется по два терма с колокообразными функциями принадлежности. База знаний содержит 16 правил. Для просмотра нечеткого контроллера в симулинк-формате необходимо щелкнуть правой кнопкой мыши по блоку Fuzzy Logic Controller(см. рис. 9.22) и в появившемся меню выбрать команду Look under mask. Затем в появившемся графическом окне Link: slbb/Fuzzy Logic Controller щелкнуть правой кнопкой мыши по блоку FIS Wizard и снова в появившемся меню выбрать команду Look under mask.

Демонстрационная программа slbbтакже выводит графическое окно Scope, которое показывает изменение во времени положения шарика на коромысле и координаты цели, то есть точки, в окрестности которой необходимо удерживать шарик. Эти траектории при разных законах перемещения цели показаны на рис. 9.24. Траектория шарика показана сиреневой линией, а траектория точки, в окрестности которой необходимо удерживать шарик - желтой линией.

Рисунок 9.24 – Графики движений шарика на коромысле при разных законах перемещений цели

а) синусоидальная волна;
б) меандр;
в) пилообразная волна;
г) заданный пользователем

SLCP
 

В этом разделе описывается демонстрационная программа slcp, иллюстрирующая применение нечеткого контроллера перемещением неустойчивой системы “перевернутый маятник на тележке” в заданную точку. Объект управления представляет собой стержень, нижний конец которого шарнирно закреплен на тележке. Тележка может перемещаться вдоль плоскости вращения стержня. Задача состоит в выборе такого значений силы, прилагаемой к тележке, обеспечивающей удержание маятника в вертикальном положении. Удержание в равновесии системы “перевернутый маятник на тележке” является классической задачей теории автоматического управления. К ней сводятся задачи управления разнообразными реальными объектами: ракетой, буксиром, толкающим впереди себя баржи, ядерной реакцией на АЭС. Программа slcp демонстрирует применение нечеткого управления не только для удержания маятника в вертикальном положении, а и для перемещения системы “перевернутый маятник на тележке” в заданную точку. Для работы программа slcpнеобходим пакет Simulink.

После запуска программы slcpна экране появляется графическое окно пакета Simulink.Это окно содержит симулинк-модель (рис. 9. 25), используемую демонстрационной программой slcp.

Рисунок 9.25 – Симулинк-модель системы “перевернутый маятник на тележке”

Для запуска анимации необходимо выбрать команду Start меню Simulation.После этого появиться диалоговое графическое окно (рис. 9.26), в котором будет происходить анимация. Маятник изображен желтым прямоугольником, тележка – сиреневым прямоугольником Точка, в окрестности которой необходимо удерживать маятник указана зеленым треугольником. Управляющая сила показана голубой стрелкой, длина которой пропорциональна ее значению. Запуск анимации осуществляется автоматически по открытию окна. Для вывода траекторий движения маятника и тележки необходимо установить флажок в окне Show Trails. Очистка графического окна от траекторий происходит по нажатию кнопки Clear Trails. После начала анимации в нижней части графического окна появляются две кнопки: Stop– прекращение анимации и Pause…- пауза в анимации. По нажатию кнопки Pause… появляются две новые кнопки: Continue– продолжение анимации и Step– выполнение анимации в пошаговом режиме. Меню Target Position: позволяет установить следующие законы движения точки, в которую необходимо переместить центр тележки:

Sinosoid Wave– синусоидальная волна;
Square Wave– прямоугольная волна (меандр);
Saw Wave– пилообразная волна;
Randow Wave – случайный;
Mouse-Driven – определяемый пользователь с помощью мышки.

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

Рисунок 9.26 – Анимационное окно программы slcp

Управление системой системы “перевернутый маятник на тележке” осуществляет нечеткий контроллер. Он реализован в виде системы нечеткого логического вывода типа Сугэно с четырьма входами: угол наклона маятника, скорость изменения угла наклона маятника, расстояния от центра тележки до цели и скорость тележки. Для лингвистической оценки входных переменных используется по два терма с колокообразными функциями принадлежности. База знаний содержит 16 правил. Для просмотра нечеткого контроллера в симулинк-формате необходимо щелкнуть правой кнопкой мыши по блоку Fuzzy Logic Controller(см. рис. 9.25) и в появившемся меню выбрать команду Look under mask. Затем в появившемся графическом окне Link: slcp/Fuzzy Logic Controller щелкнуть правой кнопкой мыши по блоку FIS Wizard и снова в появившемся меню выбрать команду Look under mask.

Демонстрационная программа slcpпозволяет также вывести графическое окно Scope, которое показывает изменения во времени координат центра тележки и цели. Эти траектории при разных законах перемещения цели показаны на рис. 9.27. Траектория тележки показана сиреневой линией, а траектория цели - желтой линией. Для вывода этого окна необходимо щелкнуть левой кнопкой мыши по пиктограмме Scope в симулинк-модель системы “перевернутый маятник на тележке” (на рис. 9.25 крайняя справа фигура).

Рисунок 9.27 – Графики движений тележки при разных законах перемещений цели

а) синусоидальная волна;
б) меандр;
в) пилообразная волна;
г) заданный пользователем

В оглавление \ К следующему разделу \ К предыдущему разделу

SLTANK
 

В этом разделе описывается демонстрационные программа sltank и sltankrule, иллюстрирующие применение нечеткого контроллера для регулирования уровня воды в баке. Программа sltank отличается от sltankrule только тем, что в ней отсутствует окно с правилами нечеткого управления в формате модуля ViewRuler.

Объект управления представляет собой бак, в который одновременно втекает и вытекает вода. Задача регулирования состоит в выбор таких положений вентиля, которые бы обеспечивали поддержания заданного уровня воды в баке. Объект является нелинейным, так как расход воды пропорционален квадрату высоты столба воды в баке. Для работы программ sltank и sltankruleнеобходим пакет Simulink.

После запуска программы sltankruleна экране появляется графическое окно пакета Simulink.Это окно содержит симулинк-модель (рис. 9. 28), используемую демонстрационной программой sltankrule.

Рисунок 9.28 – Симулинк-модель системы “Водяной бак с нечетким контроллером”

Для запуска анимации необходимо выбрать команду Start меню Simulation.После этого появиться графическое окно (окно Tank Demo нарис. 9.29), в котором будет происходить анимация. Текущий уровень воды показан синим цветом. Необходимый уровень воды отмечен красной линией. Запуск анимации осуществляется автоматически по открытию окна. Также автоматически открывается окно правил нечеткого контроллера (верхнее окно на рис. 9.29). Это окно показывает процесс принятия решений по управлению для текущего момента времени. Нечеткий контроллер представляет собой систему нечеткого логического вывода типа Мамдани с двумя входами: разница между требуемым и текущим уровнями воды и скорость изменения этой разницы. Временные диаграммы требуемого и текущего уровней воды показаны в окне Scope1 (рис. 9.29) желтой и сиреневой линиями, соответственно. В окне change scope приведена временная диаграмма скорости изменения разности требуемого и текущего уровней воды. Эти окна открываются по щелчку левой кнопкой мыши по пиктограммам Scope1и change scope в симулинк-модель системы “Водяной бак с нечетким контроллером”. Пользователь может аналогичным образом вывести на экран временные диаграммы расхода воды (Scope4) и сигнала переполнения бака (Scope2). Примеры этих диаграмм показаны на рис. 9.30.

Рисунок 9.29 – Основные окна системы “Водяной бак с нечетким контроллером”

Рисунок 9.30 – Временные диаграммы расхода воды (а) и сигнала переполнения бака (б)

Нечеткий контроллер использует 5 правил для расчета управляющего воздействия. Для лингвистической оценки входной переменной level (разница между требуемым и текущим уровнями воды) используется три терма с гауссовскими функциями принадлежности, для лингвистической оценки входной переменной rate (скорость изменения разницы между требуемым и текущим уровнями воды) используется два терма с гауссовскими функциями принадлежности и для лингвистической оценки выходной переменной valve (изменение положения вентиля) используется пять термов с треугольными функциями принадлежности. Для просмотра нечеткого контроллера в симулинк-формате (рис. 9.31) необходимо щелкнуть правой кнопкой мыши по блоку Fuzzy Logic Controller(см. рис. 9.28) и в появившемся меню выбрать команду Look under mask. Затем в появившемся графическом окне Link: sltankrule/Fuzzy Logic Controller with Ruleviewer* щелкнуть правой кнопкой мыши по блоку Fuzzy Logic Controllerи снова в появившемся меню выбрать команду Look under mask. Затем в появившемся графическом окне Link: sltankrule/Fuzzy Logic Controller with Ruleviewer/Fuzzy Logic Controller* щелкнуть правой кнопкой мыши по блоку FIS Wizard и снова в появившемся меню выбрать команду Look under mask.

Рисунок 9.31 – Нечеткий контроллер уровня воды в баке в симулинк-формате

В оглавление \ К следующему разделу \ К предыдущему разделу

SLTANKRULE
 

В этом разделе описывается демонстрационные программа sltank и sltankrule, иллюстрирующие применение нечеткого контроллера для регулирования уровня воды в баке. Программа sltank отличается от sltankrule только тем, что в ней отсутствует окно с правилами нечеткого управления в формате модуля ViewRuler.

Объект управления представляет собой бак, в который одновременно втекает и вытекает вода. Задача регулирования состоит в выбор таких положений вентиля, которые бы обеспечивали поддержания заданного уровня воды в баке. Объект является нелинейным, так как расход воды пропорционален квадрату высоты столба воды в баке. Для работы программ sltank и sltankruleнеобходим пакет Simulink.

После запуска программы sltankruleна экране появляется графическое окно пакета Simulink.Это окно содержит симулинк-модель (рис. 9. 28), используемую демонстрационной программой sltankrule.

Рисунок 9.28 – Симулинк-модель системы “Водяной бак с нечетким контроллером”

Для запуска анимации необходимо выбрать команду Start меню Simulation.После этого появиться графическое окно (окно Tank Demo нарис. 9.29), в котором будет происходить анимация. Текущий уровень воды показан синим цветом. Необходимый уровень воды отмечен красной линией. Запуск анимации осуществляется автоматически по открытию окна. Также автоматически открывается окно правил нечеткого контроллера (верхнее окно на рис. 9.29). Это окно показывает процесс принятия решений по управлению для текущего момента времени. Нечеткий контроллер представляет собой систему нечеткого логического вывода типа Мамдани с двумя входами: разница между требуемым и текущим уровнями воды и скорость изменения этой разницы. Временные диаграммы требуемого и текущего уровней воды показаны в окне Scope1 (рис. 9.29) желтой и сиреневой линиями, соответственно. В окне change scope приведена временная диаграмма скорости изменения разности требуемого и текущего уровней воды. Эти окна открываются по щелчку левой кнопкой мыши по пиктограммам Scope1и change scope в симулинк-модель системы “Водяной бак с нечетким контроллером”. Пользователь может аналогичным образом вывести на экран временные диаграммы расхода воды (Scope4) и сигнала переполнения бака (Scope2). Примеры этих диаграмм показаны на рис. 9.30.

Рисунок 9.29 – Основные окна системы “Водяной бак с нечетким контроллером”

Рисунок 9.30 – Временные диаграммы расхода воды (а) и сигнала переполнения бака (б)

Нечеткий контроллер использует 5 правил для расчета управляющего воздействия. Для лингвистической оценки входной переменной level (разница между требуемым и текущим уровнями воды) используется три терма с гауссовскими функциями принадлежности, для лингвистической оценки входной переменной rate (скорость изменения разницы между требуемым и текущим уровнями воды) используется два терма с гауссовскими функциями принадлежности и для лингвистической оценки выходной переменной valve (изменение положения вентиля) используется пять термов с треугольными функциями принадлежности. Для просмотра нечеткого контроллера в симулинк-формате (рис. 9.31) необходимо щелкнуть правой кнопкой мыши по блоку Fuzzy Logic Controller(см. рис. 9.28) и в появившемся меню выбрать команду Look under mask. Затем в появившемся графическом окне Link: sltankrule/Fuzzy Logic Controller with Ruleviewer* щелкнуть правой кнопкой мыши по блоку Fuzzy Logic Controllerи снова в появившемся меню выбрать команду Look under mask. Затем в появившемся графическом окне Link: sltankrule/Fuzzy Logic Controller with Ruleviewer/Fuzzy Logic Controller* щелкнуть правой кнопкой мыши по блоку FIS Wizard и снова в появившемся меню выбрать команду Look under mask.

Рисунок 9.31 – Нечеткий контроллер уровня воды в баке в симулинк-формате

SLTBU
 

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

После запуска программы sltbuна экране появляется графическое окно пакета Simulink.Это окно содержит симулинк-модель (рис. 9. 32), используемую демонстрационной программой sltbu.

Рисунок 9.32 – Симулинк-модель системы “Грузовик с нечетким контроллером парковки”

Для запуска анимации необходимо выбрать команду Start меню Simulation.После этого появиться диалоговое графическое окно (рис. 9.33), в котором будет происходить анимация. Грузовик изображен голубым прямоугольником, место парковки – перевернутой черной буквой “П”, бордюр – синей горизонтальной линией. Центр грузовика не должен пересекать бордюр. Запуск анимации осуществляется автоматически по открытию окна. Для повторного запуска анимации необходимо нажать кнопку Start Simulation…. Для вывода траекторий движения маятника и тележки необходимо установить флажок в окне Show Trails. Очистка графического окна от траекторий происходит по нажатию кнопки Clear Trails. После начала анимации в нижней части графического окна появляются две кнопки: Stop– прекращение анимации и Pause…- пауза в анимации. По нажатию кнопки Pause… появляются две новые кнопки: Continue– продолжение анимации и Step– выполнение анимации в пошаговом режиме. Выбор способа управления парковкой грузовика осуществляется через меню Controller:, которое содержит следующие альтернативы: Fuzzy – нечеткий контроллер и Human – управление человеком-оператором.

Рисунок 9.33 – Анимационное окно программы sltbu

Нечеткий контроллер представляет собой систему нечеткого логического вывода типа Сугэно. Система имеет одну выходную переменную – control - угол поворота руля и три входных: distance – расстояния до точки парковки, control1 – угол поворота руля вблизи места парковки и control2 – угол поворота руля вдали от места парковки. Нечеткая база знаний содержит всего два правила: “If distance is near then control=control1” и ”If distance is far then control=control2”. Значение переменной control1 (control2), т.е. угол поворота руля, если бы грузовик находился близко (далеко) от точки парковки рассчитывается по несложному алгоритму. Нечеткий контроллер определяет какое управление выбрать: ближнее – control1 или дальнее – control2. Для формализации нечетких термов near (рядом) и far (далеко) используются z- и s- подобные функции принадлежности, соответственно. Когда грузовик находиться не далеко и не близко угол поворота руля рассчитывается как промежуточное значение между control1 и control2 согласно алгоритму нечеткого логического вывода Сугэно. Для просмотра нечеткого контроллера в симулинк-формате (рис. 9.34) необходимо щелкнуть правой кнопкой мыши по блоку Fuzzy Logic Controller(см. рис. 9.32) и в появившемся меню выбрать команду Look under mask. Затем в появившемся графическом окне Link: sltbu/Fuzzy Logic Controller щелкнуть правой кнопкой мыши по блоку FIS Wizard и снова в появившемся меню выбрать команду Look under mask. Примеры траекторий парковки при разных начальных положений грузовика приведены на рис. 9.35. Начальные положения грузовика задаются перемещением его мышкой.

Рисунок 9.34 – Нечеткий контроллер парковки грузовика в симулинк-формате

Рисунок 9.35 – Типовые траектории парковки грузовика с нечетким контроллером

При ручном управлении парковкой в окне анимации появляется “рулевое колесо”, показанное на рис. 9.35. Изменение угла поворота происходит по перемещению мышкой красной стрелки “рулевого колеса”.

Рисунок 9.36 – Рулевое колесо при ручной парковке грузовика

MGTSDEMO
 

В этом разделе описывается демонстрационная программа mgtsdemo, иллюстрирующая применение технологии ANFIS для решения уже ставшей классической задачи предсказания временного ряда Маккея-Глэсса. При выполнении демонстрационной программы mgtsdemo на экран выводится 9 слайдов.

На первом слайде выводится аннотация программы mgtsdemo. Для запуска демонстрации необходимо нажать кнопку Start>>.

На втором слайде описывается временной ряд Маккея-Глэсса, фрагмент которого показан рис. 9.37. Дифференциальное уравнение этого ряда имеет вид:

dx(t)/dt = 0.2x(t-tau)/(1+x(t-tau)^10) - 0.1x(t).

При значениях x(0) = 1.2 и tau = 17 ряд получается непериодическим и неконвергентным, динамика которого очень чувствительна к начальным условиям. Временной ряд на рис. 9.37 получен в предположении, что x(t) = 0 при t < 0.

Рисунок 9.37 - Временной ряд Маккея-Глэсса

На третьем слайде указано, что ANFIS-технология будет использована для построения модели, предсказывающей значение ряда через 6 интервалов времени x(t+6) на основе предыдущих четырех наблюдений временного ряда: x(t-18), x(t-12), x(t-6) и x(t). Следовательно, необходимо использовать такой формат обучающей выборки: [x(t-18) x(t-12) x(t-6) x(t) x(t+6)]. В интервале от t = 118 до 1117 было собрано 1000 пар данных в указанном формате. Первые 500 пар используются как обучающая выборка, а остальные - как тестирующая. На третьем слайде показан график временного ряда на промежутке [118, 1117] то есть, на интервале, из которого сформированы обучающая и тестирующая выборки.

На четвертом слайде с помощью функции genfis1 генерируется исходная нечеткая модель. Генерирование нечеткой модели из обучающей выборки trn_dat происходит по команде:

fismat = genfis1(trn_data)

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

Рисунок 9.38 - Исходные функции принадлежности нечеткой модели предсказания временного ряда

На пятом слайде указано, что сгенерированная нечеткая база знаний содержит 2^4 = 16 правил. Количество настраиваемых параметров нечеткой модели равно 104: 24 нелинейных и 80 линейных. Такое число настраиваемых параметров хорошо сбалансировано с объемом обучающей выборки, составляющей 500 пар "входы-выход". Для обучения нечеткой модели необходимо вызвать такую команду:

[trn_fismat,trn_error] = anfis(trn_data, fismat,[],[],chk_data)

На десять итераций обучения нечеткой модели затрачено около 4 минут на компьютере SUN SPARC II workstation. С целью экономии времени обучение нечеткой модели в демо-показе не происходит - результаты обучения напрямую загружаются в память.

На шестом слайде приведены графики оптимальных функций принадлежности (рис. 9.39), полученные после 10 итераций алгоритма обучения. Они не сильно изменились по сравнению с исходными функциями принадлежности (см. рис. 9.38). Очевидно, что основное обучение произошло путем изменения линейных параметров нечеткой модели. Нелинейные параметры обычно сильно изменяются при тонкой настройке, которая может быть выполнена позже.

Рисунок 9.39 - Оптимальные функции принадлежности нечеткой модели предсказания временного ряда

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

Рисунок 9.40 - Кривые обучения нечеткой модели предсказания временного ряда

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

Рисунок 9.41 - Исходный и предсказанный временные ряды

На девятом слайде показан график ошибки предсказания обученной нечеткой модели (рис. 9.42). Обратим внимание, что масштаб этого слайда почти в 100 раз крупнее, чем предыдущего. Напомним, что обучение нечеткой модели было прервано после 10 итераций. Ожидается, что меньшую ошибку предсказания временного ряда можно получить после дальнейшего обучения нечеткой модели.

 
  Рисунок 9.42 - Ошибка предсказания временного ряда нечеткой моделью после обучения
TRIPS
 
     

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

На первом слайде выводится аннотация программы trips. Для запуска демонстрации необходимо нажать кнопку Start>>.

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

  • количество жителей;
  • количество домов;
  • количество автомобилей;
  • уровень доходов;
  • уровень занятости населения.

На слайде показано пять графиков значений входных переменных из обучающей выборки. Эти графики изображены в верхней части рис. 9.44.

На третьем слайде сообщается, что с использованием функции genfis2, которая основана на алгоритме субтрактивной кластеризации, генерируется система нечеткого логического вывода типа Сугэно. Эта система позволяет рассчитать значение выходной переменной на основе данных о пяти входных переменных. Нечеткая база знаний системы содержит всего четыре правила. На слайде также приведена структура сгенерированной системы нечеткого логического вывода (рис. 9.43).

Рисунок 9.43 - Структура системы нечеткого логического вывода для прогнозирования количества автомобильных поездок

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

Рисунок 9.44 - Тестирование системы на обучающей выборке

На пятом слайде показаны результаты сравнения действительных и модельных значений выходной переменной (рис. 9.45). Маркер в виде голубого крестика соответствует одной паре данных из обучающей выборки. По оси абсцисс откладываются действительные значения выходной переменной, а по оси ординат - модельные значения для одного и того же набора входных данных. В идеальном случае все маркеры расположились бы на диагонали первого квадранта.

Рисунок 9.45 - График "действительные - модельные значения" для обучающей выборки

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

 
  Рисунок 9.46 - График "действительные - модельные значения" для тестирующей выборки
SHOWER
 
     

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

После запуска программы shower на экране появляется графическое окно пакета Simulink. Это окно содержит симулинк-модель (рис. 9. 47), используемую демонстрационной программой shower.

Рисунок 9.47 - Симулинк-модель системы "душ с нечетким контроллером"

Для запуска анимации необходимо выбрать команду Start меню Simulation. После этого в графических окнах temp scope и flow scope будут выводиться временные диаграммы температуры и расхода воды в душе, соответственно. В качестве примера на рис. 9.48 показаны типовые временные диаграммы. Требуемые значения температуры и расхода воды показаны сиреневыми линиями, а текущие значения желтыми линиями. Моделирование системы "душ с нечетким контроллером" происходит при следующих параметрах: