Passenger Bird

CAE用材料モデルを実機から逆算するためにベイズ最適化を使えるか?

ラバードームの実験データを用いた材料モデルパラメータ最適化 w/ Optuna

#CAE #Optuna #材料モデル #ベイズ最適化 #WIP

背景

ラバードームの非線形CAE解析では、ゴム材料の超弾性挙動を精度よく再現するためにOGDENモデルなどの材料構成則を使用する。
しかし、材料パラメータは材料試験データから同定する必要があり、パラメータ数が20個程度と多い場合、効率的な最適化手法が求められる。物性データ構築のための引張試験は材料一種につき100万円以上かかる。
実機とCAE結果を照らして、OGDENモデルの係数を実機に合うように自動で同定する手法を検討する。この問題はOGDENモデルの係数がすべて最適化変数となるため、多変数最適化が必要になる上、CAEの計算コストが高いため試行回数が制限される。
そこで、ベイズ最適化ライブラリであるOptunaを使ってみる。

課題設定

  • 目的関数: 実験データとCAEシミュレーション結果の差分(残差二乗和など)
  • 設計変数: OGDENモデルの材料係数(約20個)
  • 制約条件: 複数の実サンプルデータとの整合性
  • 評価コスト: 1回のCAE解析に数十分~1時間かかる

Optunaサンプラーの検討

ベイズ最適化(TPESampler)の特性

  • 利点: 評価コストの高い問題に強い、既存評価結果から効率的に探索
  • 懸念点: 高次元(20次元)での性能、複数サンプルへの同時フィッティング

代替手法との比較

  • CMA-ES: 連続値の最適化に強いが、評価回数が多く必要
  • Grid Search: 次元の呪いにより現実的でない
  • 勾配法: CAEの微分計算が困難

今後のアプローチ

1. プロトタイプ実装

import optuna

def objective(trial):
    # OGDEN係数を提案
    params = {f'c{i}': trial.suggest_float(f'c{i}', -10, 10) 
              for i in range(20)}
    
    # CAE実行 + 実験データとの比較
    residual = run_cae_and_compare(params, experimental_data)
    return residual

study = optuna.create_study(sampler=optuna.samplers.TPESampler())
study.optimize(objective, n_trials=100)

2. 検証ステップ

  • 低次元(2-3パラメータ)での動作確認
  • 複数サンプルデータを集約した目的関数の設計
  • 並列評価による高速化(複数CAEジョブの同時実行)

3. 懸念事項への対策

  • 高次元問題: パラメータの事前スクリーニング、感度解析による次元削減
  • 局所解: 複数初期点からのマルチスタート
  • 計算コスト: サロゲートモデル(応答曲面)との併用

4. 評価基準

  • 収束速度(既存手法との比較)
  • 最終的なフィッティング精度
  • 必要なCAE評価回数

まとめ

Optunaのベイズ最適化は計算コストの高いCAE問題に適しているが、20次元のパラメータ空間では性能低下の可能性がある。まずは小規模な検証実験でフィージビリティを確認し、必要に応じてパラメータ削減や他のサンプラー(CMA-ES等)との併用を検討する方針で進める。