Parameters: Linear Solver
モデル要素Param_Linearは、線形解析の解析制御パラメータを定義します。これらのパラメータは、実行する線形解析のタイプと出力オプションを制御します。
説明
- システムの固有値および固有ベクトル計算
- 入力および出力のセットが定義されている場合の、線形システムの状態マトリクス計算(E、A、B、C、およびDマトリクス)
線形解析は、どの作用点でも実行できます。これは、静的平衡解析の後、または動解析の後に実行されます。通常、動作条件として、定常コンフィギュレーションが選択されます。MotionSolveのすべてのモデリング要素が線形解析でサポートされているわけではありません。詳細については、コメントのセクションをご参照ください。
フォーマット
<Param_Linear
[
anim_scale = "real"
balancing = {"TRUE" | "FALSE" | "AUTO"}
disable_damping = {"TRUE" | "FALSE" }
gyroscopic = {"NONE"|"PARTIAL"|"FULL"}
eigen_analysis = {"TRUE"|"FALSE"}
write_energy_dist = {"TRUE"|"FALSE"}
write_energy_html = {"TRUE"|"FALSE"}
write_eig_info = {"TRUE"|"FALSE"}
write_simulinkmdl = {"TRUE"|"FALSE"}
write_matlabfiles = {"TRUE"|"FALSE"}
write_oml = {"TRUE"|"FALSE"}
pinput_id = "integer"
poutput_id = "integer"
pstate_id = "integer"
{
ke_modes_exclude = "string"
ke_modes_include = "string"
}
{
se_modes_exclude = "string"
se_modes_include = "string"
}
{
de_modes_exclude = "string"
de_modes_include = "string"
}
]
/>
属性
- anim_scale
- アニメーション時にモード形状を拡大するためのスケールファクターを指定します。
デフォルトは1.0です。
- balancing
- 固有値解の堅牢性を高めるために対角スケーリングを使用してAマトリクスを前処理するかどうかを指定します。以下のいずれかを選択します:
TRUE:MotionSolveは、対角スケーリングを使用して常にAマトリクスのバランスを取ります。
FALSE:MotionSolveは、Aマトリクスのバランスを取りません。
AUTO:MotionSolveは、固有ベクトルマトリクスの条件数に基づいてAマトリクスのバランスを取るタイミングを決定します。詳細については、コメント8をご参照ください。
balancingのデフォルトはAUTOです。
- disable_damping
- 線形ソルバーで固有値解析のすべての力要素から減衰を無効にするかどうかを指定します。
- gyroscopic
- 回転システムの線形化時に、MotionSolveでジャイロスコープ効果をどのように計算するのかを指定します。以下のいずれかを選択します:
- NONE:MotionSolveは、線形解析の際にジャイロスコープ効果を考慮しません。
- PARTIAL:MotionSolveは、角運動量を考慮せずに、部分的なジャイロスコープ効果を考慮します。
- FULL:MotionSolveは、角運動量も含め、ジャイロスコープ効果をすべて考慮します。
- eigen_analysis
- 線形解析で固有値解析を実行するのかスキップするのかを指定します。これは、A、B、C、およびDマトリクスのみが必要な場合に使用できます。NOを選択した場合、固有値情報とエネルギー分布情報は書き込まれません。TRUEまたはFALSEを選択します。
デフォルトはTRUEです。
- write_energy_dist
- モーダル運動ひずみおよび損失エネルギーの分布がソルバーログファイルと*_linz.mrf出力ファイルに書き出されるかどうかを指定します。TRUEまたはFALSEを選択します。
- write_energy_html
- モーダル運動ひずみおよび損失エネルギーの分布が、最新の任意のブラウザで表示できるHTMLフォーマットで書き出されるかどうかを指定します。TRUEまたはFALSEを選択します。
- write_eig_info
- 固有値と固有ベクトルのデータが.eigファイルに書き込まれるかどうかを指定します。TRUEまたはFALSEを選択します。
- write_simulinkmdl
- 計算されるA、B、C、およびDマトリクスが、Simulink MDLフォーマットで書き出されるかどうかを指定します。TRUEまたはFALSEを選択します。
- write_matlabfiles
- 計算されるA、B、C、およびDマトリクスが、MATLABで読み取り可能なファイルに書き出されるかどうかを指定します。TRUEまたはFALSEを選択します。
- write_oml
- 計算されるA、B、C、およびDマトリクスが、Composeまたは、GNU OctaveなどOMLベースのその他任意の算術ツールで読み取り可能なファイルに書き出されるかどうかを指定します。TRUEまたはFALSEを選択します。
- pinput_id
- BおよびDの状態マトリクスに使用されるプラント入力IDを指定します。必要に応じて、write_simulinkmdl、write_matlabfile、write_omlオプションと共に使用できます。
- poutput_id
- CおよびDの状態マトリクスに使用されるプラント出力IDを指定します。必要に応じて、write_simulinkmdl、write_matlabfile、write_omlオプションと共に使用できます。
- pstate_id
- MotionSolveが運動方程式の線形化に使用する状態の一部またはすべてを定義する、Reference_PlantStateのIDを指定する整数。pstate_id属性が指定されていない場合、MotionSolveはその独自の内部状態を使用して方程式を線形化します。
- ke_modes_exclude, ke_modes_include, se_modes_exclude, se_modes_include, de_modes_exclude, de_modes_include
- これらの属性により、次のエネルギー分布表からモードを除外したり、これらの表にモードを含めたりすることができます。
コメント
- 固有ベクトルおよび固有値解析:
非線形システムの固有値および固有ベクトルは、時間と共に変化できます。固有値解析は、特定の作用点または一連の作用点で、基礎となるシステムの振動特性を理解するのに役立ちます。
固有値は、システムの振動の複雑な周波数を表し、固有ベクトルは振動のモードを表します。
- 状態マトリクス解析:
入力セット“u”、出力セット“y”、および動的状態のセット“x”で表される線形化された機構システムが与えられると、システムの伝達関数は時間領域において次のように表すことができます:
マトリクスE、A、B、C、およびDは、システムの状態マトリクスと呼ばれます。nx個の状態、nu個の入力、ny個の出力がある場合、マトリクスの次元は次のようになります:- E:nx x nx
- A:nx x nx
- B:nx x nu
- C:nu x nx
- D:nu x nu
入力“u”は、pinput_idで指定されたControl_PlantInputモデリング要素を使用して定義され、出力“y”は、poutput_idで指定されたControl_PlantOutputモデリング要素を使用して定義されます。
入力“u”は、変位、力、またはモーメントにすることができます。入力が力またはモーメントの場合、マトリクスEはIDマトリクスになり、システムの伝達関数は次のように簡略化できます:
状態マトリクス出力は、コントローラーを設計するために線形プラント表現を必要としている制御エンジニアにとって特に有用です。
状態マトリクスのもう1つの一般的な用途としては、時間ベースの一連の入力に対するシステムの周波数応答関数の計算が挙げられます。これは、線形化された機構システムの従来の振動解析です。
- 状態マトリクス出力:
- write_simulinkmdl属性が選択されている場合、A、B、C、およびDのマトリクスは、Simulink MDLファイルにSimulinkフォーマットで書き込まれます。
- write_matlabfiles属性が選択されている場合、A、B、C、およびDのマトリクスは、それぞれ拡張子.a、.b、.c、.dが付いた4つの別々のファイルにMATLABフォーマットで書き込まれます。
- write_oml属性が選択されている場合、A、B、C、およびDのマトリクスは、拡張子.omlが付いた1つのファイルにOMLフォーマットで書き込まれます。
- 固有値解析出力:
- 固有値は*.eigファイルに書き込まれます。
- モード形状を可視化するには、H3DOutputコマンドでlinear_animation = “TRUE”属性を設定します。各モード形状が新しいサブケースとしてH3Dファイルに書き込まれます。
- 固有値および固有ベクトルの重要性:
固有値および固有ベクトルは、状態マトリクスから計算できます。線形解析が開始されると、システムは線形化され、次のようになります:
q は、線形化された変位座標を表し、zは、別の微分方程式による機構以外の状態を表します。
すべての拘束は、定式化から除外されます。方程式は、次のように1次形式に変換されます:
この結果、次の固有値問題が得られます。
ここで、 、 、および- 固有値を次のように表すとします:
このモードの非減衰固有周波数は次のようになります:
このモードの減衰比は次のようになります:
このモードの減衰固有周波数は次のようになります:
- 固有値の実部は、システムの減衰に対応します。すべての安定したシステムで、これはゼロ未満である必要があります。固有値の正の実成分は、システムの不安定性を示します。このモードが励起されると、システムは不安定になります。そのような設計は避けてください。
- システム内の剛性や減衰などの設計パラメータを適切に変えて固有値を計算することで、作用点でのシステムの根軌跡プロットを生成できます。
- 固有ベクトルを使用して、周波数領域で実行された可能性のある実際の物理テストによって解析モデルを検証できます。
- 固有値を次のように表すとします:
- 状態マトリクスの重要性:
線形化された運動方程式のラプラス変換を取ります:
初期値X(0)を無視し、項を並べ替えると、次の式が得られます:
System Transfer Function =
伝達関数の意味は、その入力と出力のタイプに基づいて変わります。- 入力“u”が変位で出力“y”が力の場合、マトリクスE-A-B-C-Dはまとめて作用点での動的コンプライアンスを表します。
- 入力“u”が力で出力“y”が変位の場合、マトリクスA-B-C-Dはまとめて(EはID)作用点での動的剛性を表します。
- 入力“u”が力で出力“y”が速度の場合、マトリクスA-B-C-Dはまとめて(EはID)作用点での機械インピーダンスを表します。
- 入力“u”が力で出力“y”が加速度の場合、マトリクスA-B-C-Dはまとめて(EはID)作用点での見かけの質量を表します。
自動車業界では、サスペンション設計にコンプライアンスマトリクスが使用されます。コンプライアンスマトリクスは、サスペンション上の特定のポイントに適用される一連の力およびトルクを、サスペンション上の別の特定の点で測定された変位に関連付ける、MIMO伝達関数です。
従来、コンプライアンスマトリクスは、静的平衡位置およびサスペンション設計に使用されるデータについて計算されていました。このアプローチでは、次の3つの効果が無視されます:(a)システムコンプライアンスにおける慣性および減衰の効果、(b)車両動作時のコンプライアンスの変化、(c)入力の周波数に伴うコンプライアンスの変化。
ABCDマトリクスを使用して、動的作用点についてのコンプライアンス伝達関数を計算することで、これらすべての問題に対処できます。
- システム内のエネルギー分布の計算:
write_energy_distがTRUEに設定されている場合、MotionSolveは、指定されたモードについて、モデル内のパートおよび力の運動、ひずみ、および損失エネルギーの分布を計算します。
write_energy_distがFALSEに設定されている場合、MotionSolveは、ke_modes_include/ke_modes_exclude、se_modes_include/se_modes_exclude、またはde_modes_include/de_modes_excludeの属性やその値に関係なく、エネルギーの分布を計算しません。
MotionSolveがエネルギー分布を計算する対象となるモードを指定することができます。これは、システム内に大量のモードがあり、それらのモードの中の1つのサブセットのエネルギー分布のみに注目したい場合に便利です。
次の属性を使用して、運動、ひずみ、または損失エネルギーについて、MotionSolveが含めるまたは除外するモードを指定できます:- ke_modes_include – 運動エネルギー分布でモードを含める場合
- ke_modes_exclude – 運動エネルギー分布でモードを除外する場合
- se_modes_include – ひずみエネルギー分布でモードを含める場合
- se_modes_exclude – ひずみエネルギー分布でモードを除外する場合
- de_modes_include – 損失エネルギー分布で特定のモードを含める場合
- de_modes_exclude – 損失エネルギー分布で特定のモードを除外する場合
一般に、含めるモード、または除外するモードを指定するだけですが、その両方を指定することはできません。両方(含めるモードと除外するモード)を指定した場合、Param_Linearステートメントで後から記載された定義に従います。
運動エネルギー:
MotionSolveは、指定されたモードについて、MBDモデル内のすべてのボディのモーダル運動エネルギーの分布を計算します。これらは、表形式でログファイルに書き込まれます。この表の各行が1つのボディを表します。各行で、それぞれの数字は、パートの並進(X、Y、Z)、回転(RXX、RYY、RZZ)、および交差回転(RXY、RXZ、RYZ)方向のモーダル運動エネルギーの分布の割合(%)を表します。各モードでのモーダル運動エネルギー分布の合計は100%になります。
各モードでの運動エネルギーの合計は、次のように計算されます:
は固有ベクトルです。
は、サイズがnDOF*nBodies X nDOF*nBodiesの質量マトリクスです。nDOFはボディあたりの自由度の数(= 6)、nBodiesはシステム内のボディの合計数です。
は、モードの非減衰周波数です。
各パートのモーダル運動エネルギー分布は、9つの座標X、Y、Z、RX、RY、RZ、RXY、RXZ、およびRYZについて計算されます。
例えば、Z方向の合計KEの割合は、次のようにして計算されます:
は、Z方向のモーダル運動エネルギーの割合です。
は、上記の質量マトリクスです。
は、現在のモード番号に対応する固有ベクトルマトリクスΦの列です。モード番号が10の場合、これは固有ベクトルマトリクスの10番目の列ベクトルです。このベクトルのサイズは、6*nBodies X 1です。
は、対象の座標(この例ではZ座標)以外のすべてのエントリをゼロにした と同じベクトルです。
交差回転項(RXY、RXZ、RYZ)では、計算は若干異なります。例えば、RXZの割合は次のとおりです:
は、Rxz方向のモーダル運動エネルギーの割合です。
は、上記の質量マトリクスです。
は、現在のモード番号に対応する固有ベクトルマトリクスΦの列です。
は、Rx座標以外のすべてのエントリをゼロにした と同じベクトルです。
は、Rz座標以外のすべてのエントリをゼロにした と同じベクトルです。
ひずみおよび損失エネルギー:
MotionSolveは、指定したモードにおける、MBDモデル内の特定の力エンティティのモーダルひずみおよび損失エネルギー分布も計算できます(これらを下の表に示します)。
このエネルギー分布は、表形式でログファイルに書き込まれます。この表の各行が1つの力エンティティを表します。各行で、それぞれの数字は、並進(X、Y、Z)および回転(RX、RY、RZ)方向のモーダルひずみまたは損失エネルギーの分布の割合(%)を表します。モデル要素 合計 X Y Z RX RY RZ Force_Beam ○ ○ ○ ○ ○ ○ ○ Force_Bushing ○ ○ ○ ○ ○ ○ ○ Force_Field ○ ○ ○ ○ ○ ○ ○ Force_Vector_OneBody、Force_Vector_TwoBody タイプ = ForceAndTorque
○ ○ ○ ○ ○ ○ ○ Force_Vector_OneBody、Force_Vector_TwoBody タイプ = ForceOnly
○ ○ ○ ○ × × × Force_Vector_OneBody、Force_Vector_TwoBody タイプ = TorqueOnly
○ × × × ○ ○ ○ Force_Scalar_TwoBody タイプ = Force
○ ○ ○ ○ × × × Force_Scalar_TwoBody タイプ = Torque
○ × × × × × × ForceSpringDamper タイプ = TRANSLATION
○ ○ ○ ○ ○ ○ ○ Force_SpringDamper タイプ = ROTATION
× × × × × × × 注: 力エンティティが、モーダルひずみまたは損失エネルギーに寄与しない場合、その力エンティティ行はゼロです。ひずみおよび損失エネルギー分布の計算は、運動エネルギー分布と似ていますが、力要素の分布割合の計算に質量マトリクスを使用する代わりに、剛性および減衰マトリクスを使用する点のみ異なります。
エネルギー分布表に加え、MotionSolveでは、モード番号、減衰比、非減衰固有周波数、およびモーダル運動エネルギーの合計値についての情報を含む、各モードのヘッダーも表示されます。出力ログファイルに書き込まれるこのエネルギー分布の例を以下に示します:
************************* Mode number = 10 Damping ratio = 5.0000000E-02 Undamped natural freq.= 1.5915494E+00 Kinetic energy = 1.1427840E-05 Percentage distribution of Kinetic energy | X Y Z RXX RYY RZZ RXY RXZ RYZ +---------------------------------------------------------------- PART/30301 | 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 PART/30302 | 0.00 98.69 0.00 1.31 0.00 0.00 0.00 0.00 0.00 +---------------------------------------------------------------- Percentage distribution of Strain energy | Total X Y Z RXX RYY RZZ +------------------------------------------------- VFOR/30301 | 0.00 0.00 0.00 0.00 VFOR/30302 | 0.00 0.00 0.00 0.00 SPDP/303001 | 0.00 0.00 0.00 0.00 0.00 0.00 0.00 SPDP/303002 | 50.00 50.00 0.00 0.00 0.00 0.00 0.00 SPDP/303003 | 50.00 50.00 0.00 0.00 0.00 0.00 0.00 +------------------------------------------------- Percentage distribution of Dissipative energy | Total X Y Z RXX RYY RZZ +------------------------------------------------- VFOR/30301 | 0.00 0.00 0.00 0.00 VFOR/30302 | 0.00 0.00 0.00 0.00 SPDP/303001 | 0.00 0.00 0.00 0.00 0.00 0.00 0.00 SPDP/303002 | 50.00 50.00 0.00 0.00 0.00 0.00 0.00 SPDP/303003 | 50.00 50.00 0.00 0.00 0.00 0.00 0.00 +-------------------------------------------------
これらのエネルギー分布は、さらに出力*_linz.mrf ファイルに書き込まれ、ポスト処理に使用することができます。注: どのモードを包含または除外するように指定したかに関係なく、*_linz.mrfには、すべてのモードの情報が含まれます。 - マトリクスバランシング
特定のモデルについて、MotionSolve で計算された固有値を、 マトリクス内の小さな摂動に対して極端に敏感にすることができます。これは、このようなモデルの固有ベクトルマトリックス の状態が非常に悪いことによって生じます。結果的に、そのようなモデルにとって小さな変化に見えたとしても、固有値解では大きな変化が生じる可能性があります。
は、マトリックス の条件数です。線形方程式 について考えます。 は、解xがbの変化によって変化する比率を測定します。 が大きい場合、bの変化が小さくても、解xが大きく変化する可能性があります。そのような場合、マトリクスVは不良であると言います。
このような場合に堅牢な固有値解を得るため、MotionSolveは、対角相似変換 を求めることにより、 マトリクスのバランスを取り、 の行と列のノルムが数値的に近くなるようにします。こうすることで、固有ベクトルマトリクスはより良い状態となり、固有値解は の数値的ノイズに対してより堅牢になります。
balancing属性は、マトリクスバランシングを行うかどうかを制御します。- これをTRUEに設定すると、固有ベクトルマトリクスが不良であるかどうかに関係なく、常にAマトリクスのバランスを取ります。
- balancingをFALSE に設定すると、Aマトリクスのバランスが取られることはありません。
- balancingのデフォルトはAUTOで、この場合、バランシングが必要かどうかは、MotionSolveが決定します。
を、 の条件数の逆数とします。
の場合、バランシングが行われます。それ以外の場合、バランシングは行われません。
の場合は、 であれば、バランシングが行われます。
マトリクスのバランシングは一般的には良い方法ですが、慎重に使用する必要があります。バランシングによって期待した利点が得られない状況もまれにあります。具体的には、以下に注意してください:- マトリクスに四捨五入の誤差による小さな要素が含まれる場合、バランシングによってさらに大きくなる可能性があります。MotionSolveは、ヤコビアンでの非常に小さいエントリをゼロにすることで、これを最小化します。
- 固有ベクトルマトリクスの条件数 は、 が計算された後に計算できるようになります。balancingがAUTOに設定されている場合、固有値ソルバーは2回呼び出される可能性があります。最初はバランシングなしで、その後、 が小さければ、バランシングありで呼び出されます。結果として、実行時間が増加する場合があります。
- 要素のサポートMotionSolveでは、線形解析のすべてのモデリング要素をサポートしているわけではありません。次の要素は現在サポートされていません:
- Body_Flexible(NLFEボディのみ)
- Constraint_General
- Force_Contact
- Force_Penalty
- Reference_2DCluster
- Reference_Variable (陰的解析のみ)
- Subsystem_Planar/Reference 2DCluster
- シミュレーションシーケンス線形解析ステップは、常に解析ステップのシーケンスの中で最後のステップである必要があります。次のシーケンスが有効です:
- 1: 線形
- 1: (擬似)静、2: 線形
- 1: 過渡、2: 線形
- 1: 静、2: 過渡、3:線形
- その他の組み合わせ
- 1:Transient(過渡解析)
- 2:Save
- 3:線形
- 4:ステップ2のモデルを再読み込み
- 連成シミュレーション
線形解析には、連成シミュレーションの実行で使用できる要素は含まれません。