PROPT - PROPT
Vývojáři | Tomlab Optimization Inc. |
---|---|
Stabilní uvolnění | 7.8 / 16. prosince 2011 |
Operační systém | TOMLAB - podpora OS |
Typ | Technické výpočty |
Licence | Proprietární |
webová stránka | Strá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
- Řízení aerodynamické dráhy[6]
- Ovládání třesku[7]
- Chemické inženýrství[8]
- Dynamické systémy[9]
- Obecná optimální kontrola
- Velkoplošné lineární ovládání[10]
- Vícefázové ovládání systému[11]
- Strojírenství design[12]
- Nediferencovatelné ovládání[13]
- Odhad parametrů pro dynamické systémy[14]
- Singulární ovládání
Reference
- ^ 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)
- ^ 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) - ^ "Van Der Pol Oscillator - Matlab Solution", PROPT Domovská stránka Červen 2008.
- ^ "One Dimensional Rocket Launch (2 Free Time)", PROPT Domovská stránka Červen 2008.
- ^ "Odhad dynamických parametrů Matlab s PROPT", PROPT Domovská stránka Červen 2008.
- ^ Betts, J. (2007). „SOCS Release 6.5.0“. BOEINGOVÁ SPOLEČNOST. Citovat deník vyžaduje
| deník =
(Pomoc) - ^ 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) - ^ 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) - ^ 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) - ^ Luus, R. (2002). Iterativní dynamické programování. Chapman and Hall / CRC.
- ^ 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) - ^ 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) - ^ 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.
- ^ 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)