Найти в Дзене

Фаззификация для нечеткого регулятора на языке программирования Function Block Diagram

Для реализации систем управления с нечётким регулятором на языке программирования Function Block Diagram в среде программирования PC WorX необходимым шагом является фаззификация, т.е. представление входных и выходной (или выходных) переменных в виде совокупности нечётких множеств (термов лингвистической переменной). В материале представим краткую характеристику различных способов задания нечётких множеств, а также покажем примеры реализации на языке программирования Function Block Diagram в среде программирования PC WorX. Фаззификация двухпараметрическая. В этом случае термы лингвистической переменной (которая может быть как входной, так и выходной переменной нечёткого регулятора) могут задаваться функциями принадлежности, представляющие собой S- или Z-образную функцию (как кусочно-линейную, так и сглаженную), описываемую одной из следующих формул: Для примера реализуем на языке программирования Function Block Diagram в среде программирования PC WorX функцию принадлежности типа Линейна

Для реализации систем управления с нечётким регулятором на языке программирования Function Block Diagram в среде программирования PC WorX необходимым шагом является фаззификация, т.е. представление входных и выходной (или выходных) переменных в виде совокупности нечётких множеств (термов лингвистической переменной).

В материале представим краткую характеристику различных способов задания нечётких множеств, а также покажем примеры реализации на языке программирования Function Block Diagram в среде программирования PC WorX.

Фаззификация двухпараметрическая.

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

Сглаженная Z-образная функция принадлежности (вариант Z1)
Сглаженная Z-образная функция принадлежности (вариант Z1)
Сглаженная Z-образная функция принадлежности (вариант Z2)
Сглаженная Z-образная функция принадлежности (вариант Z2)
Линейная Z-образная функция принадлежности (вариант Z3)
Линейная Z-образная функция принадлежности (вариант Z3)
Сглаженная S-образная функция принадлежности (вариант S1)
Сглаженная S-образная функция принадлежности (вариант S1)
Сглаженная S-образная функция принадлежности (вариант S2)
Сглаженная S-образная функция принадлежности (вариант S2)
Линейная S-образная функция принадлежности (вариант S3)
Линейная S-образная функция принадлежности (вариант S3)

Для примера реализуем на языке программирования Function Block Diagram в среде программирования PC WorX функцию принадлежности типа Линейная S-образная функция принадлежности (вариант S3), где a = 5, b = 7.

Программа, выполняющая указанную функцию принадлежности на языке Function Block Diagram, представлена на рисунке:

Программа на языке программирования Function Block Diagram, реализующая Линейную S-образную функцию принадлежности (вариант S3)
Программа на языке программирования Function Block Diagram, реализующая Линейную S-образную функцию принадлежности (вариант S3)
Комментарий к программе на языке программирования Function Block Diagram, реализующей Линейную S-образную функцию принадлежности (вариант S3)
Комментарий к программе на языке программирования Function Block Diagram, реализующей Линейную S-образную функцию принадлежности (вариант S3)

На следующем рисунке показан график Линейной S-образной функции принадлежности (вариант S3), где a = 5, b = 7.

График Линейной S-образной функции принадлежности (вариант S3)
График Линейной S-образной функции принадлежности (вариант S3)

Варианты для самостоятельной реализации в среде программирования PC WorX:

Значения параметров двухпараметрических функций принадлежности
Значения параметров двухпараметрических функций принадлежности

Фаззификация трёхпараметрическая.

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

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

Приведём пример реализации на языке программирования Function Block Diagram в среде программирования PC WorX треугольной функции принадлежности при параметрах a = 2, b = 8, c = 11.

В этом случае получим выражение вида:

Пример формулы треугольной функции принадлежности
Пример формулы треугольной функции принадлежности
Программа на языке программирования Function Block Diagram, реализующая треугольную функцию принадлежности
Программа на языке программирования Function Block Diagram, реализующая треугольную функцию принадлежности
Комментарий к программе на языке программирования Function Block Diagram, реализующей треугольную функцию принадлежности
Комментарий к программе на языке программирования Function Block Diagram, реализующей треугольную функцию принадлежности

На следующем рисунке показан график треугольной функции принадлежности с параметрами a = 2, b = 8, c = 11.

График треугольную функцию принадлежности
График треугольную функцию принадлежности

Варианты для самостоятельной реализации в среде программирования PC WorX:

Значения параметров трёхпараметрической (треугольной) функции принадлежности
Значения параметров трёхпараметрической (треугольной) функции принадлежности

Фаззификация четырёхпараметрическая.

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

Трапециевидная функция принадлежности
Трапециевидная функция принадлежности
Ещё варианты функций принадлежности
Ещё варианты функций принадлежности
-19

При задании функций принадлежности (варианты Т2, П3-П5) используются двухпараметрические функции принадлежности, рассмотренные выше.

Приведём пример реализации на языке программирования Function Block Diagram в среде программирования PC WorX функции принадлежности типа П5 при параметрах a = 2, b = 8, c = 14, d = 17.

Программа на языке программирования Function Block Diagram, реализующая колоколообразную функцию принадлежности вариант П5
Программа на языке программирования Function Block Diagram, реализующая колоколообразную функцию принадлежности вариант П5

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

На следующем рисунке показан график колоколообразной функции принадлежности (вариант П5) с параметрами a = 2, b = 8, c = 14, d = 17.

График колоколообразной функции принадлежности вариант П5
График колоколообразной функции принадлежности вариант П5

Варианты для самостоятельной реализации в среде программирования PC WorX:

Значения параметров четырёхпараметрических функций принадлежности
Значения параметров четырёхпараметрических функций принадлежности

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

см. полный список теоретических материалов и примеров лабораторных работ: https://dzen.ru/a/ZAq0N8VOKEDcTDy3?share_to=link.