リアルタイムシミュレーションの結果を ワークスペースに取り込む方法はありますか。

リアルタイムシミュレーションの結果を ワークスペースに取り込む方法はありますか。

 Accepted Answer

MathWorks Support Team
MathWorks Support Team on 25 Oct 2013

0 votes

xPC Target ではTo Workspaceブロックが提供されていないため、一般的なシミュレーションとはロギングの方法は異なります。ワークスペース上の変数にデータをロギングするには以下の3通りの方法となります。
1. xPC Target Explorerによる方法
この方法は、xPC Target 2.8(R14SP3)より利用可能です。
xPC Target Explorerを使って、ターゲットマシンのRAMにロギングされたデータを、シミュレーション終了後、ホストにダウンロードします。
(1) ロギングしたい信号にSimulink/Sinks/Out1ブロック(Outportブロック)を結線し、モデルのメニューから[シミュレーション]->[コンフィグレーションパラメータ]を選択し、[データのインポート/エクスポート]ペインより、出力のチェックボックスをチェックします。時間、状態量の データも保存したい場合、時間、状態量のチェックボックスもチェックしてください。
(2) xPC Target Explorerを起動します。
>> xpcexplr
(3) xPC Target Explorer上からダウンロードターゲットアプリケーションのノードを選択します。右側のペインに表示されたターゲットアプリケーションプロパティダイアログボックスペイン上のloggingペインから'Output'や'TET'などの必要な信号をチェックし、'Apply'ボタンをクリックします。
(4) ターゲットアプリケーションをスタートします。xPC Explorerのスタートアイコンをクリックしてください。
(5) ターゲットアプリケーションをストップします。
(6) ロギングデータをMATLABのワークスペースに送ります。ターゲットアプリケーションプロパティダイアログボックスペイン上の'Send to MATLAB Workspace'ボタンをクリックします。
2. コマンドによる方法
コマンドを使って、ターゲットマシンのRAMにロギングされたデータを、シミュレーション終了後、ホストにダウンロードします。
(1) 上記1.の(1)と同様です。
(2) モデルのメニューの[ツール]->[Real-Time Workshop]->[オプション]を 選択します。カテゴリのメニューから、'xpctarget code generation option'を選択します。'Signal Logging Buffer Size in Double'のテキストボックスで、保存するサンプル数を指定できます。タスク実行時間も保存する場合、'Log Task Execution Time'のチェックボックスもチェックしておきます。
(3) xPC Target シミュレーション終了後、
>> stop(tg)
xPC Object
TimeLog
StateLog
OutputLog
TETLog = Vector(16666)
= Matrix(16666x2)
= Matrix(16666x2)
= Vector(16666)
のように表示されます。
出力データのロギング
yout = tg.OutputLog;
時間データのロギング
time = tg.TimeLog;
状態量データのロギング
xout = tg.StateLog;
タスク実行時間のロギング
tet = tg.TETLog;
のようにして、データを取得できます。
3. ホストスコープからのワンショットデータの保存
(1) モデルにxpclibのScope(xpc) を配置します。スコープをダブルクリックし、Scope Typeをホストにして、ビルドします。
(2) コマンドウインドウ上で、xpcscope とタイプし、ホストスコープを起動します。
(3) ホストスコープ画面のメニューの[plot]->[Variable Name for Export] を選択すると、ウインドウが開きます。Time, データのテキストボックスで、 保存するデータ名を指定できます。
(4) リアルタイムシミュレーション中にスコープのExportボタンを押すと、(3)で指定したデータ名でワークスペースにデータが保存されます。保存される データはボタンをクリックしたときのホスト画面のワンショット分になります。 サンプル数は、スコープのSamplesのテキストボックスで調整してください。

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!