Оглавление:

Самобалансирующийся робот с использованием алгоритма PID (STM MC): 9 шагов
Самобалансирующийся робот с использованием алгоритма PID (STM MC): 9 шагов

Видео: Самобалансирующийся робот с использованием алгоритма PID (STM MC): 9 шагов

Видео: Самобалансирующийся робот с использованием алгоритма PID (STM MC): 9 шагов
Видео: Самобалансирующий робот EduMip на BeagleBone Blue для изучения ROS. Алексей Бурков. Митап 07.07.18 2024, Июль
Anonim
Самобалансирующийся робот с использованием алгоритма PID (STM MC)
Самобалансирующийся робот с использованием алгоритма PID (STM MC)

В последнее время была проделана большая работа по самобалансировке объектов. Концепция самобалансировки началась с уравновешивания перевернутого маятника. Эта концепция распространилась и на дизайн самолетов. В этом проекте мы разработали небольшую модель самобалансирующегося робота, используя алгоритм PID (пропорциональный, интегральный, производный). С тех пор этот метод является новым лицом систем управления производственными процессами. В этом отчете рассматриваются методы самобалансировки объектов. Этот проект проводился в течение семестра, чтобы понять взаимосвязь PID с эффективностью различных производственных процессов. Здесь мы сосредоточимся только на кратком обзоре эффективности и применения ПИД-регулирования. Этот документ был разработан путем предоставления краткого введения в системы управления и связанной с ними терминологии, а также мотивации для проекта. Были проведены эксперименты и наблюдения, описаны достоинства и недостатки с указанием будущих улучшений. Модель самобалансирующегося робота была разработана, чтобы понять эффективность ПИД-регулирования в мире систем управления. Путем тщательных испытаний и экспериментов были обнаружены достоинства и недостатки системы ПИД-регулирования. Было обнаружено, что, несмотря на многие преимущества ПИД-регулирования по сравнению с прошлыми методами, эта система все же требует множества улучшений. Надеемся, что читатель получит хорошее представление о важности самобалансировки, эффективности и недостатках ПИД-регулирования.

Шаг 1. Введение

С появлением компьютеров и индустриализации процессов на протяжении всей истории человечества всегда проводились исследования по разработке способов усовершенствования процессов и, что более важно, управления ими с использованием машин автономно. Цель состоит в том, чтобы уменьшить участие человека в этих процессах, тем самым уменьшив количество ошибок в этих процессах. Таким образом, была разработана область «Разработка систем управления». Проектирование систем управления можно определить как использование различных методов для управления работой процесса или поддержания постоянной и предпочтительной среды, будь то ручное или автоматическое.

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

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

Базовая система управления

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

Шаг 2: Система управления на основе ПИД-регулятора

Система управления на основе ПИД-регулирования
Система управления на основе ПИД-регулирования
Система управления на основе ПИД-регулирования
Система управления на основе ПИД-регулирования

Алгоритм PID - это эффективный метод проектирования системы управления.

Определение

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

U (t) = Kp ∗ e (t) + Kd ∗ d / dt (e (t)) + Ki ∗ интеграл (e (t)) (1.1)

Краткое объяснение

Как видно из приведенного выше уравнения, интеграл и производная сигналов ошибки вычисляются, умножаются на их соответствующие константы и складываются вместе с константой Kp, умноженной на e (t). Затем выходной сигнал подается на исполнительный механизм, который запускает систему. Теперь давайте посмотрим на каждую часть функции по очереди. Эта функция напрямую влияет на время нарастания, время спада, пиковый выход, время установления и ошибку установившегося состояния.

• Пропорциональная часть: пропорциональная часть уменьшает время нарастания и уменьшает ошибку установившегося состояния. Это означает, что системе потребуется меньше времени, чтобы достичь своего пикового значения, и когда она достигнет своего устойчивого состояния, ошибка установившегося состояния будет низкой. Однако это увеличивает выбросы пиков.

• Производная часть: производная часть сокращает перерегулирование и время установления. Это означает, что переходное состояние системы будет более затухающим. Кроме того, система выйдет на устойчивое состояние за меньшее время. Однако это не влияет на время нарастания или ошибку установившегося состояния.

