Simulinkモデル 接続先ポート番号の取得

21 次查看(过去 30 天)
shota
shota 2019-2-27
Simulinkモデル 接続先ブロックについて質問です。
あるブロックの"LineHandles"から"DstHandle"まで取得し、出力先を確認できますが、
出力先ブロックの上から何番目に接続されているかを確認したいです。
”PortConnectivity”から"Dstport"を使用し、何番目に接続されていることは確認できました。(1番目に接続:0で出力)
しかし、信号線が枝分かれした際、それぞれが違うブロックに接続され、[1,2]の順で取得したい時に[2,1]と出力されます。
”PortConnectivity”を使用せずに接続先ブロックの上から何番目に接続されているかわかるプロパティまたは
方法はありますでしょうか。
少し分かりづらい質問で申し訳ないですがご回答をお願いいたします。
  1 个评论
Shoumei
Shoumei 2019-3-4
サンプルモデルと、そのモデルのどの情報を取得したいかを教えてもらえると助かります。

请先登录,再进行评论。

回答(1 个)

Etsuo Maeda
Etsuo Maeda 2019-3-28
Shoumeiさんのおっしゃる通り、何をどうされているのかよく分かりませんが、"Lineの接続先ブロックの何番目に接続されているのか"を判定するなら接続先のブロックのプロパティを使えばいいのではないでしょうか。
vdp
hx2 = get_param('vdp/x2', 'Handle');
PcMux = get_param('vdp/Mux', 'PortConnectivity');
PcMux(1).SrcBlock == hx2
PcMux(2).SrcBlock == hx2
組み込みサンプルのvdpであれば、x2からLineは複数分岐して、MuxやOutPortにつながっています。
Mux側でPortConnectivityを取得し、SrcBlockのハンドルとx2のハンドルの一致を順に比較すれば、x2からのLineがMuxの2番目のInputにつながっていることが分かります。
実モデルや実コードを見せたくない場合は、vdpやf14などの公知のモデルと、vdpやf14に合わせたコードで質問された方がよりよい回答が得られます。
チュートリアル: MATLAB Answersで早く的確な回答を得るためのポイント
HTH

类别

Help CenterFile Exchange 中查找有关 プログラムによるモデル編集 的更多信息

Community Treasure Hunt

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

Start Hunting!