PROPT - PROPT

PROPT
VývojářiTomlab Optimization Inc.
Stabilní uvolnění
7.8 / 16. prosince 2011 (2011-12-16)
Operační systémTOMLAB - podpora OS
TypTechnické výpočty
LicenceProprietární
webová stránkaStránka produktu PROPT

The PROPT[1] MATLAB Optimální ovládání Software je platformou nové generace pro řešení aplikovaného optimálního řízení (s ÓDA nebo DAE formulace) a odhad parametrů problémy.

Platformu vyvinul vítěz programu MATLAB Programming Contest, Per Rutquist v roce 2008. Nejnovější verze podporuje binární a celočíselné proměnné i automatizovaný modul škálování.

Popis

PROPT je kombinovaná modelování, sestavení a řešič motoru, postavený na TomSym třída modelování, pro generování vysoce komplexních optimálních problémů řízení. PROPT používá a pseudospektrální Metoda kolokace (s Gaussovými nebo Čebyševovými body) pro řešení optimálních problémů s řízením. To znamená, že řešení má formu a Polynomiální a tento polynom splňuje DAE a cestu omezení v kolokačních bodech.

Obecně má PROPT následující hlavní funkce:

  • Výpočet konstanty matice používané pro diferenciace a integrace polynomů použitých k přiblížení řešení k Optimalizace dráhy problém.
  • Transformace zdroje, aby se změnila uživatelem výrazy do kódu MATLAB pro nákladovou funkci a funkce omezení které jsou předány a Nelineární programování řešitel v TOMLAB. Balíček zdrojové transformace TomSym automaticky generuje deriváty prvního a druhého řádu.
  • Funkce pro vykreslování a výpočet různých informací pro řešení problému.
  • Automatická detekce následujících položek:
    • Lineární a kvadratický cíl.
    • Jednoduché hranice, lineární a nelineární vazby.
    • Neoptimalizované výrazy.
  • Integrovaná podpora pro nehladký[2] (hybridní) optimální problémy s řízením.
  • Modul pro automatické škálování složitých problémů souvisejících s prostorem.
  • Podpora binárních a celočíselných proměnných, ovládacích prvků nebo stavů.

Modelování

Systém PROPT využívá motor transformace symbolických zdrojů TomSym k modelování optimálních problémů s řízením. Je možné definovat nezávislý proměnné, závislé funkce, skaláry a konstantní parametry:

 toms tf toms t p = tomPhase('p', t, 0, tf, 30); x0 = {tf == 20}; cbox = {10 <= tf <= 40}; toms z1 cbox = {cbox; 0 <= z1 <= 500}; x0 = {x0; z1 == 0}; ki0 = [1e3; 1e7; 10; 1e-3];

Státy a kontroly

Stavy a kontroly se liší pouze v tom smyslu, že stavy musí být mezi fázemi kontinuální.

 tomStates x1 x0 = {ilokovat({x1 == 0})}; tomControls u1 cbox = {-2 <= seřadit(u1) <= 1}; x0 = {x0; seřadit(u1 == -0.01)};

Hranice, cesta, událost a integrální omezení

Níže jsou zobrazeny různé hranice, cesty, události a integrální omezení:

 cbnd = počáteční(x1 == 1);       % Výchozí bod pro x1 cbnd = finále(x1 == 1);         % Koncový bod pro x1 cbnd = finále(x2 == 2);         % Koncový bod pro x2 cesta = seřadit(x3 >= 0.5);  % Omezení cesty pro x3 intc  = {integrovat (x2) == 1};  % Integrační omezení pro x2 cbnd = finále(x3 >= 0.5);       % Konečné omezení události pro x3 cbnd = počáteční(x1 <= 2.0);     % Omezení počáteční události x1

Příklad jednofázového optimálního řízení

Van der Pol oscilátor [3]

Minimalizovat:

Předmět:

K vyřešení problému s PROPT lze použít následující kód (se 60 kolokačními body):

