-
Notifications
You must be signed in to change notification settings - Fork 272
New nlp_solver_type
: SQP_WITH_FEASIBLE_QP
#1444
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…calculate the algorithmic l1-slacks in the NLP
…ents (acados#1293) This allows one to solve QPs with data other than the default `qp_in` and `qp_out`.
…t the norm of the Lagrange multipliers
…culation of the qps. If feasibility direction in QP is used properly, the trajectories look good
…on of constraint violation
…enalty parameter is not decreased too much
…e feasibility hessian matrix
sandmaennchen
approved these changes
Mar 14, 2025
examples/acados_python/inconsistent_qp_linearization/inconsistent_qp_linearization_test.py
Outdated
Show resolved
Hide resolved
interfaces/acados_template/acados_template/acados_ocp_options.py
Outdated
Show resolved
Hide resolved
interfaces/acados_template/acados_template/acados_ocp_options.py
Outdated
Show resolved
Hide resolved
interfaces/acados_template/acados_template/acados_ocp_options.py
Outdated
Show resolved
Hide resolved
interfaces/acados_template/acados_template/acados_ocp_solver.py
Outdated
Show resolved
Hide resolved
interfaces/acados_template/acados_template/c_templates_tera/acados_multi_solver.in.c
Outdated
Show resolved
Hide resolved
interfaces/acados_template/acados_template/c_templates_tera/acados_solver.in.c
Outdated
Show resolved
Hide resolved
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a novel
nlp_solver_type
namedSQP_WITH_FEASIBLE_QP
.This algorithm overcomes the issue of infeasible QPs during the iteration process.
The solver primarily tries to perform standard SQP iterations.
In case the nominal QP cannot be solved, the following actions are performed:
The following options were added:
globalization_funnel_use_merit_fun_only
: This turns off the funnel method and only checks the penalty function for step acceptance. The funnel method employs the penalty phase instead of a feasibility restoration phase. In general, the funnel allows for more nonmonotonicity which often results in faster convergence.use_constraint_hessian_in_feas_qp
: Decides if exact constraint Hessian or the identity matrix with small scaling (10e-4) should be used in the feasibility QPsearch_direction_mode
: Specifies which search direction mode should be used in the first iteration. Might beNOMINAL_QP
orBYRD_OMOJOKUN
allow_direction_mode_switch_to_nominal
: If set totrue
, the solver does not allow switches in the search direction mode. Can be used to only solve problems in theBYRD_OMOJOKUN
mode.Note that the novel method is still in a preliminary state and its development is still ongoing. The following problems can still happen:
solver_options.qp_solver_mu0 = 1e4
.solver_options.qp_solver = 'PARTIAL_CONDENSING_HPIPM'
withsolver_options.qp_solver_cond_N = N
to perform no condensing. Condensing can worsen the conditioning which can yield problems.If you encounter problems or bugs, please report them in the acados forum. We are happy about your testing.
This method is inspired by the following papers:
Program., 43(1-3):277–303, 1989.