COUSUB/COUXX/COUXX2
Modelingユーザーカプラー要素を指定するために使用します。
定義
カプラー拘束は、2つまたは3つのジョイントの相対的な並進運動や回転運動を拘束するために使用します。例えば、サブルーチンベースの定式化を使用することにより、システム状態、関係演算子、および論理式に基づいて可変のカプラー比率を指定できます。代表的な例は、入力ジョイント速度の関数として乗数比で定義された非線形カプラーです。
使用
ユーザー定義のカプラーエンティティの例:
<Constraint_UserConstr
id = id ...
usrsub_param_string = "USER(r1,… r30)"
usrsub_dll_name = "NULL">
</Constraint_UserConstr>
フォーマット
SUBROUTINE COUSUB (ID, TIME, PAR, NPAR, DISP, NDISP, IFLAG, PHI)
SUBROUTINE COUXX (ID, TIME, PAR, NPAR, DISP, NDISP, IFLAG, DFDA)
SUBROUTINE COUXX2 (ID, TIME, PAR, NPAR, DISP, NDISP, IFLAG, D2FDA2)
void STDCALL COUSUB (int *id, double *time, double *par, int *npar, double *disp, int *ndisp, int *iflag, double *phi)
void STDCALL COUXX (int *id, double *time, double *par, int *npar, double *disp, int *ndisp, int *iflag, double *DFDA)
void STDCALL COUXX2 (int *id, double *time, double *par, int *npar, double *disp, int *ndisp, int *iflag, double *D2FDA2)
def COUSUB(id, time, par, npar, disp, ndisp, iflag):
return phi
def COUXX(id, time, par, npar, disp, ndisp, iflag):
return dfda
def COUXX2(id, time, par, npar, disp, ndisp, iflag):
return dfda2
function phi = COUSUB(id, time, par, npar, disp1, ndisp, iflag)
function dfda = COUSUBXX(id, time, par, npar, disp1, ndisp, iflag)
function d2fda2 = COUSUBXX2(id, time, par, npar, disp1, ndisp, iflag)
属性
- ID
- [整数]
- TIME
- [倍精度]
- PAR
- [倍精度]
- NPAR
- [整数]
- DISP
- [倍精度]
- NDISP
- [整数]
- IFLAG
- [論理]
出力
- PHI
- [倍精度]
- DFDA
- [倍精度]
- D2FDA2
- [倍精度]
例
def COUSUB(id, time, par, npar, disp, ndisp, iflag):
phi = disp[0]+par[0]*disp[1]
return phi
def COUXX(id, time, par, npar, disp, ndisp, iflag):
dfda =2*[0]
dfda[0] =1.0dfda[1] = par[0]
return dfda
def COUXX2(id, time, par, npar, disp, ndisp, iflag):
d2fda2 = 2*[0]
return d2fda2