Jump to content

APMonitor

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 206.180.155.75 (talk) at 00:36, 21 November 2010 (Link to differential algebraic equation page). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
APMonitor
Developer(s)APMonitor
Stable release
v0.1.0
Operating systemCross-platform
TypeTechnical computing
LicenseProprietary
WebsiteAPMonitor 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.

Example models in APMonitor language

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.
  2. ^ Hedengren, J. (2008). "A Nonlinear Model Library for Dynamics and Control" (PDF). CACHE (Computer Aids for Chemical Engineering) News.
  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" (PDF). IFAC Symposium on Nonlinear Control Systems Design (NOLCOS).