Coupler

Model ElementCouplerは、2つまたは3つのジョイントの自由度間の代数的関係を定義します。この拘束要素は、理想化された平歯車、ラックアンドピニオンギア、および作動装置を、ジョイントセット内の変位同士を関連付ける単純な拘束としてモデル化するために使用できます。

クラス名

Coupler

属性の概要

名前 プロパティ コマンドで変更可能か 設計可能か
id Int ()    
label Str ()    
Types "T R"    
joints Reference ("Joint", count=3)    
type EnumString (Types, count=3)    
scales Double ([1,0,0], count=3)   FDのみ
function Function ("COUSUB", xxfunc="COUXX", xx2func="COUXX2")    
routine Routine ()    
script Script ()    
active Bool ()  
virtual Bool ()  

使用法

#1: Linear coupler specified in the input deck 
Coupler (joints=list, scales=list, optional__attattributes)

#2: Nonlinear coupler specified in a user-written subroutine in compiled DLL
Coupler (joints=list, function=userString, routine=string, optional_attributes)

#3: Nonlinear coupler specified in a Python function
Coupler (joints=list, function=userString, routine=functionPointer, optional_attributes)

属性

#1:入力デックで指定された線形カプラー
joints
ジョイントオブジェクトへの参照のリスト。
jointsは、内部の自由度をCOUPLERと連成させるジョイントのリスト(j1、j2など)を指定します。リストには少なくとも2つのジョイントを含める必要があります。最大3つのジョイント自由度を連成できます。
この属性は必須です。
COUPLERと共に使用できるのは、回転、並進、および円筒ジョイントのみです。
scales
倍精度値のリスト。
カプラーに関連付けられた拘束を定義するときに使用されるスケールファクターとして定義されます。
2つのジョイントのみを使用してカプラー拘束を指定する場合、比率には2つの実数値が与えられます。
3つのジョイントを使用する場合、比率には3つの実数値を指定する必要があります。
この属性は省略可能です。
注: 属性scalesと属性functionは互いに排他的です。functionが定義された場合は、scalesを定義できません。逆も同じです。ただし、2つのうちのどちらかを指定する必要があります。
#2:コンパイルされたDLL内のユーザー作成サブルーチンで指定された非線形カプラー。
joints
ジョイントオブジェクトへの参照のリスト。
jointsは、内部の自由度をCOUPLERと連成させるジョイントのリスト(j1、j2など)を指定します。リストには少なくとも2つのジョイントを含める必要があります。最大3つのジョイント自由度を連成できます。
この属性は必須です。
COUPLERと共に使用できるのは、回転、並進、および円筒ジョイントのみです。
function
データファイルからユーザー定義のサブルーチンに渡されるパラメータのリスト。
この属性は省略可能です。
注: 属性functionと属性scalesは互いに排他的です。scalesが定義された場合は、functionを定義できません。逆も同じです。ただし、2つのうちのどちらかを指定する必要があります。
routine
文字列
ユーザーサブルーチンの代替名を指定します。この名前は、“∷”で区切られた情報の2つの部分で構成されます。1つ目は、ユーザー定義のVariableの応答を計算する関数を含む共有ライブラリへのパス名です。2つ目は、計算を実行する共有ライブラリ内の関数の名前です。

例: routine="/staff/Altair/engine.dll::myCoupler"

  • "/staff/Altair/ engine.dllはDLLです。
  • “myCoupler”は、計算を実行するこのDLL内の関数です。
属性routineは省略可能です。
指定しない場合、routineはデフォルトでCOUSUBになります。
#3:Python関数で指定された非線形カプラー
joints
ジョイントオブジェクトへの参照のリスト。
jointsは、内部の自由度をCOUPLERと連成させるジョイントのリスト(j1、j2など)を指定します。リストには少なくとも2つのジョイントを含める必要があります。最大3つのジョイント自由度を連成できます。
この属性は必須です。
COUPLERと共に使用できるのは、回転、並進、および円筒ジョイントのみです。
function
データファイルからユーザー定義のサブルーチンに渡されるパラメータのリスト。
この属性は省略可能です。
注: 属性functionと属性scalesは互いに排他的です。scalesが定義された場合は、functionを定義できません。逆も同じです。ただし、2つのうちのどちらかを指定する必要があります。
routine
Python内の呼び出し可能な関数へのポインタ。
例:routine=myCousub
  • myCousubは、モデルが存在する場所ならどこからでも呼び出すことが可能なPython関数またはメソッドです。
