실행하다
PROPT개발자 | Tomlab Optimization Inc. |
---|---|
안정된 릴리스 | 7.8 / 2011년 12월 16일 ( |
운영 체제 | TOMLAB - OS 지원 |
유형 | 테크니컬 컴퓨팅 |
면허증. | 독자 사양 |
웹 사이트 | PROPT 제품 페이지 |
PROPT[1] MATLAB Optimal Control Software는 적용된 최적 제어(ODE 또는 DAE 공식화) 및 파라미터 추정 문제를 해결하기 위한 신세대 플랫폼입니다.
이 플랫폼은 2008년 MATLAB 프로그래밍 콘테스트 우승자인 Per Rutquist에 의해 개발되었습니다.최신 버전은 자동 스케일링 모듈뿐만 아니라 이진 및 정수 변수를 지원합니다.
묘사
PROPT는 매우 복잡한 최적 제어 문제를 발생시키기 위해 TomSym 모델링 클래스를 기반으로 구축된 모델링, 컴파일 및 솔버 엔진입니다.PROPT는 최적의 제어 문제를 해결하기 위해 의사 스펙트럼 콜로케이션 방법(가우스 또는 체비셰프 포인트 포함)을 사용합니다.즉, 솔루션이 다항식의 형태를 취하며, 이 다항식은 DAE와 코로케이션 포인트의 경로 제약 조건을 충족합니다.
일반적으로 PROPT에는 다음과 같은 주요 기능이 있습니다.
- 궤적 최적화 문제에 대한 해결책을 근사하는 데 사용되는 다항식의 미분 및 적분에 사용되는 상수 행렬의 계산입니다.
- TOMLAB의 비선형 프로그래밍 솔버에 되는 비용 함수 {\ f 및 제약 c {\ c에 대한 사용자 제공 식을 MATLAB 코드로 변환하는 소스 변환.소스 변환 패키지 TomSym은 1차 및 2차 파생 모델을 자동으로 생성합니다.
- 문제 해결을 위한 다양한 정보를 표시하고 계산하는 기능.
- 다음의 자동 검출:
- 선형 및 2차 목표입니다.
- 단순한 경계, 선형 및 비선형 제약 조건.
- 최적화되지 않은 식입니다.
- 원활한[2](하이브리드) 최적 제어 문제에 대한 통합 지원
- 어려운 공간 관련 문제를 자동으로 확장하기 위한 모듈입니다.
- 이진수 및 정수 변수, 컨트롤 또는 상태 지원.
모델링.
PROPT 시스템은 TomSym 심볼릭 소스 변환 엔진을 사용하여 최적의 제어 문제를 모델링합니다.독립 변수, 종속 함수, 스칼라 및 상수 파라미터를 정의할 수 있습니다.
탐스 TF 탐스 t p = TomPhase('p', t, 0, TF, 30); x0 = {TF == 20}; 박스 = {10 <=> TF <=> 40}; 탐스 z1 박스 = {박스; 0 <=> z1 <=> 500}; x0 = {x0; z1 == 0}; ki0 = [1e3; 1e7; 10; 1e-3];
상태 및 제어
상태와 제어는 단계 간에 상태가 연속적이어야 한다는 점에서만 다릅니다.
Tom States(tomStates) x1 x0 = {코리케이트({x1 == 0})}; 톰 컨트롤 u1 박스 = {-2 <=> 조합하다(u1) <=> 1}; x0 = {x0; 조합하다(u1 == -0.01)};
경계, 경로, 이벤트 및 적분 제약
다양한 경계, 경로, 이벤트 및 적분 제약 조건을 다음에 나타냅니다.
cbnd = 초기의(x1 == 1); x1의 시작점(%) cbnd = 최종(x1 == 1); x1의 엔드 포인트(%) cbnd = 최종(x2 == 2); x2의 엔드 포인트(%) 패스 = 조합하다(x3 >= 0.5); x3에 대한 경로 제약(%) 인시 = {통합하다(x2) == 1}; x2의 적분 제약 조건(%) cbnd = 최종(x3 >= 0.5); x3의 최종 이벤트 제약 조건(%) cbnd = 초기의(x1 <=> 2.0); 초기 이벤트 제약 조건(%) x1
단상 최적 제어 예시
반데르폴 발진기 [3]
최소화:
대상:
PROPT의 문제를 해결하려면 다음 코드를 사용할 수 있습니다(콜리케이션 포인트 60개 포함).
탐스 t p = TomPhase('p', t, 0, 5, 60); setPhase(p); Tom States(tomStates) x1 x2 x3 톰 컨트롤 u 초기 추정치(%) x0 = {코리케이트({x1 == 0; x2 == 1; x3 == 0}) 조합하다(u == -0.01)}; 박스 제약 비율(%) 박스 = {-10 <=> 코리케이트(x1) <=> 10 -10 <=> 코리케이트(x2) <=> 10 -10 <=> 코리케이트(x3) <=> 10 -0.3 <=> 조합하다(u) <=> 1}; % 경계 제약 cbnd = 초기의({x1 == 0; x2 == 1; x3 == 0}); ODE 및 경로 제약 비율(%) 인식하다 = 조합하다({점(x1) == (1-x2.^2).*x1-x2+u 점(x2) == x1; 점(x3) == x1.^2+x2.^2+u.^2}); 목표(%) 객관적으로 = 최종(x3); % 문제 해결 옵션들 = 구조; 옵션들.이름. = '반 데르 폴'; 해결 방법 = 에즈솔루브(객관적으로, {박스, cbnd, 인식하다}, x0, 옵션들);
다상 최적 제어 예시
자유종료시간 및 위상편이가 결정되지 않은 1차원 로켓
최소화:
대상:
이 문제는 PROPT를 사용하여 다음 두 단계를 생성하고 연결함으로써 해결됩니다.
탐스 t 탐스 잘라내다 tp2 p1 = TomPhase('p1', t, 0, 잘라내다, 20); p2 = TomPhase('p2', t, 잘라내다, tp2, 20); TF = 잘라내다+tp2; x1p1 = 톰스테이트(p1,'x1p1'); x2p1 = 톰스테이트(p1,'x2p1'); x1p2 = 톰스테이트(p2,'x1p2'); x2p2 = 톰스테이트(p2,'x2p2'); 초기 추정치(%) x0 = {잘라내다==10 TF==15 코리케이트(p1,{x1p1 == 50*잘라내다/10;x2p1 == 0;}) 코리케이트(p2,{x1p2 == 50+50*t/100;x2p2 == 0;})}; 박스 제약 비율(%) 박스 = { 1 <=> 잘라내다 <=> TF-0.00001 TF <=> 100 0 <=> 코리케이트(p1,x1p1) 0 <=> 코리케이트(p1,x2p1) 0 <=> 코리케이트(p2,x1p2) 0 <=> 코리케이트(p2,x2p2)}; % 경계 제약 cbnd = {초기의(p1,{x1p1 == 0;x2p1 == 0;}) 최종(p2,x1p2 == 100)}; ODE 및 경로 제약 비율(%) a = 2; g = 1; 인식하다 = {조합하다(p1,{ 점(p1,x1p1) == x2p1 점(p1,x2p1) == a-g}) 조합하다(p2,{ 점(p2,x1p2) == x2p2 점(p2,x2p2) == -g})}; 목표(%) 객관적으로 = 잘라내다; 링크 단계(%) 링크 = {최종(p1,x1p1) == 초기의(p2,x1p2) 최종(p1,x2p1) == 초기의(p2,x2p2)}; %% 문제 해결 옵션들 = 구조; 옵션들.이름. = '원딤 로켓'; 구성 = {박스, cbnd, 인식하다, 링크}; 해결 방법 = 에즈솔루브(객관적으로, 구성, x0, 옵션들);
모수 추정 예제
모수 추정 문제 [5]
최소화:
대상:
아래 코드에서는 미세한 그리드(10개의 코로케이션 포인트)로 문제를 해결합니다.이 솔루션은 이후 40개의 코로케이션포인트를 사용하여 미세조정됩니다.
탐스 t p1 p2 x1meas = [0.264;0.594;0.801;0.959]; 측정하다 = [1;2;3;5]; 박스 제약 비율(%) 박스 = {-1.5 <=> p1 <=> 1.5 -1.5 <=> p2 <=> 1.5}; %% 연속적으로 큰 번호의 코로케이션 포인트를 사용하여 문제를 해결합니다. 위해서 n=[10 40] p = TomPhase('p', t, 0, 6, n); setPhase(p); Tom States(tomStates) x1 x2 초기 추정치(%) 한다면 n == 10 x0 = {p1 == 0; p2 == 0}; 또 다른 x0 = {p1 == p1opt; p2 == p2opt 코리케이트({x1 == x1opt; x2 == x2opt})}; 끝. % 경계 제약 cbnd = 초기의({x1 == p1; x2 == p2}); ODE 및 경로 제약 비율(%) x1err = 합((포인트(측정하다,x1) - x1meas).^2); 인식하다 = 조합하다({점(x1) == x2; 점(x2) == 1-2*x2-x1}); 목표(%) 객관적으로 = x1err; %% 문제 해결 옵션들 = 구조; 옵션들.이름. = '모수 추정'; 옵션들.해결사 = 'snopt'; 해결 방법 = 에즈솔루브(객관적으로, {박스, cbnd, 인식하다}, x0, 옵션들); 시작점의 최적 x, p % x1opt = 서브(x1, 해결 방법); x2opt = 서브(x2, 해결 방법); p1opt = 서브(p1, 해결 방법); p2opt = 서브(p2, 해결 방법); 끝.
최적의 제어 문제 지원
- 공기역학 궤도[6] 제어
- 뱅뱅 컨트롤[7]
- 화학 공학[8]
- 동적 시스템[9]
- 일반적인 최적 관리
- 대규모 선형[10] 제어
- 다상 시스템[11] 제어
- 기계 공학[12] 설계
- 미분할 수 없는 제어[13]
- 동적[14] 시스템에 대한 매개변수 추정
- 단수 제어
레퍼런스
- ^ Rutquist, Per; M. M. Edvall (June 2008). PROPT - Matlab Optimal Control Software (PDF). Pullman, WA: Tomlab Optimization Inc.
- ^ Banga, J. R.; Balsa-Canto, E.; Moles, C. G.; Alonso, A. A. (2003). "Dynamic optimization of bioprocesses: efficient and robust numerical strategies". Journal of Biotechnology.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "Van Der Pol 오실레이터 - Matlab 솔루션", PROPT 홈페이지, 2008년6월
- ^ "1차원 로켓 발사 (2 Free Time)", PROPT 홈페이지, 2008년 6월.
- ^ "PROPT를 사용한 Matlab 동적 파라미터 평가", PROPT 홈페이지, 2008년 6월
- ^ Betts, J. (2007). "SOCS Release 6.5.0". THE BOEING COMPANY.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Liang, J.; Meng, M.; Chen, Y.; Fullmer, R. (2003). "Solving Tough Optimal Control Problems by Network Enabled Optimization Server (NEOS)". School of Engineering, Utah State University USA, Chinene University of Hong Kong China.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Carrasco, E. F.; Banga, J. R. (September 1998). "A HYBRID METHOD FOR THE OPTIMAL CONTROL OF CHEMICAL PROCESSES". University of Wales, Swansea, UK: UKACC International Conference on CONTROL 98.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Vassiliadis, V. S.; Banga, J. R.; Balsa-Canto, E. (1999). "Second-order sensitivities of general dynamic systems with application to optimal control problems". 54. Chemical Engineering Science: 3851–3860.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Luus, R. (2002). Iterative dynamic programming. Chapman and Hall/CRC.
- ^ Fabien, B. C. (1998). "A Java Application for the Solution of Optimal Control Problems". Stevens Way, Box 352600 Seattle, WA 98195, USA: Mechanical Engineering, University of Washington.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말)CS1 유지보수: 위치(링크) - ^ Jennings, L. S.; Fisher, M. E. (2002). "MISER3: Optimal Control Toolbox User Manual, Matlab Beta Version 2.0". Nedlands, WA 6907, Australia: Department of Mathematics, The University of Western Australia.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말)CS1 유지보수: 위치(링크) - ^ Banga, J. R.; Seider, W. D. (1996). Floudas, C. A.; Pardalos, P. M. (eds.). Global Optimization of Chemical Processes using Stochastic Algorithms - State of the Art in Global Optimization: Computational Methods and Applications. Dordrecht, The Netherlands: Kluwer Academic Publishers. pp. 563–583. ISBN 0-7923-3838-3.
- ^ Dolan, E. D.; More, J. J. (January 2001). "Benchmarking Optimization Software with COPS". 9700 South Cass Avenue, Argonne, Illinois 60439: ARGONNE NATIONAL LABORATORY.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말)CS1 유지보수: 위치(링크)