ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДОВ НЕЧЕТКОЙ ЛОГИКИ В СОВРЕМЕННЫХ КОНТРОЛЛЕРАХ

УДК 621

DOI: 10.24412/2071-6168-2023-3-474-480

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДОВ НЕЧЕТКОЙ ЛОГИКИ В СОВРЕМЕННЫХ КОНТРОЛЛЕРАХ

С.Л. Горобченко, Ю.И. Беленький, Н.Э. Гусейнова, А.С. Гоголевский, И.В. Наседкин, А.В. Теппоев, Н.В. Меламед, И.С. Фролов

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

Ключевые слова. Нечетка логика, основные методы фаззификации, программная реализация, современные контроллеры.

Долгое время в области моделирования, прогнозирования и принятия решений применялась аксиоматическая теория четких множеств, где для исследования системы использовались точные данные и информация. С выходом статьи Лотфи Заде «Fuzzy Sets» в 1965 г. оказалось, что теория четких множеств является лишь частным случаем в теории нечетких множеств, где используется неточная (нечеткая) информация. Во многих ситуациях информация является "размытой" и получаемые данные невозможно использовать для выработки управляющей информации. В таких случаях теория нечетких множеств позволяет использовать информацию любого вида в моделировании и управлении [1].

Характерным примером «размытой» информации может служить приблизительная оценка температуры в помещении, где человек, в отличие от термометра, оперирует такими критериями как «холодно», «прохладно», «тепло» и «жарко». Визуально данные оценки можно представить с помощью информационных гранул, которые ввел Лотфи Заде. Точной является та информация, которая менее гранулирована и наоборот, более гранулированная - неточна. Фаза (или гранула по Лотфи Заде) бесконечно малой величины в пределе дает точку, а информация, представленная в виде гранул ненулевой ширины, является нечеткой информацией, (рис.1).

Рис.1. Визуализация точного измерения температуры

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

И*)

Рис.2. Визуализация приближенного измерения температуры

Важным понятием в нечетких множествах является лингвистическая переменная - это такая переменная, значениями которой являются слова естественного языка, например, температура, влажность воздуха, наличие движения воздуха ("дует").

Значение лингвистической переменной представляет собой переменную, которая выражена словами - низкая температура, высокая влажность воздуха и др. Из этих двух понятий исходит определение лингвистического терм-множества переменной - множество всех лингвистических значений для определения некоторой лингвистической переменной:

Хь = |низкая, средняя, высокая, оченьвысокая} = {хы, хь 2, хь3, хь 4},

Уь = {удовлетворительная, хорошая} = {уы, уь 2}.

Используя функции, которые будут характеризовать степень принадлежности точного значения температуры к определенному критерию, можно установить соответствие точного измерения с размытой оценкой, данной человеком. Функция принадлежности ставит определенное число из интервала 0...1 в соответствие каждому значению заданной переменной и имеет формат записи:

/лА (х): Х ^[0,1],

где х - имя элемента данного множества, да- название множества; X - процедура оценки того, в какой степени данный нам элемент принадлежит множеству.

Функция принадлежности также может быть представлена в виде графика (рис.3), интеграла, таблицы и вектора степени принадлежности.

ИМ

«примерно ноль»

Алгоритмы нечеткой логики. Первый нечеткий логический алгоритм был реализован английским математиком Эбрахимом Мамдани в 1975 году в системах нечеткого вывода на примере алгоритма управления паровой машиной. Алгоритм Мамдани, основанный на "нечетком" выводе, исключил чрезмерное количество вычислений и получил наибольшее практическое применение в задачах размытого моделирования. Кроме алгоритма Мамдани, наиболее часто в настоящее время используются алгоритмы Цукамото, Ларсен, Сугено [2, 3].

Алгоритм Мамдани описывает этапы, которые выполняются в нескольких последовательностях в соответствии с диаграммой активности процесса вывода размытых выводов:

- формирование базы правил;

- фаззификация;

- совокупность условий;

- активизация выводов;

- обобщение выводов;

- дефаззификация.

