Simulink モデル内で、ブロックごとに接続されている Line にアクセスする方法はありますか?

31 visualizzazioni (ultimi 30 giorni)
MathWorks Support Team
MathWorks Support Team il 15 Gen 2010
Simulink モデル内で、ブロックごとに接続されている Line にアクセスし、その接続情報を得る方法を教えてください。

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 15 Gen 2010
Line の接続情報に直接アクセスする方法はありませんが、次のような方法で、ある Line がどのようなブロック間に接続されているかを知ることができます。
FIND_SYSTEM コマンドで全 Line オブジェクトのハンドルを取得し、任意の Line に対して、'SrcBlockHandle'、'DstBlockHandle' プロパティを取得することで、それぞれ入力側、出力側のブロックのハンドル番号として得ることができます。
また、これらが -1 を示す場合は、その Line オブジェクトの入力側、または出力側には、ブロックが接続されていないことを示します。
例えば、実際の使用例は次のようになります。
%Simulinkモデル vdp.mdl を開きます
open_system('vdp')
%全Lineのハンドル番号を取得します
h = find_system('vdp','FindAll','On','type', 'line');
k = 15; % 15番目のLineに対して...
%入力側、出力側に接続されているブロックのハンドル番号を取得します
hblkSrc = get_param(h(k),'SrcBlockHandle');
hblkDst = get_param(h(k),'DstBlockHandle');
% (結果の表示)
sprintf('LineName: %s Source Block : %s Destination Block: %s', ...
get_param(h(k),'name'),get_param(hblkDst,'Name'), ...
get_param(hblkSrc,'Name'))

Più risposte (0)

Categorie

Scopri di più su プログラムによるモデル編集 in Help Center e File Exchange

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!