Real-Time Workshop User's Guide    

チュートリアル2:データロギング

Real-Time WorkshopのMAT-ファイルデータロギング機能によって、生成したプログラムの各モデル実行時間ステップごとのシステムの状態、出力、シミュレーション時間を保存することができます。データは、(デフォルトでは) model.matというMAT-ファイルに書き出されます。ここで、modelはユーザのモデル名です。このチュートリアルでは、モデルf14rtw によって生成されたデータは、ファイル f14rtw.matにロギングされます。

データロギングを設定するには、シミュレーションパラメータ ダイアログのWorkspace I/Oページを利用します。このプロセスは、Simulinkモデルで、出力をMATLABワークスペースへ保存するように設定することとほとんど同じです。ユーザが定義し、利用可能な各ワークスペース出力変数に対して、Real-Time Workshopは平行してMAT-ファイル変数を定義します。たとえば、シミュレーション時間を変数 toutに保存する場合、生成したプログラムは、同じデータを(デフォルト)rt_toutという変数にロギングします。

このチュートリアルでは、f14rtw モデルを、生成プログラムがシミュレーション時間とシステム出力をファイルf14rtw.matに保存するように変更します。その後、MATLABワークスペースにデータをロードし、出力に対してシミュレーション時間をプロットします。

データロギング機能を利用するには、

  1. Simulation ParametersThe Workspace I/O page ページを選択します。The Workspace I/O page ページは、データのワークスペースからのロード方法と、ワークスペースへの保存方法を指定します。

  2. Timeオプションをチェックします。Time オプションを有効にすると、Real-Time Workshopはシミュレーション時間をMAT-ファイル行列rt_toutにロギングするコードを生成します。
  3. Outputオプションをチェックします。 Output オプションを有効にすると、Real-Time Workshopは、ルートのOutputブロック(Angle of Attack および Pilot G Force) をMAT-ファイル行列rt_youtにロギングするコードを生成します。

    rt_yout配列の順番は、Outportブロックの1から始まる端子番号に基づきます。Angle of AttackおよびPilot G Forceは、それぞれ、rt_yout(:,1) および rt_yout(:,2)にロギングされます。

  1. その他のオプションが有効である場合は、それらのチェックを外します。Decimation1 に、FormatArrayに設定します。その後Applyをクリックします。
  2. Pilot G Force Scopeブロックをオープンします。モデルを実行するには、SimulinkウィンドウのツールバーのStartボタンをクリックします。Scopeは以下のように表示されます。

  3. シミュレーション時間とPilot G Forceをプロットすることにより、シミュレーション時間とPilot G Force出力が正確にワークスペースに保存されていることを確認します。

    結果のプロットは以下のようになります。

  1. The f14rtw プログラムは、データロギングを利用可能にすることによってモデルが変更されたため、再度ビルドを行う必要があります。Simulinkウィンドウの 「ツール」 メニューのReal-Time Workshopサブメニューから「モデルの作成」を選択します。これは、Real-Time Workshopのビルドプロセスを開始する別の方法です。シミュレーションパラメータダイアログボックスでビルドボタンを使うことと同じです。
  2. ビルドが終了すると、次のコマンドで実行ファイルを実行します。
  3. プログラムは、MAT-ファイルが書き出されたことを示す2行のメッセージを表示します。
  4. ワークペースをクリアし、MAT-ファイルデータをロードし、ワークスペース変数を見てみます。
  5. 変数rt_tout (time) と rt_yout (G Force および Angle of Attack ) がファイルからロードされたことを確認します。G Forceを時間の関数としてプロットします。
  6. プロットは、上記のステップ5で生成されたプロットと同じウィンドウに表示されます。

 チュートリアル1: 一般的リアルタイムプログラムのビルド チュートリアル3:コードの検証