主要内容

子系统的参考

子系统引用允许你保存一个子系统的内容在一个单独的文件和参考使用子系统的参考块。您可以创建多个实例引用同一个子系统文件。当你编辑的任何实例引用子系统,更改保存在单独的文件中存储子系统和所有被引用的实例文件是同步的。

请注意

子系统引用与基金和MDL文件格式兼容。

当你将一个子系统保存到一个单独的文件你可以重用它多次使用子系统的参考块文件引用同一个子系统。

你可以确定一个子系统的参考块对角三角形的块图标。

引用子系统支持所有常规的语义子系统。金宝app引用子系统适应自己父母的上下文模型和有相同的执行行为相比nonreferenced子系统。

创建一个子系统框图

一个子系统文件存储子系统的内容文件的框图。

一个子系统文件:

  • 无法模拟的。

  • 没有配置设置。

  • 没有一个模型工作区。

  • 没有代码生成功能。

创建一个子系统框图:

  1. 开放模型金宝app®

  2. 在启动页面,在仿真软件产品组,单击金宝app空白的子系统

    另外,在仿真软件将来发布,金宝app模拟选项卡上,选择并点击空白的子系统。一个子系统窗口打开。

  3. 点击添加内容保存

  4. 指定的文件名另存为对话框。文件名必须是一个有效的MATLAB的名字。

    这将创建一个新的子系统文件在指定的位置。

以编程方式创建一个子系统文件,使用命令:

new_system (subsystemfilename“子系统”)
一旦你创建子系统文件编程,它出现在MATLAB文件浏览器:

以编程的方式控制子系统文件的更多信息,见以编程的方式控制引用子系统

在一个模型参考一个子系统文件

  1. 你想打开一个模型引用一个子系统框图。

  2. 添加一个子系统的参考块使用模型库浏览器或快速块插入菜金宝app单。一个空子系统的参考块添加到仿真软件画布。金宝app

  3. 在仿真软件将来金宝app发布,引用的子系统选项卡中,指定子系统中的框图文件的名称文件名称场,或点击浏览导航到它。

    或者,您可以双击子系统的参考块指定子系统框图文件。

  4. 点击好吧保存更改。

转换现有的引用的子系统的子系统

你可以把现有的子系统块一个子系统的参考块。

考虑一个模型有两个子系统块如图所示。

在这个模型中,有两个子系统块——一个控制器子系统和一个植物子系统。将控制器子系统块引用的子系统:

  1. 块和选择控制器子系统子系统块选项卡上,选择转换并点击转换子系统参考

  2. 中的子系统组件指定一个名称子系统文件名字段。名称必须是一个有效的MATLAB的名字。转换文件在当前目录中创建一个子系统。创建文件在一个特定的位置,单击浏览并导航到保存的位置。接下来,现有测试转移到子系统框图。将测试,选择传输测试工具(es)子系统框图复选框,然后单击转换

    子系统块改变成一个子系统的参考块与子系统的名称文件块的顶部显示图标。

提示

当你链接块转换为引用的子系统,在父库块与块。一旦你父库块转换为引用的子系统,其所有链接块实例也转换为引用的子系统。

你不能把引用的子系统,子系统的子系统:

  • 没有读/写权限。

  • 有一个面具,试图修改其内容。

编辑和保存引用的子系统

在模型中包含多个实例的引用子系统,您可以编辑任何实例和储蓄的变化更新传播到所有被引用的实例。当你积极编辑子系统引用的实例,所有其他引用实例被锁定,无法编辑。

徽章显示在一个开放的子系统文件的左下角为编辑表示文件的可用性。徽章显示两种状态:

  • 表明该子系统文件可编辑。右键单击面板查看所有子系统的活动实例和导航到每个人。

  • 表明该子系统为编辑文件不可用,作为另一个实例正在积极进行编辑。右键单击徽章打开实例正在编辑。

一旦你编辑一个实例在一个模型中,您可以保存更改的保存可用的选项模拟模型的选项卡窗口。的保存所有保存您的更改下拉给你两个选择:

  • 保存所有——保存当前所有的更新模型。

  • 保存具体的引用文件——保存特定子系统文件当你对多个子系统文件进行了修改。

添加一个系统子系统的面具参考

你可以掩盖一个子系统文件使用系统的面具。当你创建一个系统子系统的面具文件,所有被引用的实例共享相同的系统面具。

