Full MPC solution and initial guess.
This is the core attribute of the MPC class. It is used as the initial guess when solving the optimization problem and then overwritten with the current solution.
The attribute is a CasADi numeric structure with nested power indices. It can be indexed as follows:
# dynamic states: opt_x_num['_x', time_step, scenario, collocation_point, _x_name] # algebraic states: opt_x_num['_z', time_step, scenario, collocation_point, _z_name] # inputs: opt_x_num['_u', time_step, scenario, _u_name] # slack variables for soft constraints: opt_x_num['_eps', time_step, scenario, _nl_cons_name]
The names refer to those given in the
do_mpc.model.Modelconfiguration. Further indices are possible, if the variables are itself vectors or matrices.
The attribute can be used to manually set a custom initial guess or for debugging purposes.
How to query?
Querying the structure is more complicated than it seems at first look because of the scenario-tree used for robust MPC. To obtain all collocation points for the finite element at time-step \(k\) and scenario \(b\) use:
Due to the multi-stage formulation at any given time \(k\) we can have multiple future scenarios. However, there is only exactly one scenario that lead to the current node in the tree. Thus the collocation points associated to the finite element \(k\) lie in the past.
The concept is illustrated in the figure below:
opt_x_numcarries the scaled values of all variables. See
opt_x_num_unscaledfor the unscaled values (these are not used as the initial guess).
Do not tweak or overwrite this attribute unless you known what you are doing.
The attribute is populated when calling
This page is auto-generated. Page source is not available on Github.