We are happy to announce that OpenOCL v3 is ready and released. It contains many improvements with respect to the previous version and also some API changes. If you come from an earlier version see the release notes that contains a list of changes below. Otherwise you can directly go to the download page of OpenOCL v3.11 or pull the latest version from the master branch.
Also note that the URL of the github repository has changed. Update your remote URL with:
git remote set-url origin https://github.com/OpenOCL/OpenOCL.git
The release includes many changes to the API. Some class names, method names, and the way the solver is created are changed. If you come from an earlier version you need to adapt your model/code for this version. Below you find a list of changes. Also look at the examples how they are implemented (and look at the API documentation at openocl.org). This is also the first release to support Octave, and this release will become the first stable release.
Solver.getSolverare replaced by
OclSolvertakes 1 more argument T, new signature
OclSolverOclSolver(T, system, ocp, options)
pathCosts(ch, x, z, u, p),
arrivalCosts(ch, x, p),
pathConstraints(ch, x, p). #83
pathCostshave to be declared as Static when inheriting from OclOCP #74
setupEquationshave to be declared as Static when inheriting from OclSystem #74
Important algorithm changes:
path_constraints_at_boundary=falsepathconstraint are not enforced on the first state and the final state. This can be used if you have potentially conflicting boundary conditions with your path constraints. #80
1e-6*u.'*uhas been introduced. It can be deactivate with option
options.disable_regularization = false;#79
options.nlp.auto_interpolation = falsedisabled auto interpolation.
API new features:
xTrajis a vector with the length of
N+1if x is a state, or
Nif x is a control variable (with N the number of control interval). #82
timesor independent variables as structured variables
opt.system_casadi_mx = trueenables the use of casadi MX symbolics for the system