O controlador mais simples é um controlador de feedback de estado linear. Existem essencialmente 4 estados diferentes para os quais você precisa obter um ganho. São ângulo de inclinação, taxa de inclinação, velocidade e posição.
O LQR (regulador quadrático linear) é um método para projetar esses ganhos (após obter uma representação linearizada do espaço de estados do seu sistema). Se você não possui uma representação do espaço de estados (provavelmente não possui), pode obter equações de movimento e medir os parâmetros. Se você não possui uma representação do espaço de estado, basta ajustar os ganhos manualmente (sem LQR ou outros métodos, como posicionamento de pólos ).
O ajuste ganha manualmente:
Supondo que o ângulo de inclinação, a posição / velocidade e os torques das rodas sejam todos direcionados para a frente (se positivo), você deseja um ganho positivo no ângulo e na taxa de inclinação, bem como um ganho positivo na posição e na velocidade.
Comece com um ganho no ângulo de inclinação e na taxa de inclinação. Isso fará com que ele se equilibre inicialmente. Uma vez equilibrado, você pode controlar a posição e a velocidade adicionando um ganho a eles. Se estiver instável, aumente o ganho na taxa de inclinação (o que ajuda a amortecer o sistema).
O controle de posição / velocidade controlará ambos os estados para zero. Para controlar para algum outro valor, você só precisa de um controlador de rastreamento de referência, substituindo os estados pelos erros antes de alimentá-lo no seu controlador (por exemplo, velocidade atual - referência de velocidade).
O controle de guinada pode ser realizado de forma independente (com as diferenças nos torques das rodas adicionados ao controlador principal de balanceamento / velocidade / posição).