AP 모니터
APMonitor![]() | |
개발자 | AP 모니터 |
---|---|
안정된 릴리스 | v1.0.1 / 2022년 1월 31일 ( |
저장소 | https://github.com/APMonitor/ |
운영 체제 | 크로스 플랫폼 |
유형 | 테크니컬 컴퓨팅 |
면허증. | 독자 사양, BSD |
웹 사이트 | APMonitor 제품 페이지 |
Advanced Process Monitor(APMonitor)는 미분 대수([1]DAE) 방정식의 모델링 언어입니다.이는 암묵적인 DAE 모델의 형태로 물리적 시스템의 표현을 해결하기 위한 무료 웹 서비스 또는 로컬 서버입니다.APMonitor는 대규모 문제에 적합하며 선형 프로그래밍, 정수 프로그래밍, 비선형 프로그래밍, 비선형 혼합 정수 프로그래밍, 동적 시뮬레이션,[2] 이동 수평선 [3]추정 및 비선형 모델 예측 [4]제어를 해결합니다.APMonitor는 문제를 직접 해결하지는 않지만 APOPT, BPOPT, IPOPT, MINOS, SNOPT 등의 비선형 프로그래밍 솔버를 호출합니다.APMonitor API는 자동 미분을 통해 sparse matrix 형태로 Solver에 정확한 제1 및 제2의 연속 함수를 제공합니다.
프로그래밍 언어 통합
Julia, MATLAB, Python은 웹 서비스 API를 통해 APMonitor를 통합하는 수학 프로그래밍 언어입니다.GEKKO Optimization Suite는 완전한 Python 통합을 갖춘 APMonitor의 최근 확장판입니다.인터페이스는 최적화 문제의 로드 솔루션과 처리 솔루션 모두를 위한 내장 최적화 도구 상자 또는 모듈입니다.APMonitor는 객체 지향 모델링 언어 및 최적화 스위트로, 솔루션의 로드, 실행 및 취득에 프로그래밍 언어에 의존합니다.APMonitor 모델과 데이터는 런타임에 컴파일되어 APOPT나 IPOPT 등의 최적화 엔진에 의해 해결되는 객체로 변환됩니다.최적화 엔진은 APMonitor에 의해 지정되지 않으므로 여러 다른 최적화 엔진을 전환할 수 있습니다.시뮬레이션 또는 최적화 모드는 동적 시뮬레이션, 비선형 모델 예측 제어, 이동 수평선 추정 또는 수학적 최적화의 일반적인 문제를 위해 모델을 재구성하도록 구성할 수도 있습니다.
문제를 해결하기 위한 첫 번째 단계로 비선형 프로그래밍 솔버의 성능을 테스트하기 위해 사용되는 Hock & Schittkowski 벤치마크 문제 #71과[5] 같은 변수 및 방정식으로 수학 모델을 표현한다.이 특정 최적화 문제에는 목적 x x ( + + ) + ( \ _ { \ \ { \ ; x{ } ( x _} + x _ {2 x _ {3} +x _ _ { { 3 } )이 x _ { 3}는 x 입니다. 및 동등 x + + 2 + 2 {{ + {}네 개의 변수는 하한 1과 상한 5 사이여야 합니다. 추측 값은 , x , 3 , 4 { style 1}= 5,3}= 5}=1 입니다.이 수학적 모델은 다음 텍스트 파일에서 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에서 pip install APMonitor를 사용하여 APMonitor 패키지를 설치하거나 다음 Python 코드를 사용하여 문제를 해결합니다.
# APMonitor 설치 수입품 삐삐 삐삐.주된(['설치','APMonitor'])
Python 설치는 모든 모듈에 대해 한 번만 필요합니다.APMonitor 패키지가 설치되면 Import되고 apm_solve 함수로 최적화 문제가 해결됩니다.솔루션은 추가 처리 및 분석을 위해 프로그래밍 언어로 반환됩니다.
# 최적화 문제를 해결하기 위한 Python 예제 부터 APMonitor.apm 수입품 * # 최적화 문제 해결 솔 = apm_module('hs71', 3) # 솔루션 접근 x1 = 솔['x1'] x2 = 솔['x2']
MATLAB 및 Julia에서도 동일한 인터페이스를 사용할 수 있지만 위의 구문과 약간의 차이가 있습니다.복잡한 최적화, 동적 시뮬레이션, 추정 또는 제어 문제를 해결할 때 데이터 또는 솔루션의 상당한 사전 또는 후처리가 필요하기 때문에 모델링 언어의 기능을 확장하는 것이 중요합니다.
고인덱스 DAE
DAE를 ODE 형식으로 되돌리는 데 필요한 파생상품의 최고 차수를 미분 지수라고 합니다.고지수 DAE를 처리하는 표준 방법은 방정식을 미분하여 지수 1 DAE 또는 ODE 형식으로 만드는 것입니다(판텔리데스 알고리즘 참조).그러나 이 접근방식은 불안정성과 같은 바람직하지 않은 수치적 문제를 야기할 수 있다.구문은 gProms 등 다른 모델링 언어와 비슷하지만 APMonitor는 정렬이나 구별 [6]없이 인덱스의 DAE를 해결합니다.예를 들어, 진자 운동 방정식에 대한 지수 3 DAE는 아래에 나와 있으며, 지수 재배열은 이 방정식 시스템을 ODE 형태로 되돌릴 수 있다(지수 0 - 3 진자 예 참조).
진자 운동(지수 3 DAE 형식)
모델 추 파라미터 m = 1 g = 9.81 s = 1 끝.파라미터 변수 x = 0 y = -s v = 1 w = 0 램 = m*(1+s*g)/2*s^2 끝.변수 방정식 x^2 + y^2 = s^2 $x = v $y = w m*$v = -2*x*램 m*$w = -m*g - 2*y*램 끝.방정식 끝.모델
APMonitor 모델링 언어 응용 프로그램
많은 물리계는 자연히 미분 대수 방정식으로 표현된다.그 중 몇 가지는 다음과 같습니다.
- 세포 배양
- 화학 원자로
- 열병합발전(전력 및 열)[7]
- 증류탑
- 시추 자동화[8]
- 정유 증기 증류[9]
- 마찰 교반 용접[10]
- 심해[11] 파이프라인에서의 수화물 생성
- 전염병 확산
- 발진기
- 엄중한[12] 장타 제어
- 태양열 에너지 생산[13]
- 고체 산화물 연료 전지[14][15]
- 우주왕복선 발사 시뮬레이션
- 무인항공기(UAV)[16]
인슐린 의존 환자의 직류(DC) 모터 및 혈당 반응 모델은 다음과 같습니다.그것들은 과학과 공학의 많은 분야에서 마주치는 미분 방정식과 대수 방정식의 대표적이다.
직류(DC) 모터
파라미터 ! 모터 파라미터(DC모터) v = 36 ! 모터에 대한 입력 전압(전압 rm = 0.1 ! 모터 저항(표준) lm = 0.01 ! 모터 인덕턴스(motor in덕턴스) kb = 6.5e-4 ! back emf constant (rad·s/rad) kt = 0.1 ! 토크 상수(N·m/a) jm = 1.0e-4 ! 로터 관성(kg m²) bm = 1.0e-5 ! 기계적 감쇠(마찰의 선형 모델: bm * dth) ! 로드 파라미터 jl = 1000*jm ! 부하 관성(로터의 1000배) 흐릿하다 = 1.0e-3 ! 부하 감쇠(표준) k = 1.0e2 ! 모터 샤프트의 부하를 위한 스프링 상수 b = 0.1 ! 모터 샤프트 부하를 위한 스프링 댐핑 끝.파라미터 변수 i = 0 ! 모터 전류(암페어) dth_m = 0 ! 로터 각속도(오메가라고 불리기도 함(라디안/초) th = 0 ! 로터 각도, 세타(라디안) dth_l = 0 ! 휠 각속도(rad/s) 일 = 0 ! 휠 각도(라디안) 끝.변수 방정식 lm*$i - v = -rm*i - kb *$th jm*$dth_m = kt*i - (bm+b)*$th - k*th + b *$일 + k*일 jl*$dth_l = b *$th + k*th - (b+흐릿하다)*$일 - k*일 dth_m = $th dth_l = $일 끝.방정식
인슐린 의존 환자의 혈당 반응
! 모델 소스: A. 로이와 R.S. 파커."자유지방의 동적 모델링 ! 산, 포도당 및 인슐린:최소 모델 확장" ! 당뇨병 기술 및 치료 8(6), 617-626, 2006. 파라미터 p1 = 0.068 ! 1/분 p2 = 0.037 ! 1/분 p3 = 0.000012 ! 1/분 p4 = 1.3 ! mL/(min·µU) p5 = 0.000568 ! 1/mL p6 = 0.00006 ! 1/(최소·최소) p7 = 0.03 ! 1/분 p8 = 4.5 ! mL/(min·µU) k1 = 0.02 ! 1/분 k2 = 0.03 ! 1/분 pF2 = 0.17 ! 1/분 pF3 = 0.00001 ! 1/분 n = 0.142 ! 1/분 VolG = 117 ! dL VolF = 11.7 ! L ! Type-I 당뇨병의 기본 파라미터 Ib = 0 ! 인슐린(μU/mL) Xb = 0 ! 리모트 인슐린 (μU/mL) 기가비트 = 98 ! 혈당(mg/dL) YB = 0 ! 지방형성을 위한 인슐린(δU/mL) FB = 380 ! 혈장프리지방산(μmol/L) Zb = 380 ! 리모트 프리 지방산 (μmol/L) ! 인슐린 주입률 u1 = 3 ! µU/min ! 포도당 흡수율 u2 = 300 ! mg/min ! 외부 지질 주입 u3 = 0 ! mg/min 끝.파라미터 중급자 p9 = 0.00021 * exp(-0.0055*G) ! dL/(min*mg) 끝.중급자 변수 I = Ib X = Xb G = 기가비트 Y = YB F = FB Z = Zb 끝.변수 방정식 ! 인슐린 역학 $I = -n*I + p5*u1 ! 리모트 인슐린 컴파트먼트 다이내믹스 $X = -p2*X + p3*I ! 포도당 역학 $G = -p1*G - p4*X*G + p6*G*Z + p1*기가비트 - p6*기가비트*Zb + u2/VolG 지방 형성을 위한 인슐린 역학 $Y = -pF2*Y + pF3*I ! 무혈장지방산(FFA) 동역학 $F = -p7*(F-FB) - p8*Y*F + p9 * (F*G-FB*기가비트) + u3/VolF ! 리모트 FFA 다이내믹스 $Z = -k2*(Z-Zb) + k1*(F-FB) 끝.방정식
「 」를 참조해 주세요.
레퍼런스
- ^ J.D. Hedengren; R. Asgharzadeh Shishavan; K.M. Powell; T.F. Edgar (2014). "Nonlinear modeling, estimation and predictive control in APMonitor". Computers & Chemical Engineering. 70 (5): 133–148. doi:10.1016/j.compchemeng.2014.04.013.
- ^ Hedengren, J. (2008). "A Nonlinear Model Library for Dynamics and Control" (PDF). CACHE (Computer Aids for Chemical Engineering) News.
- ^ Spivey, B. (2009). "Monitoring of Process Fouling Using First-Principles Modeling and Moving Horizon Estimation". Proc. Applications of Computer Algebra (ACA) Conference.
- ^ Ramlal, J. (2007). "Moving Horizon Estimation for an Industrial Gas Phase Polymerization Reactor" (PDF). IFAC Symposium on Nonlinear Control Systems Design (NOLCOS). Archived from the original (PDF) on 2009-09-20. Retrieved 2010-03-29.
- ^ W. Hock과 K.Schittkowski, 비선형 프로그래밍 코드에 대한 테스트 예제, 경제 및 수학 시스템 강의 노트, Vol. 187, Springer 1981.
- ^ Harney, D. (2013). "Numerical evaluation of the stability of stationary points of index-2 differential-algebraic equations: Applications to reactive flash and reactive distillation systems". Computers & Chemical Engineering. 49: 61–69. doi:10.1016/j.compchemeng.2012.09.021.
- ^ Mojica, J. (2017). "Optimal combined long-term facility design and short-term operational strategy for CHP capacity investments". Energy. 118: 97–115. doi:10.1016/j.energy.2016.12.009.
- ^ Eaton, A. (2017). "Real time model identification using multi-fidelity models in managed pressure drilling". Computers & Chemical Engineering. 97: 76–84. doi:10.1016/j.compchemeng.2016.11.008.
- ^ Valderrama, F. (2018). "An optimal control approach to steam distillation of essential oils from aromatic plants". Computers & Chemical Engineering. 117: 25–31. doi:10.1016/j.compchemeng.2018.05.009.
- ^ Nielsen, Isak (2012). Modeling and Control of Friction Stir Welding in 5 cm thick Copper Canisters (M.Sc. thesis). Linköping University.
- ^ Brower, D. (2012). "Fiber Optic Monitoring of Subsea Equipment" (PDF). OMAE 2012 Proceedings, Rio de Janeiro, Brazil.
- ^ Eaton, A. (2015). "Post-installed fiber optic pressure sensors on subsea production risers for severe slugging control" (PDF). OMAE 2015 Proceedings, St. John's, Canada.
- ^ Powell, K. (2014). "Dynamic Optimization of a Hybrid Solar Thermal and Fossil Fuel System". Solar Energy. 108: 210–218. Bibcode:2014SoEn..108..210P. doi:10.1016/j.solener.2014.07.004.
- ^ Spivey, B. (2010). "Dynamic Modeling of Reliability Constraints in Solid Oxide Fuel Cells and Implications for Advanced Control" (PDF). AIChE Annual Meeting Proceedings, Salt Lake City, Utah.
- ^ Spivey, B. (2012). "Dynamic modeling, simulation, and MIMO predictive control of a tubular solid oxide fuel cell". Journal of Process Control. 22 (8): 1502–1520. doi:10.1016/j.jprocont.2012.01.015.
- ^ Sun, L. (2013). "Optimal Trajectory Generation using Model Predictive Control for Aerially Towed Cable Systems" (PDF). Journal of Guidance, Control, and Dynamics. 37 (2): 525–539. Bibcode:2014JGCD...37..525S. doi:10.2514/1.60820.
외부 링크
- APMonitor 홈페이지
- APMonitor를 사용한 동적 최적화 코스
- APMonitor 매뉴얼
- APMonitor 인용문
- IPOPT를 탑재한 온라인 솔루션 엔진
- 일반적인 모델링 언어 구문 비교
- APM MATLAB, APM Python 또는 APM Julia 클라이언트 for APM Monitor 다운로드
- APMonitor 서버 다운로드(Windows)
- APMonitor Server(Linux) 다운로드