Построение на базе нечеткой логики стабилизирующего управления маятника на колесе

ПОСТРОЕНИЕ НА БАЗЕ НЕЧЕТКОЙ ЛОГИКИ СТАБИЛИЗИРУЮЩЕГО УПРАВЛЕНИЯ МАЯТНИКА НА КОЛЕСЕ

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

Ключевые слова: перевернутый маятник, нечеткая логика, равновесие.

Введение

Исследованию движения многозвенных механизмов посвящено большое количество литературы [1; 2]. В последнее время весьма актуальна задача компьютерного управления поведением механических или иных объектов [3]. Если рассматривать эти объекты и управляющий ими компьютер как единое целое, то эту задачу можно сформулировать как попытку создания объекта, способного самостоятельно управлять своими действиями.

Настоящая статья посвящена задаче управления перевернутым маятником на колесе: требуется привести маятник в верхнее (неустойчивое) положение и стабилизировать в этом положении при произвольных начальных условиях и при ограниченном управлении на базе нечеткой логики [4; 5]. За основу работы была взята статья [6], в которой рассматривается механика движения маятника на колесе. Исходя из уравнений движения были получены нечеткие правила для управления системой.

1. Уравнения движения

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

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

Уравнения движения маятника на колесе имеют следующий вид:

в' = w,

m0 — масса колеса, mi — масса маятника, M — момент, в — угол отклонения маятника, ш — угловое ускорение. Наличие члена e2 cos в в правой части второго уравнения в (1) связано с тем, что момент M прикладывается не только к маятнику, но и к колесу, вызывая ускорение точки O, которое, в свою очередь, влияет на движение маятника. В диапазоне — | < в < f это ускорение направлено в одну сторону, а в диапазоне f < в < при этом же значении и — в другую сторону. Следовательно, член e2 cos в при — f < в < f усиливает влияние управления, а при f < в < — ослабляет.

Интеграл энергии системы имеет вид E = f (1 — d2 cos2 в)ш2 + cos в = const. Полная производная энергии по времени

Если е2 < 1, то знак управляющего воздействия и определяется только знаком скорости ш. Если же е2 > 1, то управление и меняет знак «около» положения

в = п независимо от знака скорости ш.

При управлении (3) энергия Е монотонно возрастает и в некоторый момент времени становится равной единице. При и = 0 после этого момента система

будет стремиться к состоянию в = 0, 2п, ш = 0.

м у

У / / / .

X

-5»

Рис. 1. Маятник на колесе

Здесь

2

d2

mo 1 + (П)2 + mi

e

2

E' = (1 + e2 cos2 в)^u. Производная (2) максимальна при управлении

