APMonitor

APMonitor
Developer(s) APMonitor
Stable release v0.5.5
Operating system Cross-platform
Type Technical computing
License Proprietary
Website APMonitor product page

APMonitor, or "Advanced Process Monitor", is a modeling language for differential and algebraic (DAE) equations.[1] It is used for describing and solving representations of physical systems in the form of implicit DAE models. APMonitor is suited for large-scale problems and allows solutions of dynamic simulation,[2] moving horizon estimation,[3] and nonlinear control.[4] APMonitor does not solve the problems directly, but calls appropriate external solvers.

Contents

Applications in APMonitor modeling language

Many physical systems have been simulated with APMonitor. Some of these include cell cultures, chemical reactors, distillation columns, solid oxide fuel cells,[5] infectious disease spread, oscillator, and space shuttle launch. Models for a direct current (DC) motor, blood glucose response of an insulin dependent patient, and pendulum motion 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

Pendulum motion

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

See also

References

  1. ^ Fourer, R. (2000). "Nonlinear Programming Frequently Asked Questions". Optimization Technology Center of Northwestern University and Argonne National Laboratory. http://wiki.mcs.anl.gov/NEOS/index.php/Nonlinear_Programming_FAQ. 
  2. ^ Hedengren, J. (2008). "A Nonlinear Model Library for Dynamics and Control". CACHE (Computer Aids for Chemical Engineering) News. http://www.hedengren.net/research/Publications/Cache_2008/NonlinearModelLibrary.pdf. 
  3. ^ Spivey, B. (2009). "Monitoring of Process Fouling Using First-Principles Modeling and Moving Horizon Estimation". Proc. Applications of Computer Algebra (ACA) Conference. 
  4. ^ Ramlal, J. (2007). "Moving Horizon Estimation for an Industrial Gas Phase Polymerization Reactor". IFAC Symposium on Nonlinear Control Systems Design (NOLCOS). http://apmonitor.com/Documents/mhe.pdf. 
  5. ^ 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. http://apmonitor.com/wiki/uploads/Apps/sofc.pdf. 

External links