Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

変数ビューアー

変数ビューアーについて

モデルのシミュレーションを実行する前に、変数ビューアーを使用してモデルの初期条件の計算結果を確認し、ブロックレベルの変数の初期化ターゲットのうちどれが満たされているか確認できます。変数ビューアーは、変数の優先順位とターゲット値 (指定されている場合)、また求解の結果として得られたすべての変数の実際の初期値を表示します。

変数ビューアーを開くには、モデル ウィンドウの [デバッグ] タブで、[Simscape][変数ビューアー] をクリックします。

メモ

モデルを開き、そのモデルをシミュレートする前に変数ビューアーを開いた場合、ビューアーにデータは一切含まれていません。[更新] ボタンに警告記号 () が表示され、[更新] ボタンをクリックしてビューアーにデータを取り込むよう促すメッセージが、ビューアー ウィンドウの上部に表示されます。

変数ビューアーはテーブルであり、行にはモデル内のすべてのブロックがリストされ、各ブロックの下にすべてのパブリック変数がリストされます。列には、各変数の初期化ステータス、優先順位、ターゲット、実際の開始値、その他の情報が表示されます。

優先される構成として別の構成を指定していない限り、既定では、変数ビューアーは基本構成で開きます (優先される構成の指定の詳細については、ビューアー構成の保存を参照してください)。基本構成では、変数ビューアーには次の列があります。

名前説明
ステータス

各変数の初期化ステータス。次のいずれかの値をとります。

  • 緑の円 — 初期化ターゲットが満たされた変数と、初期化の優先順位をもたないすべての変数に表示されます。

  • 黄色の三角形 — ターゲットが満たされない、優先順位の低い変数に表示されます。

  • 赤の四角形 — ターゲットが満たされない、優先順位の高い変数に表示されます。

  • 赤の×印 — 初期条件の求解に失敗した場合、初期化できなかった変数に表示されます。

  • グレーの四角形 — ステータスが使用できない場合に表示されます。これはたとえば、モデルの初期化に失敗した場合や、ブロック線図の更新時に変数ビューアーが開いていた場合に発生します。詳細は、モデルの更新およびシミュレーションの対話的操作を参照してください。

優先ブロック ダイアログ ボックスや元になるコンポーネント ファイルに指定されている変数初期化の優先順位です。詳細は、ブロック変数の優先順位と初期ターゲットの設定Variable Priority for Model Initializationを参照してください。変数に初期化の優先順位が指定されていない場合 ([NONE] または priority.none)、このフィールドは空です。
ターゲット優先順位が高または低の変数の初期ターゲット値です。変数に初期化の優先順位が指定されていない場合、このフィールドは空です。
起動ソルバーが計算した、変数の実際の初期値です。
単位変数の基本単位。すべての値 ([ターゲット][開始前][開始]) で共通です。Simscape™ 単位マネージャーは必要に応じてすべての値を自動変換します。たとえば、ブロック ダイアログ ボックスでターゲットの [開始値]20[単位]mm を指定した場合、変数ビューアーの [ターゲット] には 0.2[単位] には m が表示されます。

変数ビューアーのツール バーのボタンは次のアクションを実行します。

変数ビューアーのデータをフラット ビューで表示し、テーブルの行数を最小限にします。フラット ビューでは、親ノードの行は表示されません。テーブルには変数ごとに 1 行のみ表示され、[名前] 列にはモデルのルートから変数への絶対パスが含まれます。変数ビューアーがフラット ビューの場合、ノードの展開と折りたたみのボタンは無効になります。これは既定のビューです。

変数ビューアーのデータをツリー ビューで表示し、変数ノードを親端子、ブロック、サブシステム ノードの下にグループ化します。既定では、すべてのノードが折りたたまれています。個別に展開できるほか、[すべて展開] ボタンを使用できます。

すべてのノードを展開し、各ブロック名の下に変数をすべて表示します。このボタンは、変数ビューアーがツリー ビューの場合にのみ利用できます。

各ブロック名の下にある変数をすべて折りたたみます。その後、個々のブロック ノードを展開して、そのブロックの下にある変数を表示できます。このボタンは、変数ビューアーがツリー ビューの場合にのみ利用できます。