u = u0 sign[(1 + e2 cos2 в)^j.

2. Физическое моделирование

2.1. Среда моделирования

Графическая и физическая модель построена при помощи библиотеки Box2D 2.0 [7]. Это свободная для коммерческого и некоммерческого использования библиотека физического моделирования и визуализации с реализациями на наиболее распространенных языках программирования с открытым исходным кодом. С ее помощью программирование двумерной графики становится более простым и быстрым. Эта библиотека промышленного качества, предназначенная для использования в интерактивных симуляторах, а также симуляторах реального времени, хорошо подходит для моделирования шарнирно связанных твердых тел. Например, она хорошо подходит для моделирования транспортных средств (у которых колеса соединены с подвеской), существ с ногами и движущихся объектов в виртуальном пространстве. Она быстра, гибка и проста. Встроенная система обнаружения столкновений позволяет моделировать взаимодействие тел при их столкновении. В Box2D также реализована симуляция сухого трения между телами.

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

Также на выбор библиотеки моделирования повлияло наличие хорошо написанной и переведенной книги по использованию основных инструментов Box2D.

2.2. Среда программирования

В качестве среды программирования использована Embarcadero Delphi XE2. У Delphi существует много преимуществ: хорошая работа компилятора, огромная структура компонентов, понятность кода, визуальность разработки программного обеспечения и т. д. Также для Delphi существует реализация библиотеки Box2D.

2.3. Создание компьютерной модели

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

Для каждого элемента модели создается объект с заданными габаритами, массой, степенями свободы и т. п. На каждом шаге моделирования для каждой пары объектов обрабатываются столкновения и силы взаимодействия.

Модель движется по горизонтальной плоскости.

3. Обработка нечетких правил

В построении нечеткой системы управления для каждой физической переменной определим лингвистические переменные с соответствующими имена-

ми. Ограничимся пятью термами для каждой переменной: verynegative, negative, zero, positive, verypositive (очень отрицательно, отрицательно, ноль, положительно, очень положительно).

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

1.0

0.8

0.Б

0.4

0.2

0.0

- \ / Л — 3= Л \ /

\ / / \ \ \ /

- \ / / \ / \ \ /

- / \ \ / 4 \

т / / \ J А / \ \ Г

-0.1

-0.05

0.05

0.1

Рис. 2. Общий графический вид термов переменных

При этом количество правил получается равным 52 = 25 (количество всевозможных комбинаций всех термов всех входных переменных). Нечеткие правила и функции принадлежности составлены в системе FuzzyTECH 5.54 [8].

При фаззификации используем стандартный метод фаззификации (Compute MBF). Он предполагает использование функций принадлежности стандартного типа — треугольных, трапециевидных и кусочно-линейных кривых.

Для агрегирования подусловий правил нечетких продукций воспользуемся правилом минимума

b'k = min М«*)}-*C{1,2...m}

Для композиции заключений правил воспользуемся стандартным (Standart) вариантом задания весовых коэффициентов правил, при котором значение весового коэффициента для каждого правила предполагается неизменным и равным 1.

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

T(A V B) = min{T(A) + T(B), 1}.

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

емому по формуле

max

J x • ^(x) dx

__ min

У max >

f ^(x) dx

min

где y — результат дефаззификации; x — переменная, соответствующая выходной лингвистической переменной; ^(x) — функция принадлежности нечеткого множества, соответствующего выходной переменной после этапа аккумуляции; min и тах — левая и правая точки интервала носителя нечеткого множества рассматриваемой выходной переменной.

Например, если маятник отклонен на небольшой положительный угол и при этом скорость его поворота сильно отрицательна, то необходимо «притормозить» маятник управлением и > 0 (и = +), чтобы он не проскочил верхнее вертикальное положение.

Примеры нечетких правил:

IF e=positive AND w=verynegative THEN u=positive;

IF e=verypositive AND w=verypositive THEN u=verynegative;

Нечеткие правила можно представить в виде таблицы, в которой положительные и очень положительные значения переменных обозначены как + и +—+, а отрицательные и очень отрицательные как - и — соответственно. Нулем обозначим значения близкие к нулю.

Нечеткие правила

в — - 0 + ++

— ++ ++ ++ + 0

- ++ ++ + 0 -

0 + + 0 - -

+ + 0 - — —

++ 0 -

Те же правила можно представить в виде трехмерной поверхности (рис. 3), где по горизонтальным осям расположены входные переменные в и ш, а на вертикальной оси — управление и.

При программировании используем модуль обработки в реальном времени FTRUN32.DLL [8] из пакета FuzzyTECH 5.54. Использование модуля обработки в коде программы на Delphi: ftrOpen (hinstance, 'BIKE.ftr', hftrTraffic).

Передавая входные параметры системы управления, получаем выходные параметры на каждом шаге управления (каждые 1-2 мс): ftrSetShellValue

(hftrTraffic, 0, beta); ftrSetShellValue (hftrTraffic, 1, omega); ftrGetShellValue (hftrTraffic, 2, u, NoHitFlag).

4. Итоговая программа

При запуске программы мы видим на черном фоне сам механизм на зеленой плоскости (рис. 4). В правом верхнем углу располагается панель с полями для

Рис. 3. Представление термов переменных в виде трехмерной поверхности

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

аб

Рис. 4. Вид окна программы: а — маятник в спокойном (устойчивом) состоянии; б — маятник выведен из состояния

равновесия

Курсором мыши можно «хватать» маятник за звено (с помощью левой кнопки мыши) и за колесо для внесения помех в систему и вывода системы из равновесия.

На поверхности, кроме маятника на колесе, также расположено круглое тело, «схватив» которое курсором мыши и ударяя по маятнику, мы также можем

вызывать изменения состояния системы (рис. 4а).

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

Для выхода из программы необходимо нажать Escape.

5. Анализ полученной системы управления

Без вмешательства пользователя система находится в состоянии покоя, т. к. маятник находится в верхнем положении равновесии (неустойчивом).

При внесении помех система управления приводит маятник в вертикальное положение.

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

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

аб

Рис. 5. Иное представление системы: а — вид окна программы; б — шарнирно соединенные звенья

Система в этом случае будет состоять из двух стержневых звеньев, шар-

нирно соединенных в точке B. Один из стержней шарнирно соединен в жестко фиксированной точке A. Такая система может являться моделью руки человека, вертикально поднятой верх. Можно рассматривать задачу вертикального удержания «предплечья».

Заключение

Поставленная в работе цель (построение стабилизирующего управления маятника на колесе) была достигнута. Построенная система управления обеспечивает равновесие маятника в широком диапазоне параметров маятника.

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

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

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

1. Белецкий, В. В. Двуногая ходьба: модельные задачи динамики и управления / В. В. Белецкий. — М. : Наука, 1984. — 288 с.

2. Гришин А. А. О синтезе управления неустойчивым объектом. Перевернутый маятник / А. А. Гришин, А. В. Ленский, Д. Е. Охоцимский и др. // Изв. РАН. Теория и системы управления. — 2002. — № 5. — C. 14-24.

3. Киселев В. В. Синтез управления в одной задаче уклонения от встречи на базе нечеткой логики / В. В. Киселев, В. И. Ухоботов // Изв. Ин-та математики и информатики Удмурт. гос. ун-та. — 2000. —№ 19. — С. 73-82.

4. Заде, Л. А. Понятие лингвистической переменной и его применение к принятию приближенных решений / Л. А. Заде. — М. : Мир, 1976. — 161 с.

5. Ухоботов, В. И. Избранные главы теории нечетких множеств : учеб. пособие / В. И. Ухоботов. — Челябинск : Изд-во Челяб. гос. ун-та, 2011. — 245 с.

6. Мартыненко, Ю. Г. Маятник на подвижном основании / Ю. Г. Мартыненко, А. М. Формальский // Докл. Акад. наук. — 2011. — Т. 439, № 6. — С. 746-751.

7. Catto, E. Box2D v2.0.2 Руководство [Электронный ресурс] / Erin Catto. — Режим доступа: http://box2d.ru/page/manual/.

8. fuzzyTECH Runtime DLL Help (файл справки из пакета fuzzyTECH).

9. Леоненко, А. В. Нечеткое моделирование в среде MATLAB и fuzzyTECH / А. В. Леоненко. — СПб. : БХВ-Петербург, 2005. — 736 с.