Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

add_line

ラインを Simulink モデルに追加する

説明

h = add_line(sys,out,in) は 1 つのブロックの出力端子 out を別のブロックの入力端子 in に接続するラインをモデルまたはサブシステム sys 内に追加します。この構文は、対角線やその他のブロックを通過するラインなど、端子から端子に最も直接的な経路を描画します。

次の場合に端子を接続できます。

  • 入力端子にまだ接続がない。

  • ブロックは接続互換性がある。

h = add_line(sys,out,in,'autorouting',autoOption) はブロックを接続し、ラインに他のブロックを迂回させるかどうかを指定します。

h = add_line(sys,points) は、Simulink® エディターのキャンバスの左上隅から相対的な (x,y) 座標 points で描画したラインを追加してから、任意のキャンバスのサイズを変更します。ラインのどちらかの端点が対応する端子の 5 ピクセル内にある場合、関数はラインをそこに接続します。ラインは複数のセグメントをもつことができます。

すべて折りたたむ

ブロックの端子番号を使用してラインを追加し、ブロックを結線します。

モデルを作成して開きます。

open_system(new_system('connect_model'));

Constant ブロックと Gain ブロックを追加して配置します。

add_block('simulink/Commonly Used Blocks/Constant','connect_model/Constant');
set_param('connect_model/Constant','position',[140,80,180,120]);
add_block('simulink/Commonly Used Blocks/Gain','connect_model/Gain');
set_param('connect_model/Gain','position',[220,80,260,120]);

ブロックを結線します。各ブロックは 1 つの端子をもつため、端子 1 を指定します。

add_line('connect_model','Constant/1','Gain/1');

add_line を使用して端子ハンドルを取得し、端子を接続します。

モデル vdp を開きます。

open_system('vdp');

Mu ゲイン ブロックを Sum ブロックに接続するラインを削除します。

delete_line('vdp','Mu/1','Sum/2');

Mu ブロックと Sum ブロックから端子ハンドルを取得します。

h = get_param('vdp/Mu','PortHandles');
h1 = get_param('vdp/Sum','PortHandles');

h1 構造体を確認します。Inport プロパティに対して 2 つのハンドルがあります。

h1
h1 = 

  struct with fields:

      Inport: [47.0002 54.0002]
     Outport: 39.0002
      Enable: []
     Trigger: []
       State: []
       LConn: []
       RConn: []
    Ifaction: []
       Reset: []

端子ハンドル上で Outport プロパティと Inport プロパティにインデックスを付け、必要なハンドルを取得して接続します。2 番目の入力端子に接続します。

add_line('vdp',h.Outport(1),h1.Inport(2));

プログラムによって接続を追加すると、ラインを分岐できます。points 構文を使用してセグメントを描画することも、接続する端子を指定してラインを描画することもできます。端子を使用する場合、自動ライン ルーティングを使用して分岐線の外観を向上します。

出力端子の上の vdp モデルにスコープを追加します。

vdp
add_block('simulink/Commonly Used Blocks/Scope','vdp/Scope1');
set_param('vdp/Scope1','position',[470,70,500,110]);

Integrator ブロック x1 を Scope1 に接続します。このコードは x1 出力から既存のラインを分岐させてスコープに接続します。autorouting をオンに指定すると、結果として得られるラインはセグメント化されます。

add_line('vdp','x1/1','Scope1/1','autorouting','on')

各セグメントの開始と終了として、キャンバス上で点を使用できます。get_param'PortConnectivity' オプションを指定して使用し、端子の位置を取得します。

モデル vdp を開いて、Mu ブロックと Sum ブロックを接続するラインを削除します。

vdp
delete_line('vdp','Mu/1','Sum/2')

Mu の端子の位置を取得します。Mu には 2 つの端子があります。1 つ目は入力端子で 2 つ目は出力端子です。

mu = get_param('vdp/Mu','PortConnectivity');
mu.Position
ans =

   190   150


ans =

   225   150

3 つの端子をもつ Sum の端子の位置を取得します。2 番目の位置は下位の入力端子です。

s = get_param('vdp/Sum','PortConnectivity');
s.Position
ans =

   250   135


ans =

   250   150


ans =

   285   145

出力点と入力点を使用して端子を接続します。

add_line('vdp',[225 150; 250 150])

この例では、autorouting オプションを使用した場合と使用しない場合のライン追加の効果を示します。

モデル route を作成します。既定のブロック名を表示します。

open_system(new_system('route'));
set_param('route','HideAutomaticNames','off')

以下に示すようにブロックを追加します。各サブシステムに入力端子と出力端子を追加します。

Subsystem の出力を Subsystem1 の入力に接続するラインを追加します。

add_line('route',{'Subsystem/1','Subsystem/2'},...
      {'Subsystem1/1','Subsystem1/2'})

autorouting オプションを使用しなかったため、関数は Gain ブロックを通過する直線を描画します。

ラインを削除します。再度ラインを追加します。今度は 'on' に設定した autorouting オプションを使用します。

add_line('route',{'Subsystem/1','Subsystem/2'},...
      {'Subsystem1/1','Subsystem1/2'},'autorouting','on')

ラインは Gain ブロックを迂回します。

ラインを削除します。smart autorouting オプションを使用して再度ラインを追加します。2 組の入力端子と出力端子を 1 つの配列を使用して接続する場合、スペースを効率的に利用できる場合には、'smart' autorouting はそれらをまとめて配線します。

add_line('route',{'Subsystem/1','Subsystem/2'},...
      {'Subsystem1/1','Subsystem1/2'},'autorouting','smart')

入力引数

すべて折りたたむ

ラインの追加先のモデルまたはサブシステム。文字ベクトルとして指定します。

例: 'vdp' , 'f14/Controller'

ラインの接続元のブロック出力端子。次のように指定します。

  • ブロック名、スラッシュ、および端子名または番号。ほとんどのブロック端子には、上から下、左から右への順に番号が付けられます。状態端子の場合は、端子番号の代わりに端子名の状態を使用します。

  • 接続元とする端子ハンドル。

  • これらの端子指定子のいずれかの配列。

'PortHandles'get_param で使用してハンドルを取得します。

例: 'Mu/1', 'Subsystem/2', h.Outport(1){'Subsystem/1','Subsystem/2'}

ラインの接続先のブロック入力端子。次のように指定します。

  • ブロック名、スラッシュ、および端子名または番号。以下に対する端子名:

    • Enabled Subsystem は Enable。

    • Triggered Subsystem は Trigger。

    • If Action Subsystem と Switch Case Action Subsystem は Action。

  • ラインの追加先の端子ハンドル。

  • これらの端子指定子のいずれかの配列。

'PortHandles' オプションを get_param に指定して使用し、ハンドルを取得します。

例: 'Mu/1', 'Subsystem/2', h.Inport(1), {'Subsystem/1','Subsystem/2'}

他のブロックを迂回する自動ライン ルーティングのタイプ。次のように指定します。

  • 自動ライン ルーティングを使用しない場合は 'off'

  • 自動ライン ルーティングを使用する場合は 'on'

  • キャンバスの余白を最大限に活用し、他のラインやラベルとのオーバーラップを回避する自動ライン ルーティングを使用する場合は 'smart'

描画するラインの点。少なくとも 2 行 2 列の行列として指定します。描画するすべてのセグメントの行を追加します。キャンバスのサイズ変更をする前には必ず、エディターの左上隅からの (x,y) 座標として点を指定する必要があります。

例: [100 300; 200 300; 200 300; 200 500]

出力引数

すべて折りたたむ

add_line で作成したライン。ハンドルとして返されます。

R2006a より前に導入