Simulink モデル内で、ブロックごとに接続されている Line にアクセスする方法はありますか?
30 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Simulink モデル内で、ブロックごとに接続されている Line にアクセスし、その接続情報を得る方法を教えてください。
Réponse acceptée
MathWorks Support Team
le 15 Jan 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'))
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur プログラムによるモデル編集 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!