Acados MPC for Linearized Systems

Hi :wave:

I am currently implementing an acados MPC controller for trajectory tracking (Python Interface), I am using a linearized model about the current trajectory and I already have an implementation for a fixed linearization (LTI)
I’d like thought to change the A and B matrices parameters along the various recursions of the MPC (so to move towards an LTV approach), is it possible to set in the acados_ocp_solver in the new model without having to set it in the acados_ocp and recompile? Is the only option with acados to perform LPV rather than LTI specifying a parameter dependent model and setting parameters in real time?

Thank you in advance for your help!


That is what I would recommend.
Is there any problem with this option?

No, it is not a problem, but I wanted to implement from the beginning the most modular and general solution as possible.
Thank you for your answer, I will try with LPV, can you reccomend me some documentation or examples about the subject? (If there is any)

There are a few examples with parameter, e.g. in acados/examples/acados_python/pendulum_on_cart/mhe.
However no basic example with a linear time varying system using parameters, right now.
Probably, you want to build a wrapper around the acados solver to keep track of the parameter indices, especially if you want to include more later.

I will look it up at the example, for the moment I just posed the LTV model such that A and B matrices casadi.MX data types with dependencies on some parameters, then I am using ocp_solver.set(i, “p”, parameter) so to change them in the control loop at each new call, donìt know if it is exactly the correct way of doing it though