信号名と Subsystem のポート名が一致して​いるか確認する方法は​ありますか?

28 次查看(过去 30 天)
信号名と Subsystem ブロックのポート名が一致しているか確認する方法があれば教えてください。
例えば、下図の Subsystem2 は、入力信号名と Subsystem のポート名が一致していないため、一致していないことを検出する方法があれば教えてください。

采纳的回答

MathWorks Support Team
入力信号の名前は、ブロックプロパティの 'InputSignalNames' プロパティから取得できます。
Subsystem や ModelReference ブロックのポート名は、find_system 関数を使ってそのブロックの中にある Inport ブロックを検索し、検索できたブロックの 'Name' プロパティから取得できます。
 
%%check Subsystem port
subsys_name = 'sig_prop/Subsystem2';
% 信号名を取得
sig_name = get_param(subsys_name,'InputSignalNames')
% ブロックの入力ポートの名前を取得
inport_blk = find_system(subsys_name,'BlockType','Inport');
inport_order = sig_name;
for k = 1:length(inport_blk)
kk = eval(get_param(inport_blk{k},'Port'));
inport_order{1,kk} = get_param(inport_blk{k},'Name');
end
サブシステム 'sig_prop/Subsystem2' と Model Reference ブロック 'sig_prop/Subsystem4' について、信号名とブロックの入力ポート名を取得するサンプルファイルがダウンロード可能です。

更多回答(0 个)

类别

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

标签

尚未输入任何标签。

产品


版本

R2011b

Community Treasure Hunt

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

Start Hunting!