Chapter 7: Advanced MPC Techniques
Nonlinear MPC (NMPC)
For nonlinear systems:
Uses nonlinear optimization (slower but more accurate).
from scipy.optimize import minimize
def nmpc_step(x0, f, N, Q, R, u_bounds):
def cost(u_flat):
u = u_flat.reshape(N, -1)
x = x0
J = 0
for k in range(N):
J += x.T @ Q @ x + u[k].T @ R @ u[k]
x = f(x, u[k])
return J
u0 = np.zeros(N * m)
bounds = [u_bounds] * N
result = minimize(cost, u0, bounds=bounds)
return result.x[:m]
Robust MPC
Handles uncertainty by considering worst-case scenarios.
Adaptive MPC
Updates model parameters online based on measurements.
Next: Chapter 8 - Real-World Applications!