Efficiency of "quadprog" in MATLAB
28 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Trym Gabrielsen
el 27 de Jun. de 2024
Editada: Trym Gabrielsen
el 7 de Nov. de 2024 a las 9:34
I need to use a QP solver for an NMPC (with SQP) scheme I am writing in MATLAB.
I am mostly writing everything from scratch, both to learn more about NMPC, and to have more control over the implementation when doing research. However, I don't really feel the need to write my own QP solver, which would probably me way less effecient than modern solvers.
Initially i figured I'd just use quadprog for simplicity, but my supervisor says that this used to be a notoriously slow solver back in the day. I was wondering if this is still the case, or if it has been improved and can compare with other solvers today?
Also, what solvers are fairly efficient and are easy to obtain and use from MATLAB? (as alternatives to quadprog, if it does don't perform well enough)
2 comentarios
John D'Errico
el 27 de Jun. de 2024
Editada: John D'Errico
el 27 de Jun. de 2024
I would not write it yourself. You would surely do no better, and almost certainly significantly worse. Is it acceptable? You should try it out, as if it is sufficient for your problem, then all is good. If you feel it is a bottleneck, then and only then should you worry about alternatives. Never spend effort to pre-optimize your code.
If and only if you decide you need something faster because it becomes a bottleneck, then you might swap something else in, but at that point, the swap would be simple anyway.
Respuestas (1)
Kaustab Pal
el 12 de Jul. de 2024
I did a quick analysis between three MATLAB solvers: "mpcActiveSetSolver", "mpcInteriorPointOptions", and "quadprog". Utilizing these solvers, I solved the same example problem, which you can access here: Example Problem Link.
The results revealed that in terms of speed, "mpcInteriorPointSolver" outperforms "mpcActiveSetSolver", which, in turn, is faster than "quadprog". This ranking may assist you in selecting the most efficient solver for your NMPC scheme. It's important to note that the solver's speed can also vary based on the specific problem you are addressing. For further details, you can explore more about these solvers here.
Hope this helps
1 comentario
Trym Gabrielsen
el 7 de Nov. de 2024 a las 9:33
Editada: Trym Gabrielsen
el 7 de Nov. de 2024 a las 9:34
Ver también
Categorías
Más información sobre Linear Plant Specification en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!