OS-T:2010 自動車用コントロールアームの設計コンセプト

本チュートリアルでは、OptiStructのトポロジー最適化機能を用い、パフォーマンスの仕様に見合った自動車用コントロールアームの設計コンセプトを作成します。

有限要素メッシュは、設計領域と非設計領域を含みます。パーツの仕様では、3つの荷重ケースに対しそれぞれ載荷点において0.05mm、0.02mm、0.04mmに結果変位を制約します。この結果として最小限の材料による最適設計の結果が得られます。

2010_model
図 1. 設計領域(青色)および非設計領域(黄色)を含む有限要素メッシュのモデル
設計領域および非設計領域の材料を示す有限要素メッシュのモデル(図参照)をHyperMeshにインポートします。適切な材料特性、境界条件、荷重および最適化パラメータが定義され、OptiStructが最適な材料分布を決定します。結果(材料のレイアウト)は、設計領域内で0.0から1.0の範囲で正規化された密度値のコンターとして表示されます。密度結果の表示に、アイソサーフェスも使用されます。このコンターで、材料補強が必要となる領域は密度値が1.0として表示されます。
本チュートリアルにおける最適化問題の設定は以下の通りです:
目的関数
体積の最小化
制約条件
SUBCASE 1荷重載荷点における結果変位が0.05mm未満。
SUBCASE 2荷重載荷点における結果変位が0.02mm未満。
SUBCASE 3荷重載荷点における結果変位が0.04mm未満。
設計変数
設計領域内の各要素の要素密度(およびその要素の対応する剛性)

HyperMeshの起動とOptiStructユーザープロファイルの設定

  1. HyperMeshを起動します。
    User Profilesダイアログが現れます。
  2. OptiStructを選択し、OKをクリックします。
    これで、ユーザープロファイルが読み込まれます。ユーザープロファイルには、適切なテンプレート、マクロメニュー、インポートリーダーが含まれており、OptiStructモデルの生成に関連したもののみにHyperMeshの機能を絞っています。

モデルのオープン

  1. File > Open > Modelをクリックします。
  2. optistruct.zipファイルから自身の作業ディレクトリに保存したcarm.hmファイルを開きます。モデルファイルへのアクセスをご参照ください。
  3. Openをクリックします。
    carm.hmデータベースが現在のHyperMeshセッションに読み込まれます。

モデルのセットアップ

材料の生成

  1. Modelブラウザで右クリックしコンテキストメニューからCreate > Materialを選択します。
    デフォルトの材料がエンティティエディターに表示されます。
  2. NameにSteelと入力します。
  3. Card ImageをMAT1に設定します。
  4. 各欄の横に材料の値を入力します。
    1. E(ヤング率)に2.0E5と入力します。
    2. NU(ポワソン比)に0.3と入力します。
    3. RHO(材料密度)については、
新しい材料Steelが作成されました。この材料は、OptiStructの線形等方性材料モデルMAT1を用いています。

プロパティの生成

  1. Modelブラウザで右クリックしコンテキストメニューからCreate > Propertyを選択します。
    デフォルトのプロパティがエンティティエディターに表示されます。
  2. Nameにnondesign_propと入力します。
  3. Card ImageをPSOLIDに設定します。
  4. 材料をプロパティPSHELL1に割り当てます。
    1. Materialに、Unspecified > Materialをクリックします。
    2. Select Materialダイアログでを選択し、OKをクリックします。

nondesignコンポーネントへの材料とプロパティの割り当て

  1. ModelブラウザのComponents folderフォルダーで、nondesignをクリックします。
    コンポーネントがエンティティエディターに表示されます。
  2. Propertyに、Unspecified > Propertyをクリックします。Select Propertyダイアログで、<uicontrol>Ribs</uicontrol>を選択し、OKをクリックします。
  3. 上記の手順を繰り返し、design_propプロパティを設計コンポーネントに割り当てます。

