실행하다

PROPT
실행하다
개발자Tomlab Optimization Inc.
안정된 릴리스
7.8 / 2011년 12월 16일 (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, 해결 방법); 끝. 

최적의 제어 문제 지원

레퍼런스

  1. ^ Rutquist, Per; M. M. Edvall (June 2008). PROPT - Matlab Optimal Control Software (PDF). Pullman, WA: Tomlab Optimization Inc.
  2. ^ 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=(도움말)
  3. ^ "Van Der Pol 오실레이터 - Matlab 솔루션", PROPT 홈페이지, 2008년6월
  4. ^ "1차원 로켓 발사 (2 Free Time)", PROPT 홈페이지, 2008년 6월.
  5. ^ "PROPT를 사용한 Matlab 동적 파라미터 평가", PROPT 홈페이지, 2008년 6월
  6. ^ Betts, J. (2007). "SOCS Release 6.5.0". THE BOEING COMPANY. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  7. ^ 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=(도움말)
  8. ^ 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=(도움말)
  9. ^ 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=(도움말)
  10. ^ Luus, R. (2002). Iterative dynamic programming. Chapman and Hall/CRC.
  11. ^ 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 유지보수: 위치(링크)
  12. ^ 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 유지보수: 위치(링크)
  13. ^ 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.
  14. ^ 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 유지보수: 위치(링크)

외부 링크

  • TOMLAB - 소프트웨어 개발자 및 배포자.
  • TomSym - 소프트웨어에서 사용되는 소스 변환 엔진.
  • PROPT - PROPT 홈페이지
  • SNOPT - PROPT에서 사용되는 기본 솔버.