PROPT - PROPT

PROPT
Geliştirici (ler)Tomlab Optimization Inc.
Kararlı sürüm
7.8 / 16 Aralık 2011 (2011-12-16)
İşletim sistemiTOMLAB - İşletim Sistemi Desteği
TürTeknik bilgi işlem
LisansTescilli
İnternet sitesiPROPT ürün sayfası

PROPT[1] MATLAB Optimal Kontrol Yazılım, uygulamalı optimum kontrolü çözmek için yeni nesil bir platformdur ( ODE veya DAE formülasyon) ve parametre tahmini sorunlar.

Platform, MATLAB Programlama Yarışması Kazanan tarafından geliştirilmiştir, Rutquist için En son sürüm, ikili ve tamsayı değişkenleri ve ayrıca otomatik bir ölçekleme modülünü destekler.

Açıklama

PROPT, modelleme, derleme ve çözücü motoru, TomSym oldukça karmaşık optimal kontrol problemlerinin oluşturulması için modelleme sınıfı. PROPT, bir psödospektral Sıralama yöntemi (Gauss veya Chebyshev noktaları ile) optimum kontrol problemlerini çözmek için. Bu, çözümün bir Polinom ve bu polinom DAE'yi ve kısıtlamalar sıralama noktalarında.

PROPT genel olarak aşağıdaki ana işlevlere sahiptir:

  • Sabitin hesaplanması matrisler için kullanılır farklılaşma ve entegrasyon Çözümü yaklaşık olarak hesaplamak için kullanılan polinomların Yörünge optimizasyonu sorun.
  • Kullanıcı tarafından sağlanan hale getirmek için kaynak dönüşümü ifade maliyet fonksiyonu için MATLAB koduna ve kısıtlama işlevi bir Doğrusal olmayan programlama çözücü TOMLAB. Kaynak dönüştürme paketi TomSym, birinci ve ikinci dereceden türevleri otomatik olarak üretir.
  • Sorunun çözümü için çeşitli bilgilerin grafiğini çizmek ve hesaplamak için işlevsellik.
  • Aşağıdakilerin otomatik tespiti:
    • Doğrusal ve ikinci dereceden hedef.
    • Basit sınırlar, doğrusal ve doğrusal olmayan sınırlamalar.
    • Optimize edilmemiş ifadeler.
  • İçin entegre destek pürüzsüz olmayan[2] (karma) optimal kontrol problemleri.
  • Alanla ilgili zor problemlerin otomatik ölçeklendirilmesi için modül.
  • İkili ve tamsayı değişkenler, kontroller veya durumlar için destek.

Modelleme

PROPT sistemi, optimum kontrol problemlerini modellemek için TomSym sembolik kaynak dönüştürme motorunu kullanır. Tanımlamak mümkündür bağımsız değişkenler, bağımlı fonksiyonlar, skalerler ve sabit parametreler:

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

Durumlar ve kontroller

Durumlar ve kontroller yalnızca, durumların aşamalar arasında sürekli olması gerektiği anlamında farklılık gösterir.

 tomStates x1 x0 = {icollocate({x1 == 0})}; tomControls u1 cbox = {-2 <= yan yana koymak(u1) <= 1}; x0 = {x0; yan yana koymak(u1 == -0.01)};

Sınır, yol, olay ve integral kısıtlamaları

Çeşitli sınır, yol, olay ve integral kısıtlamaları aşağıda gösterilmiştir:

 cbnd = ilk(x1 == 1);       % X1 için başlangıç ​​noktası cbnd = final(x1 == 1);         % X1 için bitiş noktası cbnd = final(x2 == 2);         % X2 için bitiş noktası yol = yan yana koymak(x3 >= 0.5);  X3 için% Yol kısıtlaması intc  = {integrate (x2) == 1};  X2 için% Integral kısıtlaması cbnd = final(x3 >= 0.5);       X3 için% Son etkinlik kısıtlaması cbnd = ilk(x1 <= 2.0);     % İlk olay kısıtlaması x1

Tek fazlı optimum kontrol örneği

Van der Pol Osilatör [3]

Küçültmek:

Tabi:

PROPT ile sorunu çözmek için aşağıdaki kod kullanılabilir (60 sıralama noktası ile):

