Initialization of OCP solver ( Matlab )

Hi,
I am using the Matlab interface.

In order to initialize the MPC for the next step I’ve seen that this can be done explicitly in every iteration with these functions:
ocp.set(‘init_x’, x_traj)
ocp.set('init_u, u_traj)

If I don’t use these functions, I think the initialization method depends in the option:
qp_solver_warm_start
The options are:
(0) cold start
(1) warm start primal variables
(2) warm start and dual variables

¿What do these options mean?
I’m only familiar whit shift initialization and the simple warm start, in which the initial guess is the previous solution with both states and inputs. I want to perform a simple warm start, ¿which option should I use?

Thanks in advance!

Hi Antonio,

the option qp_solver_warm_start really only corresponds to the warm starting of the QP solver.
Warm / hot start of QP solvers is a complex topic and there are several papers about it.

I think you are mainly talking about the initialization of the SQP method.
If you don’t initialize anything explicitly between consecutive calls to the OCP solver, the solver is initialized with the previous primal and dual solution.

Cheers!

2 Likes

@FreyJo @Antonio
Hi, Frey.
I hope this email finds you well.
I have currently completed the Simulink program for NMPC in MATLAB. I still have some doubts about the u_init setting of the QP solver in Simulink. Is the initial value of NMPC for next step completed through u_init. What is the inital value for solving NMPC each step if I haven’t do nothing for u_init?

Thanks in advance!