随伴手法

これも有限差分が使用されない解析手法です。

ただし、この手法のコストはモデル内の応答変数の数(Ny)に比例します。設計変数の数はコストに影響を与えません。この手法は非常に堅牢であり、設計変数の数が応答変数の数より多い場合(すなわちNb > Nyの場合)に推奨されます。

3つの手法はすべて、設計可能なモデルがあることを前提にしています。設計可能なモデルとは、モデルが設計変数を使用してパラメータ化されていることを意味します。

次の例は、MotionSolveでDSAを実行するためのさまざまな方法を示しています。
  • dsa=“AUTO”という設定を使用すると、問題の特性に基づいて最善の手法が選択されます。
    • 設計変数の数が応答の数より多い場合は、随伴手法が使用されます。
    • 設計変数の数が応答の数より少ない場合は、直接手法が使用されます。
    • 解析のタイプが“動的”である場合は、必ずFD手法が使用されます。
  • dsa=”Direct”という設定を使用すると、設計感度マトリックスを計算するために直接微分法が選択されます。
  • dsa=”Adjoint”という設定を使用すると、設計感度マトリックスを計算するために随伴手法が選択されます。
  • dsa=”FD”という設定を使用すると、設計感度マトリックスを計算するために有限差分法が選択されます。有限差分の各計算は並列で実行されます。
  • dsa=”FD_Serial”という設定を使用した場合も、設計感度マトリックスを計算するために有限差分法が選択されます。ただし、有限差分の各計算は1つずつ順番に実行されます。
>>> # Create a model and store it in the variable m. Sliding_block (...) creates a model.
>>> m = sliding_block ("lugre1") 

>>> # Perform a statics simulation followed by a DSA with the AUTO method
>>> m.simulate (type="STATIC", dsa=”AUTO”,       end=4, dtout=.01)
  
>>> # Perform a statics simulation followed by a DSA with the DIRECT method
>>> m.simulate (type="STATIC", dsa=”DIRECT”,     end=8, dtout=.01)

>>> # Perform a statics simulation followed by a DSA with the ADJOINT method
>>> m.simulate (type="STATIC", dsa=”ADJOINT”,    end=12, dtout=.01)
 
>>> # Perform a statics simulation followed by a DSA with the FD method
>>> m.simulate (type="STATIC", dsa=”FD”,         end=16, dtout=.01) 

>>> # Perform a statics simulation followed by a DSA with the FD_SERIAL method
>>> m.simulate (type="STATIC", dsa=”FD_SERIAL”, end=20, dtout=.01)