Оглавление:

Обучение ПИД-регулированию с помощью роботов Lego: 14 шагов
Обучение ПИД-регулированию с помощью роботов Lego: 14 шагов

Видео: Обучение ПИД-регулированию с помощью роботов Lego: 14 шагов

Видео: Обучение ПИД-регулированию с помощью роботов Lego: 14 шагов
Видео: Lego EV3 / Теория П-регулятора. Автоматическое изменение Kp. 2024, Ноябрь
Anonim
Обучение ПИД-регулированию с помощью роботов Lego
Обучение ПИД-регулированию с помощью роботов Lego

Многие молодые энтузиасты роботов интересуются более сложными темами управления, но могут оказаться в тупике из-за расчетов, которые часто требуются для анализа замкнутых систем. В Интернете доступны замечательные ресурсы, которые упрощают создание «пропорционально-интегрально-дифференциального контроллера» (ПИД-контроллера), и одно отличное описание находится здесь:

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

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

В стороне: Спасибо Дж. Слуке, написавшему приведенную выше ссылку, доктору Брюсу Линнеллу, создавшему несколько первых лабораторий Lego на уровне университета ECPI, и доктору Резе Джафари, который предоставил идеи по отображению целей обучения PID Control для EET220 и Курсовая работа Capstone.

Шаг 1: Подготовка лаборатории к приезду студентов

Подготовка к лаборатории перед приездом студентов
Подготовка к лаборатории перед приездом студентов

Расскажите ученикам о вашем тяжелом труде;-)

Инструкторы и ассистенты ОЧЕНЬ заняты подготовкой к этой лабораторной работе! Робот заряжен и собран для этой лаборатории. Если требуется сборка, это может занять до 90 минут для одного или нескольких роботов. Еще больше времени требуется для зарядки аккумуляторов или их кондиционирования с помощью циклов зарядки / разрядки. Подробные инструкции по созданию робота, который мы будем использовать сегодня, см. В учебном комплекте NXT 2.0 или 2.1, в Руководстве по сборке роботов «следуй линии». Но мы будем использовать более сложное программирование … Черная изолента на светлом линолеуме - отличный трек. Это 3 'x 7' с полукруглыми изгибами.

Шаг 2: ознакомьтесь с роботом

Ознакомьтесь с роботом
Ознакомьтесь с роботом

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

1. Отключите робота от зарядного устройства и / или USB-порта вашего ПК. Используйте оранжевую кнопку, чтобы включить робота. Оранжевая, левая и правая кнопки, а также кнопка с серым прямоугольником «назад» позволяют перемещаться по меню. Перейдите в меню «Файлы программного обеспечения» и прокрутите доступные файлы программного обеспечения на роботе. Перечислите имена каждого программного файла в точном их написании, включая заглавные буквы и пробелы:

_

Шаг 3: откалибруйте датчик освещенности

Откалибруйте датчик освещенности
Откалибруйте датчик освещенности

2 Изучите информацию о датчике освещенности и калибровке. Вернитесь в главное меню и выберите «Просмотр». Выберите параметр «Отраженный свет» и порт (он должен быть «Порт 3»), при котором загорится свет и на экране отобразится номер. Убедитесь, что все работает, и запишите некоторую информацию о калибровке.

а. Максимальное чтение с использованием белого листа бумаги: Число: _ Опишите приблизительное расстояние от бумаги: _

б. Максимальное значение чтения на полу из светлого линолеума: _

c. Минимальное показание при наведении на центр черной изоленты: _

Шаг 4: Проверка калибровки двигателя

Калибровка тестового двигателя
Калибровка тестового двигателя

3 Изучите моторы колес (левый и правый), а также информацию о калибровке. Вернитесь в главное меню и выберите «Motor Rotations». Выберите порт (для двух двигателей это должен быть «Port B» или «Port C»). Посмотрите, сможете ли вы проверить калибровку этого показания, повернув каждый двигатель на фиксированное количество оборотов, просматривая показания. Вы выполните один и тот же калибровочный тест для обоих двигателей, используя экран калибровки «View» à «Motor Degrees».

Двигатель на порте B

  • Сколько раз вы повернули колесо _
  • Отображаемое значение «Число оборотов двигателя» _
  • Расстояние в градусах, колесо было повернуто _
  • Отображаемое значение «Motor Degrees» _

Двигатель на порте C

  • Сколько раз вы повернули колесо _
  • Отображаемое значение «Число оборотов двигателя» _
  • Расстояние в градусах, колесо было повернуто _
  • Отображаемое значение «Motor Degrees» _

Соответствуют ли отображаемые значения вашим ожиданиям? Пожалуйста, объясни. _