荷重と境界条件の適用

荷重コレクターの作成

  1. Modelブラウザで右クリックしコンテキストメニューからCreate > Load Collectorを選択します。
    デフォルトの荷重コレクターがエンティティエディターに表示されます。
  2. NameにSPCと入力します。
  3. Colorをクリックし、カラーパレットから色を選択します。
  4. Card ImageをNoneに設定します。
  5. 上記手順を繰り返し、荷重コレクターBrake、Corner、Potholeを作成します。

制約条件の付与

本ステップでは、SPC拘束条件を作成し、それらをSPC荷重コレクターに割り当てます。
  1. ModelブラウザのCollectorsフォルダーでSPCを右クリックし、コンテキストメニューからMake Currentを選択します。
  2. Analysisページからconstraintsをクリックします。
  3. Load typeをSPCにセットします。
  4. 1つ目の制約条件を作成します。
    1. 節点セレクターを使って、ブシュの一端の節点を選択します。
    2. 自由度dof1 - dof3を選択し、それ以外はすべて選択解除します。
      チェックマークのついている自由度は拘束され、ついていないものはフリーとなります。Dofs 1、2および3は、x、y、z方向の並進自由度を表します。Dof 4、5、6 はそれぞれ全体座標系の x、y、z 軸周りの回転自由度です。
    3. createをクリックします。
    拘束条件が作成されました。選択された節点位置に、拘束条件のマーク(三角形)が現われます。拘束条件のマークの横の数値123は、dof1、dof2、dof3が拘束されていることを表します。

    os_2010_dof_constraints
    図 2. ブッシュの一端のdof1, dof2, dof3を拘束
  5. 2つ目の拘束条件を作成します。
    1. 節点セレクターを使って、ブシュのもう一端の節点を選択します。
    2. 自由度dof2dof3を選択し、それ以外はすべて選択解除します。
    3. createをクリックします。

    2010_constrain_dofs_2
    図 3. ブッシュのもう一端のdof2とdof3を拘束
  6. 3つ目の拘束条件を作成します。
    1. nodesをダブルクリックし、by idを選択して3239と入力します。
      ショックアブソーバーのマウンティング位置に対応する節点ID 3239が選択されます。
    2. 自由度dof3を選択し、それ以外はすべて選択解除します。
    3. createをクリックします。

    2010_constrain_dofs_3
    図 4. 節点ID 3239上にdof3を拘束
  7. returnをクリックします。

Brake、Corner、Pothole荷重ケースへの力の付与

  1. Analysisページからforcesをクリックします。
  2. Brake荷重ケースに力を適用します。
    1. ModelブラウザのCollectorsフォルダーでBrakeを右クリックし、コンテキストメニューからMake Currentを選択します。
    2. nodesをダブルクリックし、by idを選択して2699と入力します。
    3. magnitude=欄に1000と入力します。
    4. ベクトルセレクターをx-axisにセットします。
    5. createをクリックします。
    選択された節点位置に、X方向を指す矢印が現れます。
    ヒント: 力をより良く視覚化するために、uniform size=欄に100と入力します。
  3. Corner荷重ケースに力を適用します。
    1. ModelブラウザのCollectorsフォルダーでCornerを右クリックし、コンテキストメニューからMake Currentを選択します。
    2. nodesをダブルクリックし、by idを選択して2699と入力します。
    3. magnitude=欄に1000と入力します。
    4. ベクトルセレクターをy-axisにセットします。
    5. createをクリックします。
    選択された節点位置に、Y方向を指す矢印が現れます。
  4. Pothole荷重ケースに力を適用します。
    1. ModelブラウザのCollectorsフォルダーでPotholeを右クリックし、コンテキストメニューからMake Currentを選択します。
    2. nodesをダブルクリックし、by idを選択して2699と入力します。
    3. magnitude=欄に1000と入力します。
    4. ベクトルセレクターをz-axisにセットします。
    5. createをクリックします。
    選択された節点位置に、Z方向を指す矢印が現れます。
  5. returnをクリックし、Analysisページに戻ります。