Каждый последующий этап получит на вход значения, полученные на предыдущем шаге. Алгоритм Мамдани работает по принципу «черного ящика», как в кибернетике. На вход поступают количественные значения, на выходе формируются выходные переменные. На промежуточных этапах используется аппарат нечеткой логики и теория нечетких множеств [4, 5, 6].

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

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

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

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

Если х есть А, то у есть В, где х и у - нечеткие переменные, а А и В - некоторые их термы.

В этом случае степень выполнения исходного условия (х есть А) определяется с помощью значения соответствующей функции принадлежности. В данном случае правила могут быть более общими, поскольку нечеткая арифметика позволяет использовать операции, подобные логическим операциям из алгебры логики. Например, при вычислении результата логического И может использоваться как оператор MIN (x1, x2, ...), так и оператор PROD (x1, x2, ...). База правил в общем случае - это таблица, в которой каждой комбинации (Ai, Bj, Ck ...) сопоставляется комбинация (Ym, Zn, ...), где Ai, Bj, Ck - функции принадлежности отдельных термов входных переменных, а Ym, Zn - функции принадлежности отдельных термов выходных переменных. В реальности данные комбинации не всегда охватывают все возможные сочетания термов входных переменных. Некоторые из них могут опускаться, например, в случае, если такая комбинация невозможна ввиду особенностей технологического процесса (например, если невозможна ситуация, когда температура пара очень высокая, а давление очень низкое).

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

Рассмотрим некоторые основные способы выполнения дефаззификации.

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

Метод центра тяжести. При применении этого метода считается, что результирующее нечеткое множество представляет собой однородную фигуру. Рассчитывается значение центра тяжести этой фигуры, и в качестве выходного значения принимается значение соответствующей ему координаты. Достоинства: в расчете учитываются все активизированные термы. Недостатки: высокая ресурсозатратность, поскольку для вычисления центра тяжести необходимо производить интегрирование; снижение интервала возможных значений выходной переменной (получить «крайние» значения физически невозможно); плохая чувствительность в некоторых случаях. Это происходит, например, в случае, если функция принадлежности B1 будет иметь значительно более узкий носитель, чем функция принадлежности B2, и тогда влияние степени активации B1 на итоговое значение будет значительно ниже, чем B2.

Метод центра сумм. Данный метод похож на метод центра тяжести, однако результирующая функция принадлежности выходной переменной вычисляется не с помощью оператора MAX, а как неограниченная сумма функций принадлежностей всех полученных на предыдущем этапе заключений. Затем для полученной фигуры используется метод центра масс. Достоинства: снижение затрат вычислительных ресурсов по сравнению с методом центра тяжести; участие в выводе всех правил, даже если некоторые из них активизируют одни и те же термы выходной переменной. Недостатки метода такие же, как и в методе центра тяжести [9].

Для внедрения в технологический процесс функционал нечеткой логики реализуется в трех обычно используемых средах программирования ПЛК: Uity Pro, CoDeSys, Owen Logic. Функционал также может быть реализован и на более простых языках - ST и FBD (CFC) [10]. Для реализации фаззифи-кации лингвистической переменной выбирается треугольная форма термов. Пример списка переменных для обработки одного терма указан на рис.4.

Б Si lemtjnangle cDFB>

Ь Q <JnpUs>

♦ Porti ..1 INT тачка 1

ф Port2 2 INT точка2

* Port? 3 INT

• sgnal 4 INT С*гнгл

Б t3 <outputs >

♦ m 1 REAL Степень принадлежности

Рис. 4. Обработчик треугольного терма

Код подобного обработчика на языке ST для сред программирования Uity Pro и CoDeSys выглядит следующим образом:

if((signal<Point I )or(signa]>Poinl3))then affil:=0.0;

else

if signal<Point2 then

affil:=(int_to_rca](signal-Pointl))/(int_to_rcal(Point2-Pointl));

else

affil:=1.0-((Lnt_to_rca](signal-Pomt2))/(int_to_rca](Point3-Poiiit2)));

endif;

endif;

Код обработчика треугольных термов на языке FBD для среды Owen Logic представлен

