ASCEND

Last updated
ASCEND
Developer(s) the ASCEND team
Stable release
0.9.8 / April 30, 2012;11 years ago (2012-04-30)
Written in C, Python, Tcl/Tk, C++
Operating system Linux, Windows (and partial support for Mac OS X)
Type mathematical modelling
License GPL (free software)
Website ascend4.org

ASCEND is an open source, mathematical modelling chemical process modelling system developed at Carnegie Mellon University since late 1978. [1] [2] ASCEND is an acronym which stands for Advanced System for Computations in Engineering Design. Its main uses have been in the field of chemical process modelling although its capabilities are general. [3]

Contents

ASCEND includes nonlinear algebraic solvers, differential/algebraic equation solvers, nonlinear optimization and modelling of multi-region 'conditional models'. Its matrix operations are supported by an efficient sparse matrix solver called mtx.

ASCEND differs from earlier modelling systems because it separates the solving strategy from model building. So domain experts (people writing the models) and computational engineers (people writing the solver code) can work separately in developing ASCEND. Together with a number of other early modelling tools, its architecture helped to inspire newer languages such as Modelica. [4] [5] It was recognised for its flexible use of variables and parameters, which it always treats as solvable, if desired [6]

The software remains as an active open-source software project, and has been part of the Google Summer of Code programme in 2009, 2010, 2011, 2012, 2013 (under the Python Software Foundation) and has been accepted for the 2015 programme as well. [7]

See also

Related Research Articles

<span class="mw-page-title-main">Wolfram Mathematica</span> Computational software program

Wolfram Mathematica is a software system with built-in libraries for several areas of technical computing that allow machine learning, statistics, symbolic computation, data manipulation, network analysis, time series analysis, NLP, optimization, plotting functions and various types of data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other programming languages. It was conceived by Stephen Wolfram, and is developed by Wolfram Research of Champaign, Illinois. The Wolfram Language is the programming language used in Mathematica. Mathematica 1.0 was released on June 23, 1988 in Champaign, Illinois and Santa Clara, California.

Computer science is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. One well known subject classification system for computer science is the ACM Computing Classification System devised by the Association for Computing Machinery.

Model predictive control (MPC) is an advanced method of process control that is used to control a process while satisfying a set of constraints. It has been in use in the process industries in chemical plants and oil refineries since the 1980s. In recent years it has also been used in power system balancing models and in power electronics. Model predictive controllers rely on dynamic models of the process, most often linear empirical models obtained by system identification. The main advantage of MPC is the fact that it allows the current timeslot to be optimized, while keeping future timeslots in account. This is achieved by optimizing a finite time-horizon, but only implementing the current timeslot and then optimizing again, repeatedly, thus differing from a linear–quadratic regulator (LQR). Also MPC has the ability to anticipate future events and can take control actions accordingly. PID controllers do not have this predictive ability. MPC is nearly universally implemented as a digital control, although there is research into achieving faster response times with specially designed analog circuitry.

<span class="mw-page-title-main">Modelica</span> Computer Language for System Modeling

Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-oriented subcomponents. The free Modelica language is developed by the non-profit Modelica Association. The Modelica Association also develops the free Modelica Standard Library that contains about 1400 generic model components and 1200 functions in various domains, as of version 4.0.0.

<span class="mw-page-title-main">Finite-difference time-domain method</span>

Finite-difference time-domain (FDTD) or Yee's method is a numerical analysis technique used for modeling computational electrodynamics. Since it is a time-domain method, FDTD solutions can cover a wide frequency range with a single simulation run, and treat nonlinear material properties in a natural way.

<span class="mw-page-title-main">Computational electromagnetics</span> Branch of physics

Computational electromagnetics (CEM), computational electrodynamics or electromagnetic modeling is the process of modeling the interaction of electromagnetic fields with physical objects and the environment using computers.

Algebraic modeling languages (AML) are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation. One particular advantage of some algebraic modeling languages like AIMMS, AMPL, GAMS, Gekko, MathProg, Mosel, and OPL is the similarity of their syntax to the mathematical notation of optimization problems. This allows for a very concise and readable definition of problems in the domain of optimization, which is supported by certain language elements like sets, indices, algebraic expressions, powerful sparse index and data handling variables, constraints with arbitrary names. The algebraic formulation of a model does not contain any hints how to process it.

