Jump to content

APMonitor

APMonitor
Разработчик(и) APMonitor
Стабильная версия
v1.0.1 / 31 января 2022 г. ( 31.01.2022 )
Репозиторий https://github.com/APMonitor/
Операционная система Кросс-платформенный
Тип Технические вычисления
Лицензия Собственный , BSD
Веб-сайт Страница продукта APMonitor

Расширенный монитор процессов (APMonitor) — это язык моделирования дифференциально- алгебраических ( DAE ) уравнений. [1] Это бесплатный веб-сервис или локальный сервер для решения представлений физических систем в виде неявных моделей ДАУ. APMonitor подходит для крупномасштабных задач и решает линейное программирование , целочисленное программирование , нелинейное программирование , нелинейное смешанное целочисленное программирование, динамическое моделирование, [2] оценка движущегося горизонта , [3] и прогнозирующее управление нелинейной моделью . [4] APMonitor не решает проблемы напрямую, а вызывает решатели нелинейного программирования , такие как APOPT , BPOPT , IPOPT , MINOS и SNOPT . API APMonitor предоставляет решателям точные первые и вторые производные непрерывных функций посредством автоматического дифференцирования и в форме разреженной матрицы .

Интеграция языков программирования [ править ]

Julia , MATLAB , Python — это языки математического программирования, которые имеют интеграцию с APMonitor через API веб-сервисов. GEKKO Optimization Suite — это недавнее расширение APMonitor с полной интеграцией Python. Интерфейсы представляют собой встроенные наборы инструментов или модули оптимизации для загрузки и обработки решений задач оптимизации. APMonitor — это объектно-ориентированный язык моделирования и пакет оптимизации, который использует языки программирования для загрузки, запуска и получения решений. Модели и данные APMonitor компилируются во время выполнения и преобразуются в объекты, которые решаются с помощью механизма оптимизации, такого как APOPT или IPOPT . Механизм оптимизации не указан в APMonitor, что позволяет отключить несколько различных механизмов оптимизации. Режим моделирования или оптимизации также можно настроить для перенастройки модели для динамического моделирования нелинейной , управления с прогнозированием модели , оценки движущегося горизонта или общих задач математической оптимизации .

В качестве первого шага в решении проблемы математическая модель выражается в терминах переменных и уравнений, таких как контрольная задача Хока и Шитковского № 71. [5] используется для проверки производительности решателей нелинейного программирования . Эта конкретная задача оптимизации имеет целевую функцию и при условии ограничения неравенства и ограничение равенства . Четыре переменные должны находиться между нижней границей 1 и верхней границей 5. Начальные предполагаемые значения: . Эта математическая модель переведена на язык моделирования APMonitor в следующем текстовом файле.

! file saved as hs71.apm
Variables
  x1 = 1, >=1, <=5
  x2 = 5, >=1, <=5
  x3 = 5, >=1, <=5
  x4 = 1, >=1, <=5
End Variables

Equations
  minimize x1*x4*(x1+x2+x3) + x3

  x1*x2*x3*x4 > 25
  x1^2 + x2^2 + x3^2 + x4^2 = 40
End Equations

Затем проблема решается на Python путем первой установки пакета APMonitor с помощью pip install APMonitor или с помощью следующего кода Python.

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

Установка Python требуется только один раз для любого модуля. После установки пакета APMonitor он импортируется, и функция apm_solve решает проблему оптимизации. Решение возвращается на язык программирования для дальнейшей обработки и анализа.

# Python example for solving an optimization problem
from APMonitor.apm import *

# Solve optimization problem
sol = apm_solve("hs71", 3)

# Access solution
x1 = sol["x1"]
x2 = sol["x2"]

Подобные интерфейсы доступны для MATLAB и Julia с небольшими отличиями от приведенного выше синтаксиса. Расширение возможностей языка моделирования важно, поскольку при решении сложных задач оптимизации, динамического моделирования, оценки или управления часто требуется значительная предварительная или постобработка данных или решений.

DAE с высоким индексом [ править ]

Высший порядок производной, необходимый для возврата ДАУ к форме ОДУ, называется индексом дифференцирования . Стандартный способ работы с ДАУ с высоким индексом — дифференцировать уравнения, чтобы представить их в форме ДАУ с индексом 1 или ОДУ (см. Алгоритм Пантелидеса ). Однако этот подход может вызвать ряд нежелательных числовых проблем, таких как нестабильность. Хотя синтаксис аналогичен синтаксису других языков моделирования, таких как gProms, APMonitor решает DAE любого индекса без перестановки или дифференциации. [6] В качестве примера ниже показан ДАУ с индексом 3 для уравнений движения маятника, а перестановки с меньшим индексом могут вернуть эту систему уравнений к форме ОДУ (см. Пример маятника с индексом от 0 до 3 ).

Маятниковое движение (форма DAE индекс-3) [ править ]

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

Приложения на языке моделирования APMonitor [ править ]

Многие физические системы естественным образом выражаются дифференциально-алгебраическими уравнениями . Некоторые из них включают в себя:

