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

28 visualizzazioni (ultimi 30 giorni)
MathWorks Support Team
MathWorks Support Team il 11 Dic 2017
信号名と Subsystem ブロックのポート名が一致しているか確認する方法があれば教えてください。
例えば、下図の Subsystem2 は、入力信号名と Subsystem のポート名が一致していないため、一致していないことを検出する方法があれば教えてください。

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 11 Dic 2017
入力信号の名前は、ブロックプロパティの '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' について、信号名とブロックの入力ポート名を取得するサンプルファイルがダウンロード可能です。

Più risposte (0)

Categorie

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

Tag

Non è stata ancora inserito alcun tag.

Prodotti


Release

R2011b

Community Treasure Hunt

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

Start Hunting!