Шаг 5: Запустите предоставленный двухпозиционный контроллер

Запустите предоставленный двухпозиционный контроллер
Запустите предоставленный двухпозиционный контроллер

Контроллер «Вкл-Выкл» (иногда называемый «Bang-Bang») имеет только две опции: включение и выключение. Это похоже на управление термостатом в вашем доме. При установке на выбранную температуру термостат будет обогревать птичник, если будет слишком холодно, и охладить, если слишком жарко. Выбранная температура называется «заданной точкой» и разницей между текущей температурой в птичнике и заданной точкой. называется «Ошибка». Таким образом, вы могли бы сказать, что если ошибка положительная, включите переменный ток, в противном случае включите нагрев.

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

Вы заметите, что ваш робот, возможно, уже загружен рядом программ (или вы можете использовать прикрепленный файл «01 line.rbt», встроенный здесь), хранящийся в нем с такими именами, как «1 строка» и «2 строки», а также там может быть дополнительная буква после номера программы, например «3b строка». Вам нужно будет выполнить программу с цифрой «1» в ее названии, а затем поместить робота на ленту, указав сеньор на черную линию. Постарайтесь держаться подальше от других роботов, уже находящихся на трассе, чтобы вы могли рассчитывать время своего робота, не прерывая столкновения с другими роботами.

4 Измерьте следующие гонки на время:

а. Время пройти одну прямую часть трассы: _

б. Опишите движение робота по прямой гусенице: _

c. Время прохождения одного поворота трассы: _

d. Опишите движение робота по криволинейной гусенице: _

е. Пора один раз полностью обойти трассу: _

Шаг 6. Откройте программное обеспечение двухпозиционного контроллера "01 Line"

Открыть
Открыть
Открыть
Открыть
Открыть
Открыть

Вы откроете программное обеспечение «LEGO MINDSTORMS NXT 2.0» (не программное обеспечение Edu 2.1), загрузите соответствующую программу под названием «01 line.rbt», изучите и измените программное обеспечение, следуя приведенным ниже инструкциям:

Откройте программу «LEGO MINDSTORMS NXT 2.0» (не Edu 2.1). Ваш инструктор скажет вам, где хранятся файлы на вашем компьютере, и из этого места вы откроете программу «1 строка». Просто выберите «Файл», затем «Открыть» и выберите программу «1 строка», которую нужно открыть.

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

Шаг 7. Знакомство с программным обеспечением двухпозиционного контроллера "01 Line"

Понимание
Понимание

В программе «1 линия» используется метод управления «On-Off». В этом случае можно выбрать «Повернуть налево» или «Повернуть направо». На графике представлено описание элементов программы:

Шаг 8: Редактирование программного обеспечения контроллера включения-выключения "01 Line"

Редактирование
Редактирование

Измените заданное значение и сравните результаты.

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

5 Рассчитайте ХОРОШЕЕ заданное значение (среднее минимальное и максимальное): _

6 Выберите значение ПЛОХОЙ установочной пинты (число, очень близкое к минимальному или максимальному): _

Измените заданное значение на одно из этих значений, используя значок стрелки, щелкнув поле вычисления ошибки и изменив вычитаемое число (см. Изображение ниже). Теперь подключите робота к ПК с помощью USB-кабеля, убедитесь, что робот включен, и загрузите новую версию программы «1 линия» в робота. Вы увидите, сколько времени потребуется роботу, чтобы обойти трассу по часовой стрелке, один раз с ХОРОШОЙ уставкой, а второй раз с ПЛОХОЙ уставкой.

7 Завершите испытания на время с ХОРОШОЙ и ПЛОХОЙ уставкой

а. Пора один раз полностью обойти трассу (ХОРОШАЯ уставка): _

б. Пора один раз полностью обойти трассу (ПЛОХОЕ заданное значение): _

Ваши наблюдения / выводы? _

Шаг 9: Понимание включения-выключения «02 Line» с помощью программного обеспечения контроллера мертвой зоны

Понимание
Понимание

Если кондиционер и отопление в вашем доме продолжали включаться и выключаться весь день, это определенно могло разрушить вашу систему HVAC (или, по крайней мере, сократить ее срок службы). Большинство термостатов изготавливаются со встроенной «мертвой зоной». Например, если ваша уставка составляет 70 градусов по Фаренгейту, термостат может не включать кондиционер до тех пор, пока он не достигнет 72 градусов, а также нагрев, пока температура не упадет до 68 градусов. Если мертвая зона станет слишком широкой, в доме может возникнуть неудобство.

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

Теперь изучите файл программного обеспечения «02 строка», как показано на рисунке и содержится в прикрепленном файле.

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

