Перевёрнутый маятник и балансирующие роботы
Классика теории управления: удержать палку вертикально — перевёрнутый маятник.
Перевёрнутый маятник — неустойчивая система (палка на тележке), которую нужно удержать вертикально управлением. Это эталонная задача, на которой проверяют регуляторы.
Почему именно маятник
Перевёрнутый маятник (палка, балансирующая на подвижной опоре) — «здравствуй, мир» теории управления. Он принципиально неустойчив: без управления палка падает. Чтобы удержать её, регулятор должен непрерывно подталкивать опору в нужную сторону — точно как мы балансируем шваброй на ладони. Эта же физика лежит в основе балансирующих роботов (сигвей, гироскутер), стабилизации ракеты на старте и удержания равновесия шагающими роботами. Освоив маятник, вы понимаете целый класс задач.
Как работает под капотом: стабилизируем маятник
Упростим: управляем углом палки theta, воздействуя ускорением опоры. Без управления малое отклонение растёт (палка падает). ПД-регулятор по углу и угловой скорости удержит её вертикально. Это обратная связь по состоянию [угол, скорость угла] в чистом виде.
import math
g, L, dt = 9.81, 1.0, 0.02
theta, omega = 0.2, 0.0 # стартовое отклонение 0.2 рад (~11 град)
Kp, Kd = 25.0, 6.0 # ПД-регулятор удержания
print(" t угол(рад) упр.u")
for step in range(0, 151):
# ПД-регулятор: возвращает палку к вертикали
u = -(Kp*theta + Kd*omega)
# упрощённая динамика перевёрнутого маятника: ускорение от гравитации + управление
alpha = (g/L)*math.sin(theta) + u/L
omega += alpha*dt
theta += omega*dt
if step % 15 == 0:
print(f"{step*dt:5.2f} {theta:8.4f} {u:7.2f}")
print("без управления палка упала бы; ПД удержал вертикаль (угол -> 0)")Вывод:
t угол(рад) упр.u 0.00 0.1988 -5.00 0.30 0.1137 -0.97 0.60 0.0355 0.18 0.90 0.0035 0.25 1.20 -0.0032 0.11 1.50 -0.0024 0.03 1.80 -0.0009 -0.00 2.10 -0.0001 -0.00 2.40 0.0000 -0.00 2.70 0.0000 -0.00 3.00 0.0000 -0.00 без управления палка упала бы; ПД удержал вертикаль (угол -> 0)
Регулятор поймал падающую палку и вернул её к вертикали (theta → 0). Уберите управление (u = 0) — и угол начнёт неограниченно расти, палка упадёт. Это наглядная демонстрация мощи обратной связи: она стабилизирует то, что физически неустойчиво. Реальные балансирующие роботы используют ровно такой контур, только с настоящей моделью и фильтром Калмана для оценки угла по гироскопу и акселерометру.
Связь с другими применениями
Маятник — это шаблон для целого семейства задач. Квадрокоптер: четыре мотора, регулятор по углам крена/тангажа/рыскания удерживает аппарат в воздухе (та же стабилизация неустойчивого объекта). Ракета: отклонение сопла удерживает курс на старте. Сигвей: моторы колёс балансируют корпус. Везде — обратная связь по углу и угловой скорости, часто с упреждением и фильтром Калмана.
Раскачка и swing-up
Наша задача удерживала маятник, уже стоящий почти вертикально. Но есть красивая родственная задача — swing-up: маятник висит внизу, и его нужно раскачать и поставить вертикально, а потом поймать и удержать. Удержание линейно (около верхней точки система почти линейна, работает ПД или LQR), а раскачка существенно нелинейна — её делают, накачивая в систему энергию через резонансные толчки, как ребёнок раскачивает качели. Это показывает важный приём реальных систем: переключение стратегий. Один алгоритм раскачивает (энергетический, нелинейный), другой ловит и держит (линейный регулятор), а супервизор переключает их в нужный момент. Гибридное управление, сочетающее разные регуляторы для разных режимов, — обычное дело в робототехнике, от ходьбы роботов до манёвров дронов.
Частые ошибки
- Только Kp без Kd. Чистый П удержит маятник плохо: он раскачивается. Нужна D-составляющая (по угловой скорости) для демпфирования.
- Слишком редкий опрос. Неустойчивая система требует высокой частоты регулятора; большой Ts роняет палку.
- Игнорировать насыщение опоры. Реальная опора ограничена по ускорению и ходу — это надо закладывать.
Итоги
- Перевёрнутый маятник — эталонная неустойчивая система; обратная связь стабилизирует то, что само падает.
- Удержание требует ПД по углу и угловой скорости (демпфирование критично).
- Та же схема лежит в основе балансирующих роботов, квадрокоптеров и стабилизации ракет.