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