opt_x_num¶
Class attribute.

MPC.
opt_x_num
¶ 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.Model
configuration. 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 scenariotree used for robust MPC. To obtain all collocation points for the finite element at timestep \(k\) and scenario \(b\) use:
horzcat(*[mpc.opt_x_num['_x',k,b,1]]+mpc.opt_x_num['_x',k+1,b,:1])
Due to the multistage 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:
Note
The attribute
opt_x_num
carries the scaled values of all variables. Seeopt_x_num_unscaled
for the unscaled values (these are not used as the initial guess).Warning
Do not tweak or overwrite this attribute unless you known what you are doing.
Note
The attribute is populated when calling
setup()
This page is autogenerated. Page source is not available on Github.