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

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

УДК 004.896

ПРИМЕНЕНИЕ НЕЧЕТКОЙ ЛОГИКИ ДЛЯ СОЗДАНИЯ СИСТЕМЫ УПРАВЛЕНИЯ УСТОЙЧИВОСТЬЮ ДВУХКОЛЕСНОГО МОТОЦИКЛА

B.C. Величко

APPLICATION OF FUZZY LOGIC TO CREATE A SYSTEM OF STABILITY OF TWO-WHEELED MOTORCYCLE

V.S. Velichko

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

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

The possibility of applying control techniques based on fuzzy logic to create a system of controlling the stability of two-wheeled vehicle for example a motorcycle is considered. A software package which emulates the physical behavior of a motorcycle, the control wheel and displaying graphically the process control in real time is implemented.

Keywords: fuzzy logic, control, stability, motorcycle.

Введение

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

Говоря об управлении транспортными средствами, также можно представить себе объекты различной сложности - от системы активной подвески колес автомобиля до полностью автономного транспортного средства, беспилотно передвигающегося, например, на колесах по поверхности земли. В данной работе предпринята попытка построения одной из частей системы для управления мотоциклом на базе нечеткой логики [1]. Эта система позволит ему двигаться по прямой, удерживая при этом мотоцикл в равновесии. Управляемая системой более высокого уровня, данная система может быть использована для реализации движения мотоцикла по произвольной траектории, а в дальнейшем - и для построения автономно управляемого мотоцикла.

1. Теоретический анализ движения модели

Задача об устойчивости велосипеда привлекала к себе внимание исследователей, которые рассматривали велосипед как классический пример неголономной механической системы [2, 3]. При исследовании устойчивости прямолинейного движения велосипеда обычно ограничиваются рассмотрением модели с колесами, которые считаются тонкими абсолютно жесткими дисками. В предположении, что вилка переднего колеса вертикальна (нулевой вынос), это рассмотрение приводит к так называемой элементарной теории велосипеда [2].

2. Параметры движения

При исследовании устойчивого движения мотоцикла можно использовать уравнения движения велосипеда, на котором установлен двигатель. При этом будем пренебрегать движениями, связанными с работой двигателя и механизма, передающего крутящий момент от двигателя к заднему колесу. Колеса вначале будем считать тонкими жесткими дисками. В книге [2] приведено 22 интегральных уравнения движения такой механической системы.

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

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

Применительно к задаче удержания равновесия движение мотоцикла описывается всего лишь пятью переменными: двумя координатами и тремя скоростями. Перечислим эти переменные: скорость движения Э, угол наклона мотоцикла Ь, угол поворота руля Т, скорость изменения угла наклона ЬБ = и скорость изменения угла поворота руля ТБ = с1Т/сИ;.

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

3. Управление мотоциклом

Основная задача данной работы - обеспечение равновесного движения мотоцикла. Решением этой задачи является такой алгоритм управления рулем, который, в зависимости от скорости движения мотоцикла, текущего наклона и скорости наклона мотоцикла, будет производить управление рулем («руление») таким образом, чтобы привести мотоцикл в равновесие [4].

Управление равновесием мотоцикла заключается в том, чтобы в зависимости от переменных, описывающих движение мотоцикла (Б, Ь. Т, ЬЭ) обеспечить равновесие мотоцикла. Управляемой переменной в данном случае является скорость поворота руля ТБ.

Цель настоящей работы - построение алгоритма управления равновесием мотоцикла на базе нечеткой логики.

4. Аналогия с маятником

Мотоцикл, который едет по поверхности на двух колесах, представляет собой систему, находящуюся в состоянии неустойчивого равновесия. Управление такой системой во мно-

гом аналогично управлению простейшей системой, находящейся в состоянии неустойчивого равновесия - перевернутым маятником на тележке. Данная система часто рассматривается [5], как типичная задача об управлении системами, находящимися в состоянии неустойчивого равновесия - такими системами, которые при отклонении от равновесного состояния начинают уходить от него с течением времени все дальше.

Рис. 1. Перевернутый маятник

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

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

5. Создание системы управления

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

1. Создание среды для физического моделирования поведения мотоцикла (разработка симулятора и создание модели мотоцикла).

2. Исследование поведения мотоцикла с целью выяснения принципов управления им при удержании равновесия.

3. Создание пробной системы управления равновесием мотоцикла, позволяющей ему удерживать равновесие при движении в широком диапазоне скоростей.

4. Анализ поведения построенной системы управления, выявление недостатков такого управления.

5. Построение системы управления моделью мотоцикла на основе нечеткой логики.

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

Среда моделирования. Графическая модель мотоцикла построена при помощи библиотеки GLScene. Это бесплатный для коммерческого и некоммерческого использования OpenGL-ориентированный графический движок для Delphi с открытым исходным кодом. С его помощью программирование трехмерной графики становится более простым и быстрым. Поддерживаемая физика: ODE, Newton Dynamics.

