スケーリングメカニズム
DvとResponseの両方をmsolveでスケーリングできます。
スケーリング用の追加のプロパティ(Dvのfactor、mean、scaleBySen、およびResponseのfactor)が用意されているので、コードの残り部分を変更する必要はありません。
Dvのスケーリング
scaleBySenは、自動スケーリングでDvをどのようにスケーリングするかを指定するブーリアンフラグです。デフォルト値がtrueの場合は、目的関数の感度によってDvがスケーリングされます。
例
次の例は、スケーリングしたDvを剛体の質量として使用する方法を示しています。
>>> # Create a scaled Dv
>>> dv = Dv(b=1.0, mean=1.0, factor=2.0)
>>> # Create a Part with designable mass; the current value of mass is 3.0
>>> part = Part(mass=dv, ip=[10,10,10], cm=Marker())
応答のスケーリング
factorを指定している場合は、すべての応答クラスをスケーリングできます。スケーリングした応答の値と感度は、元の応答の値と感度にスケーリングファクターを乗算した値になります。
例
>>> # Create RMS2 and scale it by 0.01
>>> dx_coupler = "DX({marker})".format(marker=m.coupler.cm.id)
>>> a2x = RMS2(targetValue=xy, measuredValue=dx_coupler, factor=0.01)
スケーリングすると、最適化問題が収束しやすくなることがあります。詳細については、高度なトピックのセクションをご参照ください。