Программа «02 линия» сначала вычисляет вышеуказанное, вычитая заданное значение из измерения освещенности, а затем выполняя сравнения, как указано выше. Изучите программу на ПК и запишите полученные значения.

Каково текущее (исходное) значение уставки «2-строчной» программы? _

Какое текущее (исходное) значение «2-строчной» программы - «Большая» положительная ошибка? _

Каково текущее (исходное) значение «2-строчной» программы «Большая» отрицательная ошибка? _

Какой диапазон ошибок зоны нечувствительности заставит робота двигаться прямо? С ДО _

Проведите три (3) гонки на время с разными значениями указанной выше «Большой» ошибки. Текущие настройки «2 линии», а также две другие настройки, которые вы рассчитываете. Вы уже выбрали ХОРОШУЮ уставку для своего робота. Теперь вы выберете два разных диапазона мертвой зоны и запишите время, которое требуется роботу, чтобы сделать один круг по часовой стрелке:

Исходные настройки для строки 02 _

Зона нечувствительности от +4 до -4 _

Зона нечувствительности от +12 до -12 _

Шаг 10: Знакомство с программным обеспечением пропорционального регулятора "03 Line"

Понимание
Понимание

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

Давайте посмотрим на пропорциональное управление с программой «03 линия».

Программа для «03 line» более сложна, потому что она не только устанавливает метод «пропорционального» управления, но также содержит все программное обеспечение для пропорционально-интегрального, пропорционально-дифференциального и пропорционально-интегрально-дифференциального (ПИД) управления.. Когда вы загружаете программное обеспечение, оно, вероятно, будет слишком большим, чтобы поместиться на экране сразу, но на самом деле оно состоит из трех частей, как показано на прилагаемом рисунке.

A - Математика для вычисления ошибки и «исчисление» для нахождения интеграла и производной ошибки по времени.

B - Математика для расчета скорости левого двигателя на основе настроек ПИД-регулирования Kp, Ki и Kd.

C - Математика для проверки пределов скорости двигателя и отправки правильных скоростей двигателя левому и правому двигателям.

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

Шаг 11: Редактирование программы 03 Line (пропорциональное управление)

Редактирование программы 03 Line (пропорциональное управление)
Редактирование программы 03 Line (пропорциональное управление)

В средней части (раздел B в предыдущем описании) вы заметите, что в программе «03 line» настройки Ki и Kd оба равны 0.

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

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

13 Какую уставку использует программа «03 линия»? (вычитается после настройки света для чтения в петле A) _

14 Какое значение Kp в текущей программе «03 строки»? _

Испытания на время для пропорционального регулятора (программа «3 строки»)

Вы будете использовать исходные настройки для программы «03 line», сохраненные в памяти вашего робота, для проведения гонок на время, а также будете использовать две другие модификации программы «03 line» для всего трех измерений на время. Изменения, которые вы должны внести, включают

DRIFTY - определение значения Kp, которое заставляет робота дрейфовать очень медленно и, возможно, терять линию из виду (но, надеюсь, нет). Попробуйте разные значения Kp от 0,5 до 2,5 (или другое значение), пока не получите такое, при котором робот дрейфует, но остается на линии.

ДЖЕРКИ - определение значения Kp, которое заставляет робота дергаться вперед и назад, что очень похоже на тип движения «включено-выключено». Попробуйте значение Kp где-то между 1,5 и 3,5 (или другое значение), пока не получите такое, при котором робот просто начинает показывать движение вперед и назад, но не слишком резко. Это также известно как «критическое» значение Kp.

Испытания на время для всего поворота по часовой стрелке вокруг трека необходимы только с исходными значениями «3 линии» и двумя новыми наборами значений (DRIFTY и JERKY), которые вы обнаруживаете, когда робот следует только по короткому отрезку пути. Не забывайте загружать изменения в свой робот каждый раз!

15 Запишите значения пропорционального управления и испытания на время для «3-строчной» программы (не забудьте загрузить изменения в робот!) Для каждого из этих трех значений Kp (исходное значение строки 03 и два значения, которые вы определяете методом проб и ошибок. быть СУХОЙ и ДЕРЖАТЕЛЬНОЙ).

Шаг 12: Расширенные ПИД-регуляторы

Усовершенствованные ПИД-регуляторы
Усовершенствованные ПИД-регуляторы
Усовершенствованные ПИД-регуляторы
Усовершенствованные ПИД-регуляторы

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

Числа, которые вам понадобятся из предыдущих экспериментов

16 Максимальное показание датчика освещенности (с шага 2) _

17 Минимальное показание датчика освещенности (с шага 5) _