2010_constrain_dofs_4
図 5. Brake、Corner、Pothole荷重ケースへの力の適用. 力をより良く視覚化するには、Displayパネルを使って設計コンポーネントの表示をオフにします。

荷重ステップの作成

  1. Modelブラウザで右クリックしコンテキストメニューからCreate > Load Stepを選択します。
    デフォルトの荷重ステップがエンティティエディターに表示されます。
  2. NameにBrakeと入力します。
  3. 解析のタイプをlinear staticに設定します。
  4. SPCを定義します。
    1. SPCに、Unspecified > Loadcolをクリックします。
    2. Select LoadcolダイアログでSPCを選択し、OKをクリックします。
  5. LOADを定義します。
    1. LOADに、Unspecified > Loadcolをクリックします。
    2. Select LoadcolダイアログでBrakeを選択し、OKをクリックします。
  6. 上記の手順を繰り返し、CornerおよびPotholeという名の荷重ステップを作成します。
    1. Corner荷重ステップについては、SPCをSPCに、LOADをCornerに設定します。
    2. Pothole荷重ステップについては、SPCをSPCに、LOADをPotholeに設定します。

最適化のセットアップ

トポロジー設計変数の作成

  1. Analysisページからoptimizationをクリックします。
  2. topologyをクリックします。
  3. createサブパネルを選択します。
  4. desvar=欄にdesign_propと入力します。
  5. type:をPSOLIDにセットします。
  6. プロパティセレクターを使って、design_propを選択します。
  7. createをクリックします。
  8. returnをクリックします。

最適化の応答の作成

  1. Analysisページからoptimizationをクリックします。
  2. Responsesをクリックします。
  3. 設計空間の体積率を定義する体積の応答を作成します。
    1. responses=欄に、volと入力します。
    2. response typeの下で、volumeを選択します。
    3. regional selectionをtotalno regionidに設定します。
    4. createをクリックします。
  4. 変位の応答を作成します。
    1. responses=欄に、disp1と入力します。
    2. response typeの下で、static displacementを選択します。
    3. 節点セレクターを使って、2699を選択します。
    4. inodes > by idをクリックし、id=に2699を入力します。
    5. displacement typeをtotal dispに設定します。
      dof1、dof2、dof3
      X、Y、Z方向の並進自由度
      dof4、dof5、dof6
      X、Y、Z方向の回転自由度
      total disp
      x、y、z方向の並進変位の結果
      total rotation
      x、y、z方向の回転変位の結果
    6. createをクリックします。
  5. returnをクリックし、Optimization panelに戻ります。

変位応答の制約の作成

ここでは、この解析について、上限制約と下限制約を定義します。
  1. Dconstraintsパネルをクリックします。
  2. 1つ目の制約条件を作成します。
    1. constraints=欄にconstr1と入力します。
    2. upper boundの横のボックスにチェックマークを入れ、0.05と入力します。
    3. response=をクリックしdisp1を選択します。
    4. 荷重ステップセレクターを使って、を選択します。
    5. createをクリックします。
  3. 2つ目の拘束条件を作成します。
    1. constraints=欄にconstr2と入力します。
    2. upper boundの横のボックスにチェックマークを入れ、0.02と入力します。
    3. response=をクリックしdisp1を選択します。
    4. 荷重ステップセレクターを使って、を選択します。
    5. createをクリックします。
  4. 3つ目の拘束条件を作成します。
    1. constraints=欄にconstr3と入力します。
    2. upper boundの横のボックスにチェックマークを入れ、0.05と入力します。
    3. response=をクリックしdisp1を選択します。
    4. 荷重ステップセレクターを使って、を選択します。
    5. createをクリックします。
  5. returnをクリックし、Optimization panelに戻ります。

