В настоящее время многомерные нечеткие интервально-логические регуляторы (МИЛР) можно использовать для решения задач регулирования, где невозможно или достаточно затруднено использование П-, ПИ-, ПИД-регуляторов, а быстродействия существующих аппаратных и программных решений в ряде случаев бывает недостаточно [1, 2, 3].
Практическое применение МИЛР сдерживается, что связано, прежде всего, с отсутствием эффективных алгоритмов их работы.
В МИЛР отсутствуют процессы фаззификации и дефаззификации, что связанно, прежде всего, со спецификой их работы. Взамен введены понятия интервализации и деинтервализации [4, 5].
Интервализация, по сути, представляет собой процесс определения принадлежности значения непрерывной величины какому-либо интервалу, входящему в диапазон значений этой величины.
Деинтервализация представляет собой обратный (интервализации) процесс, т. е. выделение требуемого значения непрерывной величины из интервала, входящего в диапазон значений этой величины.
Рассмотрим особенности программной реализации алгоритмов интервализации и деинтервализации МИЛР в среде разработки TRACE MODE и Simatic STEP 7 на языках программирования контроллеров, предусмотренных международным стандартом IEC 61131-3 [6, 7].
Пример реализации алгоритма интервализации МИЛР непрерывной величины IN в диапазоне [IN_0; IN_N] на языке программирования FBD в среде разработки TRACE MODE 6 представлен на рис. 1, из которого видно, что с увеличением суммарного числа термов непрерывной величины IN в структуре интервализатора происходит пропорциональное увеличение числа стандартных функциональных блоков (сравнения, инверсии и т. п.). Такая структура программы МИЛР сильно затрудняет чтение и корректирование интервализатора (функционального блока МИЛР, реализующего процесс интервализации) при увеличении максимального числа термов.

На рис. 2 показан пример реализации алгоритма деинтервализации МИЛР непрерывной величины OUT в диапазоне значений [OUT_0; OUT_N] на языке программирования LAD в среде разработки SIMATIC STEP 7 в процессе имитации и мониторинга переменных МИЛР. В качестве функции деинтервализации выбрана функция нахождения среднего арифметического двух аргументов (блок DIV_R). В блоке ADD_R осуществляется сложение граничных значений интервалов термов.

На рис. 3 представлен пример реализации алгоритма интервализации МИЛР непрерывной величины IN в диапазоне значений [IN_0; IN_N] на языке программирования IL (от англ. Instruction List — список инструкций) в среде разработки SIMATIC STEP 7.
Язык IL представляет собой текстовый язык для программирования мнемонических инструкций, внешне похожий на Assembler, который дает гораздо больший набор инструкций, чем графические языки, описанные в стандарте IEC 61131-3.
Важно отметить, что модификация языка IL в SIMATIC STEP 7 имеет наименование STL (от англ. STatement List — лист операторов), а в TRACE MODE 6 — Техно IL.


На рис. 4 представлен пример реализации алгоритма интервализации МИЛР непрерывной величины IN на языке программирования SCL в среде SIMATIC STEP 7.
Программы МИЛР, написанные на текстовых языках: IL (Техно IL, STL) и ST (Техно ST, SCL) сложно транслировать на графические языки (LAD, FBD и пр.), в тоже время программы, написанные на графических языках программирования, свободно транслируются на текстовые языки.
Таким образом, исходя из вышесказанного, можно сделать вывод, что для полноценной программной реализации алгоритмов интервализации и деинтервализации МИЛР наиболее оптимальным будет выбор текстовых языков программирования, описанных в стандарте IEC 61131-3: ST или IL.