Coder Social home page Coder Social logo

dyna2gams / dyna2gams.github.io Goto Github PK

View Code? Open in Web Editor NEW
3.0 0.0 0.0 24.29 MB

Optimal control with GAMS

License: Other

CSS 4.01% JavaScript 1.30% HTML 91.57% SCSS 3.12%
gams collocation pseudospectral acado apmonitor bocop differential-equations optimal-control code-generation nonlinear-programming

dyna2gams.github.io's Introduction

DYNA2GAMS - optimal control with GAMS

The DYNA2GAMS project aims at solving optimal control problems with the help of the GAMS modeling language.

Optimal control deals with the problem of finding a control law for a given dynamical system governed by differential equations such that a certain optimality criterion is achieved. Optimal control problems arise in many exciting applications in science, economy, and engineering. Examples are trajectory optimization in robotics, aerospace engineering (ascent/descent/emergency trajectories, orbit transfers...), vehicle simulation (avoidance trajectories, virtual test-driving, chassis control...), controller design (linear quadratic regulator, model-predictive control...), process engineering (chemical processes...), fishing strategies, biology, etc.

The General Algebraic Modeling System (GAMS) is a high-level modeling system for mathematical programming and optimization. It consists of a language compiler and a range of integrated high-performance solvers. GAMS is specifically designed for modeling linear, nonlinear and mixed integer optimization problems.

In a nutshell, optimal control problems (OCP) are usually described by:

  • A state-space model of a system. This can be either a set of ordinary differential equations or differential algebraic equations.
  • Initial and/or final conditions (sometimes also conditions at other points).
  • A cost functional, i.e. a scalar value that depends on the state trajectories and the control function which has to be minimized or maximized.
  • Sometimes, additional equations and variables that, for example, relate the initial and final conditions to each other or constraint the control or state path. The goal of DYNA2GAMS suite is to make it possible to input such problem descriptions as simply as possible, without having to worry about the mathematics of the actual solver. Once a problem has been properly modeled, DYNA2GAMS suite will take care of all the steps necessary in order to return a solution.

DYNA2GAMS translates a model written in DYNA dialect to a GAMS file, which can be further processed by GAMS. In other words, it transcribes optimal control problems (OCP) into large but sparse nonlinear programming problems. In doing so, it allies the power of a mathematical programming tool with a set of high level features dedicated to optimal control that simplify the formulation of the problems.

DYNA dialect allows to formulate optimal control problems in a way that is very similar to their mathematical description. Take a look at the Tutorial to grasp the basic structure and characteristics of a DYNA model and how it relates to the mathematical formulation.

DYNA2GAMS has been developed in the course of the year 2018 and is regularly updated since then. It is available for download on this web site. On top, it comes with a very large set of examples borrowed from the literature and various academic or commercial OCP solvers.

DYNA2GAMS is free of charge for non-commercial use throughout the year 2022 at least. It is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International terms. It is based on Regina Rexx Interpreter. Regina is distributed under the terms of the GNU Library General Public License Version 2.

Please visit our website.

Feel free to contact us for any questions you might have ([email protected]).

Copyright (c) 2018-2021 Alain J. Michiels. All rights reserved.

dyna2gams.github.io's People

Contributors

dyna2gams avatar

Stargazers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.