Fiziksel bir nesnenin tasarımını optimize etme işlemini nasıl otomatikleştirebilirim?


9

Herhangi bir kesitte hız ve sıcaklık dağılımı nispeten tekdüze olacak şekilde bir tankta bir akış dağıtıcısını optimize etmeye çalışıyorum. Maksimum çapraz kesit homojenliğine ayarlayabildiğim, giriş borularının sayısı, konumları, yönleri ve yönleri gibi birçok parametre var. Bir dizi farklı geometri oluşturabildiğimi ve her birini ayrı ayrı test edebileceğimi biliyorum, ama bu çok zaman alıcı. Birden fazla vakayı tek seferde (paralel olarak) tekrarlı olarak test edebilen ve önceki sonuçlara dayanarak test etmek için yeni bir geometri seti seçebilen bir program yazabilmek istiyorum. Bunu en iyi nasıl yapabilirim?


1
Parametre arama kısmı, bana göre, kolay kısımdır. Önemsiz kısım geometriyi parametrelendiriyor.
Geoff Oxberry

Yanıtlar:


4

Yapmak istediğiniz şey, gradyan tabanlı yöntemler kullanarak şekil optimizasyonudur. Temel olarak objektif fonksiyonun model parametrelerine gradyanını hesaplamanız gerektiği anlamına gelir.

Az sayıda parametre için FD kullanabilirsiniz, ancak çok sayıda parametre için bitişik yöntemlere bakmanız gerekir. Ticari bir kod veya eşlenik denklemleri çözemeyen bir başkasının kodunu kullanıyorsanız, FD tek seçeneğinizdir.

Temel temel şekil optimizasyon kitaplarını inceleyin.

Düzenleme: Yapısal FE sorunları için Choi ve Kim I ve II'nin kitabına göz atabilirsiniz.


Bazı parametreler yalnızca tamsayıdır ... Degrade tabanlı bir yaklaşım yine de uygulanabilir mi?
Paul

Şekil optimizasyonu hakkında iyi dersler / kitaplar önerir misiniz?
Paul

Kısa / basit bir şey için şunu okuyabilirsiniz: acdl.mit.edu/mdo/mdo_06/EulerAdjoint.pdf . FD ile söylediğim gibi, sadece degradeyi hesaplamak zorundasınız (CFD kodunuzu parametre sayısına bağlı olarak birkaç kez çalıştırın) ve daha sonra optimizasyonu gerçekleştirmek için degradeyi kullanın. Parametre tahminleri yakınsamadan önce genellikle birkaç tekrarlama gerekir. Büyük parametreler için bu pahalı hale gelir ve degradeyi hesaplamak için bitişik yöntemlere başvurmanız gerekir.
stali

Teşekkürler stali. Bu, bitişik yöntemlere çok iyi bir girişti.
Paul

5

Geometri konstrüksiyon parçanızı uygun şekilde parametrelendirirseniz, bu, karışık ayrık ve sürekli parametrelerle kara kutu optimizasyonu sorunudur.

DAKOTA http://dakota.sandia.gov/ ve NOMAD http://www.gerad.ca/NOMAD/Project/Home.html en iyi parametre seçimlerini otomatik olarak seçmenizi sağlayan iki yararlı pakettir . (DAKOTA daha iyi uygulama desteğine sahiptir, ancak NOMAD muhtemelen daha iyi optimize edicilere sahiptir.)

Geometriyi değiştirmek için, geometriyi etkilemek istediğiniz her kontrol için ayrı veya sürekli bir parametre girin ve geometrinin yapısını kontroller koleksiyonundan otomatikleştirin. Türevsiz yöntemlerin yüksek boyutlarda oldukça yavaş olduğuna dikkat edin, bu nedenle parametre sayısını makul derecede küçük tutun.