目的関数の定義

  1. objectiveパネルをクリックします。
  2. minが選択されていることを確認します。
  3. response=をクリックし、volを選択します。
  4. createをクリックします。
  5. returnを2回クリックし、Optimization panelを終了します。

最適化問題のチェック

チェックランでは、OptiStructは推奨されるRAMの量を計算し、実行に必要なディスクスペースを推定します。また、チェックランの実行中、OptiStructはデックをスキャンし、解析または最適化の実行に必要な情報がすべて指定されているか、またその情報に矛盾がないかを確認します。
  1. AnalysisページからOptiStructパネルをクリックします。
  2. save asをクリックします。
  3. Save Asダイアログで、OptiStructモデルファイルを書き出す場所を指定し、ファイル名としてcarm_completeと入力します。
    OptiStruct入力ファイルには、拡張子 .femが推奨されます。
  4. Saveをクリックします。
    入力ファイル欄には、Save Asダイアログで指定されたファイル名と場所が表示されます。
  5. export optionsのトグルをallにセットします。
  6. run optionsのトグルをcheckにセットします。
  7. memory optionsのトグルはmemory defaultにセットします。
  8. OptiStructをクリックし、OptiStructジョブを開始します。
処理が完了したら、ファイルcarm_complete.outを確認します。これは、ファイルの設定、最適化問題の設定、実行に必要なRAMおよびディスクスペースの推定量等、特定の情報を含むOptiStructの出力ファイルです。ワーニングおよびエラーに関しては、このファイルの各セクションで確認します。
最適化問題は正しく設定されていますか?
Optimization Problem Parametersセクションをご参照ください。
目的関数は正しく設定されていますか?
Problem Parametersセクションをご参照ください。
制約条件は正しく設定されていますか?
Optimization Problem Parametersセクションをご参照ください。
In-Coreのソリューションに推奨されるRAMの量はどの位ですか?
Memory Estimation Informationセクションをご参照ください。
最適化を実行するために十分なディスクスペースがありますか?
Disk Space Estimation Informationセクションをご参照ください。

最適化の実行

  1. AnalysisページからOptiStructをクリックします。
  2. save asをクリックします。
  3. Save Asダイアログで、OptiStructモデルファイルを書き出す場所を指定し、ファイル名としてcarm_completeと入力します。
    OptiStruct入力ファイルには、拡張子 .femが推奨されます。
  4. Saveをクリックします。
    入力ファイル欄には、Save Asダイアログで指定されたファイル名と場所が表示されます。
  5. export optionsのトグルをallにセットします。
  6. run optionsのトグルをoptimizationにセットします。
  7. memory optionsのトグルはmemory defaultにセットします。
  8. OptiStructをクリックして最適化を実行します。
    ジョブが完了すると、ウィンドウ内に次のようなメッセージが現れます:
    OPTIMIZATION HAS CONVERGED.
    FEASIBLE DESIGN (ALL CONSTRAINTS SATISFIED).
    エラーがある場合、OptiStructはエラーメッセージも出します。エラーに関する詳細は、テキストエディタでファイル carm_complete.outを開いて確認することができます。このファイルは同じディレクトリ内に.femファイルとして書き出されます。
  9. Closeをクリックします。
