Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_практикум_ОВИ_03_06_13

.pdf
Скачиваний:
61
Добавлен:
14.04.2015
Размер:
4.1 Mб
Скачать

реализующей его программы можно просмотреть, активизировав мышью гиперссылку View code for juggler в окне демонстрации этого примера.

Программа занимает немного больше 700 строк и просматривается в редакторе программ системы МATLAB.

Рис. 9.8. Окно контроля Rule Viewer

9.2.3. Система управления смесителем воды

Ввод команды shower в окне Command Window пакета MATLAB

приводит к появлению в окне Simulink структурной схемы нечеткой системы управления смесителем холодной и горячей воды.

С работой смесителя холодной и горячей воды мы сталкиваемся практически ежедневно. Если напор воды постоянен, то особой необходимости в управлении этим простым устройством нет – достаточно ручку смешения установить в нужное положение и проконтролировать

171

рукой температуру воды. Но, если напор воды постоянно меняется, то без автоматического регулятора температуры не обойтись. В

демонстрационном примере рассматривается замкнутая система регулирования температуры с использованием нечеткой логики. Simulink-

диаграммы системы приведены на рис. 9.9.

Рис. 9.9. Simulink-диаграммы системы управления смесителем воды

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

9.2.4. Система управления перевернутым маятником.

Ввод команды slcp1 в окне Command Window пакета MATLAB

приводит к появлению в окне Simulink структурной схемы нечеткой системы управления перевернутым маятником (рис. 9.10).

172

Рис. 9.10. Структурная схема нечеткой системы управления

"перевернутый маятник"

Запуск моделирования приводит к появлению анимационной картинки (рис. 9.11) иллюстрирующей перемещение в пространстве динамической системы "перевернутый маятник".

9.2.5. Система управления двумя перевернутыми маятниками

Ввод команды slcpp1 в окне Command Window пакета MATLAB

приводит к появлению в окне Simulink структурной схемы нечеткой системы управления двумя перевернутыми маятниками (рис. 9.12).

Запуск моделирования приводит к появлению анимационной картинки (рис. 9.13), иллюстрирующей перемещение в пространстве динамической системы "перевернутые маятники".

173

Рис. 9.11. Динамическая система "перевернутый маятник"

Рис. 9.12. Структурная схема нечеткой системы управления

174

Рис. 9.13. Динамическая система "перевернутые маятники"

9.3. Индивидуальные задания

1.Необходимо изучить методы построения нечетких контроллеров средствами нечеткой логики и блоков моделирования Simulink.

2.Промоделировать в Simulink все пять нечетких контроллеров,

которые управляют различными динамическими процессами.

3.Получить и привести в отчете словесное описание и графическое отображение правил нечеткого вывода рассмотренных нечетких регуляторов.

4.Описать условия и определить параметры системы, при которых происходит "срыв" управления всех пяти нечетких контроллеров, которые управляют различными динамическими процессами.

5.Оформите отчет по лабораторной работе.

175

Лабораторная работа 10

РЕГУЛИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ НЕЧЕТКОГО КОНТРОЛЛЕРА

Цель лабораторной работы: получение и закрепление знаний,

формирование практических навыков работы с методами построения нечетких контроллеров средствами инструментария нечеткой логики

(Fuzzy Logic) и блоков моделирования Simulink пакета MATLAB.

10.1. Краткие сведения из теории

Пакет нечеткой логики для системы MATLAB – это пакет прикладных программ, относящихся к теории нечетких множеств и позволяющих конструировать так называемые нечеткие экспертные и управляющие системы. Основные возможности пакета:

1. Построение систем нечеткого вывода (экспертных систем,

регуляторов, аппроксиматоров зависимостей).

2.Построение адаптивных нечетких систем (гибридных нейронных

сетей).

3.Интерактивное динамическое моделирование в Simulink.

В состав программных средств Fuzzy Logic Toolbox входят следующие основные программы, имеющие графический интерфейс,

редактор нечеткой системы вывода Fuzzy Inference System Editor (FIS-

редактор) вместе со вспомогательными программами: редактором функций принадлежности (Membership Function Editor), редактором правил (Rule editor), просмотрщиком правил (Rule Viewer) и просмотрщиком поверхности отклика (Surface Viewer). FIS-редактор запускается из командной строки командой Fuzzy.

176

Системы нечеткого вывода, созданные тем или иным образом с помощью пакета Fuzzy Logic Toolbox, допускают интеграцию с инструментами пакета Simulink, что позволяет выполнять моделирование систем в рамках последнего.

