このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
add_line
ラインを Simulink モデルに追加する
説明
は 1 つのブロックの出力端子 h
= add_line(sys
,out
,in
)out
を別のブロックの入力端子 in
に接続するラインをモデルまたはサブシステム sys
内に追加します。この構文は、対角線やその他のブロックを通過するラインなど、端子から端子に最も直接的な経路を描画します。
次の場合に端子を接続できます。
入力端子にまだ接続がない。
端子は接続互換性がある。
端子がどちらもモデルの階層構造の最上位レベルにあるか、両方が同じモデル コンポーネント (たとえば同じサブシステム) にある。異なるコンポーネントにあるブロックを接続するには、
Simulink.connectBlocks
関数を使用します。
例
新しいモデルを作成して開きます。
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: [172.0023 173.0051]
Outport: 174.0079
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 185
ans = 1×2
250 185
最初の座標セットは入力ブロックに対応しています。2 つ目のセットは出力端子に対応しています。
Sum ブロックの端子の位置を取得します。このブロックには 3 つの端子 (2 つの入力端子と 1 つの出力端子) があります。
s = get_param('vdp/Sum','PortConnectivity'); s.Position
ans = 1×2
310 170
ans = 1×2
310 185
ans = 1×2
345 180
最初の座標セットが上の入力端子に対応し、2 つ目のセットが下の入力端子に対応しています。3 つ目のセットは出力端子に対応しています。
Mu
という名前のマスク Subsystem ブロックを Sum ブロックに接続するために、Subsystem ブロックの出力端子の座標を指定してから、Sum ブロックの下の入力端子の座標を指定します。
add_line('vdp',[250 150; 310 150])
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')
入力引数
ラインの追加先のモデルまたはサブシステム。文字ベクトルとして指定します。
例: 'vdp'
例: 'f14/Controller'
ラインの接続元のブロック出力端子。次の値のいずれかとして指定します。
端子の接続先ブロックの名前にスラッシュで区切って端子番号を続けたもの。たとえば、
"myBlock/1"
のようになります。Integrator ブロックの状態端子の場合は、端子番号の代わりに端子名の
State
を使用します。状態端子に接続するには、状態端子が可視でなければなりません。既定では、Integrator ブロックの状態端子は非表示です。端子を表示するには、次のコマンドを実行します。ここで、path
は string または文字ベクトルとして表現される Integrator ブロックのブロック パスです。たとえば、"myModel/myBlock"
のようになります。set_param(path,ShowStatePort="on")
端子ハンドル。
これらの端子指定子のいずれかの配列。
'PortHandles'
を get_param
で使用してハンドルを取得します。
例: 'Mu/1'
例: 'Subsystem/2'
例: h.Outport(1)
例: {'Subsystem/1','Subsystem/2'}
ヒント
ほとんどのブロック端子には、上から下、左から右への順に番号が付けられます。ブロックの向きに関する端子の順番の詳細については、回転または反転したブロックの端子の位置の特定を参照してください。
Subsystem ブロックの端子を移動させることで、端子番号を変更できます。詳細については、端子の移動を参照してください。
ラインの接続先のブロック入力端子。次の値のいずれかとして指定します。
端子の接続先ブロックの名前にスラッシュで区切って端子番号を続けたもの。たとえば、
"myBlock/1"
のようになります。条件付き実行サブシステムの制御入力端子の場合は、端子番号の代わりに端子名を使用します。たとえば、"myBlock/Reset"
のようになります。条件付きで使用される他のサブシステムの端子名については、Get Port Nameを参照してください。端子ハンドル。
これらの端子指定子のいずれかの配列。
'PortHandles'
オプションを get_param
に指定して使用し、ハンドルを取得します。
例: 'Mu/1'
例: 'Subsystem/2'
例: h.Inport(1)
例: {'Subsystem/1','Subsystem/2'}
ヒント
ほとんどのブロック端子には、上から下、左から右への順に番号が付けられます。ブロックの向きに関する端子の順番の詳細については、回転または反転したブロックの端子の位置の特定を参照してください。
Subsystem ブロックの端子を移動させることで、端子番号を変更できます。詳細については、端子の移動を参照してください。
他のブロックを迂回する自動ライン ルーティングのタイプ。次のように指定します。
自動ライン ルーティングを使用しない場合は
'off'
自動ライン ルーティングを使用する場合は
'on'
キャンバスの余白を最大限に活用し、他のラインやラベルとのオーバーラップを回避する自動ライン ルーティングを使用する場合は
'smart'
描画するラインの点。少なくとも 2 行 2 列の行列として指定します。描画するすべてのセグメントの行を追加します。キャンバスのサイズ変更をする前には必ず、エディターの左上隅からの (x,y) 座標として点を指定する必要があります。
例: [100 300; 200 300; 200 300; 200 500]
出力引数
add_line
で作成したライン。ハンドルとして返されます。
バージョン履歴
R2006a より前に導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)