リアルタイムシミュレーションのグラフ表示

16 ビュー (過去 30 日間)
Katsunori
Katsunori 2020 年 2 月 4 日
回答済み: Katsunori 2020 年 2 月 6 日
現在,SimulinkのReal-Timeのシミュレーションで実際の計測機からのデータを計算し,XYグラフで表示したいと考えています.
時間に対する信号の表示ができることは知っているのですが,このようなことは出来るのでしょうか

回答 (3 件)

Toshinobu Shintai
Toshinobu Shintai 2020 年 2 月 4 日
Simulink Real-Timeに限った話ではありませんが、バージョンR2019bであれば、Simulinkの信号線をシミュレーションデータインスペクター(SDI)に出力させることでXYプロットを行うことができます。
添付のモデルのように、信号線をSDIに登録します。信号線をクリックし、青字の「・・・」にカーソルを合わせると、以下のように現れるので、「データログを有効化」をクリックして有効にします。
img1.png
次にSDIを開き、右上のレイアウトをクリックし、ビューの編集をクリックします。
img2.png
可視化ギャラリーが開くので、XYをドラッグしてグラフにドロップします。
img3.png
次に表示したい信号にチェックを入れ、X軸かY軸かを選択します。
img5.png
img6.png
設定が終わると波形が表示されます。
img7.png
あらかじめ設定しておけばリアルタイムでXYプロットがなされます。
その他の方法としては、「XY Graph」というScopeブロックの亜種を使う方法がありますが、軸の範囲選択が固定なので使いにくいです。
1ステップ終了時にMATLABコマンドを呼び出してFigureを描画するという方法もあります。
  2 件のコメント
Katsunori
Katsunori 2020 年 2 月 5 日
回答ありがとうございます.
知識が不足していて申し訳ないのですが,
1ステップ終了時のMATLABコマンド呼び出しはどのようにすれば宜しいのでしょうか.
Toshinobu Shintai
Toshinobu Shintai 2020 年 2 月 5 日
凝りだすといくらでも作りこむことができるのですが、一番シンプルには以下のようにするとできます。
img.png
MATLAB Fuctionブロックを挿入し、画像のように接続します。内部のコードを以下のように記述します。
function plot_XY_graph(Y, X)
coder.extrinsic('scatter');
coder.extrinsic('hold');
scatter(X, Y, 'MarkerEdgeColor', 'b');
hold('on');
end
実行すると、以下のようにFigureが現れて描画が行われます。
img2.png
参考までに、R2019bで作成したモデルも添付しています。

サインインしてコメントする。


Katsunori
Katsunori 2020 年 2 月 6 日
重ね重ね,ありがとうございました.xpctargetを使用するために,現状使用しているバージョンがR2017aであり,アドバイス頂いた内容を試したのですが,上手くいきませんでした.お力添え頂いたのに申し訳ありません.
  1 件のコメント
Toshinobu Shintai
Toshinobu Shintai 2020 年 2 月 6 日
リアルタイムシミュレータに実装する環境であることを失念していました。
その場合はcoder.extrinsicで記述されたコマンドはコード生成で無視されてしまいますので、これでは解決できないことになります。
私はこの環境で動作する他の仕組みを思いつきません。お力になれず申し訳ありませんでした。

サインインしてコメントする。


Katsunori
Katsunori 2020 年 2 月 6 日
いえいえ,これまでのアドバイスありがとうございました.

カテゴリ

Help Center および File ExchangeTarget Computer Setup についてさらに検索

タグ

製品


リリース

R2017b

Community Treasure Hunt

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

Start Hunting!