tomlar tp = tomPhase('p', t, 0, 5, 60);setPhase(p);tomStates x1 x2 x3tomControls sen% İlk tahminx0 = {icollocate({x1 == 0; x2 == 1; x3 == 0})    yan yana koymak(sen == -0.01)};% Kutu kısıtlamalarıcbox = {-10  <= icollocate(x1) <= 10    -10  <= icollocate(x2) <= 10    -10  <= icollocate(x3) <= 10    -0.3 <= yan yana koymak(sen)   <= 1};% Sınır kısıtlamalarıcbnd = ilk({x1 == 0; x2 == 1; x3 == 0});% ODE'ler ve yol kısıtlamalarıceq = yan yana koymak({nokta(x1) == (1-x2.^2).*x1-x2+sen    nokta(x2) == x1; nokta(x3) == x1.^2+x2.^2+sen.^2});% Amaçamaç = final(x3);% Problemi çözseçenekler = yapı;seçenekler.isim = 'Van Der Pol';çözüm = Ezsolve(amaç, {cbox, cbnd, ceq}, x0, seçenekler);

Çok fazlı optimum kontrol örneği

Tek boyutlu roket [4] serbest bitiş süresi ve belirsiz faz kayması ile

Küçültmek:

Tabi:

PROPT ile iki aşama oluşturup bunları birbirine bağlayarak sorun çözülür:

tomlar ttomlar tCut tp2s1 = tomPhase('p1', t, 0, tCut, 20);s2 = tomPhase('p2', t, tCut, tp2, 20);tf = tCut+tp2;x1p1 = tomState(s1,'x1p1');x2p1 = tomState(s1,'x2p1');x1p2 = tomState(s2,'x1p2');x2p2 = tomState(s2,'x2p2');% İlk tahminx0 = {tCut==10    tf==15    icollocate(s1,{x1p1 == 50*tCut/10;x2p1 == 0;})    icollocate(s2,{x1p2 == 50+50*t/100;x2p2 == 0;})};% Kutu kısıtlamalarıcbox = {    1  <= tCut <= tf-0.00001    tf <= 100    0  <= icollocate (p1, x1p1)    0  <= icollocate (p1, x2p1)    0  <= icollocate (p2, x1p2)    0  <= icollocate (p2, x2p2)};% Sınır kısıtlamalarıcbnd = {ilk(s1,{x1p1 == 0;x2p1 == 0;})    final(s2,x1p2 == 100)};% ODE'ler ve yol kısıtlamalarıa = 2; g = 1;ceq = {yan yana koymak(s1,{    nokta(s1,x1p1) == x2p1    nokta(s1,x2p1) == a-g})    yan yana koymak(s2,{    nokta(s2,x1p2) == x2p2    nokta(s2,x2p2) == -g})};% Amaçamaç = tCut;% Bağlantı aşamasıbağlantı = {final(s1,x1p1) == ilk(s2,x1p2)    final(s1,x2p1) == ilk(s2,x2p2)};%% Problemi çözseçenekler = yapı;seçenekler.isim = 'Bir Sönük Roket';yorum = {cbox, cbnd, ceq, bağlantı};çözüm = Ezsolve(amaç, yorum, x0, seçenekler);

Parametre tahmini örneği

Parametre tahmin problemi [5]

Küçültmek:

Tabi:

Aşağıdaki kodda sorun ince bir ızgara (10 sıralama noktası) ile çözülmüştür. Bu çözüm daha sonra 40 sıralama noktası kullanılarak ince ayar yapılır:

tomlar t p1 p2x1meas = [0.264;0.594;0.801;0.959];tmeas  = [1;2;3;5];% Kutu kısıtlamalarıcbox = {-1.5 <= s1 <= 1.5    -1.5 <= s2 <= 1.5};%% Art arda daha büyük sayıda eşdizim noktası kullanarak sorunu çözüniçin n=[10 40]    p = tomPhase('p', t, 0, 6, n);    setPhase(p);    tomStates x1 x2    % İlk tahmin    Eğer n == 10        x0 = {s1 == 0; s2 == 0};    Başkax0 = {p1 == p1opt; s2 == p2opt            icollocate({x1 == x1opt; x2 == x2opt})};    son% Sınır kısıtlamaları    cbnd = ilk({x1 == s1; x2 == s2});    % ODE'ler ve yol kısıtlamaları    x1err = toplam((atPoints(tmeas,x1) - x1meas).^2);    ceq = yan yana koymak({nokta(x1) == x2; nokta(x2) == 1-2*x2-x1});    % Amaç    amaç = x1err;    %% Problemi çöz    seçenekler = yapı;    seçenekler.isim   = "Parametre Tahmini";    seçenekler.çözücü = 'gözetleme';    çözüm = Ezsolve(amaç, {cbox, cbnd, ceq}, x0, seçenekler);    Başlangıç ​​noktası için% Optimal x, p    x1opt = alt(x1, çözüm);    x2opt = alt(x2, çözüm);    p1opt = alt(s1, çözüm);    p2opt = alt(s2, çözüm);son