• Составная часть: интегральная часть сокращает время нарастания и полностью устраняет ошибку установившегося состояния. Однако это увеличивает пиковые выбросы и время установления.

• Настройка: хорошая система управления будет иметь малое время нарастания, время установления, выбросы пиковых значений и ошибку установившегося состояния. Следовательно, необходимо точно настроить Kp, Kd, Ki, чтобы отрегулировать вклад вышеперечисленных факторов, чтобы получить хорошую систему управления.

На прилагаемом рисунке показан эффект изменения различных параметров в алгоритме PID.

Шаг 3: самобалансирующийся робот

Самобалансирующийся робот
Самобалансирующийся робот

Самобалансирующийся робот - это многослойный двухколесный робот.

Робот будет пытаться уравновесить себя при приложении любой неравной силы (сил). Он уравновесит себя за счет приложения силы, противодействующей равнодействующей сил, действующих на робота.

Методы самобалансировки

Существует четыре метода самобалансировки роботов. Это следующие:

Самостоятельная балансировка с использованием двух ИК-датчиков наклона

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

Самостоятельная балансировка с помощью акселерометра

Акселерометр дает нам ускорение тела по 3 осям. Ускорение, ориентированное по оси y (вверх) и оси x (вперед), дает нам меру для вычисления направления силы тяжести и, следовательно, вычисления угла наклона. Угол рассчитывается следующим образом:

θ = arctg (Ay / Ax) (1,2)

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

Самостоятельная балансировка с помощью гироскопа

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

θp (i) = θp (i − 1) + 1/6 (vali − 3 + 2vali − 2 + 2vali − 1 + vali) (1.3)

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

Самостоятельная балансировка с использованием акселерометра и гироскопа

Как уже говорилось выше, использование только акселерометра или гироскопа не даст нам правильного угла наклона. Для этого используются как акселерометр, так и гироскоп. Оба они встроены в MPU6050. В этом случае мы получаем данные от них обоих, а затем объединяем их с помощью фильтра Калмана или дополнительного фильтра.

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

• Дополнительный фильтр: этот алгоритм в первую очередь использует данные, полученные от гироскопа, и интегрирует их с течением времени, чтобы получить угол наклона. Он также использует небольшую часть показаний акселерометра. Дополнительный фильтр, по сути, сводит к минимуму высокочастотный шум акселерометра и низкочастотный шум гироскопа, а затем объединяет их, чтобы получить наиболее точный угол наклона.

Шаг 4: Дизайн робота

Дизайн робота
Дизайн робота

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

Реализация системы:

Система представляет собой самобалансирующийся робот. Он реализован с помощью ПИД-регулятора, который является пропорционально-интегрально-производным регулятором. Мы балансируем робота, вращая его колеса в направлении падения. При этом мы стараемся удерживать центр тяжести робота выше точки поворота. Чтобы вести колеса в направлении падения, мы должны знать, куда падает робот и с какой скоростью он падает. Эти данные получены с помощью MPU6050, у которого есть акселерометр и гироскоп. MPU6050 измеряет угол наклона и передает свои данные на микроконтроллер. MPU6050 связан с платой STM через I2C. В I2C один провод для часов, который называется SCL. Другой - для передачи данных - SDA. В этом случае используется связь «главный-подчиненный». Начальный и конечный адреса указываются так, чтобы знать, откуда данные начинаются и где заканчиваются. Здесь мы реализовали дополнительный фильтр для MPU6050, который представляет собой математический фильтр для объединения выходных сигналов акселерометра и гироскопа. После получения данных от MPU6050 микроконтроллер выполнит вычисления, чтобы узнать, куда он падает. Основываясь на расчетах, микроконтроллер STM будет отдавать команды водителю двигателя, чтобы направить его в сторону падения, что уравновесит робота.

Шаг 5: Компоненты проекта

Компоненты проекта
Компоненты проекта
Компоненты проекта
Компоненты проекта
Компоненты проекта
Компоненты проекта

