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

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

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

if(discont is small) and (period is short) then (rate is goad) (1) if(discont is not small) and (period is long) then (rate is bad) (1) if(discont is middle) and (period is normal) then (rate is normal) (1) if(discont is big) and (period is short) then (rate is normal) (1)

Рис. 8.3. Окно редактора правил вывода

При изменении формата на символьный правила вывода будут иметь

вид:

(discont == small) & (period == short) => (rate == good) (1) (discont ~= small) & (period == long) => (rate == bad) (1)

(discont == middle) & (period == normal) => (rate== normal) (1) (discont == big) & (period == short) => (rate == normal) (1)

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

151

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

каждом окне отображается соответствующая ФП, уровень ее среза (для входных переменных) и вклад отдельной ФП в общий результат (для выходных переменных).

В нижней части главного окна можно отобразить номера правил вывода в различных форматах вывода, отмечая их мышью. Для изменения формата в меню Options выбирается пункт Rule display format.

Изменение значений входных переменных допустимо двумя способами:

1)путем ввода в поле Input записи входного вектора, размерность которого равна количеству входных переменных;

2)щелчком мыши в любом графическом окне, которое относится к входной переменной.

Входной вектор в каждом из этих вариантов определения исходных данных будет задавать набор красных вертикальных прямых.

Для СНВ, рассмотренной в примере 8.1, при входном векторе [15 10]

(ставка дисконтирования – 15 %, период окупаемости бизнес-проекта – 10

месяцев) результат (степень инвестиционной привлекательности) будет составлять 0,639 (рис. 8.4).

Средство просмотра поверхности вывода. Средство просмотра поверхности вывода позволяет строить трехмерную поверхность как зависимость одной из выходных переменных от двух входных. Выбор входных и выходных переменных осуществляется посредством ниспадающих меню главного окна рассматриваемого программного средства. Количество выводимых линий по осям X и Y определяется в полях ввода X grids, Y grids. Поверхность вывода, соответствующая правилам вывода примера 8.1, показана на рис. 8.5.

152

Построение нечетких систем типа Сугено. Рассмотрим построение СНВ двумя редакторами – СНВ и ФП. Для построения СНВ типа Сугено необходимо в меню File выбрать пункт New FIS Sugeno. Количество входных и выходных переменных определяется так же, как и при построении СНВ типа Мамдани.

Рис. 8.4. Окно средства просмотра правил вывода

Рис. 8.5. Окно просмотра поверхности решений

153

Редактор ФП. Для СНВ типа Сугено изменения касаются только схемы определения ФП для выходных переменных. ИНЛ в среде MATLAB

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

if x is A and у is В then z = k,

где А и В – нечеткие множества антецедента; k – четко заданная константа консеквента.

Для построения такой модели при добавлении ФП необходимо выбрать тип – константа (constant) и задать в качестве параметра ФП численное значение соответствующей константы. Вторая модель – нечеткая модель Сугено первого порядка. Для нее нечеткое правило вывода записывается следующим образом:

if x as A and у is В then z = p · x + q · y + r,

где р, q и r – константы.

В данном случае тип ФП – линейная зависимость (linear). Для определения параметров ФП необходимо ввести вектор, элементы которого соответствуют численным значениям констант консеквента.

Работа с редактором правил вывода, а также со средствами просмотра правил и поверхности вывода выполняется аналогично случаю построения СНВ по Мамдани.

Пример нечеткого вывода по Сугено с использованием нечеткой модели нулевого порядка и правил вывода, определенных выше,

представлен на рис. 8.6 (выходная переменная имеет три значения: bad, normal, good, которые задаются соответственно тремя константами –

0, 0.5, 1).

154

Рис. 8.6. Окно просмотра правил вывода (вывод по Сугено)

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

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

2.При выполнении пункта 1 индивидуального задания задаться различными диапазонами изменения входных и выходных переменных нечеткой системы, а также разными типами ФП.

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

4.Выполнить сравнительный анализ двух нечетких систем построенных на принципе Мамдани и Сугено.

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

155

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

НЕЧЕТКОЕ УПРАВЛЕНИЕ ДИНАМИЧЕСКИМИ ПРОЦЕССАМИ

Цель лабораторной работы: получение и закрепление знаний о методах проектирования нечетких контроллеров, формирование практических навыков работы при управлении сложными объектами или динамическими процесами.

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

9.1.1. Введение в теорию нечеткого управления

Методы нечеткого вывода, кроме задач построения экспертных систем, широко используются в разработке нечетких контроллеров.

Основное назначение контроллера – это управление объектом, при котором поведение управляемого объекта описывается нечеткими правилами.

Пусть Y – основной параметр объекта;

Y* – желаемое значение параметра;

Е = [Y* – Y] ошибка текущего состояния;

U – управляющее воздействие, вырабатываемое контроллером;

U(K) значение управляющего воздействия;

U(K) = F(U(K – 1), ...,U(K – ), E(K – 1), ..., E(K – ));

глубина рассмотрения предыстории.

Обычно нечеткий контроллер работает с глубиной = 1:

U(K) = F(U(K – 1), E(K – 1)); или U(K) = F(U(K – 1), ΔE(K – 1));