на рис.5.

Рис. 5. Обработчик треугольного терма на языке FBD для среды Owen Logic

Для реализации дефаззификации используется метод синглтонов. Список переменных для де-фаззификации указан на рис.6 и определяется формулой (1):

Ё x.ß

i =1 n

ч = ^=n— со

i =1

£3 dehj: гу 3var iOFB=

♦ lemil 1 INT ТврмТ

• ляп 2 REAL Степе**» принадлежности!

4 INT Терм 2

5 REAL Степень принадлежьоетмЗ

♦ (елпЗ 7 INT ТермЗ

• аМЗ в REAL Степень принадлежности 3

Е £outpiij>

1 REAL Значение

-

Рис.6. Обработчик деффазификации

Код подобного обработчика на языке ST для сред программирования Uity Pro и CoDeSys выглядит следующим образом:

dcfuzzy_signal:=

((affi 11 * i n Monreal (term 1 )+affil2*int_to_r«al(term2)+affiB*iiit_to_real(tenri3))/(afn] l+aff

il2+aflll3)>;

Код обработчика дефаззификации на языке FBD для среды Owen Logic представлен на рис.7.

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

477

Рис. 7. Обработчик дефаззификации на языке FBD для среды Owen Logic [5]

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

Список литературы

1. Даничев, А.А., Карнаухов А.И., Затенко С.И., Меламед Н.В., Соколова В.А., Ореховская А.А. Алгоритм формирования и визуализации множества Парето для ранжирований // Известия Тульского государственного университета. Технические науки. 2022. Вып. 7. С. 87-91.

2. Загибин Н.О. Программная реализация нечеткой логики с лингвистическими переменными / Н.О. Загибин, С.В. Ульянов // Системный анализ в науке и образовании. 2021. № 1. С. 45-57.

3. Канторе Д.Р. Возможности контроллера нечеткой логики в АСУТП / Д.Р. Канторе // Синергия Наук. 2020. № 54. С. 743-753.

4. Лабинский А.Ю. О применимости нечеткой логики в решении задач оптимизации // Природные и техногенные риски (физико-математические и прикладные аспекты). 2022. № 3 (43). С. 29-37.

5. Меламед, Н.В. Новые методы многокриериального принятия решений в логистике при неточных оценках экспертов / Н.В. Меламед, В.А. Соколова, С.А. Войнаш // Современная техника и технологии: проблемы, состояние и перспективы. Материалы VIII Всероссийской научно-практической конференции с международным участием. 2018. С. 143-150.

6. Меламед, Н.В., Соколова В.А., Иванов А.М., Парфенопуло Г.К., Мирзоева М.Р. Конфигурация логистических сетей на основе системного подхода // Актуальные проблемы развития лесного комплекса. Материалы XX Международной научно-технической конференции. Ответственный редактор Е.А. Иванищева. Вологда, 2022. С. 308-313.

7. Меламед, Н.В. Экспертный подход при проектировании логистических сетей / Н.В. Мела-мед, В.А. Соколова, Л.В. Уткин, А.С. Кривоногова, Иванов А.М. // Научно-техническая конференция по итогам научно-исследовательских работ 2019 года. Сборник статей по материалам конференции. Отв. редактор В.А. Соколова. 2020. С. 18-26.

8. Немцов М.Л. Нечеткая логика (fuzzy logic) в системах принятия решений / М.Л. Немцов // Наука настоящего и будущего. 2022. Т. 2. С. 121-125.

9. Олейников В.С. Реализация нечеткой логики на программируемых логических контроллерах / В.С. Олейников, К.Д. Коновалов, Е Тен // Modem Science. 2022. № 2-2. С. 255-260.

10. Melamed N.V., Sokolova V.A., Iljushenko D.A., Voinash S.A., Alekseeva S.V., Gogolevskii A.S.and Trepkova S.A. Production chains configuration based on a systematic approach // Journal of Physics: Conference Series 1679 (2020) 042074. D0I:10.1088/1742-6596/1679/4/042074.

Горобченко Станислав Львович, канд. техн. наук, sgorobchenko@yandex.ru, Россия, Санкт-Петербург, Санкт-Петербургский государственный университет промышленных технологий и дизайна, КЦ Промконсалт,

Беленький Юрий Иванович, д-р техн. наук, 2000zalom@gmail.com, Россия, Санкт-Петербург, Санкт-Петербургский государственный университет промышленных технологий и дизайна,

Гусейнова Нурлана Эльдаровна, канд. экон. наук, доцент, nurlanaspb @mail. ru, Россия, Санкт-Петербург, Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)»,

