Department of Automatic Control, Lund Institute of TechnologyAutomatic Control

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


 Back to Research  Homepage of Automatic Control
Valid HTML 4.01 Transitional
Karl-Erik Årzén
Last modified: 2005-11-11