メインコンテンツ

mdlOutputs

このブロックが出力する信号を計算する

必須

はい

言語

C、C++

構文

#define MDL_OUTPUTS
void mdlOutputs(SimStruct *S, int_T tid)

引数

S

S-Function ブロックを表す SimStruct。

tid

タスク ID。

説明

Simulink® エンジンは、シミュレーションの各タイム ステップでこの必須のメソッドを呼び出します。このメソッドは、現在のタイム ステップでの S-Function の出力を計算し、その結果を S-Function の出力信号配列に保存する必要があります。

tid (タスク ID) 引数は、mdlOutputs ルーチンの呼び出し時に実行されているタスクを指定します。この引数をマルチレート S-Function ブロックの mdlOutputs ルーチンで使用して、タスク固有のコード ブロックをカプセル化できます (Multirate S-Function Blocksを参照)。

S-Function にタスク固有のコード ブロックが含まれていない場合は、UNUSED_ARG マクロを使用して、tid 入力引数は必須であるが、コールバックの本体では使用されないことを示します。このために、次の行を挿入します。

UNUSED_ARG(tid)

上記を mdlOutputs での宣言の後に挿入します。

メモ

Simulink Coder™ を所有している場合、このメソッドを含むインラインでない S-Function のコードを生成する際は、メソッドが #if defined(MATLAB_MEX_FILE) ステートメントでラップされていないことを確認してください。以下に例を示します。

#if defined(MATLAB_MEX_FILE) 
static void mdlOutputs(SimStruct *S) 
{ 
   /* Add mdlOutputs code here *
} 
#endif 

define ステートメントでは、mdlOutputs メソッドを MATLAB® MEX ファイルでのみ使用できるようにします。S-Function がインライン化されていない場合、Simulink Coder 製品はこのメソッドを使用できず、リンク エラーまたはランタイム エラーが発生します。

複数の入力端子と出力端子で動作する mdlOutputs ルーチンの例については、sfun_multiport.c を参照してください。

バージョン履歴

R2006a より前に導入