Altair Driver使用時に解析途中でMOTIONを無効化する方法

Kosuke_IKEDA
Kosuke_IKEDA
Altair Employee

この記事では、Altair Driver使用時に解析途中でMOTIONを無効化する方法を紹介します。

通常のシミュレーションでは、<Deactivate/>コマンドを挿入して、解析途中でMOTIONやJOINTを無効化することができますが、Altair Driverのシミュレーションでは内部でユーザーサブルーチンで定義されているため、<Deactivate/>コマンドの挿入ができません。

代わりに硬いばねで剛性支持を行い、剛性を時間の関数とすることで、計算初期からある時刻まではジョイントをロックし、ある時刻でジョイントのロックを解除することができます。

Translational Joint / Revolute Joint / Cylindrical Jointに適用可能なシステムを作成しましたので、このシステムをモデルに追加することでジョイントのロック/解除が可能です。

システムファイルは下記よりダウンロード可能です。

sys_lock.mdl

 

モデル

Vehicle Toolsで作成した乗用車モデルを使用します。

RoadCourceイベントを追加しています。

image

本記事ではデモとして、リアストラットのCylindrical Jointのロック/解除を行います。

そのため、inlineではなく、cylindricalタイプのストラットを選択しています。

image

 

システムの追加

File -> Import -> MDL Definitionよりsys_lock.mdlを追加します。

image

開いたウィンドウにて、インポート先のSystem(今回はModel直下)、システムのmdlファイルを指定します。OKをクリックすると、システムがモデルに追加されます。

image

このシステムにはアタッチメントが1つ定義されており、ジョイントを選択できます。

今回は、リア左のストラットのCylindrical Jointを選択します。

選択可能なジョイントの種類はTranslational Joint / Revolute Joint / Cylindrical Jointの3種です。他のジョイントを選択した場合は、正しく動作しません。

image

 

システムの構成

ブッシュ、データセット、アウトプット、ソルバー変数で構成されています。

image

ブッシュ

ユーザー側で編集の必要はありません。

アタッチメントのジョイントと同じポイント、ボディ、方向で定義されます。

ローカルの並進Zと回転Zで復元力・減衰力が時間の関数で定義されています。

復元力・減衰力の剛性値・減衰値はデータセットで変更できます。

時間の関数はソルバー変数て定義されています。

image

 

データセット

ユーザー側で値を変更できます。

k,c,kt,ct:並進の剛性・減衰、回転の剛性・減衰を変更できます。まずはデフォルトをご利用ください。計算に問題がある場合は変更可能です。

deactive time:ロックを無効化する時刻を指定できます。

image

 

アウトプット

ロックのためのブッシュの反力をローカル座標系で出力します。

image

 

ソルバー変数

STEP関数とデータセットのdeactive timeで定義しています。

deactive timeまでは1、deactive time後は0を返します。

この関数を乗ずることで、deactive time後にブッシュ荷重が0になり、ジョイントのロックが解放されます。

image

 

解析と結果の確認

解析を実施し、リアストラットの変位を確認します。

リアストラット左右の変位履歴です。左:青、右:赤です。

ロックを追加したストラット左は時刻5secまで変位0でロックされていますが、5sec以降でロックが解除され変位している様子がわかります。

image

ロック用のブッシュ荷重履歴です。

時刻5secまでストラッド変位を0に保つように荷重が発生していますが、5sec以降は荷重が0となって、ロックが解除されていることがわかります。

image

 

複数システムの追加

システムインポート時にLabelとVariable名を変更するとシステムを追加することができます。

Label名の変更は必須ではありませんが、Variable名は重複は許容されません。

image

追加したシステムのアタッチメントを変更するだけで、簡単に他のジョイントにも適用できます。

image

 

使用ソフト

Altair MotionView/MotionSolve