Optimization-based control