Main Content

add_block

向模型中添加模块

说明

示例

h = add_block(source,dest) 从库或模型中将模块 source 的副本添加到指定的目标模型和模块名称。此语法会在模型或库模型中该模块所在的位置创建模块。

如果要在模型之间复制或从库中复制,请先加载目标模型。

示例

h = add_block(source,dest,'MakeNameUnique','on') 确保目标模块名称在模型中是唯一的。如果具有该名称的模块已存在,则此语法会向目标模块名称添加一个数字编号,编号逐个递增,以确保名称的唯一性。

h = add_block(___,'CopyOption','nolink') 从库中复制模块或子系统 source,而不创建到库模块的链接。

示例

h = add_block(sourceIn,destIn,'CopyOption','duplicate') 复制子系统中的输入端口模块,从而为目标模块分配与源模块相同的端口号。复制一个输入端口模块,即可从输入端口创建一个信号分支,而无需创建端口或添加信号线。有关详细信息,请参阅创建重复 Inport 模块

示例

h = add_block(___,Name,Value) 使用可选的 Name,Value 参量。

指定可选的、以逗号分隔的 Name,Value 对组参量。Name 为参量名称,Value 为对应的值。Name 必须显示在引号内。您可采用任意顺序指定多个名称-值对组参量,如 Name1,Value1,...,NameN,ValueN

对于 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 模型中,确保名称是唯一的。

add_block('simulink/Sinks/Scope','vdp/Scope','MakeNameUnique','on')

f14/Controller 子系统中添加一个 Inport 模块,该 Inport 模块使用与该子系统中另一个输入端口相同的端口号。

Controller 子系统中复制名为 Stick Input (in) 的 Inport 模块。将副本命名为 Stick Input (in)2

add_block('f14/Controller/Stick Input (in)',...
'f14/Controller/Stick Input (in)2','CopyOption','duplicate')

生成的模块使用与名为 Stick Input (in) 的模块相同的端口号,但不在父级子系统中添加输入端口。进入该端口的信号会分支到两个 Inport 模块。

将一个模块从库添加到模型中,并使用名称-值参量设置参数。

加载或打开目标模型。

open_system('vdp');

将库中的 Gain 模块添加到 vdp 模型中。然后,将增益值设置为 5

add_block('simulink/Math Operations/Gain','vdp/Five','Gain','5')

输入参数

全部折叠

要复制到模型的模块,指定为:

  • 完整模块路径(如果要从一个模型复制模块),例如 'vdp/Mu'。此操作会复制模块及其设置。

  • 库模块路径(如果要从库添加模块),例如 'simulink/Math Operations/Gain'

    要获取库模块路径,可以将鼠标暂停在库浏览器中的模块上。您也可以打开库模型,选择模块,然后在命令行中输入 gcb。要打开库模型,请在库浏览器中右键点击库列表中的库名称,然后选择打开 library_name

您也可以使用语法 'built-in/blocktype' 作为源模块路径,其中 blocktype 是编程模块名称 - BlockType 参数的值(请参阅通用模块属性)。但是,使用 'built-in/blocktype' 添加的模块有时与库模块具有不同的默认参数值。

对于子系统和封装模块,请使用库模块路径。使用 BlockType 值 (SubSystem) 创建空子系统。

示例: 'vdp/Mu', 'simulink/Sinks/Scope'

模型中新模块的名称和位置,指定为模块路径。

示例: 'f14/Controller/MyNewBlock'

要复制的输入端口模块,指定为模块路径。

示例: 'f14/Controller/Stick Input (in)', 'myModel/mySubsystem/In1'

要创建的输入端口模块,指定为模块路径。在与源模块相同的系统中创建目标模块。

示例: 'myModel/mySubsystem/DupPortIn'

输出参量

全部折叠

新模块,返回为句柄。

版本历史记录

在 R2006a 之前推出