Main Content

highlight

モデル内の信号ソースまたは伝播先のパスを強調表示する

R2021b 以降

説明

highlight(g) は、ブロック線図で sltrace.Graph オブジェクト g 内のブロックと信号線を強調表示します。

highlight(g,t) は、t で指定したブロックと信号線をブロック線図内で強調表示します。

すべて折りたたむ

この例のモデルは、ファン デル ポール (vdp) の 2 階微分方程式を実装しています。

d2xdt2-μ(1-x2)dxdt+x=0,

ここで、μ はシステム内の減衰を表します。

モデル vdp を開きます。モデルで、信号 x1x の 1 階微分を表します。信号 x2x の 2 階微分を表します。

mdl = "vdp";
open_system(mdl)

The model vdp.

関数 sltrace を使用して、信号 x2 のすべてのソース ブロックをトレースします。この信号は、x1 という名前の Integrator ブロックの入力信号です。

x2Sources = sltrace((mdl + "/x1"),"Source",Port=1,TraceAll="on");

信号のすべてのソースをトレースすると、関数 sltrace が返す sltrace.Graph オブジェクトには、指定したブロックの入力信号を生成するブロック以外の情報も含まれます。sltrace.Graph オブジェクトには、トレースした信号の値に影響する出力値を生成するすべてのブロックの情報が含まれています。

length(x2Sources.SrcBlocks)
ans = 10

ブロック線図で信号パスを確認するには、関数 highlight を使用して、sltrace.Graph オブジェクト x2Sources 内のすべてのソース ブロックを強調表示します。ブロック線図内では、sltrace.Graph オブジェクト内のソース ブロックとそれらを接続する信号が、黄色で強調表示されます。ブロックを強調表示すると、キャンバスもシェーディングされて濃いグレーになり、強調表示がより見やすくなります。

highlight(x2Sources)

The model vdp has all source blocks for the signal x2 highlighted.

sltrace.Graph オブジェクトには、ソース ブロック間の接続の解析に使用できる digraph オブジェクトが含まれています。グラフ内の各ノードはブロック端子を表し、それぞれのエッジ (ライン) は信号線を表します。

plot(x2Sources.TraceGraph)

Figure contains an axes object. The axes object contains an object of type graphplot.

sltrace.Graph オブジェクトが得られたら、関数 highlight を使用して、sltrace.Graph オブジェクト内の信号トレース情報の一部ではないブロックや信号線など、モデル内の任意のブロックや信号線を強調表示できます。たとえば、Scope ブロックと、Scope ブロックの入力端子に接続されている信号線を強調表示します。

関数 get_param を使用して、Scope ブロックのブロック ハンドルを取得します。

scopePath = mdl + "/Scope";
scopeHandle = get_param(scopePath,"Handle");

関数 get_param を使用して、Scope ブロックの端子ハンドルを取得します。

scopePorts = get_param(scopePath,"PortHandles");

関数 get_param を使用して、Scope ブロックの各入力端子に接続されている信号線のライン ハンドルを取得します。

scopeIn1 = scopePorts.Inport(1);
scopeIn1 = get_param(scopeIn1,"Line");
scopeIn2 = scopePorts.Inport(2);
scopeIn2 = get_param(scopeIn2,"Line");

関数 highlight を使用して、ブロック線図内の要素を強調表示します。ブロック線図内では、Scope ブロックと Scope ブロックの入力信号は赤で強調表示されています。この場合も、信号 x2 のソースは黄色で強調表示されています。

highlight(x2Sources,[scopeHandle scopeIn1 scopeIn2])

The model vdp has the sources for the signal x2, the Scope block, and the inputs to the Scope block highlighted in the block diagram.

強調表示を解除するには、関数 removeHighlight を使用します。関数は、sltrace.Graph オブジェクトに関連付けられているすべての強調表示をブロック線図内で解除します。ブロック線図の強調表示が解除されると、キャンバスのシェーディングも解除されます。

removeHighlight(x2Sources)

The model vdp has no highlighting in the block diiagram.

入力引数

すべて折りたたむ

関数 sltrace を使用して作成された信号トレース パス情報。sltrace.Graph オブジェクトとして指定します。

強調表示するブロックと信号線。ブロック ハンドル、ライン ハンドル、またはブロック ハンドルとライン ハンドルの配列として指定します。関数 highlight を使用して、オブジェクトが表すトレース パス上にないブロックや信号線など、sltrace.Graph オブジェクトに対応するモデル内の任意のブロックを強調表示できます。

バージョン履歴

R2021b で導入