ФЕДЕРАЛЬНОЕ АГЕНТСТВО
ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОСТР
МЭК 61131-7—
2017
КОНТРОЛЛЕРЫ ПРОГРАММИРУЕМЫЕ
Часть 7
Программирование нечеткого управления
(IEC 61131-7:2000, IDT)
Издание официальное
Москва Стандартинформ 2017
ГОСТ Р МЭК 61131-7—2017
Предисловие
-
1 ПОДГОТОВЛЕН Негосударственным образовательным частным учреждением дополнительного профессионального образования «Новая инженерная школа» (НОЧУ «НИШ») на основе собственного перевода на русский язык англоязычной версии указанного в пункте 4 стандарта, который выполнен Российской комиссией экспертов МЭК/ТК 65. и Федеральным государственным унитарным предприятием «Всероссийский научно-исследовательский институт стандартизации и сертификации в машиностроении» (ВНИИНМАШ)
-
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 306 «Измерения и управление в промышленных процессах»
-
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 15 сентября 2017 г. № 1127-ст
-
4 Настоящий стандарт идентичен международному стандарту МЭК 61131-7:2000 «Контроллеры программируемые. Часть 7. Программирование нечеткого управления» (IEC 61131-7:2000 «Programmable controllers — Part 7: Fuzzy control programming», IDT).
Международный стандарт разработан Техническим комитетом МЭК ТК65 «Измерение, управление и автоматизация в промышленных процессах».
При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном приложении ДА
-
5 ВВЕДЕН ВПЕРВЫЕ
Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. № 162-ФЗ «О стандартизации в Российской Федерации». Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
©Стандартинформ, 2017
Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии
Содержание
-
1 Область применения
-
2 Нормативные ссылки
-
3 Термины и определения
-
4 Интеграция в программируемый контроллер
-
5 Язык нечеткого управления FCL
-
5.1 Обмен программами нечеткого управления
-
5.2 Элементы языка нечеткого управления
-
5.3 Пример FCL
-
5.4 Продукционные правила и ключевые слова языка нечеткого управления (FCL)
-
-
6 Соответствие
-
6.1 Классы соответствия языка нечеткого управления FCL
-
6.2 Контрольный перечень данных
-
Приложение А (справочное) Теория
Приложение В (справочное) Примеры
Приложение С (справочное) Промышленный пример: кран для контейнеров
Приложение D (справочное) Пример использования переменных в блоке правил
Приложение Е (справочное) Условные обозначения, аббревиатуры и синонимы
Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов национальным стандартам
ill
ГОСТ Р МЭК 61131-7—2017
Введение
Теория нечеткой логики применительно к вопросам управления называется нечетким управлением. Нечеткое управление представляет собой технологию, которая позволяет расширить возможности промышленной автоматики и пригодна для решения задач уровня управления, выполняемых, как правило, программируемыми контроллерами.
Нечеткое управление, скорее, основано на практическом применении знаний, представленных в так называемых базах лингвистических правил, чем на использовании аналитических моделей (эмпирических или теоретических). Применение нечеткого управления возможно при наличии специальных знаний, которые могут быть представлены математически. При этом становится возможным использование имеющихся знаний для усовершенствования технологических процессов и выполнения различных задач. Например, для:
-
– управления (замкнутые или разомкнутые системы, одна или несколько переменных в линейных или нелинейных системах);
-
– настройки параметров систем в интерактивном или автономном режиме;
-классификации и распознавания образов;
-
– принятия решений в режиме реального времени (отправить изделие на станок А или Б?);
-
– помощи операторам в принятии решения или при регулировании параметров;
-
– обнаружения и диагностики неисправностей систем.
Широкий спектр вариантов применения и естественный подход, основанный на приобретенном человеком опыте, делает нечеткое управление основным инструментом, который должен стать стандартом для потребителей программируемых контроллеров.
Кроме того, нечеткое управление может комбинироваться с классическими методами управления. Применение нечеткого управления может иметь преимущества в тех случаях, когда отсутствует точная модель технологического процесса, аналитическую модель сложно рассчитывать в режиме реального времени или трудно разработать в принципе.
Другим преимуществом нечеткого управления является возможность непосредственного использования опыта, приобретаемого потребителем. Кроме того, отсутствует необходимость моделировать весь контроллер с использованием нечеткого управления, так как в некоторых случаях нечеткое управление применяется для интерполяции между последовательностью локально линейных моделей, для динамической адаптации параметров линейного контроллера, превращающих его в нелинейный, или, наоборот, для концентрации на определенной, требующей оптимизации функции имеющегося контроллера.
Нечеткое управление является многозначным управлением, которое не ограничивается значениями «истина» и «ложь». Поэтому нечеткое управление полезно при создании модели эмпирических знаний, определяющей, какие управляющие воздействия должны выполняться при заданном наборе входных сигналов.
Современная теория и уже внедренные системы нечеткого управления существенно различаются в части терминологии (определения), функций (функциональные возможности) и практической реализации (инструментарий).
Нечеткое управление применяется как при решении небольших и простых задач, так и в сложных проектах. Чтобы охватить все варианты использования, в настоящем стандарте функции соответствующей системы нечеткого управления отображаются в определенных классах соответствия.
Базовый класс определяет минимальный набор функций, который должен обеспечиваться всеми совместимыми системами. За счет этого упрощается обмен программами нечеткого управления.
Дополнительные стандартные функции определяются в расширенном классе. Программы нечеткого управления, использующие такие функции, могут быть перенесены между системами с использованием такого же набора функций только полностью, 8 противном случае возможен лишь частичный обмен. Настоящий стандарт не требует, чтобы все совместимые системы выполняли все функции расширенного класса, однако допускает возможность (частичного) переноса и предотвращение использования нестандартных функций. Поэтому совместимая система не должна предлагать нестандартные функции, которые могут быть выполнены с использованием стандартных функций базового и расширенного классов.
Чтобы не исключать системы, применяющие свои сложные функции из числа соответствующих настоящему стандарту и не препятствовать процессу дальнейшего развития, настоящий стандарт разрешает применять дополнительные нестандартные функции, которые не охвачены базовым IV
и расширенным классами. Тем не менее такие функции должны быть перечислены стандартным способом для обеспечения простоты их распознавания как нестандартных функций.
Возможность переноса приложений нечеткого управления зависит от разных систем программирования, а также от характеристик систем управления. Эти зависимости приводятся в контрольном перечне данных, который должен быть предоставлен изготовителем.
ГОСТ Р МЭК 61131-7—2017
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
КОНТРОЛЛЕРЫ ПРОГРАММИРУЕМЫЕ Часть 7 Программирование нечеткого управления
Programmable controllers. Part 7. Fuzzy control programming
Дата введения — 2018—09—01
1 Область применения
Настоящий стандарт устанавливает язык программирования приложений нечеткого управления, применяемый программируемыми контроллерами.
Целью настоящего стандарта является достижение изготовителями и потребителями общего понимания основных средств интегрирования приложений нечеткого управления в языки программируемых контроллеров в соответствии с МЭК 61131-3. а также возможности обмена переносимыми программами нечеткого управления между разными системами программирования.
Для достижения поставленной цели в приложении А приводится краткое описание теории нечеткого управления и нечеткой логики, необходимое для понимания настоящего стандарта. Пользователям настоящего стандарта, не знакомым с теорией нечеткого управления, может быть полезно сначала обратиться к приложению А.
2 Нормативные ссылки
В настоящем стандарте использованы нормативные ссылки на следующие стандарты.
IEC 60050-351:1998, International Electrotechnical Vocabulary (IEV) — Part 351: Automatic control (Международный электротехнический словарь (IEV). Часть 351. Автоматическое управление)
IEC 61131-3:1993, Programmable controllers — Part 3: Programming languages (Программируемые контроллеры. Часть 3. Языки программирования)
3 Термины и определения
В настоящем стандарте применены следующие термины с соответствующими определениями. Определения для элементов языка дополнительно приведены в МЭК 61131-3.
Примечание — Термины, определения которых даны в настоящем разделе, выделяются курсивом в тексте определений.
-
3.1 аккумуляция (accumulation)
агрегирование результатов (result aggregation): Объединение результатов лингвистических правил в конечный результат.
-
3.2 агрегирование (aggregation)
определение степени выполнения (determination of degree of firing): Объединение степени принадлежности всех индивидуальных подусловий в правиле для расчета степени выполнения условия правила.
Издание официальное
-
3.3 активизация (activation): Процесс, которым степень выполнения условия воздействует на выходное нечеткое множество.
-
3.4 результат (conclusion)
следствие (consequent): Выходное значение лингвистического правила, то есть действие, которое должно выполняться (часть THEN правила нечеткого управления IF..THEN).
-
3.5 условие (condition)
предпосылка (antecedent): Выражение, включая подусловия, объединенные нечеткими операторами И. ИЛИ, НЕ.
-
3.6 четкое множество (crisp set): Особый случай нечеткого множества, в котором функция принадлежности принимает только два значения, обычно определяемые как 0 и 1.
-
3.7 дефаззификация (defuzzification): Преобразование нечеткого множества в числовое значение.
-
3.8 степень принадлежности (degree of membership): Значение функции принадлежности.
-
3.9 фаззификация (fuzzification): Определение степени принадлежности четкого входного значения лингвистических термов, определенных для каждой входной лингвистической переменной.
-
3.10 нечеткое управление (fuzzy control): Тип управления, алгоритм управления в котором основан на нечеткой логике.
(IEV 351-17-51, измененный]
-
3.11 нечеткая логика (fuzzy logic): Совокупность математических теорий, основанных на принципах нечеткого множества. Нечеткая логика является одним из типов бесконечнозначной логики.
-
3.12 нечеткий оператор (fuzzy operator): Оператор, используемый в теории нечеткой логики.
-
3.13 нечеткое множество (fuzzy set): Нечеткое множество А определяется как множество упорядоченных пар (х, рА(х)), где х — это элемент предметной области U, а рА(х) — функция принадлежности. которая сопоставляет каждому х е U действительное число е [0,1], определяющее степень того, насколько х принадлежит множеству.
-
3.14 логический вывод (inference): Применение лингвистических правил к входным значениям с целью определения выходных значений.
-
3.15 лингвистическое правило (linguistic rule): Правило IF-THEN (если …. то …) с условием и результатом, причем одно или оба являются лингвистическими.
-
3.16 лингвистический терм (linguistic term): В контексте лингвистического управления лингвистические термы определяются нечеткими множествами.
-
3.17 лингвистическая переменная (linguistic variable): Переменная, которая принимает значения из диапазона лингвистических термов.
-
3.18 функция принадлежности (membership function): Функция, которая в предметной области определяет степень принадлежности данному нечеткому множеству.
[IEV 351-17-52, измененный]
-
3.19 синглтон (singleton): Нечеткое множество, функция принадлежности которого равна единице в одной точке и нулю во всех других точках.
-
3.20 подусловие (subcondition): Элементарное выражение в форме переменной или терма «лингвистическая переменная IS лингвистический терм».
-
3.21 база правил (rule base): Набор лингвистических правил для достижения определенных целей.
-
3.22 весовой коэффициент (weighting factor): Значение в интервале 0… 1, которое устанавливает степень важности, достоверности, уверенности для лингвистического правила.
4 Интеграция в программируемый контроллер
В соответствии с разделом 5, приложения нечеткого управления, программируемые на языке нечеткого управления FCL, должны быть заключены в функциональные блоки (или программы), как это определено в МЭК 61131-3. В настоящем стандарте применяются понятия типов и экземпляров функциональных блоков, приведенные в МЭК61131-3.
Типы функциональных блоков, определенные в языке нечеткого управления FCL, должны устанавливать входные и выходные параметры, а также специфические правила и описания нечеткого управления.
Соответствующие экземпляры функциональных блоков должны содержать специфические данные приложений нечеткого управления.
Функциональный блок, определенный в языке нечеткого управления FCL. может применяться в программах и функциональных блоках, написанных на любом из языков, приведенных в МЭК 61131-3, 2
например, на языке релейной логики, на языке программирования и т. д. Типы данных входных и выходных параметров функционального блока или программы, написанных на FCL, должны совпадать с соответствующей «вызывающей средой», как показано на рисунке 1.
Рисунок 1 — Пример функционального блока нечеткого управления в представлении FBD
В данном примере Valve_Control_1 — это экземпляр определенного потребителем функционального блока, имеющий тип Fuzzy_FB. В соответствии с разделом 5, тип функционального блока Fuzzy_ FB может программироваться на языке нечеткого управления FCL. В данном случае функциональный блок Fuzzy_FB используется в программе или в функциональном блоке, который представлен на графическом языке FBD (Function Block Diagram, диаграммы функциональных блоков) в МЭК 61131-3.
5 Язык нечеткого управления FCL
-
5.1 Обмен программами нечеткого управления
Определение языка нечеткого управления FCL основывается на определении языков программирования, определенных в МЭК61131-3. Взаимодействие алгоритма нечеткого управления сего программной средой «прячет» его от программы. Поэтому в соответствии с МЭК 61131-3 внешне алгоритм нечеткого управления представлен в виде функционального блока. В соответствии с настоящим разделом должны быть определены элементы, необходимые для описания внутренних логических частей функционального блока нечеткого управления, например функции принадлежности, правила, операторы и методы.
Элементы языка FCL стандартизируют общее представление обмена данными между средствами настройки нечеткого управления разных изготовителей, как показано на рисунке 2. Используя данное общее представление, каждый изготовитель программируемых контроллеров может поддерживать аппаратное обеспечение, редакторы программного обеспечения и компиляторы. Изготовитель должен лишь применить интерфейс данных к его специфическому редактору. Заказчик должен иметь возможность обмениваться проектами нечеткого управления с разными изготовителями.
Редактор приложения нечеткого управления изготовителя А
Редактор приложения нечеткого управления изготовителя В
Интерфейс
□
Интерфейс FCL
Текстовый файл FCL в формате обмена данными
Интерфейс
□
Интерфейс
Программируемый контроллер изготовителя А |
||||
Программируемый контроллер изготовителя В 1111
Рисунок 2 — Обмен данными программ в языке нечеткого управления (FCL)
5.2 Элементы языка нечеткого управления
8 настоящем подразделе приведены примеры описания элементов языка нечеткого управления. Подробное продукционное правило приведено в подразделе 5.4.
5.2.1 Интерфейс функционального блока
В соответствии с разделом 4. внешнее представление нечеткого функционального блока требует, чтобы использовались следующие стандартные элементы языка, установленные в МЭК 61131-3:
FUNCTION_BLOCK Л>лс(гол_Ь/осЛ_лате |
Функциональный блок |
VARJNPUT variable_name: dala_type; |
Описание входного параметра |
END_VAR |
|
VAR_OUTPUT variable_name: datatype; |
Описание выходного параметра |
END_VAR |
|
VAR vahable_name: data type; END.VAR END FUNCTION BLOCK |
Локальные переменные |
С помощью данных элементов языка можно описать интерфейс функционального блока. Интерфейс функционального блока определяется с помощью параметров, которые переходят в функциональный блок и выходят из него. Типы данных параметров должны определяться в соответствии с МЭК61131-3.
На рисунке 3 представлен пример описания функционального блока на языках структурированного текста (ST) и диаграмм функциональных блоков (FBD).
FUNCTION BLOCK Fuzzy-FB VARJNPUT Температура: REAL; Давление: REAL; END_VAR VAR_OUTPUT Клапан: REAL; END_VAR END_FUNCTION_BLOCK |
Fuzzy_FB Температура Клапан Давление |
||
Структурированный текст (ST) |
Диаграммы функциональных блоков (FBD) |
Рисунок 3 — Пример описания интерфейса функционального блока на языках ST и FBD
5.2.2 Фаззификация
Значения входных переменных должны быть преобразованы в степень принадлежности по функции принадлежности, определенной для переменной. Преобразование описывается между ключевыми словами FUZZIFY и END FUZZIFY.
FUZZIFY variable_name TERM term_name~ membership_function;
END FUZZIFY
После ключевого слова FUZZIFY должно быть указано имя переменной, используемой для фаззи-фикации, т. е. имя переменной, предварительно определенной в разделе VARJNPUT. Лингвистическая переменная должна быть описана одним или несколькими лингвистическими термами. Лингвистические термы, введенные ключевым словом TERM, с целью фаззификации переменной описываются функцией принадлежности. Функция принадлежности представляет собой кусочно-линейную функцию, которая определяется таблицей точек.
membership-function::* (point i), (point j),…
Каждая точка представляет собой пару значений переменной и степень принадлежности данных значений, разделенные запятой. Пары заключены в скобки и разделены запятыми.
точка f.:= значение входа i | variable name входа i, значение i степени принадлежности
С помощью данного выражения могут быть определены все простые элементы, например быстрое изменение по линейному закону и по треугольнику. Точки должны быть заданы в порядке возрастания значения переменной. Функция принадлежности между очередными точками является линейной. Таким образом, степень принадлежности для каждого терма рассчитывается по четкому входному значению с помощью линейной интерполяции между двумя соответствующими соседними точками функции принадлежности.
Минимальное количество точек равно двум. Максимальное количество ограничивается согласно классам соответствия, см. раздел 6.
Пример функции принадлежности с тремя точками для лингвистического терма «тепло»:
TERM тепло: = (17,5; 0,0) (20,0; 1,0) (22,5; 0.0);
Если значение лингвистической переменной меньше, чем первая базовая точка в таблице соответствия, все значения ниже первой точки в таблице соответствия должны иметь такую же степень принадлежности, как и определенная для первой точки.
Если значение лингвистической переменной больше, чем последняя базовая точка в таблице соответствия, все значения больше последней точки в таблице соответствия должны иметь такую же степень принадлежности, как и определенная для последней точки.
Холодно |
Тепло |
||
Определение быстрого изменения по |
1.0- |
ГК |
|
линейному закону: |
/ |
||
FUZZIFY температура: |
0,5- |
X |
/ |
TERM холодно: = (3,1) (27,0); TERM тепло: =(3,0) <27,1); |
|||
END FUZZIFY |
|||
0 |
* 1 10 |
I I 20 30 Температуре |
Рисунок 4 — Пример термов быстрого изменения по линейному закону
Примечание — Тип данных для точек функций принадлежности не определяется. Изготовитель должен предоставить компилятор, который поддерживает любые необходимые преобразования.
Для адаптации приложения нечеткого управления в интерактивном режиме базовые точки в функции принадлежности могут быть изменены. Это можно сделать с помощью переменных, которые вводятся в функциональный блок. Такие переменные должны быть описаны в разделе функционального блока VARJNPUT. Пример использования переменных для определения точек для функций принадлежности приведен на рисунке 5.
Примечание — Значения точек функции принадлежности во время выполнения могут лежать вне последовательности.
VARJNPUT
Температура: REAL; (* данный ввод должен быть фаззифицирован*)
Давление: REAL; (* данный ввод должен быть фаззифицирован*)
bp_warm1, bp_warm2: REAL; (* данные вводы для адаптации в интерактивном режиме*) END_VAR
FUZZIFY температура
TERM тепло:= (bp_warm1, 0,0), (21,0; 1,0), (bp_warm2, 0,0);
END_FUZZIFY
Рисунок 5 — Пример использования переменных функции принадлежности
-
5.2.3 Дефаззификация
Лингвистическая переменная для выходной переменной должна быть преобразована в значение. Такое преобразование описывается между ключевыми словами DEFUZZIFY и ENDJDEFUZZIFY.
После ключевого слова DEFUZZIFY должно быть указано имя переменной, используемой для дефаззификации. Это имя предварительно определенной в разделе VAR_OUTPUT переменной.
DEFUZZIFY variable_name
RANGE (min.. max);
TERM term_name:= membership-function. defuzzification_method’, default-value;
END.DEFUZZIFY
Определение лингвистических термов дается в 5.2.2.
Синглтоны представляют собой специальные функции принадлежности, используемые для выходов с целью упрощения дефаззификации. Синглтоны описываются только одним значением лингвистического терма. На рисунке 6 приведены примеры термов синглтонов.
Определение синглтонов: DEFUZZIFY клапан RANGE(-100,100);
TERM дренаж := -100; TERM закрыт: = 0; TERM вход: = 100;
END.DEFUZZIFY
Дренаж
Вход
Закрыт
-200 -100 0 100 200
Клапан
Рисунок 6 — Примеры термов синглтонов
Метод дефаззификации должен быть определен с помощью элемента языка METHOD.
METHOD: defuzzification method\
Допускаются следующие методы дефаззификации (см. таблицы 1 и 2).
Таблица 1 — Методы дефаззификации
Ключевое слово |
Расшифровка |
CoG |
Центр тяжести (примечание 1) |
CoGS |
Центр тяжести для синглтонов |
СоА |
Центр площади (примечания 2 и 3) |
LM |
Крайний левый максимум (примечание 4) |
RM |
Крайний правый максимум (примечание 4) |
Примечание 1 — Центр тяжести эквивалентен центроиду Примечание 2 — Центр площади эквивалентен медиане. Примечание 3 — При использовании синглтоновСоАнеприменим. Примечание 4 — Методы дефаззификации LM и RM асимметричны относительно нуля. |
Таблица 2 — Формулы методовдефаззификации
где:
U — результат дефаззификации; и — выходная переменная; р — количество синглтонов;
р — функция принадлежности накопленных нечетких множеств;
i — индекс;
Min — минимальное значение дефаззификации. определенное в RANGE. В случае синглтонов Min = -*>; Мах — максимальное значение дефаззификации. определенное в RANGE 8 случае синглтонов Min = *ао; sup — наибольшее значение;
inf — наименьшее значение.
Если степень принадлежности равна 0 для всех лингвистических термов выходной переменной, то это значит, что активные правила для данной выходной переменной отсутствуют. В таком случае дефаззификация не может сгенерировать подходящее выходное значение. Поэтому для выходного значения допускается назначать значение по умолчанию. Такое значение по умолчанию является значением выходной переменной только в том случае, если не работает ни одно правило.
DEFAULT:= значение | NC;
Значение должно быть указано после ключевого слова DEFAULT. В противном случае должно быть задано NC (без изменений) для указания на то, что выходное значение останется неизменным, если не работает ни одно правило.
Диапазон — это описание минимального и максимального значений, которые разделяются двоеточием.
RANGE:= (минимальное значение… максимальное значение);
RANGE используется для ограничения каждой функции принадлежности до диапазона каждой выходной переменной. Если для выходных функций принадлежности используется синглтон, RANGE не действует.
Если диапазон не определен, по умолчанию должен использоваться диапазон типа данных переменной, указанный в МЭК 61131-3.
-
5.2.4 Блок правил
Логический вывод нечеткого алгоритма должен быть определен одним или несколькими блоками правил. Для надлежащей обработки и обеспечения возможности разделения базы правил на разные модули допускается использование нескольких блоков правил. Каждый блок правил должен иметь уникальное имя.
Правила должны быть указаны между ключевыми словами RULEBLOCK и END.RULEBLOCK.
RULEBLOCK имя_блока_правил определение_операции: [метод_активизации;] метод_аккумуляции\ правила;
END RULEBLOCK
Внутри блока правил используются нечеткие операции.
определение операции ::= операция: алгоритм
Для соблюдения закона Моргана алгоритмы операций AND и OR должны применяться попарно; например. МАХ необходимо применять с операцией OR, если с операцией AND применяется MIN.
Таблица 3 — Парные алгоритмы
Операция OR |
Операция AND |
||
Ключевое слово для алгоритма |
Алгоритм |
Ключевое слово для алгоритма |
Алгоритм |
МАХ |
Maxfp^x). р^х)) |
MIN |
MinfM^x), p2(x)) |
ASUM |
Mi(x)+ pjfxJ-p^x) p2(x) |
PROD |
p1(x)p2(x) |
BSUM |
Min(1, Ml(x) + M2(x)) |
BDIF |
Max(0, p,(x) + p2(x)-1) |
Пример блоков правил: первый RULEBLOCK AND: MIN;
END.RULEBLOCK второй RULEBLOCK AND: PROD;
END.RULEBLOCK
Метод активизации определяется следующим элементом языка:
ACT: метод активизации~
Могут использоваться следующие методы активизации (см. таблицу 4):
Таблица 4 — Методы активизации
Название |
Ключевое слово |
Алгоритм |
Продукт |
PROD |
НОО М2(Х) |
Минимальная |
MIN |
Minfp^x), р2(х)) |
Примечание — Метод активизации не имеет отношения к синглтонам. |
Метод аккумуляции определяется следующим элементом языка:
ACCU: метод аккумуляции;
Могут применяться следующие методы аккумуляции (см. таблицу 5):
Таблица 5 — Методы аккумуляции
Название |
Ключевое слово |
Формула |
Максимум |
МАХ |
МАХ(Р1(х), pjfx)) |
Ограниченная сумма |
BSUM |
MIN(1, Pl(x) + р^х» |
Нормализованная сумма |
NSUM |
Pl(x) + м2(х) |
MAX(1,MAXx^x(p1(xl)+p2(x1))) |
Входными данными блока правил являются лингвистические переменные с набором лингвистических термов. Ка>кдый терм имеет присвоенную ему степень принадлежности.
Правила определяются внутри блока правил. Каждое правило должно начинаться с ключевого слова RULE с идущим за ним названием правила, а заканчиваться должно точкой с запятой. Каждое правило внутри блока имеет уникальный номер.
Номера RULE: IF условие THEN результат [WITH весовой коэффициент);
Само правило должно начинаться с ключевого слова IF с идущим за ним условием. После условия следует результат, начинающийся с ключевого слова THEN.
Допускается комбинировать в одном правиле несколько подусловий и входных переменных. Назначение переменных состоит в разрешении импорта нечеткой степени принадлежности в нечеткий функциональный блок. Переменные должны быть определены между ключевыми словами IF и THEN и объединены операциями с ключевыми словами AND, OR или NOT.
Приоритет операций (см. таблицу 6) определяется в соответствии с булевой алгеброй, приведенной в таблице 3.
Таблица 6 — Приоритет операций
Приоритет |
Операция |
1 |
()скобки |
2 |
NOT |
3 |
AND |
4 |
OR |
Упрощенный пример правила: |
RULE 1: IF подусловие 1 AND переменная 1 OR переменная 2 THEN результат.
На базовом уровне соответствия операция OR может быть реализована определением двух правил:
RULE 3: IF подусловие 1 OR подусловие 2 THEN результат; заменено на:
RULE За: IF условие 1 THEN результат;
RULE 3b: IF условие 2 THEN результат.
Подусловие начинается с названия лингвистической переменной, за которым идет ключевое слово IS с необязательным NOT и одним лингвистическим термом лингвистической переменной, используемой в условии.
Подусловие := лингвистическая переменная IS [NOT] лингвистический терм
Лингвистические термы, применяемые в условии, должны соответствовать лингвистической переменной в том же условии. Применяемый терм должен быть предварительно определен с помощью ключевого слова TERM.
Пример подусловий:
Темп. IS жарко Темп. IS NOT жарко
Кроме того, перед подусловием можно применять ключевое слово NOT. При этом могут применяться скобки.
IF NOT темп. IS жарко THEN … или IF NOT (темп. IS жарко) THEN …
Результат может быть разделен на несколько подрезультатов и выходных переменных. Подрезультат должен начинаться с названия лингвистической переменной, за которым идет ключевое слово IS и один лингвистический терм данной лингвистической переменной.
Подрезультат := лингвистическая переменная IS лингвистический терм
Пример с несколькими подрезультатами из одной или нескольких строк:
Допускается присваивать каждому подрезультату весовой коэффициент, который является числом со значением, лежащим между 0,0 и 1,0, или переменной. Это делается с помощью ключевого слова WITH, за которым следует весовой коэффициент.
Весовой коэффициент должен уменьшать степень принадлежности (функция принадлежности) подрезультата путем умножения итога подрезультата на весовой коэффициент.
Для внешнего управления параметрами приложения нечеткого управления весовой коэффициент может быть переменным. В таком случае переменная должна быть описана в разделе VARJNPUT. Это дает возможность во время работы менять весовой коэффициент для адаптации программы нечеткого управления к требованиям технологического процесса.
Если подрезультату не присвоено ключевое слово WITH, должен быть по умолчанию принят весовой коэффициент 1,0.
IF условие THEN подрезультат [WITH весовой коэффициент] подрезультат; Пример постоянного весового коэффициента:
F темп. IS холодно AND давление IS низкое THEN клапан 1 IS вход WITH 0,5, клапан 2 IS закрыт;
Пример переменного весового коэффициента:
VARJNPUT
*у_мое_правило1: REAL:= 0,8;
END.VAR
RULEBLOCK правипо_темп
RULE 1: IF темп. IS холодная AND давление IS низкое
THEN клапан IS вход WITH уу_мое_пра8ило1;
END RULEBLOCK
-
5.2.5 Необязательные параметры
Для реализации различных целевых систем может потребоваться предоставить системе дополнительную информацию, позволяющую осуществить наилучшее преобразование приложений нечеткого управления.
Такая дополнительная информация может быть необходима элементу языка, находящемуся между OPTIONS и END.OPTIONS.
OPTIONS спец_параметры_приложения END.OPTIONS
Согласно разделу 6, данные элементы языка должны применяться для функций в классе соответствия открытого уровня,
5.3 Пример FCL
На рисунке 7 приведен пример языка нечеткого управления.
FUNCTION_BLOCK Нечеткий.ФБ VAR.INPUT
температура: REAL; давление: REAL:
END.VAR VAR_OUTPUT
клапан: REAL;
END.VAR
FUZZIFY температура TERM холодно := (3.1) (27. 0); TERM жарко := (3. 0) (27.1);
END.FUZZIFY
FUZZIFY давление TERM низкое := (55. 1) (95,0); TERM высокое := (55.0) (95. 1);
END.FUZZIFY
DEFUZZIFY клапан
TERM дренаж :=-100; TERM закрыт := 0; TERM вход :=100;
METHOD: CoGS; DEFAULT :=0;
END DEFUZZIFY RULE8LOCK №1
AND: MIN; ACCU: MAX;
RULE 1: IF температура IS холодно AND давление IS низкое THEN клапан IS вход;
RULE 2: IF температура IS холодно AND давление IS высокое THEN клапан IS закрыт WITH 0,8; RULE 3: IF температура IS жарко AND давление IS низкое THEN клапан IS закрыт;
RULE 4: IF температура IS жарко AND давление IS высокое THEN клапан IS дренаж; END.RULEBLOCK END.FUNCTION.BLOCK
Рисунок 7 — Пример нечеткого функционального блока
5.4 Продукционные правила и ключевые слова языка нечеткого управления (FCL)
Метод спецификации текстовых языков для программируемых контроллеров определяется в соответствии с МЭК 61131-3, приложение А. Данный метод спецификации применяется в настоящем стандарте для FCL.
Формальные характеристики элементов текстовых языков программирования, установленных в МЭК 61131-3, определяются в соответствии с МЭК 61131-3, приложение В. Для FCL применяется следующее подмножество элементов языка в соответствии с МЭК 61131-3, приложение В:
В. 1.1 Буквы, цифры и идентификаторы;
В.1.2 Константы;
В.1.3 Типы данных;
В.1.4 Переменные.
-
5.4.1 Продукционные правила
Дополнительно к перечисленным выше элементам языка, установленным в МЭК 61131-3. могут применяться следующие:
описание_функционального_блока ::: |
= ‘FUNCTION_BLOCK’ имя_функционального_блока {описания_пер_ввода_вывода_фб} {другие_описания_пер} тело функционального блока •END_FUNCTION_BLOCK‘ |
описания_пер_ввода_вывода_фб ::= |
входные_описания | выходные_описания |
другие_описания_пер ::= |
олисания_пер |
тело_функционального_блока ::= |
{блок_фаззификации} {блок_дефаззификации} {блок__правил} {доп_блок} |
блок_фаззификации ::= |
‘FUZZIFY’ имя_переменной {лингвистический терм} ‘END_FUZZIFY |
блок_дефаззификации ::= |
DEFUZZIFY’ Т_имя_переменной [диапазон] {лингвистический_терм} метод_дефаззификации значение по умолчанию ‘END.DEFUZZIFY’ |
блок_правил ::= |
‘RULEBLOCK’ имя_блока_правил определение_операции [метод_активизации] м ето д_а кку м у л я ци и {правило} ‘END_RULEBLOCK’ |
доп_блок ::= |
‘OPTION’ любой указанный изготовителем параметр ‘END_OPTION’ |
лингвистический_терм ::= |
‘TERM’ имя_терма функция_лринадлежности |
функция_принадлежности ::= синглтон | точки
Примечание — Информацию об использовании синглтонов см. в 5.2.3.
синглтон ::= |
числовая_константа | имя_переменной |
точки ::= |
{‘(‘числовая-константа | имя_переменной числовая_константа *)’} |
Примечание — Допускаемые номера точек см. в 5.2.2.
метод_дефаззификации ::= |
‘METHOD’ CoG’ | ‘CoGS’ | ‘CoA’ | ‘LM’ | ‘RM’7 |
значение_по_умолчанию ::= |
‘DEFAULT’ числовая_константа | ‘NC’ |
диапазон ::= |
‘RANGE(‘4HcnoBafl_KOHCTaHTa‘..’ числовая_константа’)’ |
определение_операции ::= |
[(‘OR’ ‘MAX’ | ‘ASUM’ | ‘BSUM*)] ((’AND’ ‘MIN’ J ‘PROD’ | ‘BDIF’)] |
Примечание — Парные алгоритмы см. в таблице 3.
метод_активизации ::= |
.дет”;’ ‘PROD’| ‘MIN”;’ |
метод_аккумуляции ::= |
‘ACCU’ ‘MAX’ | ‘BSUM’ | ‘NSUM’ |
правило ::= |
‘RULE’ целочисленный_литерал IF условие THEN результат (WITH весовой_коэффициент]; |
условие ::= |
x{(‘AND’x)|(‘OR’x)} |
х ::= |
(‘NOT’] (подусловие | (‘ (‘ условие ’)’)) |
подусловие ::= |
имя_переменной | (имя_переменной ‘IS’ (’NOT’] имя_терма) |
результат ::= |
{(имя_переменной | (имя_переменной ‘IS’ имя_терма)) (имя_переменной | имя_переменной ‘IS’ имя_терма) |
весовой_коэффициент ::= |
переменная | число8ая_константа |
имя_функционального_блока ::= |
идентификатор |
имя_блока_пра8ил ::= имя_терма ::= Т_имя_леременной ::= имя_переменной ::= числовая_константа ::= входные_олисания ::= выходные_описания ::= описания_пер ::= идентификатор ::=
5.4.2 Ключевые слова
идентификатор
идентификатор
идентификатор
идентификатор целочисленный_литерал | действительный_литерал см. МЭК 61131-3, приложение В
см. МЭК 61131-3, приложение В
см. МЭК 61131-3, приложение В
см. МЭК 61131-3, приложение В
Таблица 7 — Зарезервированные ключевые слова для FCL
Ключевое слово |
Значение |
Пункт |
О |
Скобки в условии, терме, диапазоне |
5.2.4 |
ACCU |
Метод аккумуляции |
5.2.4 |
ACT |
Метод активизации |
5.2.4 |
AND |
Операция AND |
5.2.4 |
Окончание таблиц# 7
Ключевое слово |
Значение |
Пункт |
ASUM |
Операция OR, алгебраическая сумма |
5.2.4 |
BDIF |
Операция AND, ограниченная разность |
5.24 |
BSUM |
Метод аккумуляции, операция OR, ограниченная сумма |
5.2.4 |
СоА |
Дефаззификация методом центра площади |
5.2.3 |
CoG |
Дефаззификация методом центра тяжести |
5.2.3 |
CoGS |
Дефаззификация синглтонов методом центра тяжести |
5.2.3 |
DEFAULT |
Выходное значение по умолчанию в случае, когда не работает ни одно правило |
5.2.3 |
DEFUZZIFY |
Дефаззификация выходной переменной |
5.2.3 |
END.DEFUZZIFY |
Конец спецификации дефаззификации |
5.2.3 |
END FUNCTION BLOCK |
Конец спецификации функционального блока |
5.2.1 |
END FUZZIFY |
Конец спецификаций фаззификации |
5.2.2 |
END OPTIONS |
Конец спецификаций дополнений |
5.2.5 |
END.RULEBLOCK |
Конец спецификаций блока правил |
5.2.4 |
END VAR |
Конец определений входной/выходной переменной |
5.2.1 |
FUNCTION-BLOCK |
Конец спецификаций функционального блока |
5.2.1 |
FUZZIFY |
Фаззификация входной переменной |
5.2.2 |
IF |
Начало правила, за которым приводится условие |
5.2.4 |
IS |
Ставится после лингвистической переменной в условии и результате |
5.2.4 |
LM |
Метод дефаззификации «Крайний правый максимум» |
5.2.3 |
MAX |
Метод аккумуляции по формуле максимума, операция OR |
5.2.4 |
METHOD |
Метод дефаззификации |
5.2.3 |
MIN |
Минимум в качестве логической операции AND |
5.2.4 |
NC |
Выходная переменная остается без изменений (No Change) в случае, когда не работает ни одно правило |
5.2.3 |
NOT |
Операция NOT |
5.2.4 |
NSUM |
Метод аккумуляции по формуле нормализованной суммы |
5.2.4 |
OPTIONS |
Определение дополнительных параметров |
5.2.5 |
OR |
Операция OR |
5.2.4 |
PROD |
Произведение в качестве операции AND. метод активизации |
5.24 |
RANGE |
Пределы функции принадлежности |
5.2.3 |
RM |
Метод дефаззификации «Крайний правый максимум» |
5.2.3 |
RULE |
Начало спецификации нечеткого правила |
5.2.4 |
RULEBLOCK |
Начало спецификации блока правил |
5.2.4 |
TERM |
Определение лингвистического терма (функция принадлежности) для лингвистической переменной |
5.2.2 |
THEN |
Отделяет условие от результата |
5.2.4 |
VAR |
Определение локальной переменной (s) |
5.2.1 |
VARJNPUT |
Определение входной переменной (s) |
5.2.1 |
VAR OUTPUT |
Определение выходной переменной ($) |
5.2 1 |
WITH |
Определение весового коэффициента |
5.2.4 |
6 Соответствие
-
6.1 Классы соответствия языка нечеткого управления FCL
Уровни соответствия системы управления, использующей язык нечеткого управления FCL, приведены на рисунке 8. Иерархическая структура состоит из следующих уровней:
-базовый уровень, включающий в себя определения функционального блока и типов данных в соответствии с МЭК 61131-3;
– расширенный уровень с необязательными функциями, приведенными в таблице 9, дополнительно разрешенными на данном уровне;
-открытый уровень, охватывающий дополнительные функции, не определенные в настоящем стандарте, но перечисленные изготовителем.
Открытый уровень с дополнительными функциями {см. таблицу 10)
Расширенный уровень с необязательными функциями (см таблицу 9)
Базовый уровень с обязательными функциями (см. таблицу 8)
Включая (см. МЭК 61131-3) определение функционального блока, определение типа данных
Рисунок 8 — Уровни соответствия
Система управления, применяющая язык нечеткого управления FCL и требующая соответствия настоящему стандарту, должна удовлетворять приведенным ниже правилам:
-
a) для реализации нечеткого управления система управления должна применять средства функционального блока в соответствии с МЭК 61131-3. Поэтому определение функциональных блоков и типов данных, необходимых для входных и выходных параметров функционального блока нечеткого управления, должно соответствовать МЭК 61131-3;
-
b) все функции нечеткого управления, приведенные в таблице 8, должны быть реализованы в соответствии с положениями настоящего стандарта. Данная таблица определяет множество элементов базового уровня, которые в общем случае должны иметь все системы управления, соответствующие МЭК 61131;
-
c) подмножество элементов расширенного уровня, приведенное в таблице 9, представляет собой вспомогательные элементы, которые могут быть реализованы в дополнение ко всем функциям базового уровня. Реализация должна строго соответствовать положениям настоящего стандарта. Данные функции должны маркироваться как стандартные расширения; кроме того, перечень реализованных функций, как показано в таблице 9, должен быть частью документации системы;
-
d) сверх базового и расширенного уровней могут быть реализованы другие функции, если во избежание любых возможных ошибок эти функции не имеют таких же или аналогичных стандартным функциям возможностей или представлений. Данные функции должны маркироваться как функции открытого уровня; кроме того, перечень, как показано в таблице 10, должен быть частью документации системы;
-
e) обмен прикладными программами между разными системами нечеткого управления должен осуществляться в текстовой форме языка нечеткого управления FCL в соответствии с положениями настоящего стандарта. Данный формат, как формат ввода и вывода, должен быть доступным в системах, соответствующих настоящему стандарту;
-
f) чтобы получить наиболее подходящий и удобный пользовательский интерфейс и не препятствовать дальнейшему развитию, внешнее представление разработки, ввода, тестирования и т. д. программ приложения нечеткого управления может быть реализовано любыми графическими или текстовыми средствами.
Элементы таблицы 8 являются базовым множеством функций, которые должны быть реализованы во всех системах нечеткого управления, соответствующих настоящему стандарту.
Таблица 8 — Элементы языка базового уровня FCL (обязательные)
Элемент языка |
Ключевое слово |
Описание |
Описание функционального блока |
VARJNPUT, VAR.OUTPUT |
Содержит входные и выходные переменные |
Функция принадлежности |
Входная переменная. TERM |
Максимальная из трех постоянных точек (координата степени принадлежности равна 0 или 1) |
Выходная переменная: TERM |
Только постоянные синглтоны |
|
Условное агрегирование |
операция AND |
Алгоритм: MIN |
Активизация |
— |
Не применяется, так как используются только синглтоны |
Аккумуляция (агрегирование результатов) |
операция ACCU |
Алгоритм: МАХ |
Дефаззификация |
METHOD |
Алгоритм: CoGS |
Значение по умолчанию |
DEFAULT |
NC, значение |
Блок правил |
RULEBLOCK |
Только один блок правил |
Условие |
IF… IS… |
л подусловий |
Результат |
THEN |
Только один подрезультат |
Элементы таблицы 9 представляют собой расширенное множество функций, которые могут быть дополнительно реализованы в стандартной системе нечеткого управления (например, для операции AND должен быть выбран алгоритм PROD или BDIF либо оба). Данные необязательные функции являются вспомогательными для всех функций базового уровня.
Таблица 9 — Элементы языка базового уровня FCL (необязательные)
Элемент языка |
Ключевое слово |
Описание |
Описание функционального блока |
VAR |
Содержит локальные переменные |
Функция принадлежности |
Входная переменная: TERM |
Максимальная из четырех постоянных или переменных точек (координата степени принадлежности равна 0 или 1) |
Выходная переменная: TERM |
Максимальная из четырех постоянных или переменных точек (координата степени принадлежности равна 0 или 1) |
|
Условное агрегирование |
Операция: AND |
Алгоритм: PROD. BDIF |
Операция OR |
Алгоритм: ASUM, BSUM |
|
Операция: NOT |
1 – {аргумент} |
|
Скобки |
О |
|
Активизация |
Операция ACT |
Алгоритм: MIN, PROD |
Аккумуляция |
Операция ACCU |
Алгоритм: BSUM, NSUM |
Диапазон фаззификации |
Операция: RANGE |
RANGE (минимальное значение… максимальное значение) ограничивает диапазон функции принадлежности для выходной переменной |
Метод дефаззификации |
Операция: METHOD |
Алгоритм: CoG, СоА, LM, RM |
Окончание таблицы 9
Элемент языка |
Ключевое слово |
Описание |
Блок правил |
Операция: RULEBLOCK |
n блоков правил |
Условие |
IF |
п подусловий, п входных переменных |
Результат |
THEN |
п подусловий, п выходных переменных |
Весовой коэффициент |
WITH |
Постоянное значение и значение, присвоенное переменной в разделе описания VAR INPUT…..END VAR |
В таблице 10 приведен пример перечня элементов языка открытого уровня. Данный перечень должен быть частью документации системы.
Таблица 10 — Примеры перечня элементов языка открытого уровня
Функции принадлежности свободного ввода/вывода (например. Гаусса, экспоненциальные)
Более четырех точек функции принадлежности
Координата степени принадлежности от Одо 1
Переменные значения принадлежности
-
6.2 Контрольный перечень данных
Данный контрольный перечень данных (см. таблицу 11) должен предоставляться вместе с технической документацией. В данном перечне изготовитель программируемых контроллеров, программных средств нечеткого управления и прикладного программного обеспечения должен описывать специфические рабочие характеристики системы нечеткого управления. Для обеспечения передачи приложений нечеткого управления между системами разных изготовителей в качестве средства для проверки возможности передачи программ используется контрольный перечень данных. Данный перечень не является исчерпывающим, он служит примером и может быть расширен изготовителями.
Таблица 11 — Контрольный перечень данных
Технические характеристики |
Информация изготовителя (примеры) |
Типы данных входов и выходов функционального блока |
REAL. INT |
Строка комментариев программы FCL |
YES, NO |
Время выполнения, мс |
20. 30 |
Требования к объему памяти, Кбайт |
3. 4 |
Сопоставление переменных значений весовых коэффициентов и степени принадлежности от 0,0 до 1,0 с диапазоном целых чисел |
0—200, 0-^100 |
Длины идентификаторов (например, имена переменных, блоков правил, термов) |
6.8 |
Максимальное значение входных переменных для фаззификации |
6, 8 |
Максимальное количество термов функции принадлежности на входную переменную |
5, 7 |
Максимальное количество термов функции принадлежности всех входных переменных |
30. 56 |
Максимальное количество точек функции принадлежности, соответствующих каждому терму входной переменной |
3,4. 10 |
Максимальное общее количество точек функции принадлежности, соответствующих всем термам входной переменной |
90. 224 |
Максимальное значение выходных переменных для дефаззификации |
6.8 |
Максимальное количество термов функции принадлежности на выходную переменную |
5. 7 |
Окончание таблиц# Я
Технические характеристики |
Информация изготовителя (примеры) |
Максимальное общее количество термов функции принадлежности всех выходных переменных |
30,56 |
Максимальное количество точек функции принадлежности, соответствующих каждому терму выходной переменной |
1.4. 10 |
Максимальное общее количество точек функции принадлежности, соответствующих всем термам выходной переменной |
90. 224 |
Максимальное количество блоков правил |
1. 10 |
Максимальное количество правил в блоке |
10 |
Максимальное количество подусловий для правила |
4. 10 |
Максиальное количество всех правил |
15 |
Максимальное количество под результатов для правила |
4 |
Уровень вложенности () |
1,3 |
Приложение А (справочное)
Теория
В настоящем приложении дается пояснение к определениям, приведенным в разделе 3.
А.1 Нечеткая логика
В нечеткой логике для описания физических переменных вместо имен и чисел (как правило, действительных чисел), применяемых в обычных разомкнутых и замкнутых системах управления, используются лингвистические значения и выражения. Термы «низкая» и «полностью открытый» являются лингвистическими термами физических значений «температура» или «степень открытия терморегулирующего клапана». Если входная переменная описывается лингвистическими термами, то она называется лингвистическим значением
Каждый лингвистический терм описывается нечетким множеством М Поэтому он математически однозначно определяется базовым множеством G из двух утверждений и функцией принадлежности р. Функция принадлежности устанавливает принадлежность каждого элемента предметной области G (например, числовые значения шкалы времени — возраст и годы) в множестве М (например, «молодой») в форме числового значения от нуля до единицы. Если функция принадлежности конкретного значения равна единице, то лингвистическое утверждение, соответствующее лингвистическому терму. применимо во всех отношениях (например, «молодой» для возраста 20 лет) И наоборот, если она равна нулю, то нет никакого соответствия (например, «очень старый» для возраста 20 лет).
Для описания нечетких множеств применяются приведенные ниже формы записи.
Для конечных множеств: неупорядоченные парные множества в дифференциальной форме:
М = {(х,, рМ(х,)), (х2, рм(х2)),… ,(хп, РмСХп))}, Xj е G, i = 1,2, …п рм(х,) считаются числовыми значениями. |
(А.1) |
Для бесконечных множеств: |
|
М = {х, рм(х)}, X € G |
(А.2) |
Для описания различий между четкими и нечеткими терминами на рисунке А.1 приведены лингвистические термы для лингвистической переменной «возраст». Если терм «совершеннолетний» однозначно определяется законом и тем самым отражает дискретный переход в отношении функции принадлежности, для терма «взрослый» не может быть назначен четкий предел возраста.
Установленный законом возраст |
|||
‘ Взрослый |
Шкала времени |
||
i |
> 1 |
_ V (возраст в годах) 9 А |
Рисунок А.1 —Функция принадлежности термов «совершеннолетний» и «взрослый»
Например, на рисунке А.2 представлены описание лингвистической переменной «возраст» лингвистическими термами и их соотношение на шкале времени «возраст в годах» с помощью значений принадлежности.
Рисунок А.2 — Описание лингвистической переменной «возраст» лингвистическими термами и их соотношение на шкале времени (возраст в годах)
Типовые формы функции принадлежности представлены на рисунке А.З. Следующие формы функции принадлежности относятся к специальным формам:
-
– определение через прямоугольник (например, интервал) с целью описания значений, а также:
-
– одноэлементное множество (синглтон) для альтернативного представления выходных переменных
н
1
0
н
ЛЛ
м
1
► 0
/ч .
\
—► 0
Рампада
Н
1
п
Трапецеидальная
Ц
1
Треугольная
I
I
V
Прямоугольная
и
Синглтон
Рисунок А.З— Типовые формы функций принадлежности
В нечеткой логике выражение, связывающее лингвистические переменные с лингвистическими термами, представляет собой лингвистическое утверждение. Такие выражения, как «температура высокая» или «температура низкая» с простой базовой структурой, в настоящем стандарте называются лингвистическим утверждением.
(АЗ)
Лингвистическая переменная — символ сравнения — лингвистический терм (температура низкая)
В отличие от классической логики, в которой утверждения принимают одно из логических значений, «истина» или «ложь», лингвистические утверждения нечеткой логики характеризуются степенью принадлежности
Знания, приобретенные на основе опыта, могут быть определены в правилах Правило Rk имеет следующий вид
Rk- IF условие Р|< THEN результат
(А.4)
В данном контексте условие каждого правила включает лингвистическое утверждение или комбинацию утверждений при посредстве входных переменных, тогда как результат определяет выходную переменную в смысле инструкции к действию.
Pk=AANDBOR(NOTC)(А.5)
Если условие и/или результат определяются лингвистическими утверждениями, правило называется также лингвистическим правилом База правил, в свою очередь, состоит из нескольких правил. В целом в отличие от классических систем, основанных на правилах, одновременно применяются (выполняются) несколько правил. Таким образом, результаты правил должны комбинироваться друг с другом через соответствующие математические операции.
Соотношения между нечеткими множествами и операциями с нечеткими множествами определяются с помощью функций принадлежности.
Для двух нечетких множеств А и В, элементы х которых берутся из базового множества G, применяются следующие соотношения:
равенство А = В |
|
истинно, если рА (х) = рв(х), для всех х e G |
(А.6) |
полное вхождение A q В |
|
истинно, если рА(х) = £ рв(х), для всех х е G |
(А.7) |
частичное вхождениеАс В |
|
истинно, если рА(х) = s рв(х), для всех х е G и РА(х) < рв(х) по крайней мере, для одного х е G. |
<АВ) |
Для двух нечетких множеств, А и В, элементы х которых берутся из базового множества G, могут применяться следующие операции:
пересечение Аг» В определяется РАаВ(х) = 1(рА(х), рв(х)). где I называется операцией пересечения |
(А.9) |
объединение А и В определяется pA(J в(х) = U(pA(x), рв(х)), где U называется операцией объединения |
(А. 10) |
дополнение определяется с помощью рд(х) = 1 – рА (х) |
(А.11) |
Как в случае классических {четких} множеств, к нечетким множествам применяются следующие интерпретации:
пересечение относится к нечеткой операции AND; объединение — к нечеткой операции OR; дополнение — к нечеткой операции NOT.
Элементарные алгоритмы для математического представления пересечения, объединения и дополнения имеют следующий вид (см. также рисунок А 4):
для пересечения, минимум |
|
= Min (МаШ- Мв№ х € g |
(А.12) |
для объединения, максимум |
|
MavbM = Мах <Ра<х>- Рв» х € g |
(А. 13) |
для дополнения, вычитание из единицы |
|
рд(х) = 1 – рА (X) X € G |
(А 14) |
Для нечетких операторов AND и OR существует много возможных алгоритмов При этом следует отметить, что операции AND и OR не могут быть выбраны произвольным способом
А.2 Нечеткое управление
Нечеткое управление означает управление техническими процессами в замкнутом и разомкнутом контурах, включая обработку измеряемых значений, которое основано на использовании нечетких правил и их преобразовании с помощью нечеткой логики.
Входная информация содержит действительные переменные в форме измеряемых переменных технологического процесса, производных переменных, а также уставок Выходные переменные являются действительными переменными в форме регулирующих переменных Между входными и выходными переменными технологического процесса и нечеткой средой должны быть выполнены преобразования (фаззификация, дефаззификация). Основной компонент нечеткого управления состоит из лингвистических правил из базы правил и логического вывода
Функциональные элементы нечеткого управления приведены на рисунке А.5.
Рисунок А.5 — Структура и функциональные элементы нечеткого управления
А.2.1 Фаззификация
Фаззификацией называется сопоставление входных переменных с лингвистическими термами. Для этого устанавливается фактическая степень принадлежности входных переменных каждого лингвистического терма соответствующей лингвистической переменной.
Пример фаззификации приведен на рисунке А.6.
База правил содержит эмпирические знания, относящиеся к конкретному рассматриваемому технологическому процессу. Для интерпретации знаний используются лингвистические правила. При условии, что нечеткая операция AND означает MIN, а нечеткая операция OR означает МАХ, можно показать, что нечеткое правило Rj, основанное на комбинации OR из m утверждений, может быть представлено m правилами, утверждения которых комбинируются только с помощью AND. На рисунках А.7 и А.8 приведены примеры различной интерпретации правил.
База правил
– Определение базы правил в текстовой форме:
R1: |
IF |
Условие P1 |
THEN |
Результат C1 |
R2: |
IF |
Условие P2 |
THEN |
Результат C2 |
R3: |
IF |
Условие РЗ |
THEN |
Результат СЗ |
R«: |
IF |
Условие Рп |
THEN |
Результат Сп |
когда условие может состоять из комбинации лингвистических утверждений, например, для правила к:
Рк = Рм AND Pfc2 OR (NOTPka)
а для результата – может быть более одного, например:
Ск = См,
Рисунок А.7— Интерпретация базы знаний в лингвистической форме
Если имеются две входные переменные и одна выходная переменная, причем эти две входные переменные комбинируются только с помощью AND, база правил может быть задана в форме матрицы, в которой значения входных переменных приведены в столбцах и/или в строках, а поля матрицы содержат значения выходной переменной.
Входная переменная Х1 |
|||||
NB |
NS |
Z |
PS |
РВ |
|
NB |
NB |
NS |
Z |
PS |
PS |
NS |
NB |
NS |
PS |
PS |
РВ |
2 |
2 |
2 |
PS |
РВ |
РВ |
PS |
Z |
2 |
PS |
РВ |
РВ |
РВ |
2 |
NS |
РВ |
РВ |
РВ |
Обозначения:
NB – большая отрицательная;
РВ – большая положительная; NS – небольшая отрицательная; PS – небольшая положительная; Z – нулевая.
Рисунок А 8 — Матричное представление двух переменных
А.2.3 Логический вывод
Принципы и определения, используемые в настоящем стандарте, действительны для упрощенного случая нечеткой базы правил, подобной широко используемой схеме логических выводов Мамдани. Более сложные схемы логических выводов в настоящем стандарте не рассматриваются
Логический вывод состоит в агрегировании трех подфункций, активизации и аккумуляции, приведенных на рисунке А.9. См. также рисунок А. 10.
Выполнение базы правил разбито на следующие шаги:
-Агрегация
Определение степени истинности условия по степени принадлежности подусловий
———
Рн AND Pk2 OR (NOT Рю) = Ек
для всех п условий
-Активизация
Активизация результата IF-THEN
IF условие Рк результат THEN &
для всех п правил
Учет весового коэффициента каждого правила
– Аккумуляция
Комбинация взвешенных результатов правил в общий результат
Рисунок А. 9 — Элементы логического вывода
-
– Агрегирование:
Если условие состоит из одного лодусловия, действительность условия идентична действительности по-дуслоеия, т. е степень истинности условия соответствует истинности подусловия. Однако, если условие состоит из комбинации нескольких подусловий, степень истинности должна определяться агрегированием отдельных значений. Если существует комбинация AND подусловий, степень истинности рассчитывается с помощью нечеткой операции AND.
-
– Активизация:
Подрезультаты в результате относятся к выходным переменным. Затем на основе степени истинности условия, полученного при агрегировании, определяется степень принадлежности результата (результат IF А THEN 6). Как правило, для активизации используется MIN или PROD.
Если база правил содержит правила с весовым коэффициентом wk, где wk е [0,1], это может быть реализовано с помощью умножения
(А 15)
^=*1^
– Аккумуляция
Результаты применения правил комбинируются для получения общего результата. Для аккумуляции, как правило, используется алгоритм максимума. В таблице А.1 приведены операции, используемые, как правило, для отдельных шагов логического вывода.
В зависимости от комбинации операций на отдельных шагах получаются разные стратегии логического вывода. Наиболее известные так называемые методы максимума-минимума (MaxMin Inference) и максимума-произведения (MaxProd Inference), которые применяют максимум для аккумуляции и минимум или алгебраическое произведение для активизации. В случае метода максимума-минимума функции принадлежности нечетких множеств результатов ограничены степенью истинности условия и комбинируются для создания нечеткого множества с помощью формирования максимума. В случае метода максимума-произведения, наоборот, функции принадлежности нечеткого множества результатов взвешиваются, т. е. умножаются по степени истинности условия, а затем комбинируются.
Рк = Pk1 AND Ркз
OR
* V *
MinfSkl ,Эк2 }
(NOTPks)
(1-Экз)
Таблица А.1 — Шаги логического вывода и широко используемые алгоритмы
Шаг логического вывода |
Операции |
Алгоритмы |
Агрегирование |
||
для AND |
Минимальная |
ак = М1п{аК1(х1), а^хг» |
для OR |
Максимальный |
ак = Мах{аК1(х1), а^хг)} |
Активизация |
||
преобразование IF-THEN-результата |
||
Минимальная |
<V = Min{aK, p^u)} |
|
весовой коэффициент каждого правила |
||
Умножение |
= Mult{coK, cK‘J = wK x cK‘ |
|
Аккумуляция |
Максимальный |
p = MAX{C((U)} |
ak=Max[Min{aki, ak2}.(1-ak3)]
Рисунок А. 10а — Пример, демонстрирующий принципы агрегирования
-
– Активизация
-
– Преобразование результата IF-THEN, например, операция минимума
Функция принадлежности лингвистического терма а выходной переменной и, связанной с правилом к
например, алгебраическое произведение
М
Рисунок А 10Ь — Принципы активизации (пример)
• Аккумуляция
например, операция максимизации
Рисунок А 10с — Принципы аккумуляции (пример)
А.2.4 Дефаззификация (см. рисунокА.11)
Логический вывод в качестве результата дает нечеткое множество или его функцию принадлежности. Элемент управления не может напрямую обрабатывать данную нечеткую информацию, поэтому результат процесса логического вывода должен быть преобразован в четкие числовые значения. В этой связи четкое число, которое необходимо определить (как правило, действительное число), должно обеспечить представление информации, содержащейся в нечетком множестве
Дефаззификация
Преобразование нечеткого результата логического вывода в четкую выходную переменную U. Дефаззификация методом центра тяжести (CoG).
Четкая выходная переменная определяется как значение абсциссы U центра тяжести площади под функцией принадлежности:
– пример метода центра тяжести.
Мах Г
Min J u*p(u)*du
Мах г Min J g(u)*du
Рисунок АН a — Методы дефаззификации
Общими методами являются также следующие:
Крайний левый максимум LM
Определяется значение выходной переменной, для которого функция принадлежности выхода достигает ее крайнего левого максимума.
Крайний правый максимум RM
Определяется значение выходной переменной, для которого функция принадлежности выхода достигает ее крайнего правого максимума
Крайний правый максимум: sup(X’)/g(X’) = sup ji(X) х€ [Min, Max]
Крайний левый максимум: inf(X’yji(X’) = sup ц(Х) хе [Min, Max]
Рисунок А. 11Ь — Разница между методами крайнеголевого максимума и крайнего правого максимума
Метод центра площади
В данном методе выходное значение определяется как значение абсциссы центра, которое делит площадь под функцией принадлежности на две области одинакового размера.
Примечание 1 — Центр тяжести эквивалентен центроиду.
Примечание 2 — Центр площади эквивалентен медиане.
Примечание 3 — При использовании синглтонов СоА не применяется.
Рисунок А. 11с — Разница между методами центра площади и центра тяжести
Примечание — Формулы методов дефаззификации СоА и CoG приведены в таблице 2.
Дефаззификация
Если функции принадлежности выходных переменных являются синглтонами, расчет выполняется с помощью:
• метода центра тяжести для синглтонов (COGS)
U = T–
где g • результаты аккумуляции
В случае синглтонов метод центра площади применяться не может. Пример для 4 синглтонов выше: и_ (Ui”Ui * U2M2 + U3*M4 + U4U3]
lPi + Р2 * Нз * Ид!
Рисунок А.110 — Методы дефаззификации
А.З Осуществление нечеткого управления
С точки зрения информационной технологии нечеткое управление является экспертной системой, основанной на правилах. С точки зрения технологии систем управления это, как правило, полевой контроллер с нелинейной характеристикой. На рисунке А. 12 приведены примеры характеристических кривых нечеткого управления Текущие значения его выходных переменных зависят исключительно от текущих значений входных переменных, а не от предыдущих значений, за исключением случая, когда нет активных правил и не было определено значение по умолчанию. Если контроллер должен обладать динамическими свойствами, должны быть предусмотрены внешние по отношению к функциональному блоку динамические функции.
Как правило, это дифференцирующие и интегрирующие элементы, выходные переменные этих функций являются для нечеткого управления дополнительными входными переменными. Это также применимо к ошибкам
управления, которые аналогичным образом должны формироваться вне нечеткого управления. С другой стороны, выходные переменные нечеткого управления могут быть переданы операторам для обработки корректирующих переменных (например, интегрирующий элемент для алгоритмов скорости) или распределены между различными элементами управления
Рисунок А.12 — Примеры характеристических кривых нечеткого управления
Базовая структура основанных на нечетком управлении контроллеров приведена на рисунке А. 13а, а на рисунке А.13Ь приведен пример, показывающий, как из разности между уставкой и переменной технологического процесса формируется ошибка. Эта разность, как и ее производная по времени, передается нечеткому управлению в виде двух переменных, являющихся независимыми от ее обьективного восприятия. Корректирующая переменная получается из выходной переменной интегрированием по времени. Если база правил разработана таким образом, что она описывает алгоритм скорости, то основанный на нечетком управлении контроллер отображает динамическое поведение, подобное пропорциональному интегрированию.
Уставка |
Предварительная обработка |
X |
Нечеткое управление |
и |
Обработка изменяемых переменных |
|
Переменные |
технологического процесса
Изменяемые переменные
Y
Рисунок А. 13а — Основанный на нечетком управлении контроллер: базовая структура
Рисунок А 13Ь — Пример основанного на нечетком управлении контроллера
Приложение В
(справочное)
Примеры
Одним из главных применений программируемых контроллеров является их использование совместно с обычными ПИД-регуляторами для улучшения качества управления ПИД-регулятора. Приведенные ниже примеры показывают принципиальные возможности, дающие общее представление о том, где может быть использовано нечеткое управление
В.1 Предварительное регулирование
Устройство нечеткого управления дополняет обычный контроллер замкнутой системы корректирующим сигналом для управляемого клапана (см. рисунок В. 1).
Нечеткий ФБ
Корре кти рующи й сигнал
Типовой контроллер
Технологический процесс
Рисунок В.1 —Пример предварительного регулирования
В.2 Адаптация характеристик обычных ПИД-регуляторов
Устройство нечеткого управления используется для адаптации параметров управления ПИД-регулятора (см. рисунок В.2).
Рисунок В.2 — Пример адаптации параметров
В.З Прямое нечеткое управление технологическим процессом
Другой областью применения является включение эмпирических знаний о процессе и стратегий лингвистического управления непосредственно в промышленную автоматизацию. Данный метод используется во многих технологических процессах, в которых необходимо вмешательство оператора (см. рисунок В.З).
Нечеткий ФБ |
Технологический |
|
процесс |
Рисунок В.З — Пример прямого нечеткого управления
Приложение С (справочное)
Промышленный пример: кран для контейнеров
Краны для контейнеров применяются в большинстве портов при погрузке контейнеров на суда и при их выгрузке. Краны подхватывают отдельные контейнеры тросами, закрепленными на тележке крана. Тележка крана перемещается по горизонтальному рельсовому пути. Как показано на рисунке С.1, когда контейнер подхвачен и тележка начинает двигаться, контейнер начинает раскачиваться. Раскачивающийся контейнер возможно перемещать, но невозможно поставить
Тележка крана Кран
Контейнер
Конечное положение
Угол; |
0 |
Расстояние: |
21.84 |
Мощность: |
0.00 |
Рисунок С.1 — Промышленный пример: кран для контейнеров
Анализ действий оператора показывает, что эти действия подчиняются ряду общих правил:
-
a) Начало движения тележки при средней мощности двигателя.
-
b) Если в начале движения тележка крана находится далеко от цели, необходимо отрегулировать мощность двигателя так, чтобы контейнер был чуть сзади тележки.
-
c) Если тележка крана находится ближе к цели, необходимо уменьшить мощность двигателя так, чтобы контейнер был чуть впереди тележки.
-
d) Когда контейнер находится рядом с целевым положением, необходимо прибавлять или убавлять мощность в области среднего значения, в зависимости от направления раскачивания.
-
e) Когда контейнер находится над целью и раскачивание равно нулю, необходимо остановить двигатель.
Для автоматизации управления таким краном используются датчики положения («расстояние») тележки крана и угла раскачивания контейнера («угол»). Выходной величиной является мощность двигателя Сначала для всех переменных должны быть определены лингвистические переменные. Лингвистические переменные «расстояние», «угол» и «мощность двигателя» (см. рисунки С.2, С.З и С.4) делятся на пять лингвистических термов Для функции принадлежности используются формы рампады, треугольника и синглтоны. На приведенных ниже рисунках представлены лингвистические переменные и лингвистические термы.
Рисунок С.2 — Лингвистическая переменная «расстояние» между тележкой крана и целевым положением
Рисунок С.З — Лингвистическая переменная «угол» между контейнером и тележкой крана
м
1-
Бапьшая_ отрицательная
Малая. Нулевая Малвя_ 6ольшая_
отрицательная положительная положительная
0—30
—г -15
I I
15 30
Мощность двигателя. кВт
Рисунок С.4 —Лингвистическая переменная «мощность»
С помощью данных лингвистических термов для описания текущего состояния крана в базу правил могут быть преобразованы пять общих правил. На рисунке С.5 дано определение базы правил а записи FCL. Правило 2 было преобразовано в два правила, чтобы соответствовать формату «if-then». Здесь не используются некоторые из определенных функций принадлежности, и система должна быть проверена на наличие неопределенных выходов, например расстояние: очень_дальнее; угол: большой_положительный.
Правило 1: IF расстояние IS большое |
AND угол IS нулевой |
THEN мощность IS средняя_положительная |
Правило 2: IF расстояние IS большое |
AND угол IS малый_отрицательный |
THEN мощность IS большая_положительная |
Правило 3: IF расстояние IS большое |
AND угол IS большой_отрицательный |
THEN мощность IS средняя_положительная |
Правило 4: IF расстояние IS среднее |
AND угол IS малый_отрицательный |
THEN мощность IS средняя_отрицательная |
Правило 5: IF расстояние IS близкое |
AND угол IS малый_положительный |
THEN мощность IS средняя_положительная |
Правило 6: IF расстояние IS нулевое |
AND угол IS нулевой |
THEN мощность IS нулевая |
Рисунок С.5 — База правил
В таблице С.1 приведены шаги логического вывода и использованные операции соответственно.
Таблица С.1 — Шаги логического вывода и присвоенная операция
Шаг логического вывода |
Операции |
Агрегирование |
|
AND |
Минимальная |
Активизация |
|
преобразование IF-THEN-результата |
|
Минимальная |
|
Аккумуляция |
Максимальный |
Необходимо учитывать текущее состояние крана, когда расстояние тележки крана до целевого положения равно 12 м, а угол контейнера составляет плюс 4Ф Для иллюстрации будет принято подмножество трех правил
На рисунках С.6 и С.7 показано, как для данного случая рассчитывается фаззификация.
Угол плюс 4° принадлежит нечетким множествам термов
Большой_отрицательный Малый_отрицательный Нулевой Малый_лоложительный Большой^положительный
до степени 0 до степени 0 до степени 0,2 до степени 0,8
до степени 0
Рисунок С.7 — Фаззификация лингвистической переменной «угол»
Расстояние 12 м преобразуется в значение лингвистической переменной {0,1; 0,9; 0, 0, 0}, которое может бьггь интерпретировано как «еще среднее, но уже немного большое». Угол плюс 4° преобразуется в значение лингвистической переменной {0; 0; 0,2, 0,8, 0}. которое может быть интерпретировано как «небольшое положительное, почти нулевое»
* Логический вывод
После того, как все входные переменные были преобразованы в значения лингвистических переменных, шаг нечеткого логического вывода дает возможность идентифицировать правила, применяемые к текущему состоянию, и вычислить значения выходной лингвистической переменной. На рисунке С.8 для иллюстрации показано подмножество трех правил:
RULE 1: IF расстояние IS среднее |
AND угол IS малый_ положительный |
THEN мощность IS средняя_положительная |
RULE 2: IF расстояние IS среднее |
AND угол IS нулевой |
THEN мощность IS нулевая |
RULE 3: IF расстояние IS дальнее |
AND угол IS нулевой |
THEN мощность IS средняя положительная |
Рисунок С.8 — Подмножество трех правил
Логический вывод состоит из трех подфункций: агрегирования, активизации и аккумуляции.
– Агрегирование (см. рисунок С. 10)
Определение степени истинности предположения по степени принадлежности элементарных утверждений.
RULE 1: Расстояние = среднее |
AND |
Угол = малый_положительный |
= |
Р1 |
RULE 2: Расстояние = среднее |
AND |
Угол = нулевой |
= |
Р2 |
RULE 3: Расстояние = дальнее |
AND |
Угол = нулевой |
= |
РЗ |
Для всех предположений |
Рисунок С.9 — Элементы агрегирования
Операция Мт соответствует агрегированию AND. На рисунке С.9 показано, как для данного случая вычисляется агрегирование.
– Активизация (см. рисунок С.12) Преобразование результата IF-THEN
При |
условие Р1 |
THEN |
результат |
С1 |
При |
условие Р2 |
THEN |
результат |
С2 |
При |
условие РЗ |
THEN |
результат |
СЗ |
для всех правил
Рисунок С.11 — Элементы активизации
На рисунке С.11 показано, как для данного случая рассчитывается активизация. Результат агрегирования описан с левой стороны, результат активизации — с правой стороны.
Операция минимизации
Правило 1:
Операция минимизации
Правило 2:
Операция минимизации
Правило 3:
0.1
Рисунок С.12 — Принципы активизации
-Аккумуляция (см. рисунок С.14)
Комбинация взвешенных результатов правил в общий результат
Рисунок С. 13 — Элементы аккумуляции
Результат аккумуляции правил с 1 по 3 показан в нижней части рисунка С. 13. Результат среднего_положи-тельного синглтона рассчитывается, например, как Мах(0,8; 0,1) = 0.8.
М
1,0-
бальшм_ отрицательная
Cpata*»_ Нулем* CpedKW_ олричатыьмм лаюкитёльная
6апы1ля_ паячкитлпыля
0.8-
Правило 1:
0 И——————1 I———1——-1——————Г”
-30 -15 0 15 30
Мощность двигателя, кВт
Мощность двигателя, кВт
Аккумуляция правил 1-3
Операция максимизации
Ц
1.0-
6ольшая_ отричятальмяя
Срейим_ Нулмая отрицательная
Срлдняя_ лолажитстмая
большая. попоигитальмея
0.8-
0.2-
0—30
“Г -15
T-U–.
0 15 30
Мощность двигателя, кВт
Рисунок С. 14 — Принципы аккумуляции
– Дефаззификация (см. рисунок С. 15)
Логический вывод в качестве результата дает нечеткое множество или его функцию принадлежности. Чтобы использовать его для установки мощности двигателя, он должен быть преобразован в четкое числовое значение. Значение, которое необходимо определить (как правило, действительное число), должно обеспечить наилучшее представление информации, содержащейся в полученном нечетком множестве Используя метод максимальной высоты, четкую выходную переменную мощность двигателя рассчитывают следующим образом
Аккумуляция правил 1-3
Дефаззификация методом Центра тяжести для синглтонов (COGS)
Н
1
6сиыия_ |
ОроЛяя. яиммя С₽оЛля_ |
большая. |
||
«гушиягмлкнм лопав |
||||
“Г |
||||
I I |
I |
-15
О 15 30
Мощность двигателя, кВт
О -30
о
Выходное значение = 7,2 кВт
Рисунок С 15 — Дефаззификация
– Реализация примера с краном для контейнеров в FCL(cm. рисунок С. 16):
FUNCTION-BLOCK кран_для_контейнеров
VARJNPUT расстояние: REAL; угол: REAL;
END.VAR
VAR_OUTPUT мощность: REAL;
END VAR
FUZZIFY расстояние TERM слишком_больик>е TERM нулевое TERM близкое TERM среднее TERM большое END_FUZZIFY |
:= (-5,1) (0.0); :=(-5.0) (0,1) (5.0); :=( 0,0) (5,1) (10,0); :=( 5.0) (10.1) (22,0); := (10,0) (22,1); |
FUZZIFY угол TERM большой-отрицательный TERM небольшой-Отрицательный TERM нулевой TERM небольшой-Положительный TERM большой положительный END_FUZZIFY |
:■ (-50,1) (-5,0); := (-50.0) (-5.1) (0.0); := (-5,0) (0.1) (5.0); := (0,0) (5,1) (50.0); := (5.0) (50.1); |
DEFUZZIFY мощность TERM большая.отрицательная TERM средняЯ-Отрицательная TERM нулевая TERM средняя-лоложительмая TERM большая положительная METHOD: CoGS; DEFAULT:» 0; END DEFUZZIFY |
:=-27; := -9; := 0; :=9; :=27; |
RULEBLOCK №1
AND: MIN;
ACCU: MAX;
RULE 1: IF расстояние IS большое AND угол IS нулевой THEN мощность IS средняя_положительная; RULE 2: IF расстояние IS большое AND угол IS небольшой.отрицательный THEN мощность IS бол ьшая_лоложительная;
RULE 3: IF расстояние IS большое AND угол IS больиюй_отрицательный THEN мощность IS средняя_положительная;
RULE 4: IF расстояние IS среднее AND угол IS небольшой_отрицательный THEN мощность IS средняя_отрицательная;
RULE 5JF расстояние IS большое AND угол IS небольшой_положительный THEN мощность IS средняЯ-Положительная;
RULE 6: IF расстояние IS нулевое AND угол IS нулевой THEN мощность IS нулевая;
END RULEBLOCK
END FUNCTION BLOCK
Рисунок C.16 — Пример на SCL
Функциональный блок FCL должен вызываться так же, как и с помощью программ, в соответствии с МЭК 61131-3. Это обосновано тем, что с внешней точки зрения нечеткий блок имеет единственный интерфейс через свои переменные.
В соответствии с МЭК 61131-3 вызов для приведенного выше примера может быть: кран_для_контейнерое (расстояние: = INP_DIS, угол:= INP_ANG);
А:= кран для контейнеров.мощность;
Переменные INP_D1S и INP_ANG могут быть привязаны непосредственно к словам ввода контроллера или вычисляться из других значений.
Приложение D (справочное)
Пример использования переменных в блоке правил
Печенье готовят в туннельной печи. Цвет печенья определяется с помощью датчика цвета в конце печи. Измерение цвета осуществляется с помощью трехмерной величины, для определения принадлежности измеренного цвета к одному из трех приведенных ниже классов используется нечеткая классификация: коричневый, светлый, темный. В печи также измеряется влажность. Печь может управляться двумя температурными контурами: один в первой и один во второй половине печи.
Принцип управления приведен на рисунках D.1 и 0.2.
Датчик влажности
Датчик цвета
Туннельная печь |
|||
Печенье |
ц 1 1 |
А, |
|
I ♦I I f |
Температурный контур Температурный контур
I ПИД I I ПИД I
Уставка температуры Т1
Уставка температуры Т2
Рисунок D.1 — Принцип управления системой
Рисунок D.2 — Принцип управления печью на основе нечеткой логики
Блок правил содержит следующие пять правил (см. рисунок 0.3):
IF влажность IS средняя AND цвет IS коричневый IF влажность IS высокая
IF влажность IS низкая
IF влажность IS средняя AND цвет IS светлый IF влажность IS средняя AND цвет IS темный
THEN dT1 IS ноль AND dT2 IS ноль THEN dT1 IS положительная
THEN dT1 IS отрицательная THEN dT2 IS положительная
THEN dT2 IS отрицательная
Рисунок 0.3 — Блок правил
Синтаксис FCL для данного примера приведен на рисунке D.4.
Примечание — Вместо использования трех переменных — светлый, коричневый и темный—для цвета может также использоваться только одна переменная перечисляемого типа данных, как показано ниже. В данном примере dT2 не определяется, если влажность высокая или низкая.
TYPE
STRUCT тип_цвета коричневый REAL; светлый: REAL; темный: REAL;
END.STRUCT END.TYPE
FUNCTION_BLOCK управление_печью VARJNPUT
влажность: REAL;
цвет: тип_цвета; END_VAR
VAR OUTPUT
dT1: REAL;
dT2: REAL;
END_VAR
FUZZIFY влажность TERM низкая TERM средняя TERM высокая END_FUZZIFY
= (30,1) (50.0);
= (30,0) (50,1) (70,1) (80.0);
= (70,0) (80.1);
DEFUZZIFY dT1
TERM отрицательная := -5;
TERM нулевая := 0;
TERM положительная := 5; METHOD: CoGS
DEFAULT:» 0; END_DEFUZZIFY
DEFUZZIFY dT2
TERM отрицательная := -3:
TERM нулевая := 0;
TERM положительная := 3; METHOD: CoGS
DEFAULT:» 0;
END.DEFUZZIFY
RULEBLOCK логический вывод AND: MIN;
ACCU: MAX;
RULE 1 IF влажность IS средняя AND цвет = коричневый THEN dT 1 IS нулевая
RULE 2: IF влажность IS высокая RULE 3: IF влажность IS низкая RULE 4: IF влажность IS средняя AND цвет = светлый RULE 5: IF влажность IS средняя AND цвет » темный END RULEBLOCK END FUNCTION BLOCK |
AND dT2 IS нулевая; THEN dT1 IS положительная; THEN dT1 IS отрицательная; THEN dT2 IS положительная; THEN dT2 IS отрицательная; |
Рисунок D.4 — Пример на FCL
Приложение Е
(справочное)
Условные обозначения, аббревиатуры и синонимы
Таблица Е.1 — Условные обозначения и аббревиатуры
СоА |
Центр площади |
|
CoG |
Центр тяжести |
|
FB |
Функциональный блок |
|
FBD |
Диаграммы функциональных блоков |
|
FCL |
Язык нечеткого управления |
|
IL |
Перечень команд |
|
ИСО |
Международная организация по стандартизации |
|
МАХ |
Операция максимизации |
|
MIN |
Операция минимизации |
|
PROD |
Операция умножения |
|
ST |
Структурированный текст |
|
М |
Степень принадлежности |
|
со |
Весовой коэффициент |
Таблица Е.2 — Синонимы
Результат |
Следствие |
Аккумуляция |
Агрегирование результатов |
Активизация |
Композиция |
Условие |
Предпосылка |
Центр тяжести |
Центроид |
Центр площади |
Медиана |
Приложение ДА (справочное)
Сведения о соответствии ссылочных международных стандартов национальным стандартам
Таблица ДА. 1
Обозначение ссылочного международного стандарта |
Степень соответствия |
Обозначение и наименование соответствующего национального стандарта |
IEC 60050-351:1998 |
— |
* |
IEC 61131-3:2013 |
IDT |
ГОСТ Р МЭК 61131-3—2016 «Контроллеры программируемые. Часть 3. Языки программирования» |
•Соответствующий национальный стандарт отсутствует До его утверждения рекомендуется использовать перевод на русский язык данного международного стандарта Примечание — В настоящей таблице использовано следующее условное обозначение степени соответствия стандарта: – IDT — идентичный стандарт. |
УДК 681.58:681.3
ОКС 35.240.50
IDT
25.040.40
Ключевые слова: программируемые контроллеры, нечеткое управление, нечеткая логика, язык нечеткого управления
БЗ 10—2017/155
Редактор В.Н. Шмельков Технический редактор В Н. Прусакова Корректор С И. Фирсова Компьютерная верстка Е.О. Асташина
Сдано в набор 18 09.2017. Подписано в печать09.10.2017. Формат 60»841/s. Гарнитура Ариал. Усл. печ. л. 6,05 Уч.-изд. л. 5.62. Тираж 21 экз. Зак. 1905.
Подготовлено на основе электронной версии, предоставленной разработчиком стандарта
Издано и отпечатано во . 123001 Москва, Гранатный пер . 4