Advanced process monitor (APMonitor) is a modeling language for differential algebraic (DAE) equations. It is a free web-service or local server for solving representations of physical systems in the form of implicit DAE models. APMonitor is suited for large-scale problems and solves linear programming, integer programming, nonlinear programming, nonlinear mixed integer programming, dynamic simulation, moving horizon estimation, and nonlinear model predictive control. APMonitor does not solve the problems directly, but calls nonlinear programming solvers such as APOPT, BPOPT, IPOPT, MINOS, and SNOPT. The APMonitor API provides exact first and second derivatives of continuous functions to the solvers through automatic differentiation and in sparse matrix form.

<span class="mw-page-title-main">Lis (linear algebra library)</span>

Lis is a scalable parallel software library for solving discretized linear equations and eigenvalue problems that mainly arise in the numerical solution of partial differential equations by using iterative methods. Although it is designed for parallel computers, the library can be used without being conscious of parallel processing.

EMSO simulator is an equation-oriented process simulator with a graphical interface for modeling complex dynamic or steady-state processes. It is CAPE-OPEN compliant. EMSO stands for Environment for Modeling, Simulation, and Optimization. The ALSOC Project - a Portuguese acronym for Free Environment for Simulation, Optimization and Control of Processes -, which is based at the UFRGS, develops, maintains and distributes this object-oriented software. Pre-built models are available in the EMSO Modeling Library (EML). New models can be written in the EMSO modeling language or a user can embed models coded in C, C++ or Fortran into the simulation environment.

MADNESS is a high-level software environment for the solution of integral and differential equations in many dimensions using adaptive and fast harmonic analysis methods with guaranteed precision based on multiresolution analysis and separated representations .

JModelica.org is a commercial software platform based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. The platform is maintained and developed by Modelon AB in collaboration with academic and industrial institutions, notably Lund University and the Lund Center for Control of Complex Systems (LCCC). The platform has been used in industrial projects with applications in robotics, vehicle systems, energy systems, CO2 separation and polyethylene production.

Simcenter Amesim is a commercial simulation software for the modeling and analysis of multi-domain systems. It is part of systems engineering domain and falls into the mechatronic engineering field.

APOPT is a software package for solving large-scale optimization problems of any of these forms:

System-level simulation (SLS) is a collection of practical methods used in the field of systems engineering, in order to simulate, with a computer, the global behavior of large cyber-physical systems.

Algebraic modeling languages like AIMMS, AMPL, GAMS, MPL and others have been developed to facilitate the description of a problem in mathematical terms and to link the abstract formulation with data-management systems on the one hand and appropriate algorithms for solution on the other. Robust algorithms and modeling language interfaces have been developed for a large variety of mathematical programming problems such as linear programs (LPs), nonlinear programs (NPs), mixed integer programs (MIPs), mixed complementarity programs (MCPs) and others. Researchers are constantly updating the types of problems and algorithms that they wish to use to model in specific domain applications.

The GEKKO Python package solves large-scale mixed-integer and differential algebraic equations with nonlinear programming solvers. Modes of operation include machine learning, data reconciliation, real-time optimization, dynamic simulation, and nonlinear model predictive control. In addition, the package solves Linear programming (LP), Quadratic programming (QP), Quadratically constrained quadratic program (QCQP), Nonlinear programming (NLP), Mixed integer programming (MIP), and Mixed integer linear programming (MILP). GEKKO is available in Python and installed with pip from PyPI of the Python Software Foundation.

References

  1. Piela, McKelvey; Westerberg (1992). "An introduction to ASCEND: its language and interactive environment". Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences. pp. 449–461 vol.3. doi:10.1109/HICSS.1992.183516. ISBN   978-0-8186-2420-9. S2CID   8826245.
  2. History of ASCEND from the ASCEND website
  3. ASCEND bibliography Archived October 14, 2010, at the Wayback Machine
  4. Elmqvist, Mattsson; Otter (1999). "Modelica-a language for physical system modeling, visualization and interaction". Proceedings of the 1999 IEEE International Symposium on Computer Aided Control System Design (Cat. No.99TH8404) (PDF). pp. 630–639. doi:10.1109/CACSD.1999.808720. ISBN   978-0-7803-5500-2. S2CID   10039831.
  5. Karl Johan Åström, 2001 Control of complex systems, Springer
  6. Sinha, R.; Liang, V.C.; Paredis, C.J.J.; Khosla, P.K. (2001). "Modeling and Simulation Methods for Design of Engineering Systems". Journal of Computing and Information Science in Engineering. 1: 84–91. CiteSeerX   10.1.1.64.4463 . doi:10.1115/1.1344877.
  7. "Google Summer of Code 2013".