toms tp = tomPhase('p', t, 0, 5, 60);setPhase(p);tomStates x1 x2 x3tomControls u% Počáteční odhadx0 = {ilokovat({x1 == 0; x2 == 1; x3 == 0})    seřadit(u == -0.01)};Omezení% polecbox = {-10  <= ilokovat(x1) <= 10    -10  <= ilokovat(x2) <= 10    -10  <= ilokovat(x3) <= 10    -0.3 <= seřadit(u)   <= 1};% Mezních omezenícbnd = počáteční({x1 == 0; x2 == 1; x3 == 0});% ODR a omezení cestyceq = seřadit({tečka(x1) == (1-x2.^2).*x1-x2+u    tečka(x2) == x1; tečka(x3) == x1.^2+x2.^2+u.^2});% Cílobjektivní = finále(x3);% Vyřešit problémmožnosti = struktur;možnosti.název = 'Van Der Pol';řešení = ezsolve(objektivní, {cbox, cbnd, ceq}, x0, možnosti);

Příklad vícefázového optimálního řízení

Jednorozměrná raketa [4] s volným časem ukončení a neurčeným fázovým posunem

Minimalizovat:

Předmět:

Problém je vyřešen pomocí PROPT vytvořením dvou fází a jejich spojením:

toms ttoms tCut tp2p1 = tomPhase('p1', t, 0, tCut, 20);p2 = tomPhase('p2', t, tCut, tp2, 20);tf = tCut+tp2;x1p1 = tomState(p1,'x1p1');x2p1 = tomState(p1,'x2p1');x1p2 = tomState(p2,'x1p2');x2p2 = tomState(p2,'x2p2');% Počáteční odhadx0 = {tCut==10    tf==15    ilokovat(p1,{x1p1 == 50*tCut/10;x2p1 == 0;})    ilokovat(p2,{x1p2 == 50+50*t/100;x2p2 == 0;})};Omezení% polecbox = {    1  <= tCut <= tf-0,00001    tf <= 100    0  <= icollocate (p1, x1p1)    0  <= icollocate (p1, x2p1)    0  <= icollocate (p2, x1p2)    0  <= icollocate (p2, x2p2)};% Mezních omezenícbnd = {počáteční(p1,{x1p1 == 0;x2p1 == 0;})    finále(p2,x1p2 == 100)};% ODR a omezení cestyA = 2; G = 1;ceq = {seřadit(p1,{    tečka(p1,x1p1) == x2p1    tečka(p1,x2p1) == A-G})    seřadit(p2,{    tečka(p2,x1p2) == x2p2    tečka(p2,x2p2) == -G})};% Cílobjektivní = tCut;% Fáze spojeníodkaz = {finále(p1,x1p1) == počáteční(p2,x1p2)    finále(p1,x2p1) == počáteční(p2,x2p2)};%% Vyřešit problémmožnosti = struktur;možnosti.název = 'One Dim Rocket';konstr = {cbox, cbnd, ceq, odkaz};řešení = ezsolve(objektivní, konstr, x0, možnosti);

Příklad odhadu parametrů

Problém s odhadem parametrů [5]

Minimalizovat:

Předmět:

V níže uvedeném kódu je problém vyřešen jemnou mřížkou (10 kolokačních bodů). Toto řešení je následně doladěno pomocí 40 kolokačních bodů:

toms t p1 p2x1meas = [0.264;0.594;0.801;0.959];tmeas  = [1;2;3;5];Omezení% polecbox = {-1.5 <= p1 <= 1.5    -1.5 <= p2 <= 1.5};%% Vyřešte problém pomocí postupně většího počtu kolokačních bodůpro n=[10 40]    p = tomPhase('p', t, 0, 6, n);    setPhase(p);    tomStates x1 x2    % Počáteční odhad    -li n == 10        x0 = {p1 == 0; p2 == 0};    jinýx0 = {p1 == p1opt; p2 == p2opt            ilokovat({x1 == x1opt; x2 == x2opt})};    konec% Mezních omezení    cbnd = počáteční({x1 == p1; x2 == p2});    % ODR a omezení cesty    x1err = součet((atPoints(tmeas,x1) - x1meas).^2);    ceq = seřadit({tečka(x1) == x2; tečka(x2) == 1-2*x2-x1});    % Cíl    objektivní = x1err;    %% Vyřešit problém    možnosti = struktur;    možnosti.název   = 'Odhad parametrů';    možnosti.řešitel = 'snopt';    řešení = ezsolve(objektivní, {cbox, cbnd, ceq}, x0, možnosti);    % Optimální x, p pro počáteční bod    x1opt = titulky(x1, řešení);    x2opt = titulky(x2, řešení);    p1opt = titulky(p1, řešení);    p2opt = titulky(p2, řešení);konec

