El monitor de proceso avanzado (APMonitor) es un lenguaje de modelado para ecuaciones algebraicas diferenciales ( DAE ). [1] Es un servicio web gratuito o un servidor local para resolver representaciones de sistemas físicos en forma de modelos DAE implícitos. APMonitor es adecuado para problemas a gran escala y resuelve programación lineal , programación de enteros , programación no lineal , programación de enteros mixtos no lineales, simulación dinámica, [2] estimación de horizonte móvil , [3] y control predictivo de modelos no lineales . [4] APMonitor no resuelve los problemas directamente, pero llama solucionadores de programación no lineal como APOPT , BPOPT , IPOPT , MINOS y SNOPT . La API de APMonitor proporciona la primera y segunda derivadas exactas de funciones continuas a los solucionadores a través de la diferenciación automática y en forma de matriz dispersa .
Desarrollador (es) | APMonitor |
---|---|
Lanzamiento estable | v0.7.6 / 31 de enero de 2018 |
Sistema operativo | Multiplataforma |
Tipo | Computación técnica |
Licencia | Propietario , BSD |
Sitio web | Página del producto APMonitor |
Integración del lenguaje de programación
Julia , MATLAB , Python son lenguajes de programación matemática que tienen integración APMonitor a través de API de servicios web. El GEKKO Optimization Suite es una extensión reciente de APMonitor con la integración completa de Python. Las interfaces son cajas de herramientas de optimización integradas o módulos para cargar y procesar soluciones de problemas de optimización. APMonitor es un lenguaje de modelado orientado a objetos y una suite de optimización que se basa en lenguajes de programación para cargar, ejecutar y recuperar soluciones. Los modelos y datos de APMonitor se compilan en tiempo de ejecución y se traducen en objetos que se resuelven mediante un motor de optimización como APOPT o IPOPT . APMonitor no especifica el motor de optimización, lo que permite cambiar varios motores de optimización diferentes. El modo de simulación u optimización también es configurable para reconfigurar el modelo para simulación dinámica , control predictivo del modelo no lineal , estimación de horizonte móvil o problemas generales de optimización matemática .
Como primer paso para resolver el problema, un modelo matemático se expresa en términos de variables y ecuaciones como el problema de referencia de Hock & Schittkowski # 71 [5] que se utiliza para probar el rendimiento de los solucionadores de programación no lineal . Este problema de optimización particular tiene una función objetivo y sujeto a la restricción de desigualdad y restricción de igualdad . Las cuatro variables deben estar entre un límite inferior de 1 y un límite superior de 5. Los valores iniciales de estimación son. Este modelo matemático se traduce al lenguaje de modelado APMonitor en el siguiente archivo de texto.
! archivo guardado como hs71 . apm Variables x1 = 1 , > = 1 , <= 5 x2 = 5 , > = 1 , <= 5 x3 = 5 , > = 1 , <= 5 x4 = 1 , > = 1 , <= 5 Variables finales Las ecuaciones minimizan x1 * x4 * ( x1 + x2 + x3 ) + x3 x1 * x2 * x3 * x4 > 25 x1 ^ 2 + x2 ^ 2 + x3 ^ 2 + x4 ^ 2 = 40 Ecuaciones finales
Luego, el problema se resuelve en Python instalando primero el paquete APMonitor con pip install APMonitor o desde el siguiente código Python.
# Instale APMonitor import pip pip . main ([ 'instalar' , 'APMonitor' ])
La instalación de Python solo es necesaria una vez para cualquier módulo. Una vez que se instala el paquete APMonitor, se importa y la función apm_solve resuelve el problema de optimización. La solución se devuelve al lenguaje de programación para su posterior procesamiento y análisis.
# Ejemplo de Python para resolver un problema de optimización desde APMonitor.apm import *# Resolver el problema de optimización sol = apm_solve ( 'hs71' , 3 )# Solución de acceso x1 = sol [ 'x1' ] x2 = sol [ 'x2' ]
Hay interfaces similares disponibles para MATLAB y Julia con pequeñas diferencias con respecto a la sintaxis anterior. Ampliar la capacidad de un lenguaje de modelado es importante porque a menudo se requiere un procesamiento previo o posterior significativo de datos o soluciones al resolver problemas complejos de optimización, simulación dinámica, estimación o control.
DAE de alto índice
El orden más alto de una derivada que es necesario para devolver un DAE a la forma ODE se llama índice de diferenciación . Una forma estándar de tratar con DAE de índice alto es diferenciar las ecuaciones para ponerlas en formato DAE u ODE de índice 1 (consulte el algoritmo de Pantelides ). Sin embargo, este enfoque puede provocar una serie de problemas numéricos indeseables, como la inestabilidad. Si bien la sintaxis es similar a la de otros lenguajes de modelado como gProms, APMonitor resuelve DAE de cualquier índice sin reordenamiento ni diferenciación. [6] A modo de ejemplo, a continuación se muestra un DAE de índice 3 para las ecuaciones de movimiento del péndulo y los reordenamientos de índice más bajos pueden devolver este sistema de ecuaciones a la forma de ODE (consulte el ejemplo del péndulo del índice 0 a 3 ).
Movimiento pendular (forma DAE índice-3)
Modelo péndulo Parámetros m = 1 g = 9.81 s = 1 Parámetros finales Variables x = 0 y = - s v = 1 w = 0 lam = m * ( 1 + s * g ) / 2 * s ^ 2 Variables finales Ecuaciones x ^ 2 + y ^ 2 = s ^ 2 $ x = v $ y = w m * $ v = - 2 * x * lam m * $ w = - m * g - 2 * y * lam End Ecuaciones End Model
Aplicaciones en APMonitor Modeling Language
Muchos sistemas físicos se expresan naturalmente mediante ecuaciones algebraicas diferenciales . Algunos de estos incluyen:
- Culturas celulares
- reactores quimicos
- cogeneración (energía y calor) [7]
- columnas de destilación
- automatización de perforación [8]
- destilación al vapor de aceite esencial [9]
- soldadura por fricción y agitación [10]
- formación de hidratos en oleoductos de aguas profundas [11]
- propagación de enfermedades infecciosas
- osciladores
- control de slugging severo [12]
- producción de energía solar térmica [13]
- pilas de combustible de óxido sólido [14] [15]
- simulación de lanzamiento de transbordador espacial
- Vehículos aéreos no tripulados (UAV) [16]
Los modelos para un motor de corriente continua (CC) y la respuesta de glucosa en sangre de un paciente insulinodependiente se enumeran a continuación. Son representativos de ecuaciones diferenciales y algebraicas que se encuentran en muchas ramas de la ciencia y la ingeniería.
Motor de corriente continua (DC)
Parámetros ! parámetros del motor (motor de CC) v = 36 ! voltaje de entrada al motor (voltios) rm = 0.1 ! resistencia del motor (ohmios) lm = 0.01 ! inductancia del motor (henrys) kb = 6.5e-4 ! constante de fem inversa (voltios · s / rad) kt = 0.1 ! constante de par (N · m / a) jm = 1.0e-4 ! inercia del rotor (kg m²) bm = 1.0e-5 ! amortiguación mecánica (modelo lineal de fricción: bm * dth) ! cargar parámetros jl = 1000 * jm ! inercia de carga (1000 veces el rotor) bl = 1.0e-3 ! amortiguación de carga (fricción) k = 1.0e2 ! constante de resorte para que el eje del motor cargue b = 0,1 ! Amortiguación de resorte para el eje del motor para cargar Parámetros finalesVariables i = 0 ! corriente eléctrica del motor (amperios) dth_m = 0 ! velocidad angular del rotor a veces llamada omega (radianes / seg) th_m = 0 ! ángulo del rotor, theta (radianes) dth_l = 0 ! velocidad angular de la rueda (rad / s) th_l = 0 ! Ángulo de rueda (radianes) Variables finalesEcuaciones 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 Ecuaciones finales
Respuesta de glucosa en sangre de un paciente insulinodependiente
! Fuente del modelo: ! A. Roy y RS Parker. “¡Modelado dinámico de grasas libres ! Ácidos, glucosa e insulina: un modelo mínimo extendido ” . Diabetes Technology and Therapeutics 8 (6), 617-626, 2006. Parámetros 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 = 1 1,7 ! L ! parámetros basales para diabéticos tipo I Ib = 0 ! Insulina (µU / mL) Xb = 0 ! Insulina remota (µU / mL) Gb = 98 ! Glucosa en sangre (mg / dL) Yb = 0 ! Insulina para lipogénesis (µU / mL) Fb = 380 ! Ácido graso libre en plasma (µmol / L) Zb = 380 ! Ácido graso libre remoto (µmol / L) ! tasa de infusión de insulina u1 = 3 ! µU / min ! tasa de absorción de glucosa u2 = 300 ! mg / min ! infusión de lípidos externa u3 = 0 ! mg / min Parámetros finalesIntermedios p9 = 0,00021 * exp ( - 0,0055 * G ) ! dL / (min * mg) Intermedios finalesVariables I = Ib X = Xb G = Gb Y = Yb F = Fb Z = Zb Variables finalesEcuaciones ! Dinámica de la insulina $ I = - n * I + p5 * u1 ! Dinámica del compartimento de insulina remoto $ X = - p2 * X + p3 * I ! Dinámica de la glucosa $ G = - p1 * G - p4 * X * G + p6 * G * Z + p1 * Gb - p6 * Gb * Zb + u2 / volg ! Dinámica de la insulina para la lipogénesis $ Y = - pF2 * Y + pF3 * I ! Ácidos grasos de plasma libre (FFA) dinámica $ F = - p7 * ( F - Fb ) - p8 * Y * F + p9 * ( F * G - Fb * Gb ) + u3 / Volf ! Dinámica de FFA remota $ Z = - k2 * ( Z - Zb ) + k1 * ( F - Fb ) Ecuaciones finales
Ver también
- APOPT
- ASCENDER
- EMSO
- GEKKO
- MATLAB
- Modelica
Referencias
- ^ JD Hedengren; R. Asgharzadeh Shishavan; KM Powell; TF Edgar (2014). "Modelado no lineal, estimación y control predictivo en APMonitor" . Computación e Ingeniería Química . 70 (5): 133-148. doi : 10.1016 / j.compchemeng.2014.04.013 .
- ^ Hedengren, J. (2008). "Una biblioteca de modelos no lineales para la dinámica y el control" (PDF) . Noticias CACHE (Ayudas Informáticas para la Ingeniería Química) .
- ^ Spivey, B. (2009). "Monitoreo del ensuciamiento del proceso mediante modelado de primeros principios y estimación de horizonte móvil". Proc. Conferencia de Aplicaciones de Álgebra Informática (ACA) .
- ^ Ramlal, J. (2007). "Estimación de horizonte móvil para un reactor de polimerización en fase gaseosa industrial" (PDF) . Simposio de IFAC sobre Diseño de Sistemas de Control No Lineal (NOLCOS) . Archivado desde el original (PDF) el 20 de septiembre de 2009 . Consultado el 29 de marzo de 2010 .
- ^ W. Hock y K. Schittkowski, Ejemplos de prueba para códigos de programación no lineal, Notas de conferencias en economía y sistemas matemáticos, vol. 187, Springer 1981.
- ^ Harney, D. (2013). "Evaluación numérica de la estabilidad de puntos estacionarios de ecuaciones algebraicas diferenciales de índice-2: Aplicaciones a flash reactivo y sistemas de destilación reactiva". Computación e Ingeniería Química . 49 : 61–69. doi : 10.1016 / j.compchemeng.2012.09.021 .
- ^ Mojica, J. (2017). "Diseño óptimo combinado de instalaciones a largo plazo y estrategia operativa a corto plazo para inversiones en capacidad de cogeneración" . Energía . 118 : 97-115. doi : 10.1016 / j.energy.2016.12.009 .
- ^ Eaton, A. (2017). "Identificación de modelos en tiempo real utilizando modelos de fidelidad múltiple en perforaciones a presión gestionadas". Computación e Ingeniería Química . 97 : 76–84. doi : 10.1016 / j.compchemeng.2016.11.008 .
- ^ Valderrama, F. (2018). "Un enfoque de control óptimo para la destilación al vapor de aceites esenciales de plantas aromáticas". Computación e Ingeniería Química . 117 : 25–31. doi : 10.1016 / j.compchemeng.2018.05.009 .
- ^ Nielsen, Isak (2012). Modelado y Control de Soldadura por Fricción-Agitación en Recipientes de Cobre de 5 cm de espesor (tesis de maestría). Universidad de Linköping.
- ^ Brower, D. (2012). "Monitoreo de fibra óptica de equipos submarinos" (PDF) . Actas de la OMAE 2012, Río de Janeiro, Brasil .
- ^ Eaton, A. (2015). "Sensores de presión de fibra óptica instalados posteriormente en elevadores de producción submarinos para un control de golpes severo" (PDF) . Actas de OMAE 2015, St. John's, Canadá .
- ^ Powell, K. (2014). "Optimización dinámica de un sistema híbrido solar térmico y de combustibles fósiles". Energía solar . 108 : 210–218. Código bibliográfico : 2014SoEn..108..210P . doi : 10.1016 / j.solener.2014.07.004 .
- ^ Spivey, B. (2010). "Modelado dinámico de restricciones de confiabilidad en pilas de combustible de óxido sólido e implicaciones para el control avanzado" (PDF) . Actas de la reunión anual de AIChE, Salt Lake City, Utah .
- ^ Spivey, B. (2012). "Modelado dinámico, simulación y control predictivo MIMO de una pila de combustible de óxido sólido tubular". Revista de Control de Procesos . 22 (8): 1502-1520. doi : 10.1016 / j.jprocont.2012.01.015 .
- ^ Sol, L. (2013). "Generación de trayectoria óptima utilizando control predictivo de modelos para sistemas de cables remolcados por vía aérea" (PDF) . Revista de Orientación, Control y Dinámica . 37 (2): 525–539. Código bibliográfico : 2014JGCD ... 37..525S . doi : 10,2514 / 1,60820 .
enlaces externos
- Página de inicio de APMonitor
- Curso de optimización dinámica con APMonitor
- Documentación de APMonitor
- APMonitor citas
- Motor de solución en línea con IPOPT
- Comparación de la sintaxis del lenguaje de modelado popular
- Descargue el cliente APM MATLAB , APM Python o APM Julia para APMonitor
- Descarga APMonitor Server (Windows)
- Descarga APMonitor Server (Linux)