Dynamic optimization with CasADi

Joel Andersson, Johan Furunäs Åkesson, Moritz Diehl · 2012

We demonstrate how CasADi, a recently developed, free, open-source, general purpose software tool for nonlinear optimization, can be used for dynamic optimization in a flexible, interactive and numerically efficient way. CasADi is best described as a minimalistic computer algebra system (CAS) implementing automatic differentiation (AD) in eight different flavors. Similar to algebraic modeling languages like AMPL or GAMS, it includes high-level interfaces to state-of-the-art numerical codes for nonlinear programming, quadratic programming and integration of differentialalgebraic equations. CasADi is implemented in self-contained C++ code and contains full-featured front-ends to Python and Octave for rapid prototyping. In this paper, we discuss CasADi from the perspective of the developer or advanced user of algorithms for dynamic optimization for the first time, leaving out details on the implementation of the tool. We demonstrate how the tool can be used to model highly complex dynamical systems directly or import existing models formulated in the algebraic modeling language AMPL or the physical modeling language Modelica. Given this symbolic representation of the process models, the resulting optimal control problem can be solved using a variety of methods, including transcription methods (collocation), methods with embedded integrators (multiple shooting) as well as indirect methods.

Read the paper · More papers on PaperTik