Maestro del control
Visión general
Sección titulada «Visión general»Los algoritmos de control avanzados son el núcleo de la optimización del rendimiento del drone. En este proyecto aprenderás a implementar los algoritmos de control LQR y MPC para mejorar la estabilidad y la velocidad de respuesta del drone.
Lo que aprenderás
Sección titulada «Lo que aprenderás»- Principios de LQR (Regulador Cuadrático Lineal)
- Principios de MPC (Control Predictivo por Modelo)
- Modelado e identificación de sistemas
- Diseño e implementación de controladores
Materiales necesarios
Sección titulada «Materiales necesarios»| Artículo | Cantidad | Descripción |
|---|---|---|
| Drone ya ensamblado | 1 | - |
| Ordenador | 1 | Con entorno VS Code + ESP-IDF |
| Cable de datos USB | 1 | Para programar |
| MATLAB o Python | 1 | Para diseño y simulación de algoritmos |
Paso 1: Conocer los algoritmos de control avanzados
Sección titulada «Paso 1: Conocer los algoritmos de control avanzados»LQR (Regulador Cuadrático Lineal)
Sección titulada «LQR (Regulador Cuadrático Lineal)»Diseña un controlador óptimo minimizando una función de coste cuadrática.
MPC (Control Predictivo por Modelo)
Sección titulada «MPC (Control Predictivo por Modelo)»Basado en el modelo del sistema, predice los estados futuros y optimiza la secuencia de control.
Paso 2: Modelado del sistema
Sección titulada «Paso 2: Modelado del sistema»- Construye un modelo linealizado del drone
- Incluye la dinámica de actitud y la dinámica de posición
- Usa MATLAB o Python para la identificación del sistema y la validación del modelo
Paso 3: Diseño del algoritmo
Sección titulada «Paso 3: Diseño del algoritmo»Usa la función lqr() de MATLAB o la librería control de Python para diseñar el controlador LQR:
from control import lqr
# Matrices del sistemaA = [[...]] # matriz de estadoB = [[...]] # matriz de entradaQ = [[...]] # matriz de ponderación de estadoR = [[...]] # matriz de ponderación de control
# Calcular la ganancia LQRK, S, E = lqr(A, B, Q, R)Paso 4: Implementación en código
Sección titulada «Paso 4: Implementación en código»En el directorio components/core/crazyflie/modules/src/controller, crea un nuevo archivo de controlador:
void controllerLQR(control_t *control, setpoint_t *setpoint, const state_t *state) { // Calcular el error de estado float error[12]; error[0] = setpoint->position.x - state->position.x; error[1] = setpoint->position.y - state->position.y; error[2] = setpoint->position.z - state->position.z; // ... otros errores de estado
// Ley de control LQR: u = -K * error float control_output[4]; for (int i = 0; i < 4; i++) { control_output[i] = 0; for (int j = 0; j < 12; j++) { control_output[i] -= K[i][j] * error[j]; } }
// Aplicar la salida de control control->thrust = control_output[0]; control->roll = control_output[1]; control->pitch = control_output[2]; control->yaw = control_output[3];}Paso 5: Compilar, grabar y probar
Sección titulada «Paso 5: Compilar, grabar y probar»- Compila y graba el código
- Realiza pruebas de vuelo y compara la diferencia de rendimiento entre el controlador avanzado y el controlador PID
Solución de problemas
Sección titulada «Solución de problemas»El controlador es inestable
Sección titulada «El controlador es inestable»- Comprueba que el modelo del sistema sea preciso
- Ajusta las matrices de ponderación Q y R
La respuesta es lenta
Sección titulada «La respuesta es lenta»- Aumenta la ponderación de estado Q
- Reduce la ponderación de control R
Sensación de logro
Sección titulada «Sensación de logro»¡Enhorabuena! Has implementado algoritmos de control avanzados, ¡la tecnología central del control de drones!
Siguiente paso
Sección titulada «Siguiente paso»En el siguiente proyecto aprenderás a desarrollar un sistema de fusión de datos de múltiples sensores.
Publicado por primera vez endrone.imagrove.com/es/advanced/advanced-control/Al citar o reproducir, indica la fuente Imagrove y enlaza a esta página.
¿Dudas o problemas con este tutorial?
Inicia sesión con GitHub para comentar. Si un paso te falla, avísanos: lo verificamos y actualizamos el tutorial.
© 2026 ESP32 Drone. Todos los derechos reservados.