このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
add_line
ラインを Simulink モデルに追加する
説明
例
端子番号を使用してブロックを結線
新しいモデルを作成して開きます。
open_system(new_system('myModel'));
Constant ブロックを追加して配置します。
add_block('simulink/Commonly Used Blocks/Constant','myModel/Constant'); set_param('myModel/Constant','position',[140,80,180,120]);
Gain ブロックを追加して配置します。
add_block('simulink/Commonly Used Blocks/Gain','myModel/Gain'); set_param('myModel/Gain','position',[220,80,260,120]);
Constant ブロックの出力端子を Gain ブロックの入力端子に接続します。Constant ブロックには出力端子が 1 つしかないため、Constant ブロックに指定できる端子番号は 1
のみです。Gain ブロックには入力端子が 1 つしかないため、Gain ブロックに指定できる端子番号は 1
のみです。
add_line('myModel','Constant/1','Gain/1');
Scope ブロックを追加して配置します。
add_block('simulink/Commonly Used Blocks/Scope','myModel/Scope'); set_param('myModel/Scope','position',[300,80,340,120]);
Scope ブロックの入力端子数を 2
に変更します。
set_param('myModel/Scope','NumInputPorts','2')
Gain ブロックの出力端子を Scope ブロックの 2 番目の入力端子に接続します。Gain ブロックには出力端子が 1 つしかないため、Gain ブロックに指定できる端子番号は 1
のみです。Scope ブロックの 2 番目の端子に接続するため、Scope ブロックには端子番号 2
を指定します。
add_line('myModel','Gain/1','Scope/2');
端子ハンドルを使用してブロックを結線
例を開きます。次に、vdp
モデルを開きます。
open_system('vdp')
Mu
という名前のマスク Subsystem ブロックを Sum ブロックに接続するラインを削除します。
delete_line('vdp','Mu/1','Sum/2');
Mu
という名前のマスク Subsystem ブロックと Sum ブロックから端子ハンドルを取得します。
h1 = get_param('vdp/Mu','PortHandles'); h2 = get_param('vdp/Sum','PortHandles')
h2 = struct with fields:
Inport: [324.0006 325.0006]
Outport: 326.0006
Enable: []
Trigger: []
State: []
LConn: []
RConn: []
Ifaction: []
Reset: []
Event: []
h2
構造体で、Inport
プロパティの 2 つのハンドルに注目してください。
Mu
という名前の Subsystem ブロックを Gain ブロックに接続します。端子ハンドルの Inport
プロパティおよび Outport
プロパティにインデックスを付けて、接続する端子を指定します。
add_line('vdp',h1.Outport(1),h2.Inport(2));
分岐線の追加
既存の信号線を分岐する接続をプログラムによって作成できます。points
構文を使用してセグメントを描画することも、接続する端子を指定してラインを描画することもできます。端子を使用する場合、自動ライン ルーティングを使用すると分岐線のレイアウトが向上します。
この例では、端子を使用して分岐信号線をもつ接続を作成する方法について説明します。
例を開きます。次に、vdp
モデルを開きます。
open_system('vdp')
Scope ブロックを vdp
モデルに追加します。
add_block('simulink/Commonly Used Blocks/Scope','vdp/Scope1');
Outport ブロックの上に Scope ブロックを配置します。
set_param('vdp/Scope1','position',[470,70,500,110]);
x1
という名前の Integrator ブロックを Scope1
という名前の Scope ブロックに接続します。
add_line('vdp','x1/1','Scope1/1','autorouting','on')
このコマンドは x1
という名前の Integrator ブロックから既存のラインを分岐させて、Scope1
という名前の Scope ブロックに接続します。autorouting をオンに指定すると、結果として得られるラインはセグメント化されます。
端子の座標を使用したブロックの結線
例を開きます。次に、vdp
モデルを開きます。
open_system('vdp')
Mu
という名前のマスク Subsystem ブロックを Sum ブロックに接続するラインを削除します。
delete_line('vdp','Mu/1','Sum/2')
Mu
という名前のマスク Subsystem ブロックの端子の位置を取得します。Mu
には 2 つの端子 (1 つの入力端子と 1 つの出力端子) があります。
mu = get_param('vdp/Mu','PortConnectivity'); mu.Position
ans = 1×2
210 150
ans = 1×2
250 150
最初の座標セットは入力ブロックに対応しています。2 つ目のセットは出力端子に対応しています。
Sum ブロックの端子の位置を取得します。このブロックには 3 つの端子 (2 つの入力端子と 1 つの出力端子) があります。
s = get_param('vdp/Sum','PortConnectivity'); s.Position
ans = 1×2
310 135
ans = 1×2
310 150
ans = 1×2
345 145
最初の座標セットが上の入力端子に対応し、2 つ目のセットが下の入力端子に対応しています。3 つ目のセットは出力端子に対応しています。
Mu
という名前のマスク Subsystem ブロックを Sum ブロックに接続するために、Subsystem ブロックの出力端子の座標を指定してから、Sum ブロックの下の入力端子の座標を指定します。
add_line('vdp',[250 150; 310 150])
Autorouting オプションを使用してブロックを結線
autorouting オプションを使用する場合と使用しない場合に分けて、それぞれラインを追加できます。
モデルへのブロックの追加
myModel
という名前の新しいモデルを作成します。
open_system(new_system('myModel'))
HideAutomaticNames
パラメーターをオフにします。
set_param('myModel','HideAutomaticNames','off')
2 つの Subsystem ブロックと 1 つの Gain ブロックを追加します。
add_block('simulink/Commonly Used Blocks/Subsystem','myModel/Subsystem1'); add_block('simulink/Commonly Used Blocks/Subsystem','myModel/Subsystem2'); add_block('simulink/Commonly Used Blocks/Gain','myModel/Gain');
Gain ブロックが 2 つの Subsystem ブロックの間になるように各ブロックを配置します。
set_param('myModel/Subsystem1','position',[100 100 130 130]); set_param('myModel/Gain','position',[230,100,260,130]); set_param('myModel/Subsystem2','position',[360,100,390,130]);
各 Subsystem ブロックに入力端子と出力端子を追加します。
add_block('simulink/Sources/In1','myModel/Subsystem1/In2'); add_block('simulink/Commonly Used Blocks/Out1','myModel/Subsystem1/Out2'); add_block('simulink/Sources/In1','myModel/Subsystem2/In2'); add_block('simulink/Commonly Used Blocks/Out1','myModel/Subsystem2/Out2');
Autorouting なしでのブロックの結線
Subsystem1
という名前の Subsystem ブロックの出力端子を Subsystem2
という名前の Subsystem ブロックの入力端子に接続するラインを追加します。
add_line('myModel',{'Subsystem1/1','Subsystem1/2'},{'Subsystem2/1','Subsystem2/2'})
Autorouting を使用したブロックの結線
ラインを削除します。
delete_line('myModel','Subsystem1/1','Subsystem2/1') delete_line('myModel','Subsystem1/2','Subsystem2/2')
smart
autorouting オプションを使用して再度ラインを追加します。2 組の入力端子と出力端子を 1 つの配列を使用して接続すると、スペースを効率的に利用できる場合には、スマートな autorouting によってそれらがまとめて配線されます。
add_line('myModel',{'Subsystem1/1','Subsystem1/2'},{'Subsystem2/1','Subsystem2/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 のトリガー端子に対してこの端子名を使用します。アクション端子 -
Ifaction
を使用します。たとえば、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)