APMonitor - APMonitor

APMonitor
APMonitor Logo2.png
Разработчики)APMonitor
Стабильный выпуск
v0.7.6 / 31 января 2018 г. (2018-01-31)
Операционная системаКроссплатформенность
ТипТехнические вычисления
ЛицензияПроприетарный, BSD
Интернет сайтСтраница продукта APMonitor

Расширенный монитор процессов (APMonitor) это язык моделирования для дифференциал алгебраический (DAE ) уравнения.[1] Это бесплатный веб-сервис или локальный сервер для решения представлений физических систем в виде неявных моделей DAE. APMonitor подходит для крупномасштабных задач и решает линейное программирование, целочисленное программирование, нелинейное программирование, нелинейное смешанное целочисленное программирование, динамическое моделирование,[2] оценка подвижного горизонта,[3] и нелинейный прогнозирующий контроль модели.[4] APMonitor не решает проблемы напрямую, а вызывает нелинейное программирование решатели, такие как APOPT, BPOPT, IPOPT, МИНОС, и СНОПТ. APMonitor API предоставляет решателям точные первую и вторую производные непрерывных функций. автоматическая дифференциация И в разреженная матрица форма.

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

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

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

! файл сохранен в качестве HS71.apmПеременные  x1 = 1, >=1, <=5  x2 = 5, >=1, <=5  x3 = 5, >=1, <=5  x4 = 1, >=1, <=5Конец ПеременныеУравнения  свести к минимуму x1*x4*(x1+x2+x3) + x3  x1*x2*x3*x4 > 25  x1^2 + x2^2 + x3^2 + x4^2 = 40Конец Уравнения

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

# Установить APMonitorимпорт пиппип.главный(['установить','APMonitor'])

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

# Пример Python для решения задачи оптимизациииз APMonitor.apm импорт *# Решить проблему оптимизациисоль = apm_solve('hs71', 3)# Доступ к решениюx1 = соль['x1']x2 = соль['x2']

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

DAE с высоким индексом

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

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

Модель маятник  Параметры    м = 1    грамм = 9.81    s = 1  Конец Параметры  Переменные    Икс = 0    у = -s    v = 1    ш = 0    лам = м*(1+s*грамм)/2*s^2  Конец Переменные  Уравнения    Икс^2 + у^2 = s^2    $Икс = v    $у = ш    м*$v = -2*Икс*лам    м*$ш = -м*грамм - 2*у*лам  Конец УравненияКонец Модель

Приложения на языке моделирования APMonitor

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

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

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

Параметры  ! параметры двигателя (двигатель постоянного тока)  v   = 36        ! входное напряжение двигателя (вольт)  rm  = 0.1       ! сопротивление двигателя (Ом)  lm  = 0.01      ! индуктивность двигателя (Генри)  kb  = 6.5e-4    ! постоянная противоэдс (вольт · с / рад)  kt  = 0.1       ! постоянная крутящего момента (Н · м / а)  jm  = 1.0e-4    ! инерция ротора (кг м²)  бм  = 1.0e-5    ! механическое демпфирование (линейная модель трения: bm * dth)  ! параметры нагрузки  jl = 1000*jm    ! инерция нагрузки (в 1000 раз больше ротора)  бл = 1.0e-3     ! демпфирование нагрузки (трение)  k = 1.0e2       ! жесткость пружины для вала двигателя к нагрузке  б = 0.1         ! пружинное демпфирование вала двигателя к нагрузкеКонец ПараметрыПеременные  я     = 0       ! электрический ток двигателя (амперы)  dth_m = 0       ! угловая скорость ротора, иногда называемая омега (радиан / сек)  th_m  = 0       ! угол ротора, тета (радианы)  dth_l = 0       ! угловая скорость колеса (рад / с)  th_l  = 0       ! угол поворота колеса (радианы)Конец ПеременныеУравнения  lm*$я - v = -rm*я -    kb *$th_m  jm*$dth_m =  kt*я - (бм+б)*$th_m - k*th_m +     б *$th_l + k*th_l  jl*$dth_l =             б *$th_m + k*th_m - (б+бл)*$th_l - k*th_l  dth_m = $th_m  dth_l = $th_l Конец Уравнения

Глюкозный ответ инсулинозависимого пациента

! Источник модели:! А. Рой и Р.С. Паркер. «Динамическое моделирование свободных жиров ! Кислоты, глюкоза и инсулин: расширенная минимальная модель »,! Диабетическая технология и терапия 8 (6), 617-626, 2006.Параметры  p1 = 0.068       ! 1 мин  p2 = 0.037       ! 1 мин  p3 = 0.000012    ! 1 мин  p4 = 1.3         ! мл / (мин · мкЕ)  p5 = 0.000568    ! 1 / мл  p6 = 0.00006     ! 1 / (мин · мкмоль)  p7 = 0.03        ! 1 мин  p8 = 4.5         ! мл / (мин · мкЕ)  k1 = 0.02        ! 1 мин  k2 = 0.03        ! 1 мин  pF2 = 0.17       ! 1 мин  pF3 = 0.00001    ! 1 мин  п = 0.142        ! 1 мин  VolG = 117       ! дл  VolF = 11.7      ! L  ! базальные параметры для диабетиков I типа  Ib = 0           ! Инсулин (мкЕд / мл)  Xb = 0           ! Дистанционный инсулин (мкЕд / мл)  Гб = 98          ! Глюкоза крови (мг / дл)  Yb = 0           ! Инсулин для липогенеза (мкЕд / мл)  Fb = 380         ! Свободные жирные кислоты в плазме (мкмоль / л)  Zb = 380         ! Количество свободных жирных кислот (мкмоль / л)  ! скорость инфузии инсулина  u1 = 3           ! мкЕд / мин  ! скорость поглощения глюкозы  u2 = 300         ! мг / мин  ! внешняя липидная инфузия  u3 = 0           ! мг / минКонец параметрыПромежуточные звенья  p9 = 0.00021 * exp(-0.0055*грамм)  ! дл / (мин * мг)Конец Промежуточные звеньяПеременные  я = Ib  Икс = Xb  грамм = Гб  Y = Yb  F = Fb  Z = ZbКонец переменныеУравнения  ! Динамика инсулина  $я = -п*я  + p5*u1  ! Динамика удаленного инсулинового отсека  $Икс = -p2*Икс + p3*я  ! Динамика глюкозы  $грамм = -p1*грамм - p4*Икс*грамм + p6*грамм*Z + p1*Гб - p6*Гб*Zb + u2/VolG  ! Динамика инсулина для липогенеза  $Y = -pF2*Y + pF3*я  ! Динамика бесплазменных жирных кислот (FFA)  $F = -p7*(F-Fb) - p8*Y*F + p9 * (F*грамм-Fb*Гб) + u3/VolF  ! Удаленная динамика FFA  $Z = -k2*(Z-Zb) + k1*(F-Fb)Конец Уравнения

Смотрите также

Рекомендации

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

внешняя ссылка