Рассмотрим пример построения нечеткого контроллера средствами инструментария нечеткой логики (ИНЛ) Fuzzy Logic и блоков моделирования Simulink, который осуществляет контроль уровня воды в баке. На рис. 10.1 изображен объект управления в виде бака с водой, к

которому подходят две трубы: через одну трубу, снабженную краном, вода затекает в бак, через другую – вытекает.

Рис. 10.1. Схематическое представление объекта управления (бак с водой)

Подачу воды в бак можно регулировать, больше или меньше открывая кран. Расход воды является неконтролируемым и зависит от диаметра выходной трубы (он фиксирован) и от текущего уровня воды в баке. Если понимать под выходной (регулируемой) переменной уровень воды, а под регулирующим элементом – кран, то можно отметить, что подобный объект регулирования, с точки зрения его математического описания, является динамическим и нелинейным.

177

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

Очевидно, в регулятор, обеспечивающий достижение цели управления, должна поступать информация о несоответствии (разности)

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

(кран).

Порядок построения нечеткого контроллера:

1.Задать для каждой из входных и выходных переменных функции принадлежности.

2.Разработать базу правил для реализуемой нечёткой системы.

3.Выбрать алгоритм нечёткого логического вывода (Мамдани или Сугено) и выполнить анализ результатов работы созданной системы.

В первом приближении функционирование регулятора можно

описать набором из следующих правил:

1.If (level is okay) then (valve is no_change);

2.If (level is low) then (valve is open_fast);

3.If (level is high) then (valve is close_fast);

4.If (level is okay) and (rate is positive) then (valve is close_slow);

5.If (level is okay and (rate is negative) then (valve is open_slow),

что в переводе означает:

1.ЕСЛИ уровень соответствует заданному, ТО кран без изменения;

2.ЕСЛИ уровень низкий, ТО кран быстро открыть;

3.ЕСЛИ уровень высокий, ТО кран быстро закрыть;

4.ЕСЛИ уровень соответствует заданному И его прирост –

положительный, ТО кран надо медленно закрывать; 5. ЕСЛИ уровень соответствует заданному И его прирост –

отрицательный, ТО кран надо медленно открывать.

178

10.1.1. Формирование функции принадлежности

Командой Fuzzy запустить FIS-редактор. По умолчанию предлагается алгоритм вывода типа Мамдани. Поскольку в системе должно быть два входа, то через пункт меню Edit/Add input надо добавить в систему второй вход (в окне редактора появляется второй желтый блок с именем input2). Делая далее однократный щелчок на блоке input1,

изменить его имя на "level", завершая ввод нового имени нажатием клавиши <Enter>. Аналогичным образом установить имя "rate" блоку input2 и "valve" – выходному блоку (справа вверху) output1. Присвоить имя всей системе, например "LevelControl", выполнив это через пункт меню

File/Save to Workspace. Вид окна редактора после указанных действий приведен на рис. 10.2.

Рис. 10.2. Вид окна FIS-редактора после задания структуры системы

179

Для того чтобы сформировать функции принадлежности для переменных, следует выбрать пункт меню View/Edit membership functions и

задать параметры системы в соответствии с табл. 10.1. Здесь используются следующие функции. Гауссова функция Gaussmf имеет вид

y = Gaussmf(x, [c, σ]) = exp(– (x c)2 / (2σ)2).

Функция треугольной формы Trimf определяется следующим

образом:

0, x a,

x a , a x b, f ( x,a,b,c ) b a

c x

, b x c,

c b

0, x c.

Таблица

10.1 – Параметры

функций

принадлежности

для

переменных level, rate, valve

 

 

 

 

 

 

 

 

 

Название

Название

 

 

 

 

входных

функции

 

Тип функции принадлежности

 

переменных

принадлежности

 

 

 

 

 

High

 

Gaussmf [0,3; –1]

 

level

Okay

 

Gaussmf [0,3; 0]

 

 

Low

 

Gaussmf [0,3; 1]

 

 

Negative

 

Gaussmf [0,03; –0,1]

 

rate

None

 

Gaussmf [0,03; 0]

 

 

Positive

 

Gaussmf [0,03; 0,1]

 

 

Close_fast

 

Trimf [–1; –0,9; –0,8]

 

 

Close_low

 

Trimf [–0,6; –0,5; –0,4]

 

valve

No_change

 

Trimf [–0,1; 0; 0,1]

 

 

Open_low

 

Trimf [0,2; 0,3; 0,4]

 

 

Open_fast

 

Trimf [0,8; 0,9; 1]

 

Сформировать правила вывода,

используя

Rule Editor. Для

этого

надо ввести соответствующие правила из подраздела 10.1, как показано на

рис. 10.3.

180

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]