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