モデルの初期条件を再計算し、変数ビューアーの値の表示を更新します。ブロック パラメーター値の調整、変数の優先順位とターゲットの変更、ブロック線図の更新を行った後に、このボタンを使用します。変数ビューアーのデータがモデルと同期していない場合、[更新] ボタンに警告記号 () が表示され、ビューアー ウィンドウ下部のタイムスタンプが赤くなります。詳細は、モデルの更新およびシミュレーションの対話的操作を参照してください。

高速リスタート モードでは、[更新] ボタンは無効になります。

フィルター処理オプションを適用できます。詳細は、便利なフィルター処理手法を参照してください。

すべてのフィルター処理オプションを解除します。詳細は、便利なフィルター処理手法を参照してください。

変数ビューアーを既定の基本構成で表示し、次の列のみを表示します。[ステータス][優先][ターゲット][開始] および [単位]

変数ビューアーを詳細構成で表示し、すべての列を表示します。この表示は、モデルの初期化に失敗した場合など、モデルのトラブルシューティングに使用します。

列の表示と非表示を切り替えて、カスタマイズしたビューアーの構成を作成できます。

変数ビューアーの現在の構成を保存します。詳細については、ビューアー構成の保存を参照してください。

詳細構成

多くの場合、変数ビューアーの既定の構成には、変数のターゲット表示やモデルの初期化結果の検証に十分なデータが含まれています。ただし、ソルバーが優先順位の高い変数のターゲットをすべて満たすことができない場合やモデルの初期化に失敗した場合、変数ビューアーの詳細構成に表示される追加のデータがモデルのトラブルシューティングに役立つ場合があります。

詳細構成に切り替えるには、変数ビューアーのツール バーの [詳細設定] をクリックします。

変数ビューアーの詳細構成には、次の列が追加表示されます。

名前説明
開始前初期条件の求解プロセスの開始時にソルバーが使用する変数の値です。初期化の優先順位とターゲット値のオーバーライドが指定されていない変数の場合、基となるコンポーネント ファイルの変数宣言から開始前の値が取得されます。初期化プロセスが失敗した場合、これらの値が原因特定に役立ちます (変数の開始前の値 0 がモデル方程式の分母に使用された、など)。変数の開始前の値が望ましくない場合は、ソルバーが別のポイントから反復を開始するように、優先順位の低い (または優先順位のない) 初期化ターゲットとして適した値を指定します。
削除済みこれらの変数は、数値積分の前にソフトウェアにより除外され、システムの求解には使用されません。これらの変数の開始前の値はシステムの求解に影響しません。ただし、これらの変数について初期化の優先順位とターゲットを設定できます。この場合、それらのターゲットは変数の項で表され、ソルバーに保持されます。
決定済みこれらの変数の値は、システム入力に依存するか、方程式の解析に基づいて事前決定されます。このため、これらの変数について初期化の優先順位とターゲットを指定しても、システムの解にはほとんど影響しません。また、事前決定した変数に優先順位の高いターゲットを指定した場合、ソルバーがこのターゲットを満たすことができない可能性が高く、第 2 段階の解を見つけようとしてさらに時間がかかります。
微分これらの変数の時間微分は方程式で使用されます。これらの変数はシステムにダイナミクスを追加し、独立状態を生成することができます。このため、これらの変数について、初期化の優先順位として高が必要な可能性が高くなります。
表現周波数と時間シミュレーション モードがオンの場合に、ソルバーが変数をどのようにマークするかを示します。[周波数] ("高速") または [時間] ("低速") のいずれかとなります。詳細については、周波数と時間シミュレーション モードを参照してください。通常のシミュレーションでは、すべての変数が [時間] とマークされます。
ノミナル値変数のノミナル値。詳細については、ノミナル値によるシステムのスケーリングを参照してください。
ノミナル単位変数のノミナル値と関連付けられている物理単位。詳細については、ノミナル値によるシステムのスケーリングを参照してください。
ノミナル ソースノミナル値とノミナル単位のソース: [BLOCK][MODEL][DERIVED]、または [FIXED]。詳細については、想定されるノミナル値のソースとその評価順序を参照してください。

変数ビューアーのツール バーの [列の表示] をクリックし、表示する列を選択することで、ビューアーの構成をカスタマイズできます。

変数ビューアーのツール バーにある [標準] をクリックすると既定の基本レイアウトに、[詳細設定] をクリックすると詳細レイアウトに復元されます。

