Научная статья на тему 'Нечеткое программирование. Нечеткие системы IEC 1131-7'

Нечеткое программирование. Нечеткие системы IEC 1131-7 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
414
57
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Соколов Д. П.

Разобраны основы программирования нечетких систем на языке FCL IEC 1131-7 и даны примеры программной реализации системы нечеткого вывода для решения задачи оценки качества обслуживания нагрузки в IP-сетях.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Нечеткое программирование. Нечеткие системы IEC 1131-7»

16 декабря 2011 г. 18:02

Т-Сотт #10-2010________________________________(Технологии информационного общества)

Нечеткое программирование. Нечеткие системы 1ЕС 1131-7

Разобраны основы программирования нечетких систем на ямке /'С1. ¡ЕС 1131-7 и даны примеры программной реализации системы нечеткого вывода для решения задачи оценки качества обслуживания нагрузки в IР-сетях.

Сок-плов Д.П.,

МТУСИкаф. СУ/ГС

Вслед ¡а обзором средств нечеткого программирования [1] и программной реализации нечетких систем в MAT LAB перейдем к рассмотрению стандарта IEC 1131-7. Указанный документ является первым и на данный момент единственным стандартом, формализующим программное описание нечетких систем при программировании нечетких контроллеров. Программирование нечетких контроллеров осуществляется на языке FCL (Fuzzy Control Language). В описании языка выделяют стандартные операторы, приведенные в табл. 1.

Таблица 1

Блоки її операторы языка FCL______________

Оператор Значение

FUNCTION BLOCK назван ие_б.юка LND FUNCTION BLOCK Начало и конец программного блока, относящегося к одному контроллеру. Обязательный элемент.

VAR INPUT имя_переменной: тип_данных: LNDVAR Декларирование входных переменных и описание типа данных (целые, действительные и т.д.). Обязательный элемент.

VAROUTPUT имя_переменной: типданных: LNDVAR Декларирование выходных переменных и описание типа данных (целые, действительные II т.д.). Обязательный элемент.

VAR имя_переменной: тип_Оанных: LNDVAR Декларирование локальных вспомогательных переменных и описание типа данных (целые, действительные и т.д.). Необязательный элемент.

(* текст ^комментария *) Комментарии к исходному коду программы. Необязательный элемент.

Рассматривая нечеткую систему для оценки качества обслуживания нагрузки в IP-сетях, подробно описанную в [2] и [31, введем переменные на языке FCL в виде: FUNCTJON_BLOCK VAR INPUT (* задержка *)

TD RIAL:

(* джиттер *)

DV REAL;

(* потери • I

LR REAL:

ENDVAR

VAROUTPUT

QoS REAL;

END VAR

LND FUNCTION BLOCK

Задав имена переменных необходимо описать терм-множества и пределы значений. На РСЕ это делается оператором фаззификации FUZZ1FY для входных переменных и оператором дефаззификации 1)1.Н^/1КУ ятя выходных переменных. Описание блоков и операторов фаззификации и дефаззификации приведено в таблице 2.

Оператор Значение

F U ZZ1FY имя_переменной TLRM имятерма: функция принадлежности'. LND FUZZIFY Описание терм-множества одной из входных переменных, объявленных в блоке VAR INPUT. Обязательный элемент.

DLFUZZIFY имя_переменной TLRM чия_mep.ua: функция принадлежности : истод_де</кизификации: значение_по_умолчанию : 1 диапазон_значений ;| ENDDLF4JZZIFY Описание терм-множества одной из выходных переменных, объявленных в блоке VAR OUTPUT. Обязательный элемент. Параметр диапа-зон_значений является не обязательным.

Функции принадлежности в конструкциях FUZZ1FY и DEFUZZ1FY являются кусочно-линейными функциями и задаются в виде пар (и,. ¡.Ни,)), где и, - элемент универсального множества U, ц(ц) - степень принадлежности элемента к рассматриваемому нечеткому множеству [2]. Таким образом, для рассматриваемой системы запишем:

FUZZIFY TD

TERM Low (0. 1) (50. 1) (100. I) (150. 0.33) (200. 0.1429) (250,0.11) (300.0.11) (350.0.11) (400.0.11) (450. Oil):

