APMonitor - APMonitor
![]() | |
Vývojáři | APMonitor |
---|---|
Stabilní uvolnění | v0.7.6 / 31. ledna 2018 |
Operační systém | Cross-platform |
Typ | Technické výpočty |
Licence | Proprietární, BSD |
webová stránka | Stránka produktu APMonitor |
Pokročilý monitor procesů (APMonitor) je modelovací jazyk pro rozdíl algebraický (DAE ) rovnice.[1] Jedná se o bezplatnou webovou službu nebo místní server pro řešení reprezentací fyzických systémů ve formě implicitních modelů DAE. APMonitor je vhodný pro rozsáhlé problémy a řešení lineární programování, celočíselné programování, nelineární programování, nelineární smíšené celé číslo programování, dynamická simulace,[2] odhad pohyblivého horizontu,[3] a nelineární modelové prediktivní řízení.[4] APMonitor neřeší problémy přímo, ale volá nelineární programování řešitelé jako např APOPT, BPOPT, IPOPT, MINOS, a SNOPT. APMonitor API poskytuje řešitelům přesný první a druhý derivát spojitých funkcí automatické rozlišení a v řídká matice formulář.
Integrace programovacího jazyka
Julie, MATLAB, Krajta jsou matematické programovací jazyky, které mají integraci APMonitor prostřednictvím API webových služeb. The GEKKO Optimization Suite je nedávné rozšíření APMonitor s kompletní integrací Pythonu. Rozhraní jsou vestavěné optimalizační panely nástrojů nebo moduly pro načítání i zpracování řešení optimalizačních problémů. APMonitor je objektově orientovaný modelovací jazyk a optimalizační sada, která se při načítání, spouštění a načítání řešení spoléhá na programovací jazyky. Modely a data APMonitor jsou kompilovány za běhu a překládány do objektů, které jsou řešeny optimalizačním modulem, jako je APOPT nebo IPOPT. APMonitor neurčuje optimalizační modul, což umožňuje vypnutí několika různých optimalizačních modulů. Režim simulace nebo optimalizace je také konfigurovatelný pro překonfigurování modelu pro dynamická simulace, nelineární modelové prediktivní řízení, odhad pohyblivého horizontu nebo obecné problémy v matematická optimalizace.
Jako první krok při řešení problému je matematický model vyjádřen pomocí proměnných a rovnic, jako je například Hock & Schittkowski Benchmark Problem # 71[5] slouží k testování výkonu nelineární programování řešitelé. Tento konkrétní problém s optimalizací má objektivní funkci a podléhá omezení nerovnosti a omezení rovnosti . Čtyři proměnné musí být mezi dolní mezí 1 a horní mezí 5. Počáteční hodnoty hádání jsou . Tento matematický model je přeložen do modelovacího jazyka APMonitor v následujícím textovém souboru.
! soubor uložené tak jako hs71.apmProměnné x1 = 1, >=1, <=5 x2 = 5, >=1, <=5 x3 = 5, >=1, <=5 x4 = 1, >=1, <=5Konec ProměnnéRovnice minimalizovat x1*x4*(x1+x2+x3) + x3 x1*x2*x3*x4 > 25 x1^2 + x2^2 + x3^2 + x4^2 = 40Konec Rovnice
Problém je pak vyřešen v Pythonu nejprve instalací balíčku APMonitor s pip nainstalujte APMonitor nebo z následujícího kódu Pythonu.
# Nainstalujte APMonitorimport pippip.hlavní(['Nainstalujte','APMonitor'])
Instalace Pythonu je u libovolného modulu vyžadována pouze jednou. Jakmile je balíček APMonitor nainstalován, naimportuje se a apm_solve funkce řeší problém s optimalizací. Řešení je vráceno do programovacího jazyka pro další zpracování a analýzu.
# Příklad Pythonu pro řešení problému s optimalizacíz APMonitor.apm import *# Vyřešte problém s optimalizacísol = apm_solve('hs71', 3)# Přístupové řešeníx1 = sol['x1']x2 = sol['x2']
Podobná rozhraní jsou k dispozici pro MATLAB a Julie s malými rozdíly od výše uvedené syntaxe. Rozšíření schopností modelovacího jazyka je důležité, protože při řešení složitých problémů s optimalizací, dynamickou simulací, odhadem nebo řízením je často nutné výrazné zpracování dat nebo řešení před nebo po zpracování.
DAE s vysokým indexem
Nejvyšší řád derivace, který je nezbytný pro vrácení formuláře DAE do ODE, se nazývá index diferenciace. Standardní způsob, jak zacházet s DAE s vysokým indexem, je diferencovat rovnice a dát je do formy DAE nebo ODE indexu 1 (viz Algoritmus Pantelides ). Tento přístup však může způsobit řadu nežádoucích číselných problémů, jako je nestabilita. Zatímco syntaxe je podobná jako u jiných modelovacích jazyků, jako je gProms, APMonitor řeší DAE libovolného indexu bez přeskupení nebo diferenciace.[6] Jako příklad je níže uveden index 3 DAE pro rovnice pohybu kyvadla a nižší indexové přesmyky mohou tento systém rovnic vrátit do formy ODE (viz Index 0 až 3 Příklad kyvadla ).
Kyvadlové pohyby (formulář DAE index-3)
Modelka kyvadlo Parametry m = 1 G = 9.81 s = 1 Konec Parametry Proměnné X = 0 y = -s proti = 1 w = 0 lam = m*(1+s*G)/2*s^2 Konec Proměnné Rovnice X^2 + y^2 = s^2 $X = proti $y = w m*$proti = -2*X*lam m*$w = -m*G - 2*y*lam Konec RovniceKonec Modelka
Aplikace v modelovacím jazyce APMonitor
Mnoho fyzických systémů je přirozeně vyjádřeno diferenciální algebraická rovnice. Mezi ně patří:
- buněčné kultury
- chemické reaktory
- kogenerace (energie a teplo)[7]
- destilační kolony
- automatizace vrtání[8]
- esenciální olej parní destilace[9]
- třecí svařování[10]
- tvorba hydrátu v hlubinných potrubích[11]
- šíření infekčních chorob
- oscilátory
- přísná kontrola tlučení[12]
- výroba solární tepelné energie[13]
- palivové články na tuhý oxid[14][15]
- simulace startu raketoplánu
- Bezpilotní vzdušné prostředky (UAV)[16]
Níže jsou uvedeny modely motoru pro stejnosměrný proud (DC) a reakce glukózy v krvi pacienta závislého na inzulínu. Představují diferenciální a algebraické rovnice, se kterými se setkáváme v mnoha oborech vědy a techniky.
Stejnosměrný motor
Parametry ! parametry motoru (stejnosměrný motor) proti = 36 ! vstupní napětí do motoru (volty) rm = 0.1 ! odpor motoru (ohmy) lm = 0.01 ! indukčnost motoru (Henrys) kb = 6,5e-4 ! konstanta zpětného emf (volt · s / rad) kt = 0.1 ! momentová konstanta (N · m / a) jm = 1,0e-4 ! setrvačnost rotoru (kg m²) bm = 1,0e-5 ! mechanické tlumení (lineární model tření: bm * dth) ! parametry zatížení jl = 1000*jm ! setrvačnost zátěže (1000násobek rotoru) bl = 1,0e-3 ! tlumení zatížení (tření) k = 1,0e2 ! konstanta pružiny pro zatížení hřídele motoru b = 0.1 ! tlumení pružiny pro zatížení hřídele motoruKonec ParametryProměnné i = 0 ! elektrický proud motoru (ampéry) dth_m = 0 ! úhlová rychlost rotoru, někdy nazývaná omega (radiány / s) th_m = 0 ! úhel rotoru, theta (radiány) dth_l = 0 ! úhlová rychlost kola (rad / s) th_l = 0 ! úhel kola (radiány)Konec ProměnnéRovnice lm*$i - proti = -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 Konec Rovnice
Reakce glukózy v krvi pacienta závislého na inzulínu
! Zdroj modelu:! A. Roy a R.S. Parker. "Dynamické modelování Free Fatty." ! Kyseliny, glukóza a inzulín: rozšířený minimální model, “! Diabetes Technology and Therapeutics 8 (6), 617-626, 2006.Parametry 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 ! bazální parametry pro diabetiky typu I. Ib = 0 ! Inzulin (µU / ml) Xb = 0 ! Vzdálený inzulín (µU / ml) GB = 98 ! Krevní glukóza (mg / dL) Yb = 0 ! Inzulin pro lipogenezi (µU / ml) Fb = 380 ! Plazmová volná mastná kyselina (µmol / L) Zb = 380 ! Vzdálená volná mastná kyselina (µmol / L) ! rychlost infuze inzulínu u1 = 3 ! µU / min ! rychlost absorpce glukózy u2 = 300 ! mg / min ! infuze vnějších lipidů u3 = 0 ! mg / minKonec parametryMeziprodukty p9 = 0.00021 * exp(-0.0055*G) ! dL / (min * mg)Konec MeziproduktyProměnné Já = Ib X = Xb G = GB Y = Yb F = Fb Z = ZbKonec proměnnéRovnice ! Dynamika inzulínu $Já = -n*Já + p5*u1 ! Dálková dynamika prostoru pro inzulín $X = -p2*X + p3*Já ! Dynamika glukózy $G = -p1*G - p4*X*G + p6*G*Z + p1*GB - p6*GB*Zb + u2/VolG ! Dynamika inzulínu pro lipogenezi $Y = -pF2*Y + pF3*Já ! Dynamika mastných kyselin bez plazmy (FFA) $F = -p7*(F-Fb) - p8*Y*F + p9 * (F*G-Fb*GB) + u3/VolF ! Dálková dynamika FFA $Z = -k2*(Z-Zb) + k1*(F-Fb)Konec Rovnice
Viz také
Reference
- ^ J.D. Hedengren; R. Asgharzadeh Shishavan; K.M. Powell; T.F. Edgar (2014). „Nelineární modelování, odhad a prediktivní řízení v APMonitoru“. Počítače a chemické inženýrství. 70 (5): 133–148. doi:10.1016 / j.compchemeng.2014.04.013.
- ^ Hedengren, J. (2008). "Nelineární knihovna modelů pro dynamiku a řízení" (PDF). Novinky CACHE (Computer Aids for Chemical Engineering).
- ^ Spivey, B. (2009). "Monitorování znečištění procesu pomocí modelování prvních principů a posouvání odhadu horizontu". Proc. Konference o aplikaci počítačové algebry (ACA).
- ^ Ramlal, J. (2007). „Posouvání horizontu pro průmyslový polymerační reaktor na plynnou fázi“ (PDF). Symposium IFAC o návrhu nelineárních řídicích systémů (NOLCOS). Archivovány od originál (PDF) dne 2009-09-20. Citováno 2010-03-29.
- ^ W. Hock a K. Schittkowski, Příklady testů pro nelineární programovací kódy, Poznámky k přednášce z ekonomie a matematických systémů, sv. 187, Springer 1981.
- ^ Harney, D. (2013). „Numerické vyhodnocení stability stacionárních bodů diferenciálně-algebraických rovnic indexu 2: Aplikace pro reaktivní bleskové a reaktivní destilační systémy“. Počítače a chemické inženýrství. 49: 61–69. doi:10.1016 / j.compchemeng.2012.09.021.
- ^ Mojica, J. (2017). „Optimální kombinovaný dlouhodobý design zařízení a krátkodobá provozní strategie pro investice do KVET“. Energie. 118: 97–115. doi:10.1016 / j.energy.2016.12.009.
- ^ Eaton, A. (2017). "Identifikace modelu v reálném čase pomocí více věrných modelů při řízeném tlakovém vrtání". Počítače a chemické inženýrství. 97: 76–84. doi:10.1016 / j.compchemeng.2016.11.008.
- ^ Valderrama, F. (2018). „Optimální kontrolní přístup k destilaci éterických olejů z aromatických rostlin parou“. Počítače a chemické inženýrství. 117: 25–31. doi:10.1016 / j.compchemeng.2018.05.009.
- ^ Nielsen, Isak (2012). Modelování a řízení svařování třením za míchání v měděných kanystrech o tloušťce 5 cm (Magisterská práce). Linköpingská univerzita.
- ^ Brower, D. (2012). „Monitorování podmořského zařízení optickými vlákny“ (PDF). Sborník OMAE 2012, Rio de Janeiro, Brazílie.
- ^ Eaton, A. (2015). „Poinstalační snímače tlaku z optických vláken na stoupačkách podmořské produkce pro silnou kontrolu tlučení“ (PDF). OMAE 2015 Proceedings, St. John's, Kanada.
- ^ Powell, K. (2014). "Dynamická optimalizace hybridního solárního tepelného systému a systému fosilních paliv". Solární energie. 108: 210–218. Bibcode:2014SoEn..108..210P. doi:10.1016 / j.solener.2014.07.004.
- ^ Spivey, B. (2010). „Dynamické modelování omezení spolehlivosti palivových článků na tuhý oxid a důsledky pro pokročilé řízení“ (PDF). AIChE Annual Meeting Proceedings, Salt Lake City, Utah.
- ^ Spivey, B. (2012). "Dynamické modelování, simulace a MIMO prediktivní řízení trubkového palivového článku z tuhého oxidu". Journal of Process Control. 22 (8): 1502–1520. doi:10.1016 / j.jprocont.2012.01.015.
- ^ Sun, L. (2013). „Optimální generování trajektorie pomocí prediktivního řízení modelu pro letecky tažené kabelové systémy“ (PDF). Journal of Guidance, Control, and Dynamics. 37 (2): 525–539. Bibcode:2014JGCD ... 37..525S. doi:10.2514/1.60820.
externí odkazy
- Domovská stránka APMonitor
- Kurz dynamické optimalizace s APMonitor
- Dokumentace APMonitor
- Citace APMonitor
- Online řešení engine s IPOPT
- Srovnání populární syntaxe modelovacího jazyka
- Stažení APM MATLAB, APM Python nebo APM Julia klient pro APMonitor
- Stažení Server APMonitor (Windows)
- Stažení Server APMonitor (Linux)