Гоголевский Анатолий Сергеевич, канд. техн. наук, старший научный сотрудник, gogolevski@bk.ru, Россия, Санкт-Петербург, Военно-космическая академия имени А.Ф. Можайского,

Наседкин Игорь Вячеславович, преподаватель, nasedkin. i@rambler. ru, Россия, Санкт-Петербург, Военная академия связи им. Маршала Советского Союза С.М. Буденного,

Теппоев Алексей Викторович, канд. техн. наук, доцент, avt01@inbox.ru, Россия, Санкт-Петербург, Санкт-Петербургский государственный лесотехнический университет им. С.М. Кирова,

Меламед Наталья Владимировна, канд. техн. наук, доцент, natali@melamed.su, Россия, Санкт-Петербург, Санкт-Петербургский государственный лесотехнический университет им. С.М.Кирова,

Фролов Иван Сергеевич, канд. техн. наук, frolovtrubach@mail.ru, Россия, Санкт-Петербург, Военная академия связи им. Маршала Советского Союза С.М. Буденного

FUZZY LOGIC SOFTWARE IMPLEMENTATION OF IN MODERN CONTROLLERS

S.L. Gorobchenko, Yu.I. Belenky, N.E. Guseynova, A.S. Gogolevsky, I.V. Nasedkin, A.V. Teppoev, N. V. Melamed, I.S. Frolov

Specific issues of software implementation of fuzzy logic methods in modern controllers are considered. The main approaches to the implementation of fuzzy logic methods are demonstrated. The main algorithms for conducting fuzzy logic are shown. As the main fuzzification methods, as the main operation of the fuzzy logic method, the average maximum method, the center of gravity method and the center of sums method are recommended. The main operations, program listings and graphic screens demonstrating the implementation of fuzzy logic methods in modern controllers are shown.

Key words. Fuzzy logic, basic methods of fuzzification, software implementation, modern controllers.

Gorobchenko Stanislav Lvovich, candidate of technical sciences, sgorobchenko@yandex.ru, Russia, St. Petersburg, St. Petersburg State University of Industrial Technologies and Design, Consulting Center Promconsult,

Belenky Yury Ivanovich, doctor of technical sciences, 2000zalom@gmail. com, Russia, St. Petersburg, St. Petersburg State University of Industrial Technologies and Design,

Guseynova Nurlana Eldarovna, candidate of economic sciences, docent, nurlanaspb @mail. ru, Russia, St. Petersburg, St. Petersburg State Electrotechnical University "LETI" named after. IN AND. Ulyanov (Lenin) ",

Gogolevskiy Anatoly Sergeevich, candidate of technical sciences, senior researcher, gogolevski@bk.ru, Russia, St. Petersburg, Military Space Academy named after A.F. Mozhaisky,

Nasidkin Igor Vyacheslavovich, lecturer, nasedkin.i@rambler.ru, Russia, St. Petersburg, Military Academy of Communications by Marshal of the Soviet Union S.M. Budyonny,

Teppoev Aleksey Viktorovich, candidate of technical sciences, docent, avt01@inbox.ru, Russia, St. Petersburg, St. Petersburg State Forest Technical University,

Melamed Natalia Vladimirovna, candidate of technical sciences, docent, natali@melamed.su, Russia, St. Petersburg, St. Petersburg State Forest Technical University,

Frolov Ivan Sergeevich, candidate of technical sciences, frolovtrubach@mail.ru, Russia, Saint-Petersburg, Military Academy of Communications by Marshal of the Soviet Union S.M. Budyonny