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.
API changes:
Solver.getNLP
and Solver.getSolver
are replaced by OclSolver(T,system,ocp,options)
OclSolver
takes 1 more argument T, new signature OclSolver
OclSolver(T, system, ocp, options)pathCosts(ch, x, z, u, p)
, arrivalCosts(ch, x, p)
, pathConstraints(ch, x, p)
. #83setupEquation
became setupEquations
#85pathConstraints
, pathCosts
have to be declared as Static when inheriting from OclOCP #74setupVariables
. setupEquations
have to be declared as Static when inheriting from OclSystem #74Important algorithm changes:
path_constraints_at_boundary=false
pathconstraint 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. #801e-6*u.'*u
has been introduced. It can be deactivate with option options.disable_regularization = false;
#79options.nlp.auto_interpolation = false
disabled auto interpolation.API new features:
ocl.setBounds('x', xTraj)
where xTraj
is a vector with the length of N+1
if x is a state, or N
if x is a control variable (with N the number of control interval). #82times
or independent variables as structured variablesopt.system_casadi_mx = true
enables the use of casadi MX symbolics for the systemOther changes: