物理オブジェクトの設計を最適化するプロセスをどのように自動化できますか?


9

タンク内のフローディストリビューターを最適化して、断面全体の速度と温度の分布が比較的均一になるようにしています。入口パイプの数、位置、向き、方向など、断面の最大の均一性に合わせて調整できる多くのパラメーターがあります。さまざまな形状を作成して、それぞれを個別にテストできることはわかっていますが、これには非常に時間がかかります。複数のケースを一度に(並行して)反復的にテストし、以前の結果に基づいてテストする新しいジオメトリのセットを適応的に選択できるプログラムを作成できるようにしたいと考えています。これを行うにはどうすればよいですか?


1
私にとって、パラメーター検索部分は簡単な部分です。重要な部分はジオメトリをパラメータ化しています。
Geoff Oxberry、2012年

回答:


4

あなたがしたいことは、勾配ベースの方法を使用した形状最適化です。これは基本的に、モデルパラメーターに対する目的関数の勾配を計算する必要があることを意味します。

少数のパラメーターの場合はFDを使用できますが、多数のパラメーターの場合は随伴メソッドを調べる必要があります。市販のコードまたは随伴方程式を解くことができない他の誰かのコードを使用している場合は、FDが唯一の選択肢です。

基本的な基本的な形状最適化の本をご覧ください。

編集:構造的FEの問題については、チェとキムIとIIの本をチェックしてください。


一部のパラメータは整数のみです...勾配ベースのアプローチはまだ適用できますか?
ポール

形状の最適化に関する優れたチュートリアル/本をお勧めしますか?
ポール

短い/単純なものについては、これを読むことができます:acdl.mit.edu/mdo/mdo_06/EulerAdjoint.pdf。FDで述べたように、勾配を計算し(パラメーターの数に応じてCFDコードを何度も実行することを意味します)、勾配を使用して最適化を実行する必要があるので、それは簡単です。通常、パラメータ推定が収束するまでに数回の反復が必要です。大きなパラメーターの場合、これは高価になり、勾配を計算するために随伴メソッドを使用する必要があります。
stali

stali、ありがとう。これは随伴メソッドの非常に優れた入門書でした。
ポール

5

ジオメトリ構築パーツを適切にパラメーター化すると、これは、離散パラメーターと連続パラメーターが混在するブラックボックス最適化の問題です。

DAKOTA http://dakota.sandia.gov/およびNOMAD http://www.gerad.ca/NOMAD/Project/Home.htmlは、最適なパラメーター選択を自動的に選択できる2つの便利なパッケージです。(DAKOTAはより優れたアプリケーションサポートを備えていますが、NOMADはおそらくより優れたオプティマイザを備えています。)

ジオメトリを変化させるには、ジオメトリに影響を与える各コントロールに個別または連続的なパラメータを導入し、コントロールのコレクションからジオメトリの構築を自動化します。高次元では導関数を使用しない方法は非常に遅いため、パラメーターの数は適度に少なくしてください。

上記のパッケージのいずれかを使用してスペースの探索を終了した後、すべての離散パラメーターとすべての連続パラメーターが固定されている分析的導関数を取得できない、より正確な最適化を行うことで分析を改善できます。ただし、勾配に基づくオプティマイザー(IPOPT https://projects.coin-or.org/Ipoptなど)がはるかに大きな問題を効率的に処理できるため、分析導関数を計算できる連続形状パラメーターの数を増やすことができます。 。

導関数の取得方法がわからないが、依存性がスムーズな場合は、自動微分プログラムを使用するか、AMPLで継続的な問題をコーディングすることを検討できます。この場合、ソルバーインターフェイスが導関数を処理します。

形状最適化の基本については、たとえば、Haftka、RTおよびGrandhi、RV、構造形状最適化-調査、Computer Methods in Applied Mechanics and Engineering 57(1986)、91-106を参照してください。(モデリングについての説明は信頼してください。ただし、最適化テクノロジーはそれ以来大幅に改善されているため、推奨されるソルバーは使用しないでください。)


ジオメトリをパラメータ化するためにどのようなアプローチを取ることができますか?
ポール

私の答えへの追加を参照してください。
アーノルドノイマイヤー2012年

@Paul:私は自分の文章の愚かな間違いを修正しました-ジオメトリパラメータはもちろん離散的または連続的かもしれません!
アーノルドノイマイヤー2012年


3

また、随伴スペースの最適化もあります。これは、CFDの標準的なパラメトリック最適化よりもはるかに高速のようです。最近では、CFDコミュニティ全体、特にOpenFOAMでの人気が大幅に上昇しています。現在、OpenFOAMに関するワークショップを開催しており、この方法に関して多くの抽象的な提出がありました。興味がある場合は、こちらをチェックてください。他の情報については、「CFDの随伴空間形状の最適化」をググってください。

追加情報:

OpenFOAMを使用できる場合は、Pythonベースのライブラリを使用して、大量のケースを操作し、PyFoamと呼ばれるそれらのパラメーターを変更します。単純なジオメトリの場合、メッシュを単純なblockMeshとして定義し、好きなように反復できます。単純なケースでは、これはPythonでいくつかのループを作成する問題です。ここにはありますどのようにあなたが「入口」境界条件の速度を変更した場合のようなスクリプトに見えます。単純なメッシュジオメトリの変更は、数行のコードになります...


2

次のものが必要です。

  1. オプティマイザと
  2. 具体的なコンセプト内の、または異なるコンセプトに属するさまざまなデザインを処理するのに十分な(柔軟な)CFDツール。

以下の機能は、CFDツールにとって重要です。

  • 合理的な時間枠で大量の個別の設計を処理するための高い計算効率(速度)。
  • 検索/分析プロセスへの手動の介入を排除するための数値手法の高い柔軟性と親しみやすさ。
  • プログラムによるジオメトリ操作。

だから私は以下のソフトウェアをお勧めすることができます:

  1. と組み合わせることができる多数のオプティマイザを提供するInsight Toolkit
  2. 提供する高度なシミュレーションライブラリ

    • ハイパフォーマンス:

      • ライブラリはハードウェアアクセラレーションされています。つまり、GPUまたはFPGAハードウェア(利用可能な場合)を利用できます。つまり、CPUベースのプログラムと比較して10〜100スピードアップします。また、通常のCPUでは、SIMDなどの高度な機能を使用します。
      • これは動的コンパイルアプローチに基づいているため、柔軟性のためにパフォーマンスを犠牲にする必要はありません。これにより、標準のコンパイル手法と比較して最大10倍のスピードアップが実現します。
      • ASLはクラスターインフラストラクチャとマルチGPUコンピューターで使用できます。
    • 高い柔軟性と親しみやすさ:

      • メッシュフリー数値手法は、矩形グリッドと浸漬境界アプローチに基づいています。メッシュ生成が不要なため、これらの機能により、設計の自動最適化が可能になります
      • ライブラリは動的コンパイルアプローチに基づいています。つまり、柔軟性のためにパフォーマンスを犠牲にする必要はありません。これにより、さまざまな設計/概念に対して単一の一般的で効率的なアルゴリズムを定式化できます。
    • 幾何プリミティブの生成と操作

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.