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 03:13, 17 October 2009. 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. 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

Example #1: 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

See also