Podporovány problémy s optimální kontrolou

Reference

  1. ^ Rutquist, Per; M. M. Edvall (červen 2008). PROPT - Matlab Optimal Control Software (PDF). 1260 SE Bishop Blvd Ste E, Pullman, WA 99163, USA: Tomlab Optimization Inc.CS1 maint: umístění (odkaz)
  2. ^ Banga, J. R .; Balsa-Canto, E .; Moles, C. G .; Alonso, A. A. (2003). "Dynamická optimalizace bioprocesů: efektivní a robustní numerické strategie". Journal of Biotechnology. Citovat deník vyžaduje | deník = (Pomoc)
  3. ^ "Van Der Pol Oscillator - Matlab Solution", PROPT Domovská stránka Červen 2008.
  4. ^ "One Dimensional Rocket Launch (2 Free Time)", PROPT Domovská stránka Červen 2008.
  5. ^ "Odhad dynamických parametrů Matlab s PROPT", PROPT Domovská stránka Červen 2008.
  6. ^ Betts, J. (2007). „SOCS Release 6.5.0“. BOEINGOVÁ SPOLEČNOST. Citovat deník vyžaduje | deník = (Pomoc)
  7. ^ Liang, J .; Meng, M .; Chen, Y .; Fullmer, R. (2003). "Řešení náročných problémů s optimální kontrolou pomocí serveru optimalizovaného pro síť (NEOS)". School of Engineering, Utah State University USA, Chinene University of Hong Kong China. Citovat deník vyžaduje | deník = (Pomoc)
  8. ^ Carrasco, E. F .; Banga, J. R. (září 1998). „HYBRIDNÍ METODA PRO OPTIMÁLNÍ KONTROLU CHEMICKÝCH PROCESŮ“. University of Wales, Swansea, UK: UKACC International Conference on CONTROL 98. Citovat deník vyžaduje | deník = (Pomoc)
  9. ^ Vassiliadis, V. S .; Banga, J. R .; Balsa-Canto, E. (1999). "Citlivost druhého řádu obecných dynamických systémů s aplikací na optimální problémy řízení". 54. Věda o chemickém inženýrství: 3851 - 3860. Citovat deník vyžaduje | deník = (Pomoc)
  10. ^ Luus, R. (2002). Iterativní dynamické programování. Chapman and Hall / CRC.
  11. ^ Fabien, B. C. (1998). "Java aplikace pro řešení problémů s optimálním řízením". Stevens Way, Box 352600 Seattle, WA 98195, USA: Mechanical Engineering, University of Washington. Citovat deník vyžaduje | deník = (Pomoc)CS1 maint: umístění (odkaz)
  12. ^ Jennings, L. S .; Fisher, M. E. (2002). "MISER3: Uživatelská příručka Optimal Control Toolbox, Matlab Beta verze 2.0". Nedlands, WA 6907, Austrálie: Katedra matematiky, The University of Western Australia. Citovat deník vyžaduje | deník = (Pomoc)CS1 maint: umístění (odkaz)
  13. ^ Banga, J. R .; Seider, W. D. (1996). Floudas, C. A .; Pardalos, P. M. (eds.). Globální optimalizace chemických procesů pomocí stochastických algoritmů - současný stav globální optimalizace: výpočetní metody a aplikace. Dordrecht, Nizozemsko: Kluwer Academic Publishers. 563 - 583. ISBN  0-7923-3838-3.
  14. ^ Dolan, E. D .; Více, J. J. (leden 2001). "Benchmarkingový optimalizační software s COPS". 9700 South Cass Avenue, Argonne, Illinois 60439: NÁRODNÍ LABORATOŘ ARGONNE. Citovat deník vyžaduje | deník = (Pomoc)CS1 maint: umístění (odkaz)

externí odkazy

  • TOMLAB - Vývojář a distributor softwaru.
  • TomSym - Zdroj transformace motoru používaný v softwaru.
  • PROPT - Domovská stránka PROPT.
  • SNOPT - Výchozí řešič použitý v PROPT.