Optimal kontrol sorunları desteklenir

Referanslar

  1. ^ Rutquist, Per; M. M. Edvall (Haziran 2008). PROPT - Matlab Optimal Kontrol Yazılımı (PDF). 1260 SE Bishop Blvd Ste E, Pullman, WA 99163, ABD: Tomlab Optimization Inc.CS1 Maint: konum (bağlantı)
  2. ^ Banga, J. R .; Balsa-Canto, E .; Moles, C. G .; Alonso, A. A. (2003). "Biyoproseslerin dinamik optimizasyonu: verimli ve sağlam sayısal stratejiler". Journal of Biotechnology. Alıntı dergisi gerektirir | günlük = (Yardım)
  3. ^ "Van Der Pol Osilatör - Matlab Çözümü", PROPT Ana Sayfa Haziran, 2008.
  4. ^ "Tek Boyutlu Roket Fırlatma (2 Serbest Zaman)", PROPT Ana Sayfa Haziran, 2008.
  5. ^ "PROPT ile Matlab Dinamik Parametre Tahmini", PROPT Ana Sayfa Haziran, 2008.
  6. ^ Betts, J. (2007). "SOCS Sürüm 6.5.0". BOEING ŞİRKETİ. Alıntı dergisi gerektirir | günlük = (Yardım)
  7. ^ Liang, J .; Meng, M .; Chen, Y .; Fullmer, R. (2003). "Zorlu Optimal Kontrol Sorunlarını Ağ Destekli Optimizasyon Sunucusu (NEOS) ile Çözme". Mühendislik Fakültesi, ABD Utah Eyalet Üniversitesi, Çin Hong Kong Chinene Üniversitesi. Alıntı dergisi gerektirir | günlük = (Yardım)
  8. ^ Carrasco, E. F .; Banga, J.R. (Eylül 1998). "KİMYASAL PROSESLERİN OPTİMAL KONTROLÜ İÇİN HİBRİT BİR YÖNTEM". Galler Üniversitesi, Swansea, Birleşik Krallık: UKACC International Conference on CONTROL 98. Alıntı dergisi gerektirir | günlük = (Yardım)
  9. ^ Vassiliadis, V. S .; Banga, J. R .; Balsa-Canto, E. (1999). "Optimal kontrol problemlerine uygulama ile genel dinamik sistemlerin ikinci dereceden hassasiyetleri". 54. Kimya Mühendisliği Bilimi: 3851 - 3860. Alıntı dergisi gerektirir | günlük = (Yardım)
  10. ^ Luus, R. (2002). Yinelemeli dinamik programlama. Chapman ve Hall / CRC.
  11. ^ Fabien, B.C. (1998). "Optimal Kontrol Sorunlarının Çözümü için Bir Java Uygulaması". Stevens Way, Box 352600 Seattle, WA 98195, ABD: Makine Mühendisliği, Washington Üniversitesi. Alıntı dergisi gerektirir | günlük = (Yardım)CS1 Maint: konum (bağlantı)
  12. ^ Jennings, L. S .; Fisher, M.E. (2002). "MISER3: Optimal Kontrol Araç Kutusu Kullanım Kılavuzu, Matlab Beta Sürüm 2.0". Nedlands, WA 6907, Avustralya: Matematik Bölümü, Batı Avustralya Üniversitesi. Alıntı dergisi gerektirir | günlük = (Yardım)CS1 Maint: konum (bağlantı)
  13. ^ Banga, J. R .; Seider, W. D. (1996). Floudas, C A .; Pardalos, P. M. (editörler). Stokastik Algoritmalar Kullanılarak Kimyasal Proseslerin Global Optimizasyonu - Global Optimizasyonda Son Durum: Hesaplamalı Yöntemler ve Uygulamalar. Dordrecht, Hollanda: Kluwer Academic Publishers. s. 563 --- 583. ISBN  0-7923-3838-3.
  14. ^ Dolan, E. D .; Daha fazla, J. J. (Ocak 2001). "COPS ile Karşılaştırmalı Optimizasyon Yazılımı". 9700 South Cass Avenue, Argonne, Illinois 60439: ARGONNE ULUSAL LABORATUVARI. Alıntı dergisi gerektirir | günlük = (Yardım)CS1 Maint: konum (bağlantı)

Dış bağlantılar

  • TOMLAB - Yazılımın geliştiricisi ve dağıtıcısı.
  • TomSym - Yazılımda kullanılan kaynak dönüştürme motoru.
  • PROPT - PROPT için ana sayfa.
  • SNOPT - PROPT'ta kullanılan varsayılan çözücü.