フラット ビューとツリー ビューの切り替え

変数ビューアーの行数を制御するには、フラット ビュー (既定) とツリー ビューを切り替えます。ツリー ビューでは、変数ノードが親端子、ブロック、サブシステム ノードの下にグループ化されます。したがって、変数ビューアー テーブルには、すべてのパブリック変数に対応する行に加え、親ノード (端子、ブロック、サブシステム) の行が含まれます。変数を表す行にのみ、ターゲットや実際の値などのデータが含まれます。すべての行にはステータスが表示されます。親ノードのステータスは、子変数のステータスによって決定されます。すべての子が緑色であれば、親ノードの行の [ステータス] 列にも緑色の丸が表示されます。

たとえば、以下の変数ビューアー テーブルの 1 行目には Ideal Translational Motion Sensor ブロック、2 行目にはこのブロックの端子 [C] が表示されています。3 行目にのみ、実際の変数 v (端子 [C] での速度) のデータが含まれています。

フラット ビューでは、親ノードの行は表示されません。テーブルには変数ごとに 1 行のみ表示され、[名前] 列に最上位モデルから変数への絶対パスが示されます。たとえば、フラット ビューでの変数ビューアー テーブルの 1 行目は同じ変数 v (Ideal Translational Motion Sensor ブロックの端子 [C] での速度) を表し、[名前] 列には親の名前が含まれ、変数へのパスが示されます。フラット ビューを使用すると、変数ビューアーのテーブルがよりコンパクトになります。

ツリー ビューに切り替えるには、変数ビューアーのツール バーの [ツリー] をクリックします。ツリー ビューでは、変数ノードが親端子、ブロック、サブシステム ノードの下にグループ化されます。

既定では、すべてのノードが折りたたまれています。個別に展開できるほか、[すべて展開] ボタンを使用できます。

フラット ビューに戻すには、変数ビューアーのツール バーの [フラット] をクリックします。

変数ビューアーでのコンポーネント配列の表現

基となるコンポーネントの配列をもつブロックがモデルに含まれている場合、変数ビューアーには配列メンバーに属する変数が含まれます。

たとえば、次の変数ビューアー テーブルでは、カスタムの Resistor Array ブロックに基となる抵抗器の配列が含まれています。ツリー ビューでは、変数ビューアー テーブルに、Resistor Array ブロック自体の端子に対応するノード np が、それぞれの変数 v と共に含まれています。また、変数ビューアー テーブルにはそれぞれの配列メンバーのツリー ノードが含まれており、resistor(1)resistor(2) のように番号が付けられています。これらの番号が付けられたノードには、さらに、基となる抵抗器コンポーネントのノードと変数に対応する行が含まれています。変数を表す行にのみ、ターゲットや実際の値などのデータが含まれます。

コンポーネント配列のサイズが 1xN である場合、メンバーは comp(1)、…、comp(N) のように番号が付けられます。配列のサイズが NxM である場合は、メンバーは comp(1,1)comp(1,2)、…、comp(NxM) のように番号が付けられます。

フラット ビューを使用すると、変数ビューアーのテーブルがよりコンパクトになります。同じ抵抗器の配列が、フラット ビューでは次のように表示されます。テーブルには変数ごとに 1 行のみ表示され、[名前] 列に最上位モデルから変数への絶対パスが含まれます。コンポーネント配列のメンバーに属する変数の場合、変数へのパスには番号の付いたコンポーネント名が含まれます。

便利なフィルター処理手法

変数ビューアーのツール バーの [フィルターの適用] を使用すると、テーブルの行を値に基づいてフィルター処理できます。

たとえば、[優先] 列の値をフィルター処理する ([HIGH][LOW] のチェック ボックスのみをオンにする) と、すべてのターゲットと実際の値がコンパクトな形式で表示されます。これは大規模モデルで有用です。

また、モデルのトラブルシューティングを行うときに、次のフィルター処理手法が役立つことがあります。

  • [微分] 列を [TRUE] でフィルター処理し、微分変数の行のみを表示します。これらの変数の時間微分は方程式で使用されます。これらの変数はシステムにダイナミクスを追加し、独立状態を生成することができます。このため、これらの変数について、初期化の優先順位として高が必要な可能性が高くなります。

  • [決定済み] 列を [TRUE] でフィルター処理し、これらの変数に初期化の優先順位が指定されていないことを確認します。これらの変数の値は、方程式の解析に基づいて事前決定されるか、システム入力に依存します。このため、これらの変数について初期化の優先順位とターゲットを指定しても、モデルの初期化にはほとんど影響しません。