В проекте самобалансирующегося робота использовались следующие компоненты:

STM32F407

Микроконтроллер, разработанный ST Microelectronics. Он работает на архитектуре ARM Cortex-M.

Драйвер двигателя L298N

Эта ИС используется для запуска двигателя. Он имеет два внешних входа. Один от микроконтроллера, который подает ему сигнал ШИМ. Регулируя ширину импульса, можно регулировать скорость двигателя. Его второй вход - это источник напряжения, необходимый для привода двигателя, в нашем случае это аккумулятор 12 В.

Двигатель постоянного тока

Двигатель постоянного тока работает от источника постоянного тока. В этом эксперименте двигатель постоянного тока работает с использованием оптопар, подключенных к драйверу двигателя. Для привода двигателя мы использовали Motor Drive L298N.

MPU6050

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

MPU6050 имеет 3-осевой акселерометр и 3-осевой гироскоп. Акселерометр измеряет ускорение по трем осям, а гироскоп измеряет угловую скорость по трем осям. Чтобы объединить выходные данные, мы должны отфильтровать шумы обоих. Чтобы отфильтровать шумы, у нас есть фильтр Кальмана и дополнительный фильтр. В нашем проекте мы внедрили дополнительный фильтр.

Оптопара 4N35

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

Шаг 6: конструкция робота

Структура робота объясняется следующим образом:

Физическая структура

Самобалансирующийся робот состоит из двух слоев прозрачного пластикового стекла. Детали двух слоев приведены ниже:

Первый слой

В нижней части первого слоя мы разместили ячейку для питания платы STM. Также два двигателя по 4 В каждый были размещены с каждой стороны с подключенными шинами для движения робота. В верхней части первого слоя были размещены две батареи по 4 вольта каждая (всего 8 вольт) и микросхема драйвера двигателя (L298N) для работы двигателей.

Второй слой

На верхнем уровне робота мы разместили плату STM на плате Perf Board. На верхний слой кладется еще одна перфокарта из 4-х оптронов. Гироскоп также размещается на верхнем ярусе робота с нижней стороны. Оба компонента размещены в средней части так, чтобы центр тяжести находился как можно ниже.

Центр тяжести робота

Центр тяжести поддерживается как можно ниже. Для этого мы разместили тяжелые батареи на нижнем слое, а легкие компоненты, такие как плата STM и оптопары, на верхнем слое.

Шаг 7: Код

Код был скомпилирован на Atollic TrueStudio. Студия STM использовалась для отладки.

Шаг 8: Заключение

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

Общий обзор

Во время экспериментов скорость двигателя успешно контролировалась с помощью алгоритма PID. Однако кривая - это не совсем гладкая прямая линия. На то есть много причин:

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

• Двигатель не вращается плавно при низком напряжении или ШИМ. Он обеспечивает рывки, которые могут привести к подаче в систему неверных значений.

• Из-за колебаний датчик может пропускать некоторые щели, обеспечивающие более высокие значения. • Другой важной причиной ошибок может быть тактовая частота ядра микроконтроллера STM. Эта модель микроконтроллера STM обеспечивает частоту ядра 168 МГц. Несмотря на то, что в этом проекте рассматривалась эта проблема, существует общее мнение об этой модели, что она не обеспечивает такую высокую частоту.

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

Эффективность

Здесь мы обсуждаем эффективность ПИД-регулятора, которую мы наблюдали во время экспериментов.

Простая реализация

Мы видели в разделе экспериментов и наблюдений, что ПИД-регулятор очень легко реализовать. Требуются только три параметра или константы, которые должны быть установлены, чтобы иметь систему управления скоростью.

Непревзойденная эффективность для линейных систем

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

Ограничения

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

Выбор констант

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

Константы не всегда постоянны

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

Нелинейный

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

Требуется начальный толчок

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

Шаг 9: Особая благодарность

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

Скоро выложу ссылку на видео.

Надеюсь, вы найдете это поучительное дело интересным.

Это Тахир Уль Хак из UET. Ваше здоровье !!!

Рекомендуемые: