Changelog#

Changes in version 2.3 of GRAMPC:#

Major changes:

  • Added grampc.param as an additional input for the probfct signatures

    • In addition the parameter ordering of dfdx_vec, dfdu_vec, dfdp_vec and dHdxdt changed

    • xdes and udes are no longer passed to the cost functions as they are available inside grampc.param

  • The explicit time dependency of the system dynamics was removed. The dynamics are now called with the MPC internal time. If the global time is needed, one can access t0 in the grampc.param struct

  • Added support for discrete-time systems

  • Added config reader which reads a .cfg file for GRAMPC parameters and options

  • Added CMakeLists.txt files for the GRAMPC library and every example

  • Added online documentation

  • Added gradient checker and an utility function via finite-differences for computing the gradients in the probfct

  • Added Python interface

Minor changes:

  • Added timer helper functions for Windows and Linux OS

  • Added C++ example

  • Added Matlab example for comparing MPC and MHE with continuous-time and discrete-time dynamics

  • Simplified grampc_run_Sfct.c

  • Bugfix: Rodas-Flags were not passed in the Matlab-Interface

  • Bugfix: fixed typo in option trapezoidal

  • Bugfix: fixed error in explicit line search strategy for problems without control optimization as, for example, MHE

  • Bugfix: fixed error in Rodas integrator with analytical derivatives with respect to time (IFCN=1 and IDFX=1)

  • Bugfix: fixed gradients in the following examples:

    • DAE_Integrator: dfdx and dfdxtrans were specified row-wise instead of column-wise

    • Crane_2D: dhdx_vec was incorrect

    • Reactor_PDE: dVdx was incorrect

    • VTOL: Vfct was missing a POW() statement and dfdu_vec was incorrect

Changes in version 2.2 of GRAMPC:#

Major changes:

  • Switch from GNU Lesser General Public License (LGPL) to BSD-3-Clause License, see LICENSE.txt

  • Support for fixed-size arrays instead of dynamic memory allocation, see Section 5.1.5 in documentation

  • Added userparam as additional input to Simulink models

  • Function for estimation of PenaltyMin is exposed in C++ interface

Minor changes:

  • Bugfix: Consider scaling for calculating terminal constraints in grampc_update_plot_pred.m

  • Bugfix: Computation of augmented cost function correctly adds equality constraints

  • Bugfix: Removed wrong flag “-o” from “ar” commands and added “-rcs” flags, which fixes problems on Windows and MacOS

  • Bugfix: Provide two output arguments to calls of grampc_estim_penmin_Cmex as expected by the function

  • Bugfix: OCP solution with startOCP does not abort after one iteration if convergence check is deactivated