Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

デバッグのための端子の値の表示

デバッグを容易にするための端子値の表示

データを搬送する信号のある多くのブロックに対して、Simulink® は、シミュレーションの実行中とシミュレーション後に、ブロック線図上に (ツール ヒントと同様に) 端子の値ラベルとして信号の値 (ブロックの出力) を表示できます。Simulink でブロック出力メソッドが実行されると、端子の値ラベルにブロック出力値が表示されます。このモデルでは、Constant ブロックと Math ブロックの端子の値ラベルが示され、出力値 14.04 が表示されます。

端子の値ラベルが空で表示される場合、現在使用できる端子の値がないことを意味します。たとえば、シミュレーション中に一時停止した場合に連続ブロック上の端子の値ラベルを切り換えると、ラベルに値は表示されません。

端子の値ラベルは、モデルをまだシミュレートしていない場合にも空になります。これは、モデルをシミュレートしないと、ブロック出力メソッドが実行されないためです。

Simulink がシミュレーションから最適化するブロック (バーチャル サブシステム ブロックなど) を切り替えたり、そのブロック上にカーソルを置くと、モデルは、シミュレーション中は、テキスト optimized を表示します。

モデルの対話型のデバッグを行う際に、端子の値データ ヒントを表示すると便利です。たとえば、この図は家の熱モデルの出力を示しています。

これらの結果は、次の理由によりモデルに問題があることを示しています。

  • どの気温でも暖房費が 0 になっています。

  • 室内の温度が周囲温度とほぼ正確に一致しています。

この場合、モデルのブロックを対話方式でデバッグすると、問題を特定できます。モデルのすべてのブロックの出力で端子の値ラベルに情報が表示されます。したがって、この例ではシミュレーション ステッパーを使用して進めると、Heater サブシステムの出力はすべてのタイム ステップで 0 になることがわかります。

Heater サブシステム内のブロックに対して端子の値ラベルを有効にして、詳細を確認できます。シミュレーション ステッパーを使用して、もう一度値の表示処理を進めると、HeatGain ブロックに問題があるのがわかります。出力は 0 で定数です。

この方法により、問題を特定できます。

デバッグを容易にするには、シミュレーション中に端子の値ラベルのオンとオフを切り替えます。デバッグに役立つ情報を得られるだけでなく、端子の値を表示すると、シミュレーション時に信号値を監視できます。ただし、これらのラベルはモデルに保存されません。

数値以外のデータの表示に、Simulink は以下の値を使用します。

メッセージ説明
action信号はアクション サブシステムを実行します。
fcn-call信号は、Function-Call Generator 出力などの関数呼び出し信号です。
ground信号は Ground ブロックからのものです。
not a data signal信号に有効なデータが含まれていません。たとえば、信号はコメント アウトされているブロックからのものです。

場合によっては、以下のようになることがあります。

  • 端子の値の表示によって値の信号を取得できない場合がある

  • 信号の値を簡単に表示できない

このような場合、Simulink は以下の値を使用します。

メッセージ説明
...信号の次元が、Simulink で表示できる最大要素数を超えています。詳細については、モデルの端子の値の表示を参照してください。
(メッセージなし)使用可能なシミュレーション データが不十分です。処理を進めるか、[再生] を押して詳細データを取得してください。
click to add signalsバスで端子の値ラベルを有効にしています。ただし、表示する信号を選択していません。ラベルをクリックしてバス信号を選択します。
inaccessibleSimulink は端子の値を取得できません。例については、信号ストレージの再利用を参照してください。
[m*n]これは非ベクトル信号です。Simulink では、行列の実際の値は表示できません。代わりに、行列の次元が表示されます。
no data yet

このメッセージは、次の場合に表示されます。

  • シミュレーション データが使用できない場合。シミュレーションを開始して値を確認します。

  • モデルにサブシステム (たとえば Enabled Subsystem) やモデル参照が含まれ、それらがシミュレーション中に実行されない場合。

not usedSimulink は、最適化のため信号値を取得できません。
removedSimulink は、ブロック削減のため信号値を取得できません。
optimizedSimulink は、最適化のため信号値を取得できません。ノーマル モードでは、このメッセージは [条件付き入力分岐実行] が有効になっているブロックに対して表示されます。詳細については、条件付き実行サブシステムの概要を参照してください。
unavailable使用可能なシミュレーション データが不十分です。例については、シミュレーション ステッパーを参照してください。

メモ

信号をテスト ポイントとして指定して、値ラベルに信号値を強制的に表示できます。これを行うには、[プロパティ] ダイアログ ボックスを使用します。

特定の端子の値の表示

シミュレーションの前に特定の端子の値またはブロックの端子の値を表示するには、1 つ以上の信号を選択し、その選択を右クリックして [選択した端子の値ラベルを表示] を選択します。

既定では、Simulink にはシミュレーション中にクリックしたときの信号の値が表示されます。この動作は制御できます。[デバッグ] タブで [シミュレーション出力の値の表示をすべてキャンバスから削除します] ボタンの矢印 を選択し、[オプション] を選択します。[値ラベルの表示オプション] ダイアログ ボックスで [シミュレーション時に既定で有効にする] を選択します。

メモ

すべてのデータ ヒントを削除するには、[デバッグ] タブで [シミュレーション出力の値の表示をすべてキャンバスから削除します] ボタンの矢印 を選択し、[値の表示を削除] を選択します。

バス信号の場合、[選択した端子の値ラベルを表示] オプションでダイアログ ボックスが開き、バス内のすべての信号から選択することができます。たとえば、このモデルでは ModelBus に含まれているすべての信号のダイアログ ボックスが表示されます。

