¿Qué problema se resuelve en un solver de MPC no lineal?
Un solver de MPC no lineal (Nonlinear Model Predictive Control, NMPC) resuelve un problema de optimización no lineal restringido, cuyo objetivo es encontrar la secuencia óptima de acciones de control que lleven al sistema a un comportamiento deseado, respetando tanto la dinámica no lineal del sistema como las restricciones impuestas (por ejemplo, límites en estados o entradas).
💡 Problema que resuelve el solver NMPC:
Dado un modelo dinámico no lineal:
$\dot{x}(t) = f(x(t), u(t))$
o en forma discreta:
$x_{k+1} = f(x_k, u_k)$
y una función de costo a minimizar del tipo:
$J = \sum_{k=0}^{N-1} \ell(x_k, u_k) + \ell_f(x_N)$
sujeta a:
-
Dinámica del sistema: $x_{k+1} = f(x_k, u_k)$
-
Restricciones en los estados: $x_k \in \mathcal{X}$
-
Restricciones en las entradas: $u_k \in \mathcal{U}$
El solver NMPC resuelve el siguiente problema de optimización en cada instante de control:
✅ Problema de optimización no lineal restringido (NLP):
$\min_{u_0, u_1, ..., u_{N-1}} \quad \sum_{k=0}^{N-1} \ell(x_k, u_k) + \ell_f(x_N)$
sujeto a:
-
xk+1=f(xk,uk),∀k=0,...,N−1$x_{k+1} = f(x_k, u_k), \quad \forall k = 0,...,N-1$
-
$x_k \in \mathcal{X}, \quad u_k \in \mathcal{U}$
-
$x_0 = x_{\text{actual}}$ (condición inicial)
🧩 ¿Qué hace el solver exactamente?
-
Predice la evolución futura del sistema usando el modelo no lineal.
-
Optimiza la secuencia de controles futuros en un horizonte NN.
-
Respeta todas las restricciones dinámicas y físicas.
-
Ejecuta solo el primer control de la secuencia óptima.
-
Repite el proceso en el siguiente instante (receding horizon).
Ejemplo de aplicación:
Control de un robot con dinámica compleja, como un dron o un vehículo autónomo, donde las ecuaciones de movimiento son no lineales, y se deben evitar obstáculos y respetar límites de velocidad o aceleración.
¿Quieres que te muestre un ejemplo numérico o código con CasADi o ACADO?