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");
将 f14
模型中的 Actuator Model 模块添加到 vdp
模型中。
add_block("f14/Actuator Model","vdp/Actuator Model");
将 Simulink® 库中的 Scope 模块添加到模型 vdp
。由于 vdp
模型已包含名为 Scope 的模块,因此请使用 MakeNameUnique
选项为新模块创建唯一名称。
加载或打开目标模型。
open_system("vdp");
将 Simulink® Sinks 库中的 Scope 模块添加到 vdp
模型中。将 MakeNameUnique
设置为 "on"
。
add_block("simulink/Sinks/Scope","vdp/Scope",MakeNameUnique="on")
将一个模块从库添加到模型中,并使用名称-值参量设置参数。
加载或打开目标模型。
open_system("vdp");
将库中的 Gain 模块添加到 vdp
模型中。然后,将增益值设置为 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"
时,新模块表示具有一个输入和一个输出的子系统。对于其他子系统和封装模块,请使用库模块路径而不是 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")
添加 Gain 模块,该模块将其输入乘以 5。
对于 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.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 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)