Вычислительная модель мотоцикла построена при помощи библиотеки для моделирования механики твердых тел ODE v.0.5 (Open Dynamics Engine или Открытый Динамический

Движок). Данная библиотека имеет открытый исходный код и распространяется свободно (почти вся ODE написана на C++). Это бесплатная библиотека промышленного качества, предназначенная для использования в интерактивных симуляторах, а также симуляторах реального времени и хорошо подходит для моделирования шарнирно связанных твердых тел. Например, она хорошо подходит для транспортных средств (у которых колеса соединены с подвеской), существ с ногами и движущихся объектов в виртуальном пространстве. Она быстра, гибка и проста. Встроенная система обнаружения столкновений движка позволяет моделировать взаимодействие тел при их столкновении. В ODE также реализовано сухое трение между телами.

Методы симуляции. Уравнения движения Лагранжа основанные на моделях Trinkle/Stewart и Anitescu/Potra. Используется интегрирование первого порядка.

Модель контактов и трения. В ODE реализовано быстрое приближение модели трения Coloumb.

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

Среда программирования. В качестве среды программирования использована Borland Delphi for Microsoft Windows Version 10.0 [6]. У Delphi существует много преимуществ: хорошая работа компилятора, огромная структура компонентов, понятность кода, визуальность разработки программного обеспечения и т. д. Основная же причина выбора Delphi в качестве среды программирования: GLScene - это объектная надстройка над OpenGL именно для Delphi. А так же повлияло большое количество понятной доступной литературы по работе с GLScene в Delphi в отличие от других графических движков.

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

Этим требованиям удовлетворяет модель, состоящая из рамы; передней вилки, поворачивающейся вокруг вертикальной оси; задней вилки, поворачивающейся вокруг горизонтальной оси (прикреплена «на пружине»); заднего колеса, вращающегося вокруг оси относительно задней вилки; и переднего колеса, вращающегося вокруг оси относительно передней вилки.

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

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

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

7. Исследование системы нечеткой логики для управления мотоциклом

Рассмотрим, каким образом по аналогии с управлением маятником [5] можно построить систему управления равновесием мотоцикла.

Аналогом координаты х маятника будет угол наклона мотоцикла L. Координате X тележки, на которой установлен маятник, соответствует угол поворота руля Т. Данная аналогия не полна, и модели маятника мотоцикла не тождественны, между ними есть заметные различия.

Во-первых, если равновесие маятника достигается при х = X, х = 0, то для равнове-

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

Второе заметное отличие мотоцикла от маятника - это отсутствие инвариантности относительно сдвига координат. Если для маятника можно было записать зависимость управления от разностей (X — хР) и (х — хР) вместо зависимости отдельно от переменных X, х и хР, то для мотоцикла подобную замену произвести не удастся в силу нелинейности системы.

Тем не менее, оказывается возможным построение системы управления равновесием мотоцикла по аналогии с системой управления маятником [5].

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

Основной принцип управления - при отклонении рамы в сторону необходимо руль повернуть в туже сторону для удержания равновесия.

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

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

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

Для лингвистических переменных L, LS, Т это будут термы verynegative, negative, zero, positive, verypositive (очень отрицательно, отрицательно, ноль, положительно, очень положительно соотв.). Графический вид этих переменных (рис. 2) отличаться будет лишь смещением узлов в зависимости от параметров конкретного мотоцикла.

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

Для лингвистической переменной S (рис. 3) выберем термы zero, close, mediumclose, mediumfar, far (ноль, медленно, быстрее, еще быстрее, быстро).

. ---------------------------------------------------------------------------------—....................................................................................................—..............................-----------------------------------------------------

/'\ ' 4

¡л Ч т : ^............:....! >..........г j V-у'? f ..........:....г...>... ....

11 \ I i \ : j/ i : 1 i i L м ' г ..........................

14......\ А: • “I..?-V.....t.....1...:.....;.-Jt--1...г I.........i..i....t......^

I SO 108 150 Ж

Рис. 3. Графический вид термов переменной S

При этом количество правил получается равным 54 = 625 (количество всевозможных комбинаций всех термов всех переменных). В случае, когда наклон рамы, скорость наклона рамы и поворот руля близки к нулю (zero), то скорость не имеет значения, поэтому можем

сократить количество правил на 4. Впоследствии анализ движения модели позволяет сократить количество правил до 605. Нечеткие правила и функции принадлежности составлены в системе FuzzyTECH 5.54 [7].

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

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

ьк = . “in Ыо«)}-

гС{1,2...т}

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

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

Т(Л V В) = min{Т(Л) + Т(В), 1} .

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

У

Гшах х • fj,(x) dx

Jmin________/

ртах / \ 1 j

Jmin M(*) dx

у - результат дефаззификации;

