ANSYS workbenchで応答曲面+最適化シミュレーションをしてみた

シミュレーション

製品設計では、狙いの性能を得るために、寸法や材料をいろいろ入れ替え、試作・あるいはシミュレーションをし、得られた結果から次の設計案を考える、というプロセスを繰り返します。

今回は、ANSYS Workbenchを用いて、このプロセスを実施してみました。

簡単な構造の応力計算をして、実験計画法でどのような水準を試すべきか洗い出し、得られた結果から応答曲面を作成、応答曲面から予測される最適デザインを実際に計算してみました。

更新履歴
2023.01.09 詳細な手順を追記しました。



計算概要

今回は、円柱の上面から荷重をかけ、底面を固定した条件にて、

・最も軽量
・最も発生する応力が小さい

を目的とした最適化計算をしてみました。

ジオメトリの作成

ANSYS workbenchを起動して、静的構造解析のスタンドアロンシステムを作成します。

まずは、計算対象となる円柱状の構造を作ります。ジオメトリを右クリック→新規SpaceClaimジオメトリを選択します。

構造は、ANSYS系のCADであるSpaceClaimで作成します。

まず、円を描きます。

プルで円を引っ張り、3D構造を作成します。形状を自動変更する必要があるため、SCDM内で寸法をパラメータとして設定します。

横壁面を選択した状態で、右クリック→定規→Pで、

「プル」を選択した状態で面を右クリックし、「定規」オプションを選びます。

寸法の右側に表示される「P」を押下すると、グループ内に寸法が定義されます。

定義された寸法は、グループタブの駆動寸法内で確認できます。

駆動寸法が定義されますので、径をfai、厚みをlengthと名称を付けました。

これで構造は作成できたので、SpaceClaimを終了します。

workbenchに戻ると、「パラメータセット」が定義されています。

これをダブルクリックすると、パラメータがどのような値で設定されているか確認できます。

構造解析の設定

Mechanicalの設定を行うために、「セットアップ」をダブルクリックします。

物性値などはデフォルト(構造用鋼)のまま、メッシュを生成します。メッシュを右クリックし「更新」を押下します。

メッシュもデフォルトの条件です。

円柱の上から付与する力を定義します。

円柱の上面を選択し、「”力”の詳細」にて(下画像)、ジオメトリに面を適用します。

10Nの荷重を定義します。

荷重の「大きさ」の右側にあるチェックボックスをクリックすると「P」と表示されます。荷重もworkbench側から変更することができるようになります。

方向については、デフォルトでは上向きの力で設定されるため、方向をクリックし、ジオメトリの画面に表示される「←→」というなんとも形容しがたいボタンを押して向きを反転させます。

同様の方法で、荷重と逆の面に「固定」を定義します。

余談ですが、この固定の設定がないと、以下のようなエラーが表示されます。

剛体運動を防止するために十分な拘束が適用されていないようです。これにより、解析の警告やエラーが発生することがあります。結果を注意深くチェックしてください。

解析中にソルバーピボットの警告またはエラーが発生しました。これは一般的に不適切な材料物性、拘束不足のモデル、および接触問題に関連した悪い条件のマトリクスによるものです。結果を注意深くチェックしてください。

このエラーを簡単に言うと、いい加減な境界条件を設定しているので計算ができません、という意味です。

どこかがちゃんと固定されているか、材料物性の単位を間違えていないか、など、境界条件をもう一度見直す必要があります。

シミュレーションから出力する結果として

・応力
・変異
・体積

を定義します。

相当応力を結果に追加します。

同様に、トータルの変形量も追加しておきました。

体積も出力します。

荷重と同じように、これら3つの出力に対してもパラメータを設定します。「P」と表示されている項目が、workbenchに読み込まれます。

計算を実行します。まずは、SpaceClaimで作成した現状の寸法での計算結果を得ます。

試しに計算して応力を計算してみました。応力分布などが取得できました。

ここまでは、通常の応力解析の設定です。(パラメータを指定している部分以外)

ここから、最適化計算っぽい検討が始まります。

workbenchに戻り、パラメータセットをダブルクリックすると、「入力パラメータ」と「出力パラメータ」に、任意の値が入っていることが確認できます。



実験計画法による計算水準の決定

では、応答曲面最適化のフローを実行していきます。

「設計調査」から「応答曲面最適化」を選択し、パラメータセットの下にドラッグアンドドロップします。