信号を名前で検索するか、階層で絞り込むことができます。親信号を選択すると、そこに含まれるすべての信号が選択されます。選択した信号のみが表示されるように表示をフィルター処理することもできます。

ダイアログ ボックスの外側の任意の場所をクリックするとダイアログ ボックスが閉じます。端子の値ラベルが表示されます。ラベルにはデータがありません。モデルのシミュレーションを実行すると値が表示されます。

モデルのシミュレーションを実行すると、端子の値ラベルには選択した信号の名前と値が表示されます。表示する信号を変更するには、端子の値ラベルをクリックしてダイアログをもう一度開きます。別の信号をクリックして値を表示することもできます。

メモ

端子の値ラベルを削除すると、Simulink では信号の値は保存されません。

モデルの端子の値の表示

端子の値の表示の書式と表示の更新頻度を指定します。[値ラベルの表示オプション] ダイアログ ボックスで、モデル全体のこれらの設定を制御します。

  1. 端子の値を表示するモデルの [デバッグ] タブで [シミュレーション出力の値の表示をすべてキャンバスから削除します] ボタンの矢印 を選択し、[オプション] を選択します。

  2. [値ラベルの表示オプション] ダイアログ ボックスで、以下に対する基本設定を指定します。

    • フォント サイズ、更新頻度、信号の幅が 1 を超えるベクトル信号に対して表示される要素数を含む表示オプション

    • 表示モード

    • 浮動小数点または固定小数点形式

端子の値の表示制限

パフォーマンス

モデルに対してポイント時の表示オプションを有効にしたり、少なくとも 1 つのブロックを [クリック時に値ラベルを切り替え] に設定すると、シミュレーションの速度が低下します。

アクセラレータ モード

端子の値はノーマル モードとアクセラレータ モードでのみ機能します。ラピッド アクセラレータとエクスターナル モードでは機能しません。アクセラレータ モードによる端子の値の表示への影響を以下の表に示します。

アクセラレータ モード端子の値
アクセラレータ
  • アクセラレータ モードで最適化されていない信号では、端子の値がノーマル モードで表示されます。アクセラレータ モードで最適化された信号では、端子の値が optimized として表示されます。詳細については、デバッグを容易にするための端子値の表示を参照してください。

  • アクセラレータ モードでシミュレートされるモデル参照ブロックでは、その端子の値の表示は更新されません。

ラピッド アクセラレータ互換性がありません。モデルまたはその親が高速化されたシミュレーションを指定するかどうかについて制限が存在します。詳細については、RSim システム ターゲット ファイルを使用したホスト コンピューターでのハイブリッド動的システムの高速化、調整およびテスト (Simulink Coder)を参照してください。

信号ストレージの再利用

ブロックの出力端子バッファーが信号ストレージの再利用の最適化により別のブロックと共有される場合、端子の値は inaccessible として表示されます。[信号ストレージの再利用] チェック ボックスを使用して、信号ストレージの再利用を無効にすることができます。ただし、信号ストレージの再利用を無効にすると、シミュレーション中に使用されるメモリ量が増加します。

信号のデータ型

  • Simulink は、組み込みデータ型 (doubleint32Boolean など)、DYNAMICALLY_TYPED、その他いくつかのデータ型の信号を含む、あらゆる種類の信号に接続されている端子の値を表示します。

  • Simulink は、複素数以外の信号値の表示に限り、浮動小数点形式を表示します。

  • Simulink は、変換された double 値に基づいて固定小数点データ型の端子の値を表示します。

  • Simulink は、バス信号のような、一部の複合データ型をもつ信号のデータを表示しません。

サブシステム

  • Variant Subsystem に含まれるサブシステムの端子の値は、それらに信号線が接続されていない場合、表示できません。この場合、シミュレーション中 Simulink でアクティブなバリアントに基づくブロック接続が自動的に決定されます。ただし、Variant Subsystem に含まれているサブシステム内の端子の値は表示できます。また、Variant Subsystem 外の信号線上の値も表示できます。

  • 条件付き実行サブシステムを無効にすると、Outport ブロックへ入力される信号に対する端子の値の表示は、[ディセーブル時の出力] 設定に応じて、Outport ブロックの値を表示します。

  • Simulink では、有効になっていない Enabled Subsystem の端子のデータは表示されません。

シミュレーション ステッパー

ステップを進めるときに端子の値の表示を有効にしないと、ステップを戻すときに表示が利用できなくなります。ステップを戻すときに端子の値が利用できない場合、unavailable ラベルが表示されます。

リファイン ファクター

Simulink が端子の値の表示を更新するのはメジャー タイム ステップ中に限定されるので、端子の値の表示では、リファイン ファクター値 ([コンフィギュレーション パラメーター][データのインポート/エクスポート][追加パラメーター][リファイン ファクター]) は順守されません。

Signal Specification ブロックと Inport ブロック

サブシステムの Signal Specification ブロックと Inport ブロックの端子の値を表示すると、ブロック値ではなく、ブロックを駆動している値が表示されます。

コマンド ライン シミュレーション

効率化のため、Simulink では、端子の値の表示は sim コマンドを使用するコマンド ライン シミュレーション中はサポートされません。

Merge ブロック

Simulink は、Merge ブロックへの入力値を表示しません。この値を表示するには、ソース ブロックを参照します。

コマンド ライン インターフェイス

コマンド ライン インターフェイスを使って端子の値の表示を指定することはできません。

Simulink 以外の信号

Simscape™ 信号や SimEvents® 信号など Simulink 以外の信号には端子の値を配置できません。この制限は、条件付きブレークポイントにも適用されます。

関連するトピック