х - переменная, соответствующая выходной лингвистической переменной; ц(х) - функция принадлежности нечеткого множества, соответствующего выходной переменной после этапа аккумуляции; Min и Мах - левая и правая точки интервала носителя нечеткого множества рассматриваемой выходной переменной.

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

IF L=verypositive AND LS=zero AND S=close AND T=verypositive THEN TS=positive]

IF L =zero AND LS=verynegative AND S=mediumclose AND T=verynegative THEN TS=zero; IF L^negative AND LS=positive AND S=zero AND T=negative THEN TS—positive IF L=verynegative AND LS=zero AND S=far AND T=negative THEN TS=zero

При программировании используем модуль обработки в реальном времени FTRUN32.DLL [8] из пакета FuzzyTECH 5.54.

Использование модуля обработки в коде программы на Delphi: ftrOpen (hinstance, 'BIKE.ftr', hftrTraffic);

Передавая входные параметры системы управления, получаем выходные на каждом шаге управления (каждые 5мс).

Лт5е15Ие11\/а1ие (ЬАтТ^Нс, 0, I);

Лг5е15ЬеМ\/а1ие (ЬАтТ^йс, 1, LS);

ftrSetShellValue (hftrTraffic, 2, S);

ftrSetShellValue (hftrTraffic, 3, T);

ftrGetShellValue (hftrTraffic, 4, TS, NoHitFlag);

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

При запуске программы мы видим сам мотоцикл на плоскости (рис. 4). Над ним: графики входных переменных L, LS и Т в градусах, S в километрах в час (приблизительная оценка) и выходной TS в градусах.

Разгон мотоцикла система управления производит плавно от нуля самостоятельно, без вмешательства.

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

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

Если мотоцикл упал, то поднять его не удастся. При этом необходимо выйти из программы и запустить ее снова.

»*** "* femfweni мюш* Т (рчитмдо*«рдо)**

Рис. 4. Снимок экрана программы

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

Рассмотрим движение модели без вмешательства пользователя.

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

Начиная примерно с 30 и до 60 км/ч стабильность системы уменьшается. Нестабильное состояние положения рамы приводит к замедлению набора скорости.

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

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

Заключение

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

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

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

Реализованная здесь модель мотоцикла, как, впрочем, и система управления - это лишь приближения к реальности. При реализации реальной системы управления реальным мотоциклом необходимо будет учесть еще ряд различных особенностей, условий и ограничений. Так, например, здесь предполагалось, что скорость поворота руля можно изменять мгновенно, устанавливая ее равной заданной, но так, чтобы она не превышала максимальную. Это лишь приближение, на самом же деле, для любого реального привода, каков бы он ни был, существует более сложная зависимость его ускорения от скорости, внешнего сопротивления и внутреннего воздействия. Другое предположение - большой коэффициент трения колес, взятый как у очень хорошей резины на очень хорошем асфальте, например, как в кольцевых мотогонках. В реальности следует предполагать, что коэффициент трения может быть разным в зависимости от состояния дороги, и учитывать этот факт при реализации управления. Исключение из рассмотрения особенностей подвески колес, неровностей дороги и некоторых других эффектов также упростило задачу, при этом несколько отдалив ее от реальности.

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

Мотоцикл, управляемый при помощи нечеткой логики [9] - это шаг на пути к созданию систем, обладающих способностью действовать в той или иной степени самостоятельно.

Литература

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

2. Неймарк, Ю.И. Динамика неголономных систем / Ю.И. Неймарк, H.A. Фуфаев. - М.: Наука, 1967. - 520 с.

3. Аничкин, И.М. Применение нейронной сети для управления мотоциклом / И.М. Аничкин // Науч.-техн. вестн. Санкт-Петербург, гос. ун-та информ. технологий, механики и оптики. - 2005. - Т. 23. - С. 162 - 170.

4. Паркс, JI. Полный контроль. Эффективные приемы уличного вождения / Ли Паркс; пер. Сергей Черкасов. - DFF, 2008.

5. Бауэр, П. Краткий курс по Нечеткой Логике и Нечеткому Управлению / П. Бауэр,

С. Новак, Р. Винклер, (http://www.zeiss.net.ru/docs/ai/fuzzy.zip).

6. Матюхин, А. Нечеткая логика с примерами на Delphi (Часть 1) / А. Матюхин. 20.10.2001 (http://www. delphikingdom.com/asp/viewitem. asp?catalogid=477).

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

8. fuzzyTECH Runtime DLL Help

9. Ухоботов, В.И. Введение в теорию нечетких множеств и ее приложения: учеб. пособие / В.И. Ухоботов. - Челябинск, 2005. - 136 с.

Величко Владислав Станиславович, кафедра теории управления и оптимизации, Челябинский государственный университет, 124816@list.ru.

Поступила в редакцию 11 февраля 2011 г.