実験計画法をクリックし、計算水準を決めます。

入力パラメータの上下限を設定します。

今回は、直径を10mm~20mmとしました。

同様に、かける荷重の大きさを決めます。

使用可能な値に「製造可能値」を選択すると、離散変数として設定できます。

今回は、5N,10N,15Nの3水準を計算します。

上下限を入力したので「プレビュー」で実験計画による計算水準を確認してみます。

「パラメータ並列」を選択すると、テーブル「概念図 実験計画法(中心複合計画:自動定義)」が表示されます。

16水準を計算すれば、応答曲面を作成するのに十分なデータがとれると判断されたようです。

実験計画法で求めた水準を、最適な順番で実行するように、右クリック>更新順序の最適化 を選択します。

計算順序が変わっていることがわかります。

「更新」を押下すると、計算が実行されます。

計算の進捗状況は、workbench右下の「進行状況を表示」ボタンから確認できます。

「進行状況」ウインドウに「設計ポイント1に対する性的構造のモデルコンポーネントを更新します」と表示されます。つまり、1番目の設計案を試しているところのようです。

計算を続けると、15分ほどで全ての計算が終了しました。

結果を確認します。

結果はcsvは形式でエクスポートできるようです。エクセルでグラフにしてみます。

各荷重ごとに、応力と体積をプロットしました。

左下にいくほど狙いの値に近い結果です。

memo
最近は、自動化してCAE計算を回してデータを大量に取得する方法をハイスループット計算と呼んだりするようです。製薬業界で昼夜問わずロボットが合成実験を続けることをハイスループット実験と呼ぶことからつけられたようです。



応答曲面の作成

応答曲面を表示してみます。

プロジェクト概念図の「応答曲面」を押下し、応答曲面を3D表示します。(表示されない場合は、「更新」ボタンを押します)

φの影響が大きく、lengthの影響はほどんとないという結果でした。

応答曲面を使った最適解の探査

さきほど作成した応答曲面を用いて、最も良い点(最適点)を探査します。

「最適化」をダブルクリックすると、最適化のタブが開きます。

長さ、径、力の大きさにチェックが入った状態にします。

目標および制約を選択すると、「テーブル概念図 最適化」のテーブルが表示されます。以下の通りです。

目標と制約を加えます。今回の目標は、

・応力の最小化
・体積の最小化
です。

今回は、荷重の大きさを10Nにしたとき、最も軽く、かつ発生する応力の小さい構造を探査します。

そのために設定するべき値は上記テーブルの通りです。

「更新」を押下すると、応答曲面から最適解を探します。

応答曲面はシミュレーションを解くわけではないのですぐに終わります。

「候補ポイント」には、最適解となりうるいくつかの設計案が提示されます。

3つの設計案が提示されました。

長さ、φに対して、予想される応力値と体積が表示されます。

つまり、「この候補ポイント1が最適な設計案だよ」とworkbenchは予測しているわけです。

最適設計案でシミュレーション

今回は、もっともよさそうな「候補ポイント1」について、シミュレーションで値を確認してみます。

応答曲面はあくまで近似なので、実際にシミュレーションをまわしてみて、本当に最適解の性能がよくなるのかを確認します。

ポイントの画面上で右クリックし「設計ポイントとして挿入」を押下します。

「パラメータスタディ」のタブに移ると、先ほど設計ポイントとして挿入した設計案がパラスタとして表示されます。

「すべての設計ポイントを更新」にて、計算を実行します。

結果が得られました。

応答曲面の予測値と比較します。

応答曲面の予測値シミュレーション結果
相当応力22,973 [Pa]22,893 [Pa]
体積1.38 [cm3]1.38 [cm3]

応答曲面の予測値とシミュレーション結果がよく一致しており、作成した応答曲面が妥当であったことがわかります。

さきほどのグラフに最適点をプロットしました。

最適解が、ほかの点よりも左下に位置していることがわかります。

今回は、簡単な構造に対して、実験計画によるパラスタと応答曲面作成、最適解予測と検証を一通り実施してみました。

この手順で、トレードオフの関係にある様々な事象が予測できそうなので、いろいろ試していきたいと思います。

続き→続:ANSYSを使った多目的最適化 CAEデータ分析の実践的手法

Images used courtesy of ANSYS, Inc.

コメント

タイトルとURLをコピーしました