Altair Driver使用時に解析途中でMOTIONを無効化する方法
この記事では、Altair Driver使用時に解析途中でMOTIONを無効化する方法を紹介します。
通常のシミュレーションでは、<Deactivate/>コマンドを挿入して、解析途中でMOTIONやJOINTを無効化することができますが、Altair Driverのシミュレーションでは内部でユーザーサブルーチンで定義されているため、<Deactivate/>コマンドの挿入ができません。
代わりに硬いばねで剛性支持を行い、剛性を時間の関数とすることで、計算初期からある時刻まではジョイントをロックし、ある時刻でジョイントのロックを解除することができます。
Translational Joint / Revolute Joint / Cylindrical Jointに適用可能なシステムを作成しましたので、このシステムをモデルに追加することでジョイントのロック/解除が可能です。
システムファイルは下記よりダウンロード可能です。
モデル
Vehicle Toolsで作成した乗用車モデルを使用します。
RoadCourceイベントを追加しています。
本記事ではデモとして、リアストラットのCylindrical Jointのロック/解除を行います。
そのため、inlineではなく、cylindricalタイプのストラットを選択しています。
システムの追加
File -> Import -> MDL Definitionよりsys_lock.mdlを追加します。
開いたウィンドウにて、インポート先のSystem(今回はModel直下)、システムのmdlファイルを指定します。OKをクリックすると、システムがモデルに追加されます。
このシステムにはアタッチメントが1つ定義されており、ジョイントを選択できます。
今回は、リア左のストラットのCylindrical Jointを選択します。
選択可能なジョイントの種類はTranslational Joint / Revolute Joint / Cylindrical Jointの3種です。他のジョイントを選択した場合は、正しく動作しません。
システムの構成
ブッシュ、データセット、アウトプット、ソルバー変数で構成されています。
ブッシュ
ユーザー側で編集の必要はありません。
アタッチメントのジョイントと同じポイント、ボディ、方向で定義されます。
ローカルの並進Zと回転Zで復元力・減衰力が時間の関数で定義されています。
復元力・減衰力の剛性値・減衰値はデータセットで変更できます。
時間の関数はソルバー変数て定義されています。
データセット
ユーザー側で値を変更できます。
k,c,kt,ct:並進の剛性・減衰、回転の剛性・減衰を変更できます。まずはデフォルトをご利用ください。計算に問題がある場合は変更可能です。
deactive time:ロックを無効化する時刻を指定できます。
アウトプット
ロックのためのブッシュの反力をローカル座標系で出力します。
ソルバー変数
STEP関数とデータセットのdeactive timeで定義しています。
deactive timeまでは1、deactive time後は0を返します。
この関数を乗ずることで、deactive time後にブッシュ荷重が0になり、ジョイントのロックが解放されます。
解析と結果の確認
解析を実施し、リアストラットの変位を確認します。
リアストラット左右の変位履歴です。左:青、右:赤です。
ロックを追加したストラット左は時刻5secまで変位0でロックされていますが、5sec以降でロックが解除され変位している様子がわかります。
ロック用のブッシュ荷重履歴です。
時刻5secまでストラッド変位を0に保つように荷重が発生していますが、5sec以降は荷重が0となって、ロックが解除されていることがわかります。
複数システムの追加
システムインポート時にLabelとVariable名を変更するとシステムを追加することができます。
Label名の変更は必須ではありませんが、Variable名は重複は許容されません。
追加したシステムのアタッチメントを変更するだけで、簡単に他のジョイントにも適用できます。
使用ソフト