Система управления краном на основе нечеткой логики
Построим модель системы нечеткого управления краном. Кран может перемещаться по горизонтали, вращательные степени свободы отсутствуют. Груз подвешен на тросе, который может совершать колебания относительно вертикали в плоскости перемещения крана. Система управления должна обеспечить доставку груза до заданной точки и минимизировать колебания троса за счет движения крана в прямом или обратном направлении. Таким образом, имеем две входные переменные – расстояние и угол, и одну выходную переменную – мощность двигателя, которая может быть положительной (движение вперед) или отрицательной (движение назад). Угол отклонения троса в направлении движения крана вперед будем считать положительным, в обратном направлении – отрицательным.
Используем следующие обозначения: b1- первая входная лингвистическая переменная с именем "distance", b2 - вторая входная лингвистическая переменная с именем "angle", b3 - выходная лингвистическая переменная с именем "power".
В качестве терм-множества первой лингвистической переменной используется множество Т1 = {"нуль", "близкое", "среднее", "далекое"}, которое записывается в символическом виде: T1 = {Z, PS, РМ, РВ}. В качестве терм-множества второй лингвистической переменной используется множество Т2= {"отрицательный большой", "отрицательный малый", "нуль", "положительный малый", "положительный большой"},которое записывается в символическом виде: T2={NB, NS, Z, PS, PB}. В качестве терм-множества выходной лингвистической переменной используется множество Tз = {"отрицательная средняя", "нуль", "положительная средняя", "положительная большая"},которое записывается в символическом виде: T3 = {NS, Z, РМ, РВ}.
Разработку нечеткой модели будем выполнять с использованием графических средств системы MATLAB. С этой целью откроем редактор FIS (набрать fuzzy в окне редактора команд) и определим 2 входные переменные с именами "distance" (b1) и " angle" (b2) и одну выходную переменную с именем "power",(b3). Вид графического интерфейса редактора FIS для этих переменных изображен на Рис.13.1.
Рис.13.1. Вид графического интерфейса редактора FIS после задания входных и выходных переменных.
Оставим без изменения тип системы нечеткого вывода, предложенный системой MATLAB по умолчанию - систему Мамдани. Оставим и другие параметры разрабатываемой нечеткой модели, предложенные системой MATLAB по умолчанию, такие как логические операции (min - для нечеткого логического И, max - для нечеткого логического ИЛИ, методы импликации (min), агрегирования (max) и дефаззификации (centroid).
Далее следует определить функции принадлежности термов для каждой из переменных системы нечеткого вывода. Для этой цели воспользуемся редактором функций принадлежности системы MATLAB. Для первой входной переменной следует добавить один дополнительный терм к трем, заданным по умолчанию, и определить параметры соответствующих функций принадлежности. Численные значения этих параметров можно взять из Рис.13.2.
Рис.13.2. Вид графического интерфейса редактора функций принадлежности после задания первой входной переменнойDistance.
Для второй входной переменной "angle"следует определить 4 терма, изменив диапазон значений переменной и параметры треугольных функций принадлежности термов. (Рис.13.3.)
Рис.13.3. Вид графического интерфейса редактора функций принадлежности после задания второй входной переменнойAngle.
Для выходной переменной "power"определим 4 терма, изменив диапазон значений переменной и определив соответствующие функции принадлежности термов, Рис.13.4.
Рис.13.4. Вид графического интерфейса редактора функций принадлежности после задания выходной переменнойPower.
Функции принадлежности термов выходной переменной определим равными постоянным значениям, но среди встроенных функций принадлежности системы Matlab такие функции принадлежности отсутствуют, поэтому в качестве функций принадлежности термов возьмем треугольные функции принадлежности с подходящими значениями параметров. Вид графического интерфейса редактора функций принадлежности после задания выходной переменной изображен на Рис.13.4.
Теперь зададим 6 правил для разрабатываемой системы нечеткого вывода. Для этой цели воспользуемся редактором правил системы Matlab. Вид графического интерфейса редактора правил после задания всех 6 правил нечеткого вывода изображен на Рис.13.5. Правила следует разработать самостоятельно.
Рис.13.5. Вид графического интерфейса редактораправил системы нечеткого вывода
Теперь можно выполнить оценку построенной системы нечеткого вывода для задачи автоматического управления краном. Откроем программу просмотра правил системы Matlab и введем значения входных переменных для частного случая, когда текущее расстояние до цели равно 7.5 м, а угол между контейнером и кабиной крана равен 10°. Процедура нечеткого вывода, выполненная системой Matlab для разработаннойнечеткой модели, выдает в результате значение выходной переменной "power",равное 12 киловатт (Рис.13.6.).Данное значение соответствует включению двигателя крана для движения в положительном направлении, при этом сама мощность равна 12 киловатт.
Рис.13.6. Вид графического интерфейса для просмотра результата работы системы нечеткого управления.
Для общего анализа разработанной нечеткой модели полезной является визуализация соответствующей поверхности нечеткого вывода. Данная поверхность позволяет установить зависимость значений выходной переменной от значений входных переменных нечеткой модели во всем диапазоне их изменения. Анализ вида этой поверхности позволяет проверить правильность написания правил системы нечеткого вывода.Эта зависимость может послужить основой для программирования контроллера или аппаратной реализации соответствующего нечеткого алгоритма управления в форме соответствующей таблицы решений. Построение поверхности нечеткого вывода следует выполнить самостоятельно.
Рассмотренные примеры иллюстрируют все практические действия, которые необходимо выполнить для разработки и использования нечетких моделей в форме систем нечеткого вывода.