stringtranslate.com

Monitor de AP

Advanced process monitor (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 entera , programación no lineal , programación entera mixta no lineal, 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, sino que llama a solucionadores de programación no lineal como APOPT , BPOPT, IPOPT , MINOS y SNOPT . La API de APMonitor proporciona derivadas primera y segunda exactas de funciones continuas a los solucionadores a través de diferenciación automática y en forma de matriz dispersa .

Integración de lenguajes de programación

Julia , MATLAB y Python son lenguajes de programación matemática que tienen integración con APMonitor a través de API de servicios web. GEKKO Optimization Suite es una extensión reciente de APMonitor con integración completa con Python. Las interfaces son cajas de herramientas o módulos de optimización integrados 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 entre varios motores de optimización diferentes. El modo de simulación u optimización también se puede configurar para reconfigurar el modelo para simulación dinámica , control predictivo de modelos no lineales , estimación de horizonte móvil o problemas generales en optimización matemática .

Como primer paso para resolver el problema, se expresa un modelo matemático en términos de variables y ecuaciones, como el Problema de referencia de Hock y Schittkowski n.° 71 [5] utilizado para probar el rendimiento de los solucionadores de programación no lineal . Este problema de optimización en particular tiene una función objetivo y está sujeto a la restricción de desigualdad y la 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 de estimación iniciales 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 Fin de  variablesLas ecuaciones  minimizan  x1 * x4 * ( x1 + x2 + x3 )  +  x3 x1 * x2 * x3 * x4  >  25  x1 ^ 2  +  x2 ^ 2  +  x3 ^ 2  +  x4 ^ 2  =  40 Fin de  ecuaciones

El problema se resuelve en Python instalando primero el paquete APMonitor con pip install APMonitor o desde el siguiente código Python.

# Instalar APMonitor import  pip pip . main ([ 'install' , 'APMonitor' ])

Solo es necesario instalar Python una vez por módulo. Una vez instalado 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" ]

Existen interfaces similares 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 preprocesamiento o posprocesamiento significativo de datos o soluciones cuando se resuelven 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 necesaria para devolver una DAE a la forma de EDO se llama índice de diferenciación . Una forma estándar de tratar con DAE de alto índice es diferenciar las ecuaciones para ponerlas en forma de DAE o EDO de índice 1 (ver algoritmo de Pantelides ). Sin embargo, este enfoque puede causar una serie de problemas numéricos indeseables, como la inestabilidad. Si bien la sintaxis es similar a otros lenguajes de modelado como gProms, APMonitor resuelve DAE de cualquier índice sin reordenamiento ni diferenciación. [6] Como ejemplo, a continuación se muestra una 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 EDO (ver ejemplo de péndulo de índice 0 a 3).

Movimiento de péndulo (forma DAE de índice 3)

Péndulo modelo 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 Fin de ecuaciones Fin del modelo                    

Aplicaciones en el lenguaje de modelado APMonitor

Muchos sistemas físicos se expresan de forma natural mediante ecuaciones algebraicas diferenciales . Algunas de ellas son:

A continuación se enumeran los modelos de un motor de corriente continua (CC) y la respuesta de la glucosa en sangre de un paciente dependiente de insulina. Son representativos de ecuaciones diferenciales y algebraicas que se encuentran en muchas ramas de la ciencia y la ingeniería.

Motor de corriente continua (CC)

Parámetros ! parámetros del motor (motor de corriente continua) v = 36 ! voltaje de entrada al motor (voltios) rm = 0,1 ! resistencia del motor (ohmios) lm = 0,01 ! inductancia del motor (henrios) kb = 6,5e-4 ! constante de fuerza contraelectromotriz (voltios·s/rad) kt = 0,1 ! constante de par (N·m/a) jm = 1,0e-4 ! inercia del rotor (kg m<sup>2</sup>) bm = 1,0e-5 ! amortiguamiento mecánico (modelo lineal de fricción: bm * dth)                              ! parámetros de carga jl = 1000 * jm ! inercia de la carga (1000 veces el rotor) bl = 1.0e-3 ! amortiguación de la carga (fricción) k = 1.0e2 ! constante de resorte para que el eje del motor se cargue b = 0.1 ! amortiguación del resorte para que el eje del motor se cargue Parámetros finales                Variables 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 la rueda (radianes) Variables finales                    Ecuaciones 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 Fin de ecuaciones                                     

Respuesta de la glucemia en un paciente dependiente de insulina

! Fuente del modelo: ! A. Roy y RS Parker. “Modelado dinámico de ácidos grasos libres, 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ético 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 plasmático (µmol/L) Zb = 380 ! Ácido graso libre remoto (µmol/L) ! velocidad de infusión de insulina u1 = 3 ! µU/min ! velocidad de captación de glucosa u2 = 300 ! mg/min ! Infusión lipídica externa u3 = 0 ! mg/min Parámetros finales                                                                                                    Intermedios p9 = 0,00021 * exp ( - 0,0055 * G ) ! dL/(min*mg) Intermedios finales      Variables I = Ib X = Xb G = Gb Y = Yb F = Fb Z = Zb Variables finales                  Ecuaciones Dinámica de la insulina $ I = - n * I + p5 * u1 Dinámica del compartimento remoto de insulina $ 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 Dinámica de los ácidos grasos libres (FFA) plasmáticos $ F = - p7 * ( F - Fb ) - p8 * Y * F + p9 * ( F * G - Fb * Gb ) + u3 / VolF Dinámica de los FFA remotos $ Z = - k2 * ( Z - Zb ) + k1 * ( F - Fb ) Fin de las ecuaciones                                                  

Véase también

Referencias

  1. ^ JD Hedengren; R. Asgharzadeh Shishavan; KM Powell; TF Edgar (2014). "Modelado no lineal, estimación y control predictivo en APMonitor". Computers & Chemical Engineering . 70 (5): 133–148. doi :10.1016/j.compchemeng.2014.04.013.
  2. ^ Hedengren, J. (2008). "Una biblioteca de modelos no lineales para dinámica y control" (PDF) . Noticias de CACHE (Computer Aids for Chemical Engineering) .
  3. ^ Spivey, B. (2009). "Monitoreo de la contaminación de procesos mediante modelado de primeros principios y estimación de horizonte móvil". Proc. Conferencia de Aplicaciones del Álgebra Computacional (ACA) .
  4. ^ Ramlal, J. (2007). "Estimación de horizonte móvil para un reactor de polimerización en fase gaseosa industrial" (PDF) . Simposio IFAC sobre diseño de sistemas de control no lineal (NOLCOS) . Archivado desde el original (PDF) el 2009-09-20 . Consultado el 29 de marzo de 2010 .
  5. ^ W. Hock y K. Schittkowski, Ejemplos de pruebas para códigos de programación no lineal, Apuntes de clase sobre economía y sistemas matemáticos, vol. 187, Springer 1981.
  6. ^ Harney, D. (2013). "Evaluación numérica de la estabilidad de puntos estacionarios de ecuaciones diferenciales-algebraicas de índice 2: aplicaciones a sistemas reactivos de destilación y de flash". Computers & Chemical Engineering . 49 : 61–69. doi :10.1016/j.compchemeng.2012.09.021.
  7. ^ Mojica, J. (2017). "Diseño combinado óptimo 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.
  8. ^ Eaton, A. (2017). "Identificación de modelos en tiempo real utilizando modelos de fidelidad múltiple en perforación con presión controlada". Computers & Chemical Engineering . 97 : 76–84. doi :10.1016/j.compchemeng.2016.11.008.
  9. ^ Valderrama, F. (2018). "Un enfoque de control óptimo para la destilación al vapor de aceites esenciales de plantas aromáticas". Computers & Chemical Engineering . 117 : 25–31. doi :10.1016/j.compchemeng.2018.05.009.
  10. ^ Nielsen, Isak (2012). Modelado y control de la soldadura por fricción y agitación en latas de cobre de 5 cm de espesor (tesis de maestría). Universidad de Linköping.
  11. ^ Brower, D. (2012). "Monitoreo de equipos submarinos mediante fibra óptica" (PDF) . Actas de la OMAE 2012, Río de Janeiro, Brasil .
  12. ^ Eaton, A. (2015). "Sensores de presión de fibra óptica instalados posteriormente en tubos ascendentes de producción submarinos para el control de slugging severo" (PDF) . Actas de la OMAE 2015, St. John's, Canadá .
  13. ^ Powell, K. (2014). "Optimización dinámica de un sistema híbrido de energía solar térmica y combustible fósil". Energía solar . 108 : 210–218. Código Bibliográfico :2014SoEn..108..210P. doi :10.1016/j.solener.2014.07.004.
  14. ^ Spivey, B. (2010). "Modelado dinámico de restricciones de confiabilidad en celdas 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 .
  15. ^ Spivey, B. (2012). "Modelado dinámico, simulación y control predictivo MIMO de una celda de combustible tubular de óxido sólido". Journal of Process Control . 22 (8): 1502–1520. doi :10.1016/j.jprocont.2012.01.015.
  16. ^ Sun, L. (2013). "Generación de trayectoria óptima mediante control predictivo de modelos para sistemas de cable remolcados por aire" (PDF) . Revista de guía, control y dinámica . 37 (2): 525–539. Bibcode :2014JGCD...37..525S. doi :10.2514/1.60820.

Enlaces externos