Ниже перечислены модели двигателя постоянного тока (DC) и реакции уровня глюкозы в крови у инсулинозависимого пациента. Они представляют собой дифференциальные и алгебраические уравнения, встречающиеся во многих областях науки и техники.

Двигатель постоянного тока (DC) [ править ]

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<sup>2</sup>)
  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 electric 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

пациента инсулинозависимого Реакция глюкозы в крови у

! 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.
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

См. также [ править ]

Ссылки [ править ]

  1. ^ Дж. Д. Хеденгрен; Р. Асгарзаде Шишаван; К.М. Пауэлл; ТФ Эдгар (2014). «Нелинейное моделирование, оценка и прогнозное управление в APMonitor» . Компьютеры и химическая инженерия . 70 (5): 133–148. doi : 10.1016/j.compchemeng.2014.04.013 .
  2. ^ Хеденгрен, Дж. (2008). «Библиотека нелинейных моделей для динамики и управления» (PDF) . CACHE (Компьютерные средства для химического машиностроения) Новости .
  3. ^ Спайви, Б. (2009). «Мониторинг технологического загрязнения с использованием моделирования из первых принципов и оценки перемещения горизонта». Учеб. Конференция «Приложения компьютерной алгебры» (ACA) .
  4. ^ Рамлал, Дж. (2007). «Оценка движущегося горизонта промышленного реактора газофазной полимеризации» (PDF) . Симпозиум IFAC по проектированию нелинейных систем управления (NOLCOS) . Архивировано из оригинала (PDF) 20 сентября 2009 г. Проверено 29 марта 2010 г.
  5. ^ В. Хок и К. Шитковски, Примеры тестирования для кодов нелинейного программирования, Конспекты лекций по экономике и математическим системам, Vol. 187, Спрингер, 1981.
  6. ^ Харни, Д. (2013). «Численная оценка устойчивости стационарных точек дифференциально-алгебраических уравнений индекса 2: приложения к системам реактивного мгновенного испарения и реактивной дистилляции». Компьютеры и химическая инженерия . 49 : 61–69. doi : 10.1016/j.compchemeng.2012.09.021 .
  7. ^ Мохика, Дж. (2017). «Оптимальное сочетание долгосрочного проектирования объектов и краткосрочной эксплуатационной стратегии для инвестиций в мощности ТЭЦ» . Энергия . 118 : 97–115. дои : 10.1016/j.energy.2016.12.009 .
  8. ^ Итон, А. (2017). «Идентификация модели в реальном времени с использованием многоточечных моделей при бурении с регулируемым давлением». Компьютеры и химическая инженерия . 97 : 76–84. doi : 10.1016/j.compchemeng.2016.11.008 .
  9. ^ Вальдеррама, Ф. (2018). «Оптимальный подход к управлению паровой дистилляцией эфирных масел ароматических растений». Компьютеры и химическая инженерия . 117 : 25–31. doi : 10.1016/j.compchemeng.2018.05.009 .
  10. ^ Нильсен, Исак (2012). Моделирование и управление сваркой трением с перемешиванием в медных канистрах толщиной 5 см (магистерская диссертация). Линчепингский университет.
  11. ^ Брауэр, Д. (2012). «Волоконно-оптический мониторинг подводного оборудования» (PDF) . Слушания OMAE 2012, Рио-де-Жанейро, Бразилия .
  12. ^ Итон, А. (2015). «После установки оптоволоконных датчиков давления на подводных добывающих стояках для контроля сильных пробок» (PDF) . Слушания OMAE 2015, Сент-Джонс, Канада .
  13. ^ Пауэлл, К. (2014). «Динамическая оптимизация гибридной солнечной тепловой системы и системы ископаемого топлива». Солнечная энергия . 108 : 210–218. Бибкод : 2014SoEn..108..210P . дои : 10.1016/j.solener.2014.07.004 .
  14. ^ Спайви, Б. (2010). «Динамическое моделирование ограничений надежности твердооксидных топливных элементов и последствия для расширенного управления» (PDF) . Материалы ежегодного собрания AIChE, Солт-Лейк-Сити, Юта .
  15. ^ Спайви, Б. (2012). «Динамическое моделирование, моделирование и прогнозирующее управление MIMO трубчатого твердооксидного топливного элемента». Журнал управления процессами . 22 (8): 1502–1520. дои : 10.1016/j.jprocont.2012.01.015 .
  16. ^ Сан, Л. (2013). «Создание оптимальной траектории с использованием прогнозирующего управления моделью для буксируемых по воздуху кабельных систем» (PDF) . Журнал руководства, контроля и динамики . 37 (2): 525–539. Бибкод : 2014JGCD...37..525S . дои : 10.2514/1.60820 .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0f19d8d3def961c1fd72030dd1bae29e__1713070860
URL1:https://arc.ask3.ru/arc/aa/0f/9e/0f19d8d3def961c1fd72030dd1bae29e.html
Заголовок, (Title) документа по адресу, URL1:
APMonitor - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)