掩盖一个子系统文件:

  1. 打开系统文件被掩盖了。

  2. 在仿真软件将来金宝app发布,子系统选项卡上,单击创建系统的面具。另外,在画布上的任意位置右击鼠标,选择面具并点击创建系统的面具。掩码编辑器对话框打开。

  3. 并点击添加面具参数好吧

请注意

  • 你不能直接面具子系统的参考块。面具一个子系统的参考块,选择块。在引用的子系统选项卡上,单击创建系统的面具。该操作将会打开子系统文件被引用和创建一个面具。

  • 你不能设置参数使用set_param在回调代码的一个蒙面的子系统。但是如果子系统从库引用您可以这样做。

创建和编辑系统上面具的更多信息,参见介绍系统的面具

模拟一个子系统测试装具模块框图

一个子系统不能模拟框图模型或子系统。但是,您可以创建测试子系统框图和模拟测试。这个动作帮助你检查任何错误或差异而编辑子系统框图。您可以将多个测试工具子系统文件和设置一个默认的测试工具子系统从一组可用的测试。

模拟测试工具:

  1. 打开一个子系统框图。

  2. 在仿真软件将来金宝app发布,子系统选项卡上,单击添加测试工具

    创建测试工具窗口出现。

    测试工具窗口

  3. 为新的测试工具,然后单击指定一个名称好吧。这是默认的测试工具。

  4. 点击运行测试工具在将来发布子系统不开上运行测试工具测试工具。单击开放利用运行复选框,自动打开测试工具在运行子系统。

    测试工具的选择

设置测试工具使用命令行

你可以设置默认的测试装具模块子系统框图使用命令:

set_param (“< subsystemfilename >”,“DefaultTestHarness”,“< testHarnessName >”);

子系统参考兼容以前的版本

当你包含引用的子系统模型导出到一个版本R2019b之前,所有的子系统的参考块转换为独立的子系统块。

子系统中创建文件R2019b不能出口到之前的版本。信息如何仿真软件模型导出到一个以前的版本,看金宝app出口模式之前的仿真软件版本金宝app

以编程的方式控制引用子系统

您可以创建一个引用子系统,找到可用的引用子系统模型,改变文件引用的子系统在一块,并检查的框图类型文件使用一个命令行界面。

创建一个引用子系统

您可以创建一个引用子系统使用new_system命令:

new_system (subsystemfilename“子系统”)

参考模型中发现子系统

你会发现如果一个模型包含一个引用子系统使用金宝appSimulink.findBlocksOfType功能:

金宝appSimulink.findBlocksOfType(bdroot, 'SubSystem','ReferencedSubsystem','.',Simulink.FindOptions('RegExp',1))

您还可以使用find_system命令:

find_system (bdroot“正则表达式”,“上”,“BlockType”,“子系统”,“ReferencedSubsystem”,“。”)

返回的数量子系统的参考在模型中。默认情况下,find_system列出所有子块在一个子系统参考实例。

如果你不想要find_system在引用的子系统,使用find_systemLookInsideSubsystemReference设置为。默认情况下,LookInsideSubsystemReference被设置为

改变一个子系统的引用文件

你可以改变文件中引用一个子系统子系统的参考通过命令行界面使用块set_param命令:

set_param (gcb),“ReferencedSubsystem”,“< subsystemfilename >”)
这个命令改变了目前引用的文件子系统的参考块和替换新的子系统文件指定。

检查如果基金或MDL文件是一个子系统框图类型

你可以检查,如果一个基金或MDL文件是一个子系统框图可以放置在一个类型子系统的参考块使用任何这些命令:

bdIsSubsystem (bdname)
这个命令返回逻辑1如果bdname。基金是一个子系统框图和类型逻辑0如果它不是。在使用这个命令时,确保bdname。基金是加载。

get_param (bdname“BlockDiagramType”)

这个命令返回子系统如果bdname。基金是一种子系统框图。在使用这个命令时,确保bdname。基金是加载。

金宝appSimulink.MDLInfo (bdname)

这个命令让整个模型信息的地方BlockDiagramType属性显示为子系统如果bdname。基金是一种子系统框图。

最佳实践

在使用一个引用子系统模型:

  • 面具一个引用子系统,使用系统的面具。

  • 不引用父子系统,因为它会创建一个循环引用。

  • 只有子系统可以引用的文件类型子系统的参考块。

相关的话题