| Real-Time Workshop User's Guide | ![]() |
Model Codeサブライブラリ
Model Codeサブライブラリは、カスタムコードを生成したモデルファイルおよび関数内に挿入する10個のブロックを含みます。ブロックは、以下のいずれかによって表示できます。
一番上の行の4つのブロックは、つぎのファイルの先頭および末尾にカスタムコードを挿入するためのテキストフィールドを含みます。
model.h -- Header Fileブロックmodel_prm.h -- Parameter Fileブロックmodel.c -- Source Fileブロックmodel_reg.h -- Registration Fileブロック2番目と3番目の行の6個の関数ブロックは、つぎの指定したモデル関数の先頭および末尾に重要なコードの部分を挿入するためのテキストフィールドを含みます。
Registration function -- Registration FunctionブロックMdlStart -- MdlStart FunctionブロックMdlTerminate -- MdlTerminate FunctionブロックMdlOutputs -- MdlOutputs FunctionブロックMdlUpdate -- MdlUpdate FunctionブロックMdlDerivatives -- MdlDerivatives Functionブロック各ブロックは、3つのフィールドをもつダイアログボックスを提供します。
例題:カスタムコードブロックの使用法
以下の例題は、MdlStart Functionブロックを使って、コードをMdlStart関数に導入します。下記のブロック線図は、Model Start Functionブロックが挿入されている簡単なモデルを示します。

Model Start Functionブロックをダブルクリックすると、Model Start Function Custom Codeダイアログボックスをオープンします。

利用可能なテキストフィールドのいずれか、またはすべてにカスタムコードを挿入することができます。
下記のコードは、この例題(mymodel)に対するMdlStart関数です。
void MdlStart(void)
{
/* user code (Start function Header) */
/* System: <Root> */
unsigned int *ptr = 0xFFEE;
/* user code (Start function Body) */
/* System: <Root> */
/* Initialize hardware */
*ptr = 0;
/* state initialization */
/* DiscreteFilter Block: <Root>/Discrete Filter */
rtX.d.Discrete_Filter = 0.0;
}
Model Start Function Custom Code ダイアログボックスに入力されたカスタムコードは、生成コード内に直接組み込まれます。カスタムコードの各ブロックは、つぎのようなコメントを使ってタグを付けられます。
/* user code (Start function Header) */
| カスタムコードライブラリ | Subsystem Codeサブライブラリ | ![]() |