add_block
ブロックをモデルに追加
説明
例
次の入力引数を指定して関数 add_block
を使用することで、ライブラリからブロックを追加できます。
ライブラリ ブラウザーのツリー階層の最上位レベルから、追加するライブラリ ブロックへのライブラリ ブロック パス。たとえば、
"Simulink/Math Operations/Gain"
モデルの階層構造の最上位レベルから、新しいブロックを追加する場所への絶対ブロック パス。たとえば、
"myModel/mySubsystem/myblock"
両方のパスが、ブロック名で終わらなければなりません。
この例では、カスタマイズ可能な円形ゲージを f14
モデルの Controller
サブシステムに追加します。
例を開きます。次に、宛先のモデルを読み込むか開きます。
open_system("f14")
このタスクを完了するために必要なブロックの正確な名前、またはライブラリ ブラウザー ツリー内のブロックの場所がわからないとします。ライブラリ ブロック パスを取得するには、ライブラリ ブラウザーでキーワードを検索します。ライブラリ ブラウザーを開きます。検索ボックスで、「gauge
」と入力し、"Enter" キーを押します。
検索結果で、円形ゲージのアイコンの上にマウスをポイントします。ツールヒントにライブラリ ブロック パスが表示されます。
Circular Gauge ブロックを Controller
サブシステムに追加します。ブロックに myGauge
という名前を付けます。
ライブラリ ブロック パスは
"simulink_hmi_customizable_blocks/Circular Gauge"
です。絶対ブロック パスは
"f14/Controller/myGauge"
です。
add_block("simulink_hmi_customizable_blocks/Circular Gauge","f14/Controller/myGauge");
ブロックを確認するには、f14
モデルで、Controller
サブシステム内に移動します。
open_system("f14/Controller")
f14
モデルから vdp
モデルにブロックのコピーを追加します。
宛先のモデルを読み込むか開きます。
open_system("vdp");
Actuator Model ブロックを f14
モデルから vdp
モデルに追加します。
add_block("f14/Actuator Model","vdp/Actuator Model");
Simulink® ライブラリから vdp
モデルに Scope ブロックを追加します。vdp
モデルには Scope という名前のブロックが既にあるため、MakeNameUnique
オプションを使用して新しいブロックの固有の名前を作成します。
宛先のモデルを読み込むか開きます。
open_system("vdp");
Simulink® Sinks ライブラリから vdp
モデルに Scope ブロックを追加します。MakeNameUnique
を "on"
に設定します。
add_block("simulink/Sinks/Scope","vdp/Scope",MakeNameUnique="on")
ライブラリからモデルにブロックを追加し、名前と値の引数を使用してパラメーターを設定します。
宛先のモデルを読み込むか開きます。
open_system("vdp");
ライブラリから vdp
モデルに Gain ブロックを追加します。次に、ゲイン値を 5
に設定します。
add_block("simulink/Math Operations/Gain","vdp/Five",Gain="5")
端子のブロックを追加する方法は目的によって異なります。新規または既存の端子のブロックを追加できます。入力端子に対応するブロックを複製することもできます。
新しい端子のブロックを追加
PortBlockCreation
という名前のモデルを作成して開きます。
mdl = "PortBlockCreation";
new_system(mdl);
open_system(mdl);
端子番号で識別される端子を作成するには、In1 ブロックと Out1 ブロックを追加します。既定では、In1 ブロックまたは Out1 ブロックを追加すると端子が作成されます。
add_block("simulink/Ports & Subsystems/In1",... "PortBlockCreation/In1") add_block("simulink/Ports & Subsystems/Out1",... "PortBlockCreation/Out1")
端子名で識別される端子を作成するには、In Bus Element ブロックと Out Bus Element ブロックを追加します。既定では、新しい In Bus Element ブロックと Out Bus Element ブロックは InBus
と OutBus
という名前の端子にそれぞれ対応します。これらの端子にも端子番号はあります。必要に応じて、PortName
ブロック パラメーターで端子のカスタム名を指定します。
add_block("simulink/Ports & Subsystems/In Bus Element",... "PortBlockCreation/InBusElement") add_block("simulink/Ports & Subsystems/Out Bus Element",... "PortBlockCreation/OutBusElement")
In Bus Element ブロックまたは Out Bus Element ブロックを追加するときに端子を作成するには、CreateNewPort
を "on"
に設定します。
add_block("simulink/Ports & Subsystems/In Bus Element",... "PortBlockCreation/InBusElement1",CreateNewPort="on") add_block("simulink/Ports & Subsystems/Out Bus Element",... "PortBlockCreation/OutBusElement1",CreateNewPort="on")
CreateNewPort
を "on"
に設定しない場合は異なる動作になります。
InBus
およびOutBus
という名前の端子があるとします。追加されるブロックはそれらの端子のいずれかに対応します。ブロックを追加するときに端子名を指定すると、InBus
端子またはOutBus
端子の名前が変更され、指定した端子名が使用されます。カスタム名が付けられた端子しかないとします。追加されるブロックは新しい端子に対応します。ブロックを追加するときに端子名を指定すると、指定した端子名が新しい端子に使用されます。
新しい端子要素のブロックを追加
In Bus Element ブロックおよび Out Bus Element ブロックでは、入力端子から複数の要素を選択し、出力端子に複数の要素を接続できます。
In Bus Element ブロックに要素を追加するには、端子に対応する既存のブロックをコピーし、新しい要素の固有の名前を指定します。
add_block("PortBlockCreation/InBusElement",... "PortBlockCreation/InBusElement2",Element="signal2")
Out Bus Element ブロックに要素を追加するには、端子に対応する既存のブロックをコピーします。必要に応じて、固有の要素名を指定します。
add_block("PortBlockCreation/OutBusElement",... "PortBlockCreation/OutBusElement2")
入力端子のブロックを複製
ある入力端子からの同じ入力をブロック線図内の複数のブロックで使用できます。入力端子に対応するブロックを複製するとライン ルーティングを簡略化できます。
In1 ブロックを複製するには、ブロック線図からブロックをコピーし、CopyOption
を "duplicate"
に設定します。
add_block("PortBlockCreation/In1",... "PortBlockCreation/In1Dup",CopyOption="duplicate")
In Bus Element ブロックを複製するには、ブロックをコピーします。
add_block("PortBlockCreation/InBusElement",... "PortBlockCreation/InBusElementDup")
複製ブロックでは元のブロックと同じ端子番号が使用されます。名前ベースの端子の場合、元のブロックと同じ端子から同じ要素が選択されます。
入力引数
コピーするブロック。ブロック パスとして指定します。ブロック パスの詳細については、Get Handles and Pathsを参照してください。
モデルからブロックをコピーするには、ブロック パスを指定します。新しいブロックは同じパラメーター設定をもちます。
例: add_block("vdp/Mu","mymodel/Mu")
ライブラリからブロックをコピーするには、ライブラリ ブロック パスを指定します。ライブラリ ブロック パスを取得するには、ライブラリ ブラウザーでブロックをポイントします。あるいは、ライブラリを開き、ブロックを選択して、コマンド ラインで「gcb
」と入力します。ライブラリを開くには、ライブラリ ブラウザーのライブラリ リストでライブラリ名を右クリックし、[library_name
ライブラリを開く] を選択します。
例: add_block("simulink/Math Operations/Gain","mymodel/Gain")
特定のブロック タイプのブロックを作成するには、ブロック タイプを 'built-in/
として指定します。ここで、blocktype
'
はプログラム上のブロック名です。ブロックの blocktype
BlockType
パラメーターの値を取得するには、共通ブロック プロパティを参照してください。'built-in/
を使用して追加されるブロックは、ライブラリ ブロックとは異なる構成になることがあります。blocktype
'
例: add_block("built-in/Gain","mymodel/Gain")
SubSystem
を BlockType
とするライブラリ ブロックは複数あります。ソース ブロックを "built-in/SubSystem"
として指定する場合、新しいブロックは 1 つの入力と 1 つの出力をもつサブシステムを表します。それ以外のサブシステムやマスク ブロックには、BlockType
の値の代わりにライブラリ ブロック パスを使用します。
新しいブロックの名前と場所。ブロック パスとして指定します。
例: add_block("simulink/Math Operations/Gain","f14/Controller/MyNewBlock")
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: add_block("simulink/Math Operations/Gain","mymodel/Gain",Gain="5")
は、入力に 5 を乗算する Gain ブロックを追加します。
add_block
関数では、ブロックのパラメーターとプロパティの値を名前と値の引数として指定します。ブロックのパラメーターとプロパティの詳細については、プログラムによるブロックのパラメーターとプロパティの指定を参照してください。
固有のブロック名。"off"
または "on"
として指定します。
追加されるブロックの固有のブロック名を作成するには、MakeNameUnique
を "on"
に設定します。指定したブロック名が存在する場合は、ブロック名の最後に番号が付加されるか、ブロック名の最後の番号がインクリメントされます。
例: add_block("simulink/Math Operations/Gain","mymodel/Gain",MakeNameUnique="on")
コピー オプション。""
、"nolink"
、または "duplicate"
として指定します。
"nolink"
— 新しいブロックは、ソース ブロックを含むカスタム ライブラリにリンクしません。"duplicate"
— 新しいブロックは、入力端子ブロックを複製し、ソース ブロックと同じ端子番号をもちます。端子の作成やラインの追加なしで入力端子から信号を分岐するには、入力端子に対応するブロックを複製します。詳細については、重複する Inport ブロックの作成を参照してください。
例: add_block("myLibrary/CustomBlock","myModel/CustomBlock",CopyOption="nolink")
例: add_block("myModel/mySubsystem/Inport","myModel/mySubsystem/InportDup",CopyOption="duplicate")
新しいバス要素端子。"off"
または "on"
として指定します。ソース ブロックは In Bus Element ブロックまたは Out Bus Element ブロックでなければなりません。
新しい端子のブロックを追加するには、CreateNewPort
を "on"
に設定します。必要に応じて、PortName
パラメーターで新しい端子の名前を指定します。既定では、新しい端子の名前は、コピーされるブロックの端子名と番号の組み合わせになります。コピーされるブロックの端子名が既に番号で終わっている場合は、一意になるように番号がインクリメントされます。
CreateNewPort
を "off"
に設定しても、端子を作成できないわけではありません。たとえば、モデルに追加する最初の In Bus Element ブロックまたは Out Bus Element ブロックで端子が作成されます。また、ブロックを追加して PortName
で固有の端子名を指定しても端子が作成されます。
CreateNewPort
を "off"
に設定すると、追加されるブロックを既存の端子に対応させることができます。たとえば、モデルから In Bus Element ブロックまたは Out Bus Element ブロックをコピーする場合、Element
パラメーターで要素名を指定すると、新しいブロックで端子の新しい要素を表すことができます。
バス要素端子をプログラムで作成する方法の詳細については、Programmatically Create Bus Element Portsを参照してください。
例: add_block("simulink/Ports & Subsystems/In Bus Element","myModel/InBusElement1",CreateNewPort="on")
出力引数
新しいブロック。ハンドルとして返されます。
ブロック ハンドルの詳細については、Get Handles and Pathsを参照してください。
ヒント
ブロックのオーバーラップを防ぐには、新しいブロックの位置を Position
ブロック プロパティで指定します。詳細については、プログラムによるブロックのパラメーターとプロパティの指定を参照してください。
バージョン履歴
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)