Самый простой контроллер - это контроллер с обратной связью по линейному состоянию. По сути, есть 4 различных состояния, для которых вам нужно получить. Это угол наклона, скорость наклона, скорость и положение.
LQR (линейный квадратичный регулятор) - это метод расчета этих коэффициентов усиления (после получения линеаризованного представления вашей системы в пространстве состояний). Если у вас нет представления пространства состояний (возможно, у вас его нет), вы можете получить уравнения движения и измерить параметры. Если у вас нет представления пространства состояний, вам следует просто настроить усиление вручную (без LQR или других методов, таких как размещение полюсов ).
Настройка усиления вручную:
Предполагая, что угол наклона, положение / скорость и крутящий момент колеса все направлены вперед (если они положительные), вы хотите получить положительный выигрыш от угла наклона и скорости наклона, а также положительный выигрыш от положения и скорости.
Начните с усиления по углу наклона и скорости наклона. Это позволит получить баланс на начальном этапе. Как только он остается сбалансированным, вы можете контролировать положение и скорость, добавляя к ним усиление. Если оно нестабильно, увеличьте коэффициент усиления наклона (что помогает демпфировать систему).
Регулятор положения / скорости будет контролировать оба состояния до нуля. Для управления каким-либо другим значением вам просто необходим контроллер отслеживания ссылок, заменяя состояния их ошибками перед подачей его в ваш контроллер (например, текущая скорость - задание скорости).
Регулирование рыскания может быть выполнено независимо (с учетом разницы в крутящих моментах колес, добавленной к основному контроллеру баланса / скорости / положения).