ディレクトリ内に作成されるデフォルトのファイルは以下の通り:
carm_complete.res
HyperMeshバイナリ結果ファイル。
carm_complete.HM.comp.cmf
密度の結果値に基づいて要素をコンポーネントに分類するために使用されるHyperMeshコマンドファイル。このファイルは、OptiStructのトポロジー最適化を実行した場合にのみ使用されます。
carm_complete.out
ファイルのセットアップ、最適化のセットアップの情報、 実行に必要なRAMとディスクスペースの見積もり、それぞれの最適化の反復情報、計算時間の情報を含むOptiStruct出力ファイル。carm_complete.femファイルの処理を行う際にフラグが立つワーニングおよびエラーに関しては、このファイルを確認すること。
carm_complete.sh
反復計算が終了した段階での形状データが納められているファイル。各要素の密度値、空孔の大きさと角度を含む。このファイルは、最適化計算のリスタートに使用することができます。
carm_complete.hgdata
各反復計算における目的関数、制約条件の違反率が納められているHyperGraph形式のファイル。
carm_complete.oss
デフォルトで密度のしきい値が0.3として定義されているOSSmooth用のファイル。このファイル内のパラメーターを調整することでユーザーの意図する結果を得ることができます。
carm_complete.stat
計算を完全に終了するために使用されたCPU、また、入力デックの読み出し、アセンブリ、解析および収束等のCPU情報が含まれています。
carm_complete.his_data
各反復計算における反復計算数、目的関数の値、制約条件の違反率が収められているOptiStructの履歴ファイル。
carm_complete.HM.ent.cmf
密度の結果値に基づいて要素をエンティティセットに分類するために使用されるHyperMeshコマンドファイル。このファイルは、OptiStructのトポロジー最適化を実行した場合にのみ使用されます。
carm_complete.html
問題設定と最終反復計算結果のサマリーを含むHTML形式の最適化レポート。

結果の表示

要素密度の結果はすべての反復計算について、OptiStructからcarm_complete_des.h3dファイルに出力されます。また、変位および応力の結果は、デフォルトで最初と最後の反復計算の各サブケースについて、carm_complete_s#.h3dファイルに出力されます(#はサブケースID)。

変形構造の表示

境界条件が正しく定義されているか、また、モデルが予測した通り変形しているかを確認するためには、モデルの変形形状を表示させると役立ちます。
  1. OptiStructパネルから、HyperViewをクリックします。

    HyperViewHyperMesh Desktop内で起動し、HyperViewの異なるページに3つの.h3dファイルすべてが読み込まれます。これらの解析結果は、pages 2、3、4にあります。最初のページには最適化結果が表示されています。

  2. アプリケーションの上部左側でpageNext-24をクリックし、3番目のページに移動します。
    2番目のページにはcarm_complete_s1.h3dファイルからの結果が含まれています。ページの名称はSubcase 1 – Brakeと表示され、結果がsubcase 1に対応していることを表しています。
  3. Animationツールバーで、アニメーションモードをLinear(animationLinear-24)に設定します。
  4. コンター設定を定義します。
    1. ResultsツールバーでresultsContour-24をクリックし、Contour panelを開きます。
    2. Result typeの下で、Displacement [v]およびMagを選択します。
    3. Applyをクリックし、変位をコンターを表示します。
  5. 変形形状設定を定義します。
    1. ResultsツールバーでresultsDeformed-24をクリックし、Deformedパネルを開きます。
    2. Deformed shapeの下でResult typeをDisplacement (v)に、ScaleをModel unitsに、TypeをUniformに設定し、Value欄に10と入力します。
      値に10を指定することは、最大変位が10モデルユニット、その他の変位は比例することを意味します。
    3. Undeformed shapeの下のShowをWireframeにセットします。
    4. Applyをクリックします。
    変位のコンターを伴うモデルの変形プロットが、元の変形していない状態のメッシュに重ねて表示されます。
  6. AnimationツールバーからanimationStart-24(Start/Pause)をクリックし、モデルをアニメーション表示します。

    1つ目のサブケース(brake)について、変形形状が表示される

    以下を解析します:
    • 1つ目のサブケースについて、荷重はどの方向にかかっていますか?
    • どの節点の自由度が拘束されていますか?
    • 変形形状はメッシュに与えられた境界条件に対して正しいように見えますか?
  7. Resultsブラウザから、Iteration 18を選択します。
    コンターには、Subcase 1(brake)および最適化反復計算の最後に対応する反復計算18の変位結果が表示されるようになりました。

    os_2010_iteration18
    図 6.
  8. ResultsツールバーでanimationPause-24をクリックし、アニメーションを停止します。
  9. アプリケーションの上部右側でpageNext-24をクリックし、3番目のページに移動します。
    3番目のページには、carm_complete_s2.h3dファイルから読み込まれた結果が含まれています。ページの名称はSubcase 2 – cornerと表示され、結果がsubcase 2に対応していることを表しています。
  10. この手順を繰り返し、2番目のサブケースについてモデルの変形形状と変位のコンターを表示させます。
    以下を解析します:
    • 2つ目のサブケースについて、荷重はどの方向にかかっていますか?
    • どの節点の自由度が拘束されていますか?
    • 変形形状はメッシュに与えられた境界条件に対して正しいように見えますか?
  11. 同様に、3番目のサブケース(pothole)についても変位と変形を確認します。

