Real-Time Workshop User's Guide    

チュートリアル3:コードの検証

このチュートリアルでは、f14rtwモデルから生成されたコードは、モデルに対して検証されます。検証方法は、Simulinkモデルの実行および生成されたプログラムからデータを取得して比較することです。

Scopeブロックによってデータをロギングする

この例題では、(Outportブロックではなく)Scopeブロックを使って、入力および出力データをロギングします。データのロギングのためScopeブロックはつぎのように設定します。

  1. 前の例題で、ワークスペースをクリアしました。このチュートリアルを進める前に、適切なワークスペース変数が宣言され、初期化されるように、モデルをリロードします。
  2. Stick Input Scopeをオープンし、ScopeウィンドウのツールバーのPropertiesをクリックします。Scope Propertiesダイアログがオープンします。
  3. Scope Properties ダイアログのData Historyページを選択します。

  4. Save data to workspace オプションをチェックし、Scopeデータを受け取る変数名(Stick_input)を入力します。

    上記の例題では、Stick Input信号は、シミュレーション中に行列 Stick_inputにロギングされます。生成されたコードは、実行プログラムの実行中に、同じ信号データをMAT-ファイル変数rt_Stick_input にロギングします。

  1. Applyボタンをクリックします。
  2. 変数名Pilot_G_forceAngle_of_attackを使って、Pilot G ForceおよびAngle of Attack Scopeブロックを同様に設定します。
  3. モデルを保存します。

シミュレーションデータのロギング

つぎのステップは、シミュレーションを実行し、Scopeブロックから信号データをロギングすることです。

  1. Stick Input, Pilot G Force, Angle of Attack Scopeブロックをオープンします。
  2. モデルを実行します。Scopeブロックが表示されます。

  3. whos コマンドを使って、行列変数Stick_input, Pilot_G_force, Angle_of_attack がワークスペースに保存されていることを確認します。
  4. シミュレーション時間に対して、1つまたは複数のロギングされた変数をプロットします。たとえば、

生成したプログラムからデータをロギングする

モデルは変更されたので、有効なデータファイルを得るためには、f14rtw実行ファイルを再度ビルドして実行する必要があります。

  1. SimulinkウィンドウのToolsメニューのReal-Time Workshopサブメニューから「モデルの作成」を選択します。
  2. ビルドが終了すると、MATLABからスタンドアロンプログラムを実行します。
  3. データファイルf14rtw.matをロードし、ワークスペース変数を見てみます。

    MAT-ファイルからロードされたデータは、rt_Pilot_G_force, rt_Angle_of_attack, rt_Stick_input, rt_toutを含みます。

  1. 3つのワークスペース変数を時間の関数としてプロットします。

シミュレーションの結果と生成したプログラムの比較

Simulinkのシミュレーションと生成されたコードは、ほぼ同じ出力を生成します。

モデルのSimulinkの実行による結果と、モデルから生成されたプログラムの実行の結果のデータを得ています。簡単にf14rtwモデルの出力とReal-Time Workshopから得られた結果を比較することができます。

Angle_of_attack (シミュレーション出力) とrt_Angle_of_attack (生成したプログラム出力)を比較するとつぎのようになります。

Pilot_G_force (シミュレーション出力) とrt_Pilot_G_force (生成したプログラム出力)を比較するとつぎのようになります。

10-13までは一致します。このわずかな誤差は、以下のような多くの要因で生じる場合があります。

たとえば、sin(2.0)のような関数は、利用しているCライブラリによって、わずかに異なる値を出力する場合があります。

同じ理由により、比較結果は上記と同じでない場合があります。


 チュートリアル2:データロギング チュートリアル4: 生成コードの調査