|Stable release||v0.6.3 / 7 May 2013|
|Website||APMonitor product page|
Advanced process monitor (APMonitor), is a modeling language for differential algebraic (DAE) equations. It is a free web-service for solving representations of physical systems in the form of implicit DAE models. APMonitor is suited for large-scale problems and allows solutions of linear programming, integer programming, nonlinear programming, nonlinear mixed integer programming, dynamic simulation, moving horizon estimation, and nonlinear 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.
High Index DAEs
The highest order of a derivative that is necessary to return a DAE to ODE form is called the differentiation index. A standard way for dealing with high-index DAEs is to differentiate the equations to put them in index-1 DAE or ODE form. However, this approach can cause a number of undesirable numerical issues such as instability. While the syntax is similar to other modeling languages such as gProms, APMonitor solves DAEs of any index without rearrangement or differentiation. As an example, an index-3 DAE is shown below for the pendulum motion equations and lower index rearrangements can return this system of equations to ODE form (see Index 0 to 3 Pendulum example).
Pendulum motion (index-3 DAE form)
Model pendulum Parameters m = 1 g = 9.81 s = 1 End Parameters Variables x = 0 y = -s v = 1 w = 0 lam = m*(1+s*g)/2*s^2 End Variables Equations x^2 + y^2 = s^2 $x = v $y = w m*$v = -2*x*lam m*$w = -m*g - 2*y*lam End Equations End Model
Interfaces to scripting languages
Python and MATLAB are two mathematical programming languages that have APMonitor integration. Using integration with scripting and programming languages as a web-service has a number of advantages and disadvantages. The advantages include an alternative to the built-in optimization toolboxes, processing of optimization solutions is simplified, server-side upgrades are transparent to the user, and improved cross-platform availability. Some of the disadvantages are that users are generally reluctant to use a web-service with proprietary models or data, a persistent internet connection is required, and the calculation techniques are not open to inspection as with open-source packages.
Applications in APMonitor Modeling Language
Many physical systems are naturally expressed by differential algebraic equation. Some of these include:
- cell cultures
- chemical reactors
- distillation columns
- friction stir welding
- hydrate formation in deep-sea pipelines
- infectious disease spread
- solid oxide fuel cells
- space shuttle launch simulation
- Unmanned Aerial Vehicles (UAVs)
Models for a direct current (DC) motor and blood glucose response of an insulin dependent patient are listed below.
Direct current (DC) motor
Model motor Parameters ! motor parameters (dc motor) v = 36 ! input voltage to the motor (volts) rm = 0.1 ! motor resistance (ohms) lm = 0.01 ! motor inductance (henrys) kb = 6.5e-4 ! back emf constant (volt·s/rad) kt = 0.1 ! torque constant (N·m/a) jm = 1.0e-4 ! rotor inertia (kg m²) bm = 1.0e-5 ! mechanical damping (linear model of friction: bm * dth) ! load parameters jl = 1000*jm ! load inertia (1000 times the rotor) bl = 1.0e-3 ! load damping (friction) k = 1.0e2 ! spring constant for motor shaft to load b = 0.1 ! spring damping for motor shaft to load End Parameters Variables i = 0 ! motor electrical current (amperes) dth_m = 0 ! rotor angular velocity sometimes called omega (radians/sec) th_m = 0 ! rotor angle, theta (radians) dth_l = 0 ! wheel angular velocity (rad/s) th_l = 0 ! wheel angle (radians) End Variables Equations lm*$i - v = -rm*i - kb *$th_m jm*$dth_m = kt*i - (bm+b)*$th_m - k*th_m + b *$th_l + k*th_l jl*$dth_l = b *$th_m + k*th_m - (b+bl)*$th_l - k*th_l dth_m = $th_m dth_l = $th_l End Equations End Model
Blood glucose response of an insulin dependent patient
! Model source: ! A. Roy and R.S. Parker. “Dynamic Modeling of Free Fatty ! Acids, Glucose, and Insulin: An Extended Minimal Model,” ! Diabetes Technology and Therapeutics 8(6), 617-626, 2006. Model human Parameters p1 = 0.068 ! 1/min p2 = 0.037 ! 1/min p3 = 0.000012 ! 1/min p4 = 1.3 ! mL/(min·µU) p5 = 0.000568 ! 1/mL p6 = 0.00006 ! 1/(min·µmol) p7 = 0.03 ! 1/min p8 = 4.5 ! mL/(min·µU) k1 = 0.02 ! 1/min k2 = 0.03 ! 1/min pF2 = 0.17 ! 1/min pF3 = 0.00001 ! 1/min n = 0.142 ! 1/min VolG = 117 ! dL VolF = 11.7 ! L ! basal parameters for Type-I diabetic Ib = 0 ! Insulin (µU/mL) Xb = 0 ! Remote insulin (µU/mL) Gb = 98 ! Blood Glucose (mg/dL) Yb = 0 ! Insulin for Lipogenesis (µU/mL) Fb = 380 ! Plasma Free Fatty Acid (µmol/L) Zb = 380 ! Remote Free Fatty Acid (µmol/L) ! insulin infusion rate u1 = 3 ! µU/min ! glucose uptake rate u2 = 300 ! mg/min ! external lipid infusion u3 = 0 ! mg/min End parameters Intermediates p9 = 0.00021 * exp(-0.0055*G) ! dL/(min*mg) End Intermediates Variables I = Ib X = Xb G = Gb Y = Yb F = Fb Z = Zb End variables Equations ! Insulin dynamics $I = -n*I + p5*u1 ! Remote insulin compartment dynamics $X = -p2*X + p3*I ! Glucose dynamics $G = -p1*G - p4*X*G + p6*G*Z + p1*Gb - p6*Gb*Zb + u2/VolG ! Insulin dynamics for lipogenesis $Y = -pF2*Y + pF3*I ! Plasma-free fatty acid (FFA) dynamics $F = -p7*(F-Fb) - p8*Y*F + p9 * (F*G-Fb*Gb) + u3/VolF ! Remote FFA dynamics $Z = -k2*(Z-Zb) + k1*(F-Fb) End Equations End Model
- Fourer, R. (2000). "Nonlinear Programming Frequently Asked Questions". Optimization Technology Center of Northwestern University and Argonne National Laboratory.
- Hedengren, J. (2008). "A Nonlinear Model Library for Dynamics and Control". CACHE (Computer Aids for Chemical Engineering) News.
- Spivey, B. (2009). "Monitoring of Process Fouling Using First-Principles Modeling and Moving Horizon Estimation". Proc. Applications of Computer Algebra (ACA) Conference.
- Ramlal, J. (2007). "Moving Horizon Estimation for an Industrial Gas Phase Polymerization Reactor". IFAC Symposium on Nonlinear Control Systems Design (NOLCOS).
- Harney, D. (2013). "Numerical evaluation of the stability of stationary points of index-2 differential-algebraic equations: Applications to reactive flash and reactive distillation systems". Computers & Chemical Engineering. doi:10.1016/j.compchemeng.2012.09.021.
- Nielsen, Isak (2012). Modeling and Control of Friction Stir Welding in 5 cm thick Copper Canisters (M.Sc. thesis). Linköping University.
- Brower, D. (2012). "Fiber Optic Monitoring of Subsea Equipment". OMAE 2012 Proceedings, Rio de Janeiro, Brazil.
- Spivey, B. (2010). "Dynamic Modeling of Reliability Constraints in Solid Oxide Fuel Cells and Implications for Advanced Control". AIChE Annual Meeting Proceedings, Salt Lake City, Utah.
- Sun, L. (2013). "Optimal Trajectory Generation using Model Predictive Control for Aerially Towed Cable Systems". Journal of Guidance, Control, and Dynamics.
- APMonitor home page
- APMonitor documentation
- Online solution engine with IPOPT
- Comparison of popular modeling language syntax
- Download Simulink Interface to APMonitor
- Download MATLAB Interface to APMonitor
- Download Python Interface to APMonitor