APMonitor
Appearance
File:APMonitor logo.jpg | |
File:APMonitor online.png APMonitor Web-based Interface | |
Developer(s) | APMonitor |
---|---|
Stable release | v0.1.0
|
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. 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, moving horizon estimation, and nonlinear control. 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 (ohm)
lm = 0.01 ! motor inductance (henrys)
kb = 6.5e-4 ! back emf constant (volt-sec/rad)
kt = 0.1 ! torque constant (N-m/a)
jm = 1.0e-4 ! rotor inertia (kg m^2)
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 (amps)
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/sec)
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 * micro-U)
p5 = 0.000568 ! 1/mL
p6 = 0.00006 ! 1/(min * micro-mol)
p7 = 0.03 ! 1/min
p8 = 4.5 ! mL/(min * micro-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 (micro-U/mL)
Xb = 0 ! Remote insulin (micro-U/mL)
Gb = 98 ! Blood Glucose (mg/dL)
Yb = 0 ! Insulin for Lipogenesis (micro-U/mL)
Fb = 380 ! Plasma Free Fatty Acid (micro-mol/L)
Zb = 380 ! Remote Free Fatty Acid (micro-mol/L)
! insulin infusion rate
u1 = 3 ! micro-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
External links
- APMonitor home page
- APMonitor documentation
- Online solution engine with IPOPT
- Comparison of popular modeling language syntax