Quadricóptero MIMO — Controlador Neural-LQR com Animação 3D em Tempo Real
Arquivos: examples/advanced/06_quadcopter_mimo/
O que este exemplo demonstra
Uma simulação em tempo real completa de um quadricóptero com 12 estados controlado por um Neural-LQR informado pela física — visualizado simultaneamente em uma cena 3D com PyVista e uma janela de telemetria matplotlib ao vivo. Antes da simulação começar, uma GUI de configuração em tkinter permite escolher a trajetória de referência, ajustar seus parâmetros e definir a duração da simulação.
| Conceito | Detalhe |
|---|---|
| Modelagem LTI MIMO | Modelo hover linearizado com 12 estados, construído com synapsys.api.ss() |
| LQR MIMO | synapsys.algorithms.lqr() em uma planta 12 estados / 4 entradas |
| Neural-LQR residual | δu = −K·e + MLP(e) — resíduo zerado na inicialização → começa no LQR ótimo |
| GUI de configuração | Dialog tkinter: tempo de simulação, altitude, trajetória de referência e seus parâmetros |
| PyVista 3D | Animação da pose do drone + rastro de trajetória a 50 Hz |
| Telemetria matplotlib | Rastreamento de posição, ângulos de Euler, entradas de controle — ao vivo a 10 Hz |
Modelo físico — hover linearizado
Um quadricóptero possui dinâmica altamente não-linear, mas na vizinhança do hover (velocidade zero, atitude nivelada) uma expansão de Taylor de primeira ordem fornece um modelo LTI útil válido para pequenas perturbações (|φ|, |θ| ≤ 15°).
Vetores de estado e entrada
onde são rolagem, arfagem e guinada; são as taxas angulares no corpo; e representa desvios do equilíbrio hover (em hover ).
Matrizes A e B linearizadas
A equação de estado no hover é:
Os termos de acoplamento gravitacional são (aceleração frontal pela arfagem ) e (aceleração lateral pela rolagem