Scope ブロックの信号をワークスペースに出力し、plot 関数で表示するにはどうすればいいですか?
7 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2015 年 12 月 3 日
回答済み: MathWorks Support Team
2015 年 12 月 3 日
Scope ブロックの信号をワークスペースに出力し、plot 関数で表示したいと考えています。Scope ブロックの入力として入力1 に1つの信号、入力2 に3つの信号をMUXブロックで束ねたものを使用しています。方法を教えてください。
採用された回答
MathWorks Support Team
2015 年 12 月 3 日
Scope ブロックのデータをインデックスを用いてプロットできます。添付のモデルを用いた記述例を以下の通りです。
t = ScopeData.time;
ch1_sig1 = ScopeData.signals(1).values;
ch2_sig1 = ScopeData.signals(2).values(:,1);
ch2_sig2 = ScopeData.signals(2).values(:,2);
ch2_sig3 = ScopeData.signals(2).values(:,3);
figure
subplot(211), plot(t, ch1_sig1)
subplot(212), plot(t, ch2_sig1, t, ch2_sig2, t, ch2_sig3)
モデル exScope.slx では、Scope ブロックの入力として入力1 に1つの信号、入力2 に3つの信号をMUXブロックで束ねたものを使用しています。シミュレーション実行で、これらの信号のデータを ScopeData という時間付き構造体として保存されます。入力データは ScopeData.signals 構造体に保持され、その内、ScopeData.signals(1)は入力1の、ScopeData.signals(2)は入力2のデータからなります。ScopeData.signals(2) は実際3つの信号チャンネルからフィードされますので、values フィルドでチャンネル番号(列)を指定することで該当するチャンネルの信号が得られます。
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で シミュレーション結果の表示 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!