add_line
ラインを Simulink モデルに追加する
説明
例
端子番号を使用してブロックを結線
ブロックの端子番号を使用してラインを追加し、ブロックを結線します。
モデルを作成して開きます。
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 オプションを使用してブロックを結線
この例では、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')
入力引数
sys
— ラインの追加先のモデルまたはサブシステム
文字ベクトル
ラインの追加先のモデルまたはサブシステム。文字ベクトルとして指定します。
例: 'vdp'
例: 'f14/Controller'
out
— ラインの接続元のブロック出力端子
ブロック名/端子の番号または名前 | 端子ハンドル | 端子指定子の配列
ラインの接続元のブロック出力端子。次の値のいずれかとして指定します。
ブロック名、スラッシュ、および端子番号。状態端子の場合は、端子番号の代わりに端子名の
State
を使用します。接続元とする端子ハンドル。
これらの端子指定子のいずれかの配列。
'PortHandles'
を get_param
で使用してハンドルを取得します。
例: 'Mu/1'
例: 'Subsystem/2'
例: h.Outport(1)
例: {'Subsystem/1','Subsystem/2'}
ヒント
ほとんどのブロック端子には、上から下、左から右への順に番号が付けられます。ブロックの向きに関する端子の順番の詳細については、回転または反転後の端子の位置を参照してください。
Subsystem ブロックの端子を移動させることで、端子番号を変更できます。詳細については、端子の移動を参照してください。
in
— ラインの接続先のブロック入力端子
ブロック名/端子の番号または名前 | 端子ハンドル | 端子指定子の配列
ラインの接続先のブロック入力端子。次の値のいずれかとして指定します。
ブロック名、スラッシュ、および端子番号。次の端子では、端子番号の代わりに端子名を使用します。
イネーブル端子 -
Enable
を使用します。たとえば、Enabled Subsystem のイネーブル端子に対してこの端子名を使用します。トリガー端子 -
Trigger
を使用します。たとえば、Triggered Subsystem のトリガー端子に対してこの端子名を使用します。Action 端子 -
Action
を使用します。たとえば、if-action サブシステムおよび switch-case-action サブシステムの Action 端子に対してこの端子名を使用します。
ラインの追加先の端子ハンドル。
これらの端子指定子のいずれかの配列。
'PortHandles'
オプションを get_param
に指定して使用し、ハンドルを取得します。
例: 'Mu/1'
例: 'Subsystem/2'
例: h.Inport(1)
例: {'Subsystem/1','Subsystem/2'}
ヒント
ほとんどのブロック端子には、上から下、左から右への順に番号が付けられます。ブロックの向きに関する端子の順番の詳細については、回転または反転後の端子の位置を参照してください。
Subsystem ブロックの端子を移動させることで、端子番号を変更できます。詳細については、端子の移動を参照してください。
autoOption
— 自動ライン ルーティングのタイプ
'off'
(既定値) | 'on'
| 'smart'
他のブロックを迂回する自動ライン ルーティングのタイプ。次のように指定します。
自動ライン ルーティングを使用しない場合は
'off'
自動ライン ルーティングを使用する場合は
'on'
キャンバスの余白を最大限に活用し、他のラインやラベルとのオーバーラップを回避する自動ライン ルーティングを使用する場合は
'smart'
points
— 描画するラインの点
行列
描画するラインの点。少なくとも 2 行 2 列の行列として指定します。描画するすべてのセグメントの行を追加します。キャンバスのサイズ変更をする前には必ず、エディターの左上隅からの (x,y) 座標として点を指定する必要があります。
例: [100 300; 200 300; 200 300; 200 500]
出力引数
h
— ライン
ハンドル
add_line
で作成したライン。ハンドルとして返されます。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)