主要内容

add_block

向模型中添加模块

说明

h = add_block(source,dest)source 指定的模块的副本添加到 dest 指定的目标位置。新模块将添加到模块图中与源模块在其父模块图中出现的位置相同的位置。

目标模型必须加载。

示例

h = add_block(___,Name=Value) 可在前面语法中的输入参量外使用一个或多个名称-值参量来指定选项。例如,要添加将输入乘以 5 的 Gain 模块,请将 Gain 设置为 "5"

示例

示例

全部折叠

您可以使用具有以下输入参量的 add_block 函数从库中添加模块:

  • 从库浏览器树层次结构的顶层到要添加的库模块的库模块路径,例如 "Simulink/Math Operations/Gain"

  • 从模型层次结构的顶层到要添加新模块的位置的完整模块路径,例如 "myModel/mySubsystem/myblock"

两条路径都必须以模块名称结尾。

在此示例中,您向 f14 模型中的 Controller 子系统添加可自定义的圆形仪表。

打开示例。然后,加载或打开目标模型。

open_system("f14")

假设您不知道完成此任务所需的模块的确切名称或模块在库浏览器树中的位置。要获取库模块路径,请在库浏览器中进行关键字搜索。打开库浏览器。在搜索框中,键入 gauge,然后按 Enter 键。

Library Browser tooltip that displays library block path

在搜索结果中,将鼠标暂停在圆形仪表图标上。工具提示将显示库模块路径。

将 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 模块分别对应名为 InBusOutBus 的端口。这些端口也有端口号。(可选)使用 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",行为会有所不同。

  • 假设您有名为 InBusOutBus 的端口。添加的模块对应于这些端口之一。如果在添加模块时指定端口名称,软件会将 InBusOutBus 端口重命名为使用指定的端口名称。

  • 假设您只有自定义名称的端口。添加的模块对应于新端口。如果在添加模块时指定端口名称,新端口将使用指定的端口名称。

为新端口元素添加模块

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 ElementOut Bus Element 模块。

要为新端口添加模块,请将 CreateNewPort 设置为 "on"。(可选)使用 PortName 参数指定新端口的名称。默认情况下,新端口的名称是所复制模块的端口名称和数字的组合。如果所复制模块的端口名称已以数字结尾,则该数字会递增以确保唯一性。

CreateNewPort 设置为 "off" 不会阻止端口创建。例如,您添加到模型中的第一个 In Bus ElementOut Bus Element 模块会创建一个端口。添加模块并使用 PortName 指定唯一端口名称也可以创建端口。

当将 CreateNewPort 设置为 "off" 时,允许添加的模块对应于现有端口。例如,当从模型中复制 In Bus ElementOut 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 之前推出