18 ХОРОШАЯ настройка заданного значения (среднее из вышеперечисленных) _

19 Настройка DRIFTY для Kp (из шага 15) _

20 РЕЖИМ (критическая) настройка для Kp (из шага 15) _

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

Возможно, вы узнали о пропорционально-интегральном дифференциальном (ПИД-регуляторе) в рамках курса «Промышленное управление», и хороший краткий обзор можно найти в Интернете в Википедии (https://en.wikipedia.org/wiki/PID_controller).

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

При использовании пропорционального регулятора скорость левого двигателя была пропорциональна ошибке. Конкретно:

Ошибка = легкое считывание - заданное значение

На этом графике задано значение 50.

Позже, чтобы найти скорость левого двигателя, мы умножаем ошибку на константу дозирования «Kp», а именно:

L Двигатель = (Kp * Ошибка) + 35

На этом графике Kp установлено равным 1,5, а добавление 35 происходит в другой части программы. Значение 35 добавляется для преобразования числа, которое находится где-то в диапазоне от -40 до +40, в число, которое находится где-то между 10 и 60 (разумные скорости двигателя).

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

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

L Двигатель = (Kp * Ошибка) + (Ki * Интеграл) + (Kd * Производная) + 35

Шаг 13: поиск лучших параметров PID

Поиск лучших параметров ПИД-регулятора
Поиск лучших параметров ПИД-регулятора
Поиск лучших параметров ПИД-регулятора
Поиск лучших параметров ПИД-регулятора
Поиск лучших параметров ПИД-регулятора
Поиск лучших параметров ПИД-регулятора

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

  • Экспериментаторы (вы) хорошо понимаете, как работает машина.
  • Нет опасности травмирования, если контроллер сойдет с ума, а также нет опасности повредить робота из-за неправильных настроек контроллера.
  • Датчик освещенности - такое неаккуратное чувствительное устройство, и здесь только один датчик освещенности, поэтому мы можем только надеяться получить незначительно хороший конечный результат. Поэтому для наших экспериментов подойдет «максимальное усилие».

Во-первых, мы уже использовали «линию 03», чтобы выбрать лучший Kp (ХОРОШАЯ уставка и значения JERKY Kp, указанные в шагах 18 и 20 выше). См. Первый рисунок для получения инструкций о том, как мы нашли значение JERKY для Kp.

Используйте программное обеспечение «линия 04» для определения Ki. Сначала мы изменим «4 строки», чтобы они имели значения, записанные в пунктах 18 и 20 выше. Затем мы будем медленно увеличивать Ki, пока не получим значение, которое действительно очень быстро перемещает нас к заданному значению. Инструкции по выбору значения Ki см. На втором рисунке.

21 FASTEST Значение Ki, которое устанавливается на заданном значении быстрее всего (даже с некоторым превышением) _

Используйте программу «05 line» для определения Kd. Сначала измените «5-ю строку» со значениями из шагов 18, 20 и 21, затем увеличивайте Kd до тех пор, пока вы не получите окончательного рабочего робота, который быстро достигнет заданного значения и с очень небольшим перерегулированием, если таковое имеется. На третьем рисунке показаны инструкции по выбору Kd.

22 ОПТИМАЛЬНОЕ значение Kd _

23 СКОЛЬКО ДОЛГОТОВ ДОЛЖЕН ВАШ РОБОТ, ЧТОБЫ ОБРАТИТЬСЯ ПО ТРАССЕ ??? _

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

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

Я рекомендую выделить часть ПИД-регулирования (как минимум, программы «04 линия» и «05 линия») на отдельный день из-за задействованных концепций.

Вот последовательность видео, показывающая прогрессию элементов управления (от «01 строка» до «05 строка») с использованием значений, которые я выбрал, - но каждый студент придумал несколько разные значения, чего и следовало ожидать!

ПОМНИТЕ: Одна из главных причин, по которой очень хорошо подготовленные команды роботов плохо справляются с соревнованиями, заключается в том, что они не проводят калибровку в том месте, где будет проходить мероприятие. Освещение и небольшие изменения положения датчиков из-за толчков могут сильно повлиять на значения параметров!

  • 01 линия (Вкл.-Выкл.) ПИД-регулирование с помощью роботов Lego -
  • 02 линия (включение-выключение с мертвой зоной) ПИД-регулирование с помощью роботов Lego -
  • 03 линия (пропорциональное) ПИД-регулирование с помощью роботов Lego -
  • 04 линия (пропорционально-интегральная) ПИД-регулирование с помощью роботов Lego -
  • 05 линия (пропорционально-интегрально-производная) ПИД-регулирование с помощью роботов Lego -

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