This repository is an implementation of the work from Mohamed W. Mehrez. I convert the original code from MATLAB to the Python. His videos can be found in Youtube list, and his codes in MATLAB are given in his github.
- python 3.8 (it should work up 3.5 or 2.7)
- CasADi == 3.5.1
- The file name ended with 'opt' using the API from casadi.Opti() to solve the problem.
- The file name ended with 'struct' using the casadi.tools API to form the problem.
- The file name without special indication indicates the default SX is utilized.
- Basically one can also use MX to form the problem. However, with my tests, SX has better performance (in speed) than MX.
The SX based versions have similar performance, and require less computation time compared with opti version, which is based on MX structure. However, different implementation approaches have also different matrix/vector definitions, which one should program it carefully especially by the constraint definition. Opti version has the most intuitional definition which is easy to read and handle.