MATLAB: Simulinkモデ​ルで、Lineが分岐​しているときに 分岐先のブロック名、ポート名 及び 分岐元のブロック名、​ポート名を見つける方​法はありますか

line branchsimulinkブロック名ポート名分岐日本語

Simulink モデルで、Lineにどのようなブロックが接続されているかは、SrcBlock、DstBlockで見つめることが出来ますが、Lineが分岐している場合は、SrcBlock、DstBlockが空になってしまいます。Lineが分岐しているときに、分岐先のブロック名、ポート名、分岐元のブロック名、ポート名を見つける方法はありますか?

Best Answer

Lineが分岐している場合に空になっている状況について把握できていませんが、R2016a でブロックに対し 'PortConnectivity' プロパティを取得することで、そのブロックの接続先・接続元のブロックハンドルが取得できています。
例えばデモモデル vdp にて、分岐のある線 x1 の元となる Integrator ブロックを選択した状態で下記コマンドを実行することで、接続先や接続元のブロックが確認できます。
pc=get_param(gcb,'PortConnectivity');
for k = 1:length(pc)
get_param(pc(k).DstBlock,'Name')
get_param(pc(k).SrcBlock,'Name')
end
上記コマンドを使ってもうまく取得できない場合、問題が簡単に再現できるファイル一式とMATLABバージョンと共にサポート窓口へお問い合わせ頂くことをお勧めします。
また、ポート名を取得したいということですが、これは Subsystem ブロックに表示されているポート名をとりたいということでしょうか?