メインコンテンツ

mdlDerivatives

C MEX S-Function の微分を計算する

必須

いいえ

言語

C、C++

構文

#define MDL_DERIVATIVES
void mdlDerivatives(SimStruct *S)

引数

S

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

説明

Simulink® エンジンは、S-Function の連続状態の微分を計算するために、各タイム ステップでこのオプションのメソッドを呼び出します。このメソッドは、S-Function の状態微分ベクトルに微分を格納します。C MEX S-Function では、ssGetdX を使用して微分ベクトルを指すポインターを取得します。

mdlDerivatives ルーチンが呼び出されるたびに、すべての微分の値を明示的に設定する必要があります。微分ベクトルは、このルーチンが最後に呼び出されたときの値を保持しません。微分ベクトルに割り当てられたメモリは、実行時に変更されます。

メモ

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

#define MDL_DERIVATIVES 
#if defined(MDL_DERIVATIVES) && defined(MATLAB_MEX_FILE) 
static void mdlDerivatives(SimStruct *S) 
{ 
   /* Add mdlDerivatives code here *
} 
#endif 
define ステートメントでは、mdlDerivatives メソッドを MATLAB® MEX ファイルでのみ使用できるようにします。S-Function がインライン化されていない場合、Simulink Coder 製品はこのメソッドを使用できず、リンク エラーまたはランタイム エラーが発生します。

C MEX S-Function の例については、csfunc.c を参照してください。

バージョン履歴

R2006a より前に導入