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

13 visualizaciones (últimos 30 días)
Katsunori
Katsunori el 4 de Feb. de 2020
Respondida: Katsunori el 6 de Feb. de 2020
現在,SimulinkのReal-Timeのシミュレーションで実際の計測機からのデータを計算し,XYグラフで表示したいと考えています.
時間に対する信号の表示ができることは知っているのですが,このようなことは出来るのでしょうか

Respuestas (3)

Toshinobu Shintai
Toshinobu Shintai el 4 de Feb. de 2020
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 comentarios
Katsunori
Katsunori el 5 de Feb. de 2020
回答ありがとうございます.
知識が不足していて申し訳ないのですが,
1ステップ終了時のMATLABコマンド呼び出しはどのようにすれば宜しいのでしょうか.
Toshinobu Shintai
Toshinobu Shintai el 5 de Feb. de 2020
凝りだすといくらでも作りこむことができるのですが、一番シンプルには以下のようにするとできます。
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で作成したモデルも添付しています。

Iniciar sesión para comentar.


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

Iniciar sesión para comentar.


Katsunori
Katsunori el 6 de Feb. de 2020
いえいえ,これまでのアドバイスありがとうございました.

Etiquetas

Productos


Versión

R2017b

Community Treasure Hunt

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

Start Hunting!