すべてのフィルターを解除するには、変数ビューアーのツール バーの [フィルターのクリア] をクリックします。

ビューアー構成の保存

変数ビューアーのツール バーの [保存] ボタンを使用すると、次の構成基本設定を保存できます。

  • 変数ビューアーのビュー タイプ (ツリーまたはフラット)

  • 表示される列

  • 列の順序

  • すべての列 (表示および非表示) に適用されるフィルター

  • 特定の列での並べ替え

ビューアー構成を保存すると、このモデルまたは別のモデルで次回変数ビューアーを開いたときに同じ構成で開かれます。この動作は、他の MATLAB® 基本設定の保存と同じです。

ブロック線図へのリンク

変数ビューアー ツールを使用すると、ブロック線図に直接リンクできます。このリンクを使用して、適切なブロックを強調表示したり、変数ビューアーに表示されている変数から対応するブロックのダイアログ ボックスの [変数] タブに簡単にアクセスして変数の優先順位とターゲットを変更したりできます。

変数ビューアーのテーブルの任意の行で [名前] 列を右クリックすると、次のオプションをもつコンテキスト メニューが開きます。

  • ブロックに移動 — ブロック線図の対応するブロックを強調表示し、必要に応じて適切なサブシステムを開きます。変数を表す行の場合は、この変数の親ブロックが強調表示されます。

  • ブロックのダイアログ ボックスを開く — 対応するブロックのダイアログ ボックスを開きます (変数の場合、親ブロックのダイアログ ボックスを開きます)。ブロックのダイアログ ボックスで [初期ターゲット] セクションを展開して、変数の優先順位とターゲットを表示または変更します。サブシステムを表す行を選択した場合は、このオプションは使用できません。

モデルの更新およびシミュレーションの対話的操作

変数ビューアーを開いても自動更新はトリガーされません。複雑なモデルでは、すべての変数の初期値の計算が数分間続くことがあり、不要な更新によって生産性が低下する可能性があります。[更新] ボタンをクリックすることで明示的にデータを更新しなければなりません。

変数ビューアーを開くと、前回のシミュレーションからのデータが取り込まれます。ビューアー ウィンドウ下部にあるステータスには、ビューアーの最終更新日時のタイムスタンプが表示されています。ビューアーが最後に更新された後にモデルを変更した場合、[更新] ボタンに警告記号 () が表示され、ビューアー ウィンドウ下部のタイムスタンプでビューアー内のデータがモデルの最新の変更を反映していない可能性があることが示されます。

モデルを開き、そのモデルをシミュレートする前に変数ビューアーを開いた場合、ビューアーにデータは一切含まれていません。[更新] ボタンに警告記号が表示され、[更新] ボタンをクリックしてビューアーにデータを取り込むよう促すメッセージが、ビューアー ウィンドウの上部に表示されます。

変数ビューアーは、シミュレーションを 0 秒実行して、変数の実際の初期値を計算します。したがって、次のように動作します。

  • ビューアーを更新するときにはモデルが実行可能な状態でなければなりません。実行可能でない場合、エラーが表示されます。

  • スコープが開いている場合、ビューアーを更新するたびにスコープは空白になります。新規の結果を表示するには、シミュレーションを再実行します。

  • 変数ビューアーを開いた状態でシミュレーションを再実行した場合、シミュレーションの実行開始時に変数ビューアーの結果が自動的に更新されます。

  • 変数の優先順位とターゲットを変更する場合、またはブロック パラメーターを調整する場合、ビューアーの結果は自動更新されません。変数の新たな実際の値を計算してステータスを更新するには、変数ビューアーのツール バーの [更新] をクリックしてビューアーを更新します。

  • 変数ビューアーを開いた状態でブロック線図を更新した場合 (モデル ウィンドウで [モデル化][モデルの更新] を選択)、以前に計算した実際の値が使用不可になり、[ステータス] 列にはグレーの四角形が表示されます。変数ビューアー ウィンドウの下部の全体のステータスも表示されません。変数の実際の値を新規に計算してステータスを更新するには、変数ビューアーを更新します。

関連するトピック