Non-linear predictive control