Language Support for Dynamic Optimization
Researchers: Johan Åkesson and
Karl-Erik Årzén
Overview
Efficient development and operation of control systems is essential in
industry today. Optimization is increasingly used as a standard tool
to improve operation, both in on-line and off-line applications.
Examples are calculation of operating points, grade change
trajectories and production schedules that maximize production while
minimizing raw material, energy and other resources. Similar issues
arise in the design of embedded control systems for e.g., the
automotive, avionics, and mobile telecom areas, where efficient
utilization of computing, communication, and/or battery resources is
required in order to meet market demands. This can also often be
formulated as optimization problems.
Due to the ever increasing complexity of plants, a model-driven
approach is required. At the heart of this project is a
language-based approach for developing a high-level description
framework targeted at unified modeling of physical systems and
associated optimization problems. This also includes development of
prototype software, which transforms a high-level description into a
canonical mathematical model representation. This canonical
representation may then be used as a basis for code generation for the
above mentioned applications. The main topic of the project is the
formulation of large-scale optimization problems. Associated with this
topic is also code generation for numerical solvers.
Optimica
A key issue is the definition of syntax and semantics of the Modelica
extension, Optimica. Optimica provides the user with language
constructs that enable formulation of a wide range of optimization
problems, such as parameter estimation, optimal control and state
estimation based on Modelica models.
At the core of Optimica are the basic optimization elements such as
cost functions and constraints. It is also possible to specify
bounds on variables in the Modelica model as well as to mark variables
and parameters as optimization quantities, i.e., to express what to
optimize over. While this type of information represents a canonical
optimization formulation, the user is often required to supply
additional information, related to the numerical method which is used
to solve the problem. In this category we have e.g., specification of
transcription method, discretization of control variables and initial
guesses. Optimica also enables convenient specification of these
quantities.
The first version of Optimica was published in 2007. Current research
focuses on extending Optimica to support specification of Model
Predictive Controllers (MPC), mixed-integer programs and multistage
problems.
Software Tools - the JModelica.org platform
One of the results of the research project is an open source project
entitled JModelica.org. JModelica.org is an extensible Modelica-based
open source platform for optimization, simulation and analysis of
complex dynamic systems. The main objective of the project is to
create an industrially viable open source platform for optimization of
Modelica models, while offering a flexible platform serving as a
virtual lab for algorithm development and research. As such,
JModelica.org is intended to provide a platform for technology
transfer where industrially relevant problems can inspire new research
and where state of the art algorithms can be propagated form academia
into industrial use. JModelica.org is currently managed by the
Lund-based company Modelon AB and continues to evolve in close
collaboration with several departments at Lund University, including
Automatic Control, Mathematics and Computer Science.
JModelica.org features compilers supporting code generation of
Modelica models to C, a C API for evaluating model equations and their
derivatives and optimization algorithms. The compilers and the model C
API has also been interfaced with Python in order to enable scripting
and custom application development. In order to support formulation of
dynamic optimization of Modelica models, JModelica.org supports the
Optimica extension. Solution of dynamic optimization problems is
supported by an implementation of a simultaneous collocation algorithm
based on the NLP solver IPOPT
Applications and related projects
JModelica.org, and prototypes thereof, have been used in a number of
industrial size applications. These include start-up optimization of a
plate reactor, lap time optimization for racing cars and optimal robot
control. In a recent project, JModelica.org is used to compute optimal
grade change profiles in collaboration with plastics manufacturer
Borealis. For details, see the corresponding research
home page. The project is also related research on parallel
methods for dynamic optimization.
Publications