где E – изменение ошибки, а правило формирования управляющего

156

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

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

Для управления необходимо:

1)определить текущие значения значимых выходных переменных;

2)сравнить текущие выходные значения с заданными целевыми значениями;

3)подобрать значения управляемых переменных так, чтобы достичь целевых значений;

4)повторять пункт 1 – 3 до тех пор, пока не будут получены целевые значения.

Рассмотрим нечеткий контроллер, причем управляемый процесс имеет три входные переменные с двумя управляемыми переменными (вход

2 и вход 3) и одной случайной переменной (вход 1), а также три выходные переменные. Нечеткий контроллер согласно определенному алгоритму преобразует три выходные переменные в две управляющие переменные,

которые затем возвращаются на объект управления. Сравнение выходных значений с целевыми значениями выполняется самим контроллером.

В отличие от большинства стандартных контроллеров, использующих

157

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

Пример 9.1. Правила управления:

ЕСЛИ давление низкое, ТО открыть кран

(процесс химического производства).

ЕСЛИ процент по кредиту высок, ТО сократить заимствования

(процесс финансового планирования).

ЕСЛИ уровень потребления энергии низкий, ТО сократить выходную мощность генератора (процесс управления мощностью).

Термины, набранные прямым шрифтом, – это имена объектных переменных, слова, набранные курсивом, – нечеткие значения соответствующих переменных. Подобные правила используются человеком в процессе управления. Опытный оператор понимает значения нечетких терминов: "давление низкое" или "немного открыть кран", в то время как устройство автоматического контроля работает с четкими значениями: выходные переменные многих технических процессов обрабатываются аналого-цифровыми преобразователями, управляющие переменные – цифро-аналоговыми преобразователями; оба вида устройств сводятся к обработке цифровых значений.

Итак, чтобы реализовать нечеткий контроллер, необходимо:

преобразовать четкие значения выходных переменных процесса

внечеткие;

использовать правила преобразования нечетких выходных переменных в нечеткие значения управляющих;

преобразовать нечеткие значения управляющих переменных в

четкие.

Для каждой переменной А процесса определим функцию принадлежности (a, f ) , которая связывает любое четкое значение

переменной А с нечетким.

158

9.1.2. Правила и импликация Правила

Правила в системе нечеткого контроллера имеют вид ЕСЛИ f0, ТО g0,

где f0 и g0 – любые фиксированные нечеткие значения некоторой выходной переменной A и некоторой управляющей переменной В соответственно.

Пример 9.2. Нечеткий контроллер.

Пусть процесс содержит:

три выходные переменные с нечеткими значениями:

1)давление (низкое, среднее, высокое);

2)температура (холодно, довольно тепло, тепло, горячо);

3)влажность (сухо, влажно, сыро);

две управляющие переменные с нечеткими значениями:

1)подача воды (отсутствует, средняя, максимальная);

2)интенсивность нагрева (отсутствует, низкий, средний,

максимальный);

два правила:

1) ЕСЛИ давление низкое ТО вентиль наполовину открыт.

Значение f0 – давление низкое означает, что нечеткое значение выходной переменной "давление" низкое. Значение g0 – вентиль наполовину открыт означает, что "вентиль" открыт наполовину.

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

Посылка правила f0 – температура холодно И влажность сыро комбинирует нечеткие значения выходных переменных "температура" и "влажность". Значение g0 – нагреватель, максимальный означает, что нечеткое значение управляющей переменной "нагреватель" максимально.

Значение f0 в условной части правила может быть либо простым нечетким значением одной выходной переменной, либо комбинацией нечетких значений нескольких выходных переменных. Нечеткое значение

159

g0 в заключительной части правила почти всегда представляет простое нечеткое значение только одной управляющей переменной.

Импликация

Правила, подобные "ЕСЛИ f0, ТО g0", в булевой логике называются импликацией, где f0 и g0 – булевские сущности со значениями истинности 0

или 1. Формально импликацию записывают в виде f0 g0 каждой пары значений, она возвращает результат согласно табл. 9.1.

Таблица 9.1 – Таблица истинности

 

 

 

 

 

 

 

f0

g0

 

f0 g0

НЕ f0 ˅ g0

0

0

 

1

1

0

1

 

1

1

1

1

 

1

1

1

0

 

0

0

Из табл. 9.1 видно, что операция f0 g0 эквивалентна (НЕ f0) g0.

В нечеткой логике импликация нечетких значений f0 и g0, f0 g0

определяется как новое комбинированное нечеткое значение.

Например, нечеткая импликация: (НЕ f0) ИЛИ g0.

Функция принадлежности:

(а, b, f0 g0) = [a, b, (НЕ f0) ИЛИ g0] = S[1 (а, f0), n(b, g0)],

где а и b – любые два базовых значения объектных переменных A и В,

соответственно f0 А и g0 В, (а, f0) и n(b, g0) частичные функции принадлежности А и В.

Сопоставление состояния процесса и правил нечеткого контроллера

Рассмотрим процесс с выходной переменной А, управляющей переменной В и правилом, связывающим нечеткие значения f0 сущности А и g0 сущности В (табл. 9.2).

160

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