密度結果のコンタープロットの表示

最適化反復計算結果(Element Densities)は最初のページに読み込まれています。
  1. アプリケーションの上部右側でpagePrevious-24をクリックし、Design Historyページに戻ります。
  2. コンター設定を定義します。
    1. ResultsツールバーでresultsContour-24をクリックし、Contour panelを開きます。
      注: Result typeはElement Densities (s) and Densityに設定されます。これは、carm_complete_des.h3dファイル内の唯一の結果タイプです。
    2. Averaging MethodをSimpleに設定します。
    3. Applyをクリックします。
    密度コンターが表示されます。コンターはすべて青色となっています。これは、結果が最初の設計ステップまたは反復計算0であるためです。
  3. Resultsブラウザから、Iteration 18を選択します。

    モデル内の各要素に、選択された反復計算についての各要素の密度値を示すレジェンドカラーが割り当てられます。

    以下を解析します:
    要素のほとんどは密度値1または0に収束していますか?
    トポロジー最適化の結果、もし中間密度を持った要素が多い場合はDISCRETEパラメータの値を調整する必要があります。DISCRETEパラメータ(OptimizationパネルのOpti controlパネルで設定)は、中間密度が少なく解釈し易い結果を得ることができるよう、中間密度を持った要素の密度を1または0に近づけるために使用します。
    このモデルでは、メッシュを改良することで、より離散的な解が得られるはずですが、本チュートリアルについては、現状のメッシュと結果で満足するものとします。
    このコンターで、材料補強が必要となる領域は密度値が1.0として表示されます。材料補強が必要ではない領域は密度値が0.0として表示されます。
    画面中のmax =は1.0e+00になっていますか?
    このモデルではそうなっているはずです。
    なっていない場合、最適化が十分進められていません。反復回数を増やすか、OBJTOLパラメータ(Opti controlパネルで設定)を減らしてください。
    DISCRETEパラメータの調整、メッシュの改良および/または目的関数のトレランスを減らしても、より離散的な解が得られない(要素がいずれも密度値1.0にならない)場合、最適化問題の設定を見直したほうがよいかもしれません。定義された制約条件のいずれかが与えられた目的関数について達成され得ない(或いはその逆の)可能性があります。

要素密度のアイソバリュープロットの表示

アイソバリュープロットは、要素密度についての情報を提供します。アイソバリューは、一定の密度しきい値以上の要素すべてを保持しています。各自のニーズに合った構造を与える密度しきい値を選んでください。
  1. メニューバーResults > Plot > Isoをクリックします。
  2. Isoパネルで、Result typeをElement Densities (s)に設定します。
  3. Applyをクリックします。
  4. 密度しきい値を変更します。
    • Current value欄に0.15と入力します。
    • Current valueの下のスライダーを動かします。
    新しい値を入力、またはスライダーを動かすと、モデリングウィンドウ内のアイソバリューがインタラクティブに更新します。この機能を使用して、OptiStructからの荷重のパスおよび材料レイアウトを見易くしてください。

    2010_isoval
    図 7.