属性routineは省略可能です。
指定しない場合、routineはデフォルトでCOUSUBになります。
オプション属性 - すべてのバリアントに使用できます。
type
文字列の"T"または"R"を含むリスト。
typeは、ジョイントのそれぞれに使用される自由度のタイプを表すリストを定義します。
"T"は、ジョイント内の並進自由度を使用することを示します。
"R"は、ジョイント内の回転自由度を使用することを示します。
この属性は、どのジョイントも円筒ジョイントでなければ、省略可能です。その場合、typesリストの長さをjointsリストの長さと同じにする必要があります。
label
文字列
COUPLER要素の名前。
この属性は省略可能です。指定しない場合は、MotionSolveが代わりにラベルを作成します。
id
整数
COUPLERの要素識別番号を指定します。この番号は、モデル内のすべてのCOUPLERオブジェクトの中で一意にする必要があります。
この属性は省略可能です。MotionSolveは、IDが指定されていない場合、自動的にこれを作成します。
値の範囲:id > 0
active
ブール
TRUEまたはFALSEのどちらかを選択します。
  • TRUEは、要素がモデル内でアクティブであり、システムの動作に影響を与えていることを示します。
  • FALSEは、要素がモデル内で非アクティブであり、システムの動作に影響を与えていないことを示します。エンティティがモデルから削除される場合とほとんど同じですが、必要に応じて“ON”にできる点が異なります。
属性activeは省略可能です。指定しない場合、activeはデフォルトでTRUEになります。
virtual
ブール
仮想拘束なのか通常の拘束なのかを定義します。"TRUE"、または"FALSE"を選択します。
  • "TRUE"は、拘束が仮想拘束として実装されることを示します。
  • "FALSE"は、拘束が通常の代数拘束として実装されることを示します。

省略可能です。指定しない場合、virtualはデフォルトで"FALSE"になります。virtualの詳細については、Constraint: Jointをご参照ください。

  1. 回転ジョイントと並進ジョイントを結合する線形COUPLER
    jt1  = Joint (label="Joint-1", i=i1, j=j1, type="REVOLUTE")
    jt2  = Joint (label="Joint-2", i=i2, j=j2, type="TRANSLATIONAL")
    Coupler (label="Coupler-0", joints=[jt1, jt2], type=["R", "T"], scales=[1, 2.5])
  2. 回転ジョイント、並進ジョイント、および円筒ジョイントを結合する線形COUPLER
    jt1  = Joint (label="Joint-1", i=i1, j=j1, type="REVOLUTE")
    jt2  = Joint (label="Joint-2", i=i2, j=j2, type="TRANSLATIONAL")
    jt3  = Joint (label="Joint-3", i=i3, j=j3, type="CYLINDRICAL")
    Coupler (id=2, label="Coupler-2", joints=[jt1, jt2, jt3], type=["R", "T", "R"], scales=[1, 2.5, 3.7])
  3. 2つの並進ジョイントを結合するデフォルトのルーチン名を持つ非線形COUPLER
    trans1  = Joint (label="Joint-2", i=i2, j=j2, type="TRANSLATIONAL")
    trans2  = Joint (label="Joint-2", i=i2, j=j2, type="TRANSLATIONAL")
    Coupler (label="Coupler-3", joints=[trans1, trans2], type=["T", "T"], function=user(1,2,3))

コメント

  1. プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
  2. Couplersの詳細については、拘束:カプラーをご参照ください。
  3. virtualの詳細については、Constraint: Jointをご参照ください。