TERM Medium - (0. 0.11) (50. 0.11) (100. 0.33) (150. 0.78) (200. 11(250. I)(300. 0(350.0.78)(400,0.11)(450.0.11):

TERM High : (0. 0.11) (50. 0.11) (100. 0.11) (150. 0.11) (200. 0.11) (250. 0.11) (300. 0.33) (350.0.78) (400. I) (450. I);

END FUZZIFY FUZZIFY DV

TERM Low :-(0. 1) (10. I) (20. I) (30. I) (40, I) (50. 0.33) (60,

0.1429) (70,0.11) (80.0.11) (90.0.11) ;

TERM High r= (0. 0.11) (10. 0.11) (20. 0.11) (30. 0.11) (40. 0.11) (50. 0.33) (60.0.78) (70. I) (80. I) (90. I):

END FUZZIFY FUZZIFY LR

TERM Low := (-10. I) (-9, I) (-8. I) (-7. I) (-6, I) (-5. I) (-4. I) (3,0.33) (-2,0.I429)(-l.0.11);

TERM High : (-10, 0.11) (-9. 0.11) (-8, 0.11) (-7. 0.11) (-6. 0.11) (-5,0.11)(-4.0.11)(-3,0.33)(-2. l)(-l. I):

END FUZZIFY

68

T-Comm #10-2010

(Технологии информационного общества)

Метод дефаззификации задается ключевым словом METHOD. Если коэффициенты принадлежности всех переменных равны нулю, то система не может задействовать ни одно из правил и на выходе системы образуется пустое множество (или ошибка). Значение по умолчанию в конструкции DBFUZZIFY задается для того, чтобы избежать подобного результата и присвоить определенное значение выходной переменной в отсутствие логического вывода. В итоге для простейшего случая получим:

DEFUZZIFY QoS

TliRM Low := I:

TERM Medium := 2:

TLRM High := 3:

Mi llIOI)': COG:

DEFAULT := 0:

END DEFUZZIFY

Заметим, что метод COG расшифровывается как Centre of Gravity и эквивалентен методу Centroid, использованному в [2].

Завершающей конструкцией является блок правил системы нечеткого вывода, синтаксис которого приведен в табл. 3.

Таблица 3

Опера nip cue км 1,1 правил

Оператор Значение

R ULI-BLOCK имя _блока алгоритм_оператора: метод_ооьеди нения: прави ш : LND RULLBLOCK Описание правил функционирования системы нечеткого вывода. Обязательный элемент. Параметр алгоритм jmepanwpa определяет метод обработки функции объединения и пересечения (AND. OR).

RULE О: IF (TD IS Low) AND (DV IS Low) AND (LR IS Low) THEN (QoS IS High);

RULE 1: IF (TD IS Medium) AND (DV IS Low) AND (LR IS Lou I THEN (QoS IS Medium):

RULE 2: IF(TD IS Low) AND( DV IS High) .AND (LR IS Low) THEN (QoS IS Low ):

RULE 3: IF (TD IS Medium) AND (DV IS High) AND (LR IS Low) THEN (QoS IS Low'):

RULE 4: IF (TD IS High) AND (DV IS High) AND (LR IS Low) THEN (QoS IS Low):

RULE ft U (LR IS High) THEN (QoS IS Low):

END RULEBLOCK

Таблица 4

Приоритеты операторов FCL

Оператор Приоритет

( ) 1

NOT 2

AND 3

OR 4

Сама система правил задастся аналогично MATLAB через оператор условия IF и объединение или пересечение условий, заключенных в круглые скобки. Система правил в FCL поддерживает работу с весовыми коэффициентами через необязательный оператор WI TH. Важно отметить, что операции объединения и пересечения условий выполняются не в порядке написания, а по приоритетам согласно таблице 4.

RULEBLOCK first AND:MIN:

ACCU:MAX:

Таким образом, стандарт IEC 1131-7 позволяет формализовать программирование нечетких систем. Язык FCL является простым в освоении и вместе с тем не ограничивает сферу применения только программированием нечетких контроллеров. Благодаря блочной структуре операторов файлы описания FCL удобно использовать в качестве источника данных для последующей программной обработки на других языках программирования. в том числе при разработке новых нечетких систем.

Литература

1. Соки.юи Д.П. Нечеткое программирование I/ Материалы Международной научно-технической конференции «Фундаментальные проблемы радиоэлектронного приборостроения» (INTF.RMATIC-2009) - Часть 4. М., 2009 С. 167-169.

2. Соколов Д.П. Теория нечетких множеств как основа SLA в IP-сетях // T-Comm - Телекоммуникации и Транспорт. 2009. №4, С.50-53.

3. Соколов Д.П. Нечеткая система оценки качества II Технологии и средства связи, 2009. №5. С.26-28.

69

i Надоели баннеры? Вы всегда можете отключить рекламу.