Yukarıdaki paketlerden biriyle alanı keşfetmeyi bitirdikten sonra, analitik bir türev elde edemeyeceğiniz tüm ayrık parametrelerin ve tüm sürekli parametrelerin sabitlendiği daha doğru bir optimizasyon yaparak analizi hassaslaştırabilirsiniz. Ancak, gradyan tabanlı bir optimize edici (IPOPT https://projects.coin-or.org/Ipopt gibi ) çok daha büyük sorunları etkili bir şekilde ele alabileceğinden , analitik türevleri hesaplayabileceğiniz sürekli şekil parametresi sayısını artırabilirsiniz. .

Türevi nasıl alacağınızı bilmiyorsanız, ancak bağımlılık pürüzsüzse, otomatik bir farklılaştırma programı kullanmayı veya AMPL'de sürekli sorununuzu kodlamayı düşünebilirsiniz, bu durumda çözücü arabirimi türevlerle ilgilenir.

Şekil optimizasyonu ile ilgili temel bilgiler için bakınız örn., Haftka, RT ve Grandhi, RV, yapısal şekil optimizasyonu - Anket, Uygulamalı Mekanik ve Mühendislikte Bilgisayar Yöntemleri 57 (1986), 91-106. (Modelleme hakkındaki açıklamaya güvenin; ancak optimizasyon teknolojisi o zamandan beri çok gelişmiş olduğu için önerdikleri çözücüleri kullanmayın.)


Geometriyi parametreleştirmek için hangi yaklaşımları kullanabilirim?
Paul

Cevabımın eklenmesine bakın.
Arnold Neumaier

@ Paul: Yazımdaki aptalca bir hatayı düzelttim - geometri parametreleri elbette ayrık veya sürekli olabilir!
Arnold Neumaier


3

CFD'de standart parametrik optimizasyondan çok daha hızlı görünen bitişik alan optimizasyonu da var. Son zamanlarda CFD topluluğunda ve özellikle OpenFOAM'da popülerlikte büyük bir artış oldu. Şu anda OpenFOAM üzerine bir çalıştay düzenliyoruz ve bu yöntemle ilgili çok sayıda soyut bildiri aldık. Eğer ilgileniyorsanız, kontrol bu , diğer bilgi için, dışarı sadece "CFD içinde eşlenik uzay şekil optimizasyonu" google.

İlave bilgi:

OpenFOAM kullanabiliyorsanız, büyük miktarda vakaları işlemek ve PyFoam adlı parametrelerini değiştirmek için sadece böyle bir şey için kullanılan bir Python tabanlı kütüphane vardır . Basit bir geometri için, bir ağı basit bir blok olarak tanımlayabilirsinizMesh ve istediğinizi tekrarlayın. Basit bir örnek olarak, bu Python'da birkaç döngü yazma sorusudur. İşte nasıl "giriş" sınır koşulu hızını değiştirirseniz gibi komut görünüyor. Basit mesh geometrisi değişiklikleri birkaç satır daha kod olurdu ...


2

İhtiyacın olur:

  1. bir optimize edici ve
  2. somut bir kavram içinde farklı tasarımlarla başa çıkmaya yetecek (hatta farklı kavramlara ait) yeterli (esnek) bir CFD aracı.

CFD aracı için aşağıdaki özellikler çok önemlidir:

  • Yüksek miktarda ayrı tasarımın makul bir zaman çerçevesinde işlenmesi için yüksek hesaplama verimliliği (hız).
  • Arama / analiz sürecine manuel müdahaleyi dışlamak için sayısal tekniklerin yüksek esnekliği ve sevimli olması.
  • Programlı geometri manipülasyonu.

Bu yüzden aşağıdaki yazılımı önerebilirim:

  1. Eşleştirilebilecek çok sayıda optimizasyon sağlayan Insight Toolkit
  2. Gelişmiş Simülasyon Kütüphane teklifler olduğunu

    • Yüksek performans:

      • Kütüphane donanım hızlandırılmıştır, yani GPU veya FPGA donanımını (varsa) kullanabilme yeteneğine sahiptir, bu da CPU tabanlı programa göre 10-100 hızlanma anlamına gelir. Ayrıca normal CPU'da SIMD gibi gelişmiş özellikler kullanır.
      • Dinamik derleme yaklaşımına dayanır, bu da esneklik için performanstan ödün verilmesine gerek olmadığı anlamına gelir. Bu, standart derleme tekniğine kıyasla 10 kata kadar hızlanma ile sonuçlanır.
      • ASL, küme altyapısında ve çoklu GPU bilgisayarlarda kullanılabilir.
    • Yüksek esneklik ve tatlılık:

      • Ağ içermeyen nümerik teknikler dikdörtgen bir ızgara ve batırma sınır yaklaşımlar dayanmaktadır. Bu özellikler , mesh oluşturmaya gerek olmadığından otomatik tasarım optimizasyonuna olanak tanır .
      • Kütüphane dinamik derleme yaklaşımına dayanmaktadır, bu da esneklik için performanstan ödün vermenize gerek olmadığı anlamına gelir. Bu, farklı tasarımlar / kavramlar için tek bir genel ve verimli algoritma formüle edilmesini sağlar.
    • Geometrik ilkellerin üretimi ve manipülasyonu .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.