-
Notifications
You must be signed in to change notification settings - Fork 272
Work on sensitivity solver: add setup_qp_matrices_and_factorize
and more
#1432
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
setup_qp_matrices_and_factorize
and more
Maybe add to the description what the option |
examples/acados_python/pendulum_on_cart/solution_sensitivities/forw_vs_adj_param_sens.py
Show resolved
Hide resolved
interfaces/acados_template/acados_template/c_templates_tera/acados_solver.in.c
Outdated
Show resolved
Hide resolved
It is mentioned under "How it works" in the PR description. |
I see the point of having a separate function for the second solve, mainly to hide details of the second solver setup to the user. |
In HPIPM I added |
Another reason that I much prefer the name Regarding the option getters. Since you both mentioned it, and @giaf implemented in HPIPM, I will follow up in this PR accordingly. |
I will make a separate PR for the option cleanup, since it contains a lot of boilerplate code. |
…factorize` (#1434) Follow-up to #1432 Addresses this comment #1432 (comment)
…ptions that were needed before, see acados/acados#1432
…sensitivity solver (#19) - Requires less options for sensitivity solver - Faster, as only one factorization is done in the sensitivity solver - updated acados submodule See acados/acados#1432 --------- Co-authored-by: Confectio <leonard.fichtner@gmail.com>
Added
setup_qp_matrices_and_factorize()
:Key differences of using
setup_qp_matrices_and_factorize()
vs.solve()
in the two-solver approach:solve()
-approach, the Riccati factorization at the second last QP iterate is used, as the system is not factorized at the final QP iterate. However, for the final iterate the system of equations becomes typically ill-conditioned, which is why the final iterate is modified, by clipping the inequality multipliers and t slacks, see optionsolution_sens_qp_t_lam_min
.solve
approach are now commented:How it works
The option
update_fact_exit
was added in HPIPM. This option being active, plus the warm start, plus limiting the QP solver iterations to 0, results in the correct behavior.Other things that changed in this PR
condense_qp_out
for real condensing. #1433