最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
シミュレーション結果を時間の経過に沿って可視化するには、Scope ブロックか Time Scope ブロックを使用します。
複数の信号をスコープに接続するには、追加の信号を Scope ブロックにドラッグします。追加の端子が自動的に作成されます。
入力端子の数を指定するには、次を実行します。
[Scope] ウィンドウを開きます。
ツール バーで、[ファイル] 、 [入力端子の数] 、 [詳細] を選択します。
入力端子の数を最大 96 まで入力します。
非バーチャル バスおよびバス配列からの信号を Scope ブロックに接続できます。バス信号を表示するには、ノーマルまたはアクセラレータのシミュレーション モードを使用します。Scope ブロックに、各バス要素信号がバスに表示される順序で上から下に表示されます。入れ子にされたバス要素はフラットにされます。たとえば、このモデル内では、nestedBus
信号には const
、subSignal
および step
信号が要素として含まれています。subSignal
サブバスには、chirp
信号と sine
信号がバス要素として含まれています。Scope ブロックでは、subSignal
バスの 2 つの要素が const
信号と step
信号の間に表示されます。
この手順では、モデル vdp を使用して MATLAB ワークスペースへの信号の保存を説明します。
Scope ブロックをモデルに追加します。モデルへの Scope ブロックおよび Time Scope ブロックの追加を参照してください。
スコープ入力端子に信号を接続します。複数の信号のスコープへの接続を参照してください。たとえば、信号 x1
と x2
をスコープに接続します。
[Scope] ウィンドウを開きます。ツール バーの [パラメーター] ボタン をクリックします。
[ログ] タブをクリックしたら、[ワークスペースにデータのログを作成] チェック ボックスをオンにします。[変数名] ボックスに保存するデータの変数名を入力するか、既定の名前 [ScopeData]
を使用します。[保存形式] リストから、[データセット]
を選択します。[OK] をクリックします。
あるいは、[保存形式] を [データセット]
以外の形式 (たとえば [配列]
) に設定することもできます。
データを Scope ブロックから保存すると、信号の [信号データのログ] プロパティまたは [信号のログ] パラメーターを [モデル コンフィギュレーション パラメーター] 、 [データのインポート/エクスポート] ペインで選択する必要がなくなります。
Scope ブロックに接続された非バーチャル バスからの信号またはバス配列からの信号をログに記録するには、[保存形式] パラメーターを [データセット]
に設定します。
シミュレーションを実行します。Simulink® は、各信号に 1 要素ずつ 2 つの要素をもつ Dataset オブジェクトとしてデータを MATLAB ワークスペースに保存します。
コマンド ウィンドウにこれらのコマンドを入力し、ScopeData
からのログ データを表示します。ここで、x1
は信号の名前です。
x1_data = ScopeData.getElement('x1').Values.Data x1_time = ScopeData.getElement('x1').Values.Time plot(x1_time,x1_data)
[データセット]
オブジェクトの詳細については、Simulink.SimulationData.Dataset
を参照してください。
この Simulink スナップショットを使用して、シミュレーションがバックグラウンドで実行している間にスコープの表示を停止します。
スコープ ウィンドウを開いてシミュレーションを開始します。
[シミュレーション] 、 [Simulink スナップショット] を選択します。
左下のスコープ ウィンドウのステータスは [フリーズ] ですが、シミュレーションはバックグラウンドで引き続き実行されます。
停止された表示を操作します。たとえば、測定値を使用して、スコープ イメージをコピーしたり、ズーム インまたはズーム アウトを行います。
表示の静止を解除するには、[シミュレーション] 、 [Simulink スナップショット] を再度選択します。
この例では、モデル vdp を使用して、スコープ イメージをコピーして貼り付ける方法を説明します。
Scope ブロックをモデルに追加します。モデルへの Scope ブロックおよび Time Scope ブロックの追加を参照してください。
信号を Scope 端子に接続します。複数の信号のスコープへの接続を参照してください。たとえば、vdp
モデルでは、信号 x1
と x2
をスコープに接続します。
スコープ ウィンドウを開いて、シミュレーションを実行します。
[ファイル] 、 [クリップボードにコピー] を選択します。
イメージをドキュメントに貼り付けます。
既定では、[クリップボードにコピー] は、背景が白色で線が見やすい印刷対応バージョンのスコープを保存します。表示されているスコープ プロットを厳密に貼り付ける場合は、[表示] 、 [スタイル] を選択してから、[クリップボードへのコピーで色を保持] チェック ボックスを選択します。
この例では、4 つの正弦波信号の配列を使用し、スコープ表示にプロットします。
Sine Wave ブロックを Scope ブロックに接続します。
Scope の [コンフィギュレーション プロパティ] ダイアログ ボックスを開きます。[表示] ペインで、[凡例] チェック ボックスをオンにします。
Sine Wave ブロックの [振幅] パラメーターを [10
20;30 40]
に設定します。
信号の [信号名] プロパティを SignalArray
に設定します。
モデルのシミュレーションを実行します。
[Scope] ウィンドウに 4 つの信号が行列の次元 (1,1)、(2,1)、(1,2)、(2,2) で表示されます。
この例では、参照モデルにおけるスコープの動作を説明します。参照モデルでスコープを使用するとき、シミュレーションを最上位モデルから開始したか、参照モデルのスコープから開始したかによって、スコープに表示される出力が変わります。
スコープ ウィンドウには、直近に開いた最上位モデルのシミュレーション結果が表示されます。Scope ブロックおよびビューアーの再生制御は、そのブロックまたはビューアーを含むモデルをシミュレートします。
この例では、sldemo_mdlref_counter
モデルを、最上位モデルとして使用するとともに、sldemo_mdlref_basic
モデルからの参照モデルとして使用します。
sldemo_mdlref_basic
モデルを開き、CounterA ブロックをダブルクリックします。キャンバス上部の階層リンクからわかるとおり、sldemo_mdlref_counter
モデルが参照モデルとして開きます。
メインの [実行] ボタンを使用してシミュレーションを実行し、ScopeA スコープを開きます。スコープに、モデル全体のデータが可視化されます。
スコープの [実行] ボタンを使用してシミュレーションを再実行すると、スコープには、参照モデルが単独で開かれているかのようなデータのみが可視化されます。Scope ブロックおよびビューアーの再生制御は、そのブロックまたはビューアーを含むモデルをシミュレートします。この場合、参照モデルの入力は、最上位モデルがないので、常にゼロになります。
スコープから [実行] をクリックした場合、モデルがバックグラウンドで実行されていることがモデルに表示されません。シミュレーション ステータスについては、スコープのステータス バーを確認してください。
Enabled Subsystem ブロック内に配置すると、スコープはシミュレーション モードによって異なった動作をします。
ノーマル モード — スコープはサブシステムが有効になったときにデータをプロットします。サブシステムが無効になると、表示のプロットにギャップが示されます。
エクスターナル モード、アクセラレータ モード、ラピッド モード — スコープはサブシステムが有効になったときにデータをプロットします。表示では、ギャップは直線で接続されます。
信号単位は、Inport ブロックと Outport ブロックを使用してモデル コンポーネントの境界 (Subsystem ブロックと Model ブロック) で指定できます。Simulink モデルでの単位の指定を参照してください。Scope ブロックは Outport ブロックまたは Outport ブロックから派生する信号に接続できます。この例では、Out1 ブロックの [単位] プロパティが m/s
に設定されています。
[Scope] ウィンドウのツール バーで、[コンフィギュレーション プロパティ] ボタン を選択します。
[コンフィギュレーション プロパティ] で次を行います。[Scope] ダイアログ ボックスで、[表示] タブを選択します。
[Y ラベル] ボックスに、Y 軸のタイトルに続けて (%<SignalUnits>)
を入力します。たとえば、次のように入力します。
Velocity (%<SignalUnits>)
[OK] または [適用] をクリックします。
信号単位は、y 軸ラベルにメートル/秒 (m/s
) として、[カーソルの測定] パネルにミリメートル/秒 (mm/s
) として表示されます。
[情報表示] 、 [信号と端子] 、 [端子の単位] を選択することもできます。[Y ラベル] プロパティに (%<SignalUnits>)
を入力する必要はありません。
スコープのプロパティを取得します。コマンド ウィンドウで次を入力します。
load_system('my_model') s = get_param('my_model/Scope','ScopeConfiguration');
y 軸ラベルを最初の表示に追加します。
s.ActiveDisplay = 1 s.YLabel = 'Velocity (%<SignalUnits>)';
モデル パラメーター ShowPortUnits
を 'on'
に設定することもできます。モデル内のすべてのスコープは、(%<SignalUnits>)
が [Y ラベル] プロパティにあるかないかに関係なく、表示領域に単位を示します。
load_system('my_model') get_param('my_model','ShowPortUnits')
ans = off
set_param('my_model', 'ShowPortUnits','on')
ans = on
シミュレーション データをスコープから [データセット]
形式で保存する場合、単位情報を時系列オブジェクトの DataInfo
フィールドで見つけることができます。
スコープがサポートする信号の単位は [データセット]
ログ形式のみであり、古いログ形式の [配列]
、[構造体]
、[時間付き構造体]
はサポートしていません。
[Scope] ウィンドウのツール バーで、[コンフィギュレーション プロパティ] ボタン を選択します。
[コンフィギュレーション プロパティ] で次を行います。[Scope] ダイアログ ボックスで、[ログ] タブを選択します。
[ワークスペースにデータのログを作成] チェック ボックスをオンにします。テキスト ボックスにシミュレーション データを保存する変数名を入力します。たとえば「ScopeData
」と入力します。
[Scope] ウィンドウのツール バーで、[実行] ボタン を選択します。
コマンド ウィンドウで次を入力します。
ScopeData.getElement(1).Values.DataInfo
Package: tsdata Common Properties: Units: m/s (Simulink.SimulationData.Unit) Interpolation: linear (tsdata.interpolation)
スコープに複数の端子がある場合、Simulink は各端子が 1 つの単位のみでデータを受け取るようにします。(たとえば Bus Creator ブロックを使用することで) 信号をさまざまな単位で結合しようとすると、Simulink はエラーを返します。
スコープに表示される単位は端子と表示領域の数に依存します。
端子の数は表示領域の数と等しい — 1 つの端子は y 軸ラベルに示されるその端子信号の単位で 1 つの表示領域に割り当てられます。
表示領域の数よりも多い — 1 つの端子は他の信号に割り当てられた最後の表示領域と共に、1 つの表示領域に割り当てられます。最後の y 軸ラベルにさまざまな単位がコンマ区切りリストとして表示されます。
[Scope] ウィンドウで、[コンフィギュレーション プロパティ] ボタン を選択します。
[コンフィギュレーション プロパティ] ダイアログ ボックスで、[メイン] タブを選択してから [レイアウト] ボタンを選択します。
必要な表示領域の数とレイアウトを選択します。
1 行または 1 列に 4 つを超える表示領域を選択できます。レイアウト内をクリックしてマウス ポインターをドラッグし、最大 16 行 16 列までレイアウトを拡張します。
クリックすると、選択したレイアウトが [Scope] ウィンドウに適用されます。
[Scope] ウィンドウの右上で、[Scope をドックに入れる] ボタンをクリックします。
[Scope] ウィンドウは MATLAB® デスクトップでコマンド ウィンドウの上に配置されます。
[Scope アクションの表示] ボタンをクリックしてから、[Scope をドックから出す] をクリックします。
Floating Scope | Scope | Scope Viewer