Real-Time Workshop User's Guide    

モデルのエントリポイント

model_step

呼び出しインタフェース..    MODEL_STEP マクロは、モデルの生成したステップ関数を呼び出すための標準的な方法です。

シングルレートモデルでは、マクロは、以下のプロトタイプをもつ関数呼び出しに展開されます。

マルチレートモデルでは、マクロは、以下のプロトタイプをもつ関数呼び出しに展開されます。

ここで、tid はタスク識別子です。tidは、rt_OneStep内のロジックにより決定されます(rt_OneStepを参照)

操作.   model_step は、モデルアップデート関数と出力関数を単一のルーチンに結合させます。model_stepは、rt_OneStepからの割り込みレベルで呼び出されるように設計され、タイマISRとして呼ばれることを仮定します。

シングルレート操作.   シングルレートモデルでは、model_stepは、サンプルヒットするすべてのブロックのカレント値を計算します。ロギングが可能な場合は、model_stepはロギング変数をアップデートします。モデルの終了時間が有限の場合は、model_stepはカレントの時間が終了時間と等しいときに、実行の終了の信号を送ります。

マルチレート操作.   マルチレートモデルでは、model_stepの実行は、タスク識別子(tid)引数の利用を除いて、シングルレートの実行とほとんど同じです。

呼び出し側(rt_OneStep)は、各ブロックにtidを割り当てます(rt_OneStepを参照)。 model_steptid引数を使って、どのブロックがサンプルヒットするかを決定します。

model_initialize

呼び出しインタフェース.    MODEL_INITIALIZE マクロは、モデルの生成した初期化コードを呼び出すための標準的な方法です。マクロは、つぎのプロトタイプをもつ関数呼び出しに展開されます。

操作.   第1タイムステップが1(TRUE)と等しい場合、model_initializeはモデルに固有のなリアルタイムオブジェクトとその他のデータ構造体を初期化します。第1タイムステップが0(FALSE)と等しい場合、model_initializeはモデルの状態をリセットします。

第1タイムステップが1(TRUE)として渡されるmodel_initializeの1回の呼び出しが生成されます。

model_terminate

呼び出しインタフェース.    MODEL_TERMINATEは、モデルの生成した終了コードを呼び出すための標準的な方法です。マクロは、つぎのプロトタイプをもつ関数呼び出しに展開されます。

操作.   model_terminateが呼び出されるとき、終了関数をもつブロックは、その終了コードを実行します。ロギングが可能な場合は、model_terminateはデータロギングを終了します。model_terminateは、1回だけ呼び出されます。

エントリポイントを直接呼び出す方法

生成したマクロ呼び出しを、エントリポイントの直接呼び出しと置き換えることが可能です。これは、ユーザコードと、複数のモデルから生成されたコードとのインタフェースをとるときに必要です。その場合、マクロ呼び出しは、不明瞭になります。つぎのコードのように、エントリポイントを参照できるようにするためにmodel_export.h をユーザコードにインクルードします。


 rt_OneStep ERTを使った自動S-ファンクションラッパーの生成