Real-Time Workshop User's Guide    

ラピッドプロトタイピングモデル関数

ラピッドプロトタイピングコードは、ランタイムインタフェースとのインタフェースをとる以下の関数を定義します。

上記の関数の内容は、モデル内のブロックに直接関連します。Simulinkブロックは、つぎの式に従って一般化されます。

出力yは、連続状態xc、離散状態xd,、入力u. の関数です。各ブロックは、MdlOutputの適切な部分に固有の式を書き出します。

離散状態xd, は、カレント状態と入力の関数です。離散状態をもつブロックは、MdlUpdateで状態をアップデートします。

微係数xは、カレント入力の関数です。連続状態をもつブロックは、微係数をMdlDerivativesでソルバ(例., ode5)に与えます。微係数は、連続状態を積分して、つぎの値を作成するためにソルバによって用いられます。

出力yは、一般的にブロックI/O構造体に書き出されます。ルートレベルのOutportブロックは、外部出力構造体に書き出します。連続および離散状態は、状態構造体に格納されます。入力uは、ブロックI/O構造体、外部入力(外部入力構造体にある)、状態にあるほかのブロックの出力から発生します。これらの構造体は、Real-Time Workshopが生成するmodel.hファイルで定義されます。

図 6-3は、Cコードのラピッドプロトタイピングの一般的な内容を示します。

図 6-3: ラピッドプロトタイピングコードスタイルに対するmodel.cの内容

図 6-4は、ラピッドプロトタイピング生成コードの実行を説明するフローチャートです。

図 6-4: ラピッドプロトタイピング実行フローチャート

各ブロックは、実現しているアルゴリズムに従ってコードを固有のMdlルーチンに配置します。ブロックは、入力、出力、パラメータ、状態その他の一般的な項目を含みます。たとえば、 一般的に、ブロック入力と出力は、ブロックI/O構造体(rtB)に書き出されます。ブロック入力は、外部入力構造体(rtU)、または未接続またはgroundedの場合に、積分器(rtX)またはground (rtGround)の状態端子に接続されているときは、状態構造体から入力されます。ブロック出力は、外部出力構造体(rtY)に接続することが可能です。つぎの図は、これらの項目の一般的な割り当てを示します。

図 6-5: 生成コードのデータ表示

構造体の定義


 ラピッドプロトタイピングと組み込みモデルの実行の違い 組み込みモデル関数