SENSUB/SEVSUB
Modelingセンサー要素の値を計算 / 評価するために使用します。SENSUBはイベントを検出できます。一方、SEVSUBはセンサーによって定義されたイベントが発生したときに計算されたスカラー値を返すために使用します。
使用
出力される量を計算するためにSENSUB/SEVSUBを呼び出すユーザー定義の要求:
<Sensor_Evaluate
id = "100"
type = "USERSUB"
usrsub_param_string = "USER(2,22,11)"
usrsub_dll_name = "NULL"
/>
<Sensor_Event
label = "Sensor/100"
id = "100"
type = "USERSUB"
usrsub_param_string = "USER(22,11)"
usrsub_dll_name = "NULL"
compare = "GE"
value = "0."
evaluate_id = "100"
error_tol = "0.0001"
/>
センサーイベント要素はSENSUBサブルーチンを呼び出します。一方、センサー評価要素はセンサーによって検出されたイベントが発生したときにSEVSUBで計算された値を返します。
フォーマット
- Fortranの呼出し構文
-
SUBROUTINE SENSUB (ID, TIME, PAR, NPAR, IFLAG, VALUE) SUBROUTINE SEVSUB (ID, TIME, PAR, NPAR, IFLAG, VALUE)
- C/C++の呼出し構文
-
void STDCALL SENSUB (int *id, double *time, double *par, int *npar, int *iflag, double *value) void STDCALL SEVSUB (int *id, double *time, double *par, int *npar, int *iflag, double *value)
- Pythonの呼出し構文
-
def SENSUB(id, time, par, npar, iflag): return value def SEVSUB(id, time, par, npar, iflag) return value
- MATLABの呼出し構文
-
function value = SENSUB(id, time, par, npar, iflag) function value = SEVSUB(id, time, par, npar, iflag)
属性
- ID
- [整数]
- TIME
- [倍精度]
- PAR
- [倍精度]
- NPAR
- [整数]
- IFLAG
- [論理]
出力
- VALUE
- [倍精度]
- VALUE
- [倍精度]
例
def SENSUB(id, time, par, npar, iflag):
ipar =2*[0]
twopi =2.0*pi
ipar[0] = int(par[0])
ipar[1] = int(par[1])
[AZ, errflg] = py_sysfnc("AZ", ipar)
value = fmod(AZ,twopi) - (pi/2.0)
return value
def SEVSUB(id, time, par, npar, iflag):
itype =int(par[0])
ipar =1*[0]
ipar[0] =int(par[1])
[senval, errflg] = py_sysfnc("SENVAL", ipar)
value = senval+1.0
return value