主要内容

add_block

R2026b

向模型中添加模块

描述

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

目标模型必须加载。

示例

h = add_block(___,Name=Value) 使用一个或多个 Name=Value 对组参量指定其他选项。

示例

示例

全部折叠

假设您有一个名为 myModel 的模型。从 Customizable Blocks 库中将一个 Circular Gauge 模块添加到模型中。将新模块命名为 myBlock。确保名称是唯一的。例如,如果已存在名为 myBlock 的模块,则将模块命名为 myBlock1。

查找库模块的路径。首先,打开包含该模块的库。

您可以使用快速插入菜单来执行此操作。通过双击模型画布打开快速插入菜单。然后,输入模块名称。使用箭头键导航到所需的搜索结果。在右侧的详细信息窗格中,点击库的名称。

Quick insert menu with "circular gauge" entered in the search bar, showing the details pane for the Circular Gauge block

在打开的库中,选择 Circular Gauge 模块。

通过在 MATLAB® 命令行窗口中输入以下命令来获取模块路径。

libBlockPath = gcb
libBlockPath =
    'simulink_hmi_customizable_blocks/Circular Gauge'

将模块添加到 myModel 并命名为 myBlock。为确保名称唯一,将 MakeNameUnique 设置为 "on"。

add_block(libBlockPath,"myModel/myBlock,"MakeNameUnique="on")

假设您有一个名为 myModel 的模型,它包含一个名为 myBlock 的模块。

创建模块的一个副本。将副本命名为 myBlock1。

add_block("myModel/myBlock","myModel/myBlock1");

假设您有一个名为 myModel 的模型。

向模型添加值为 0.1 的 Constant 模块。将新模块命名为 myBlock 并确保名称唯一。

add_block("simulink/Sources/Constant","myModel/myBlock",MakeNameUnique="on",Value="0.1");

如何为端口添加模块取决于您的目标。您可以为新端口或现有端口添加模块。您也可以复制与输入端口对应的模块。

为新端口添加模块

创建并打开名为 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")

复制的模块使用与原始模块相同的端口号。对于基于名称的端口,该模块从同一端口选择与原始模块相同的元素。

输入参数

全部折叠

要添加的模块的路径,指定为字符串或字符向量。该模块可以是库模块,也可以是模型中的模块。您添加的模块与您指定的源模块具有相同的参数值。

要从内置库中获取模块的路径,请执行以下步骤:

  1. 打开您要从中添加模块的库。

    您可以使用快速插入菜单来执行此操作。通过双击模型画布打开快速插入菜单。然后,输入模块名称。使用箭头键导航到所需的搜索结果。在右侧的详细信息窗格中,点击库的名称。库将打开。

  2. 选择您要添加的库模块。

  3. 通过在 MATLAB 命令行窗口中输入以下命令来获取模块路径。

    gcb

有关获取模块路径的详细信息,请参阅Get Handles and Paths。

要创建一个具有特定模块类型的模块,请将模块类型指定为 'built-in/blocktype',其中 blocktype 是编程模块名称。要获取模块的 BlockType 参数值,请参阅通用模块属性。使用 'built-in/blocktype' 添加的模块可以具有与库模块不同的配置。

许多库模块采用 SubSystem 作为 BlockType。当将源模块指定为 "built-in/SubSystem" 时,新模块表示具有一个输入和一个输出的子系统。对于其他子系统和封装模块,请使用库模块路径而不是 BlockType 值。

示例: "simulink/Math Operations/Gain"

示例: "built-in/Gain"

示例: "myModel/myOriginalBlock"

数据类型: string | character vector

新模块的路径,指定为字符串。

有关获取模块路径的信息,请参阅Get Handles and Paths。

示例: "myModel/myNewBlock"

数据类型: string | character vector

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: add_block("simulink/Math Operations/Gain","myModel/myNewBlock",Gain="5") 添加名为 myBlock、增益值为 5 的 Gain 模块。

对于 add_block 函数,将模块参数和属性值指定为名称-值参量。有关模块参数和属性的信息,请参阅以编程方式指定模块参数和属性。

以唯一名称添加模块的选项,指定为 "off" 或 "on"。当该选项启用且指定的模块名称存在时,软件会在模块名称末尾追加数字或递增末尾的数字。

示例: add_block("simulink/Math Operations/Gain","myModel/myNewBlock",MakeNameUnique="on")

数据类型: string | character vector

复制选项,指定为 ""、"nolink" 或 "duplicate"。

  • "nolink" - 新模块不链接到包含源模块的自定义库。

  • "duplicate" - 新模块复制输入端口模块,并具有与源模块相同的端口号。要从输入端口创建分支信号而不创建端口或添加信号线,请复制与输入端口对应的模块。有关详细信息,请参阅创建重复 Inport 模块。

示例: add_block("myLibrary/CustomBlock","myModel/CustomBlock",CopyOption="nolink")

示例: add_block("myModel/mySubsystem/Inport","myModel/mySubsystem/InportDup",CopyOption="duplicate")

数据类型: string | character vector

为新总线元素端口添加模块的选项,指定为 "off" 或 "on"。源模块必须为 In Bus Element 或 Out Bus Element 模块。

当您开启该选项时,您可以选择使用 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")

数据类型: string | character vector

输出参量

全部折叠

新模块,返回为句柄。

提示

要防止模块重叠,请使用 Position 模块属性指定新模块的位置。有关详细信息,请参阅以编程方式指定模块参数和属性。

版本历史记录

在 R2006a 之前推出