文档

分析模型依赖关系

什么是模型依赖关系?

每个Sim万博1manbetxulink®模型需要一组文件才能成功运行。这些文件可以包括引用的模型、数据文件、S函数以及模型运行时不能缺少的其他文件。这些必需的文件称为模型的依赖性

依赖分析需求 选择的工具
查找整个项目所需的文件。 使用来自Simulink项目的依赖分析。万博1manbetx看到依赖性分析
通过控制更多选项,执行特定模型的依赖关系分析。

使用模型中的清单工具。请参阅生成体现

生成清单,如果你想:

  • 分析不在项目中的模型。

  • 将模型依赖项列表保存到清单文件中。

  • 创建一个报告来确定产生依赖关系的地方。

  • 控制依赖分析的范围。

在为模型生成清单以确定其依赖项之后,可以:

  • 在清单文件中查看模型所需的文件。

  • 使用报告跟踪依赖关系,以了解模型需要特定文件或工具箱的原因。

  • 将模型及其所需文件打包到zip文件中,以发送给其他Simulink用户。万博1manbetx

  • 比较相同模型的旧清单和新清单。

  • 在修订控制系统中保存模型的特定版本及其所需文件。

还可以使用模型依赖关系查看器以图形格式查看模型引用的库和模型。看见模型依赖关系查看器

生成体现

生成清单执行依赖项分析,并将模型依赖项列表保存到清单文件中。您必须在使用任何其他Simulink清单工具之前生成清单。万博1manbetx

请注意

清单中标识的模型依赖关系取决于分析范围您指定的选项。例如,在不选择的情况下执行分析找到库链接可能无法找到模型所需的所有Simulink块集万博1manbetx,因为它们通常作为库链接包含在模型中。看到清单分析范围选项

要生成清单,请执行以下操作:

  1. 选择分析>模型的依赖性>生成清单

    将出现“生成模型清单”对话框。

  2. 点击好啊使用默认设置生成清单和报告。

    或者,您可以先更改以下设置:

    • 选择分析范围复选框以指定要检测的依赖项类型(请参阅清单分析范围选项).

    • 通过选择控制是否报告文件依赖项位置报告的文件依赖项位置

      • 用户文件只(默认)-只报告依赖于用户文件的位置。如果您希望理解自己代码的相互依赖关系,并且不关心MathWorks上的依赖关系位置,则使用此选项®s manbetx 845产品。此选项加速了报表的创建并简化了报表。

      • 所有文件-报告引入依赖项的所有位置,包括对MathWorks产品的所有依赖项。s manbetx 845这是最慢的选项,也是最冗长的报告。如果您需要跟踪所有依赖项以理解为什么模型需要特定的文件或工具箱,请使用此选项。如果需要分析许多引用,那么通过单击报表列标题对结果进行排序会很有帮助。

      • 没有一个-不要报告任何依赖项位置。这是最快的选择和最精简的报告。如果要查找和打包所需的文件,并且不需要有关文件引用的所有信息,请使用此选项。

    • 如果需要,请更改项目根目录位置.如果模型在项目中,您可以选择当前的Simul万博1manbetxink项目根文件夹.其他复选框选项有:包含根模型文件的文件夹(默认),所需文件的普通根文件夹,或用户定义的位置-对于此选项,请在编辑框中输入路径,或浏览到某个位置。

    • 如果需要,编辑清单文件名以及保存文件的位置。

    • 使用复选框完成时查看HTML报告指定在生成清单时是否要生成报告。你可以编辑报告文件名称或者保持默认值,mymodelname_manifest_report.html.你可以设置报告风格纯HTMLHTML与超链接

当你点击好啊万博1manbetxSimulink生成包含模型依赖项列表的清单文件完成时查看HTML报告,模型清单报告出现在Simulink生成清单之后。万博1manbetx看到使用模型清单报告了一个例子。

清单是一个扩展名为的XML文件.smf(默认情况下)位于与模型本身相同的文件夹中。

清单分析范围选项

Simu万博1manbetxlink清单工具允许您在生成清单时指定分析范围。分析标识的依赖项取决于您指定的范围。

提示

您可以选择执行模型更新的分析选项。如果模型更新失败,您将看到一条错误消息。要么清除这些分析选项,在没有Model Update的情况下生成清单,要么尝试手动Model Update,以了解有关问题的更多信息。例如,您的模型可能需要工作空间中不存在的变量(例如,如果块参数定义了一个您忘记手动加载的变量)。

下表描述了分析范围选项。

复选框选项 描述
查找孤立的基本工作区数据(执行模型更新) 搜索模型所需的基本工作空间变量,这些变量没有在此Manifest中的任何文件中定义。
查找枚举定义文件(执行模型更新) 搜索枚举定义文件。启用此选项可检测用作总线对象定义一部分的枚举数据类型。
找到并分析模型引用 搜寻模型块,并将任何引用的模型标识为依赖项。
查找和分析链接库 搜索到模型中的库块的链接,并将任何库链接标识为依赖项。
允许分析带有未保存更改的模型 仅当您希望允许分析未保存的更改时,才选中此复选框。
查找需求文档

搜索使用需求管理接口链接的需求文档。注意,需求链接是由IBM创建的®理性的®®软件不包括在清单中。有关更多信息,请参见在项目中查找需求文档

单击>>按钮,显示以下高级分析选项。

求S-函数

搜寻功能块,并识别S函数文件(MATLAB®代码和C)作为依赖项。请参阅中的源代码项特殊情况
分析模型和块回调(包括解释的MATLAB函数块) 中的代码引入的文件依赖项解释MATLAB函数块、块回调和模型回调。有关如何分析回调的详细信息,请参见代码分析
查找代码生成所需的文件 搜索由万博1manbetx仿真软件编码器™自定义代码和嵌入式编码器®模板。如果您没有代码生成产品,则默认情况下此检查处于关闭状态,如果您选择它,则会生成警告。
这包括对所有配置集(不仅仅是活动集)的分析月31_make_rtw_hook函数,并查找系统目标文件和代码替换库定义文件(.m或.mat)。另请参阅所需工具箱,以及中的源代码项特殊情况
查找数据文件(例如在“From File”块中) 搜索显式引用的数据文件,例如从文件块,并将这些文件标识为依赖项。看到特殊情况
分析Stateflow图表 搜索由语法引入的文件依赖项,例如ml.mymean(myvariable)在使用状态流的模型中®
在MATLAB函数块中分析代码 搜寻MATLAB函数块,并标识代码中引入的任何文件依赖项(工具箱之外)。控件引入的工具箱依赖性MATLAB函数未检测到块。
在“用户工具箱”中分析文件 在用户定义的工具箱中搜索文件引入的文件依赖项。看见特殊情况
分析MATLAB文件 搜索从模型调用的MATLAB文件引入的文件依赖项。例如,如果选中此选项,并且您有一个对mycallback.m,然后是引用的文件mycallback.m还分析了进一步的依赖关系。看见代码分析
在清单中存储MATLAB代码分析警告 在清单中保存所有警告。

另请参阅依赖分析的范围为更多的信息。

命令行相关性分析

检查文件的依赖关系

要以编程方式检查文件依赖关系,请使用该函数dependencies.fileDependencyAnalysis如下。

文件失踪depfilemanifestfile] = dependencies.fileDependencyAnalysis ('模型名称”、“manifestfile')

这将返回以下内容:

  • 文件-包含模型引用的所有现有文件的完整路径的字符向量单元数组模型名称

  • 失踪-字符向量的单元格数组,包含模型引用的所有文件的名称模型名称,但找不到。

  • depfile-返回用户依赖项的完整路径(.smd)存储手动添加或排除的任何文件的名称的文件(如果存在)。Simulink使用万博1manbetx.smd文件,以便在下次生成清单时记住您的更改。看到编辑舱单

  • manifestfile-(可选输入)指定要创建的清单文件的名称。后缀.smf始终添加到用户指定的名称。

    如果指定可选输入,manifestfile,然后该命令使用指定的名称和路径创建一个清单文件manifestfilemanifestfile可以是一个全路径,也可以只是一个文件名(在这种情况下,文件是在当前文件夹中创建的)。

如果您尝试在一个示例模型上进行此分析,它将返回一个所需文件的空列表,因为标准的MathWorks安装包含示例模型所需的所有文件。

检查工具箱的依赖性

如需查看需要使用哪些工具箱,请使用该功能dependencies.toolboxDependencyAnalysis如下:

名字迪尔斯) = dependencies.toolboxDependencyAnalysis (files_in

files_in必须是字符向量的单元格数组00或MATLAB路径上的模型文件。万博1manbetx也允许使用Simulink模型名(没有文件扩展名)。

这将返回以下内容:

  • 名字-文件所需的工具箱名称的单元格数组files_in

  • 迪尔斯-工具箱文件夹的单元格数组。

请注意

该方法工具箱依赖分析查找中文件的工具箱依赖项files_in但是分析任何后续依赖关系。

如果您想找到模型的所有可检测的工具箱依赖项它所依赖的文件:

  1. 调用文件依赖性分析在你的模型上。

    例如:

    [files, missing, depfile, manifest] = dependencies.fileDependencyAnalysis('mymodel')
    files='C:\Work\manifest\foo.m''C:\Work\manifest\mymodel'缺少=[]depfile=[]manifestfile=[]
  2. 调用工具箱依赖分析文件步骤1的输出。

    例如:

    tbx = dependencies.toolboxDependencyAnalysis(文件)
    tbxes=[1x24字符]“MATLAB”“Simulin万博1manbetxk编码器”“Simulink”

    要查看较长的产品名称,请检查tbx单元阵列如下:

    tbxes{:}ans=图像处理工具箱ans=MATLAB ans=Simulink编码器ans=Simulink万博1manbetx

对于命令行依赖关系分析,分析使用默认的分析范围设置来确定所需的工具箱。例如,如果您有代码生成产品,那么检查s manbetx 845查找代码生成所需的文件默认为开启,万博1manbetx仿真软件编码器总是按要求报告。看到所需工具箱有关已安装的产品和分析范围设置如何影响报告的工具箱需求的更多示例。s manbetx 845

编辑舱单

生成清单后,可以查看标识为依赖项的文件列表,并从列表中手动添加或删除文件。

要编辑清单中所需文件的列表:

  1. 选择分析>模型的依赖性>编辑清单内容

    或者,如果您正在查看清单报告,可以单击编辑在前行动框,也可以单击查看和编辑清单在“导出清单”对话框中。

    将出现“视图和编辑清单”对话框,显示当前模型的最新清单。

    请注意

    您可以通过单击“浏览清单文件”按钮打开不同的清单. 如果尚未生成清单,请选择生成清单打开“生成模型清单”对话框(请参见生成体现).

  2. 检查导出文件列表显示在对话框左侧。这个列表显示了标识为依赖项的文件。

  3. 要将文件添加到清单,请执行以下操作:

    1. 点击添加文件

      将打开“将文件添加到清单”对话框。

    2. 选择要添加的文件,然后单击开放

      选定的文件将添加到导出文件列表

  4. 要从清单中删除文件,请执行以下操作:

    1. 选择要删除的文件导出文件列表

    2. 单击“排除选定文件”按钮

      选定的文件将移动到排除的文件列表

      请注意

      如果将文件添加到清单中,然后将其排除,则该文件将从对话框中删除(它不会添加到排除的文件列表)。只有被Simulink Manifest Tools检万博1manbetx测到的文件才包含在排除文件列表中。

  5. 如果需要,请更改项目根目录位置

  6. 点击拯救将更改保存到清单文件中。

    万博1manbetxSimulink保存清单(.smf)文件,并创建用户依赖项(.smd)文件,该文件存储您手动添加或排除的任何文件的名称。万博1manbetx仿真软件使用.smd文件,以便在下次生成清单时记住您的更改,因此不需要重复手动编辑。例如,每次生成用于导出给客户的清单时,您可能希望排除源代码或包含版权文档。用户依赖关系(.smd)文件与模型具有相同的名称和文件夹。默认情况下,用户依赖项(.smd)文件也包含在清单中。

    请注意

    如果用户依赖(.smd)文件是只读的,当您保存清单时将显示一个警告。

  7. 要查看更新清单的模型清单报告,请单击报告显示

    会出现一个更新的模型清单报告,列出所需的文件和工具箱,以及对其他文件的引用的详细信息。看到使用模型清单报告了一个例子。

  8. 完成清单编辑后,单击好啊

比较舱单

您可以比较两个清单,查看两个模型之间或同一模型的两个版本之间的模型依赖项列表的差异。您还可以将清单与文件夹或ZIP文件进行比较。

比较清单:

  1. 在当前文件夹浏览器中,右键单击清单文件并选择比较>选择

    或者,从您的模型中选择分析>模型的依赖性>比较舱单

    此时会出现“选择要比较的文件或文件夹”对话框。

  2. 在“选择要比较的文件或文件夹”对话框中,选择要比较的文件和比较类型。

    1. 使用下拉列表或浏览选择清单文件进行比较。

    2. 选择比较类型。对于两个清单,您可以选择:

      • 万博1manbetx仿真软件清单比较—选择清单文件列表比较报告新、删除和更改的文件。报告包含打开文件和比较不同文件的链接。您可以使用类似的文件列表比较将清单与文件夹或ZIP文件进行比较。

      • 万博1manbetxSimulink manifest比较(可打印)-选择可打印的不带链接的模型清单差异报告。该报告提供了关于每个清单文件的详细信息,并列出了文件之间的差异。

  3. 在比较工具中查看报告,比较清单中存储的文件名、日期和大小。

    请注意,清单中存储的详细信息可能与光盘上的文件不同。如果您单击报告中的“比较”链接,您将看到警告,说明是否存在大小不匹配等问题,或者工具无法在光盘上找到这些文件。

    有关比较工具的更多信息,请参见比较文件和文件夹(MATLAB)中的MATLAB数据和文件管理文档。

在清单中导出文件

您可以将清单中列出的文件的副本导出到ZIP文件。导出文件允许您将模型及其所需文件打包到一个ZIP文件中,这样您就可以轻松地将其发送给另一个用户或将其保存在修订控制系统中。

要导出模型及其所需文件,请执行以下操作:

  1. 选择分析>模型的依赖性>在Manifest中导出文件

    或者,如果您正在查看清单报告,可以单击出口在前行动盒子。

    将出现“清单中的导出文件”对话框,显示当前模型的最新清单。

    请注意

    通过单击“浏览清单文件”按钮,可以导出不同的清单. 如果尚未生成清单,请选择生成清单打开“生成模型清单”对话框(请参见生成体现).

  2. 如果要在导出清单之前查看或编辑清单,请单击查看和编辑清单查看或更改所需文件的列表。看到编辑舱单.当您关闭“查看和编辑清单”对话框时,您将返回到“清单中导出文件”对话框。

  3. 点击验证检查舱单。验证报告关于可能的问题的信息,如丢失的文件、警告和孤立的基础工作区数据。

  4. 输入要将模型导出到的ZIP文件名。

  5. 选择导出时保留文件夹层次结构如果您想为导出的模型和文件保留文件夹结构。然后,选择用于此结构的根文件夹(通常与项目根目录位置在“生成清单”对话框)。

    请注意

    您必须选择保持文件夹层次结构如果要导出使用00或者模型引用了其他文件夹中的文件(以确保导出的文件保持相同的相对路径)。

  6. 点击好啊

    模型及其文件依赖关系被导出到指定的ZIP文件。

依赖分析的范围

Simu万博1manbetxlink Manifest Tools识别所需的文件,并将它们列在一个XML文件中显示.当Simu万博1manbetxlink生成清单文件时,它会对您的模型执行静态分析,这意味着模型不需要能够执行“更新图”操作(参见更新图表和运行模拟)。唯一的例外情况是选择“分析”选项查找孤立的基本工作区数据(执行模型更新)

您可以指定在生成清单时想要检测的依赖项类型。看到清单分析范围选项

有关该工具分析内容的更多信息,请参见以下部分:

分析的局限性

分析可能无法找到您的模型所需的所有文件(例如,请参阅代码分析).

分析可能不会报告模型所需的某些块集或工具箱。将模型发送给其他用户时,应注意此限制。不依赖任何文件的块集(如定点设计器™) 无法检测到。某些事件®块不会对SimEvents产生可检测的依赖性。

要包含分析无法检测到的依赖项,您可以使用View/Edit manifest Contents选项(参见编辑舱单).

代码分析

当Simulink万博1manbetx依赖分析遇到MATLAB代码时,例如在模型或块回调中,或在00文件S函数,分析尝试识别它引用的文件。如果这些文件包含MATLAB代码,分析范围选项分析MATLAB文件选择时,也会分析引用的文件。此功能类似于matlab.codetools.requiredFilesAnds manbetx 845Products但有一些改进:

  • 传递给调用的字符向量评估evalc埃瓦林进行了分析。

  • 传递给的文件名负载打开外部文件xlsreadimportdatadlmread伊姆雷德被识别。

MathWorks工具箱中的文件不会被分析。

传递给的文件名负载等,仅当它们是文字字符向量时才进行标识,例如:

负载(mydatafile)负载mydatafile
如果将文件名定义为变量并将其传递给函数,则该文件是隐藏的依赖项。以下示例以及任何更复杂的示例都没有标识依赖项,因为文件名位于变量中:
str='mydatafile';负荷(str);
同样,参数评估等,只有当它们是文字字符向量时才会被分析。

Simu万博1manbetxlink依赖分析在mat文件中查找要加载的变量名。这使得他们能够可靠地区分块回调中的变量名和函数名。

如果一个模型依赖于一个文件00每分钟文件存在时,清单会同时报告这两个文件,如果分析MATLAB文件选项被选中,则00文件进行了分析。

特殊情况

以下列表包含有关特定案例的更多信息:

  • 如果您的模型引用使用MATLAB语法创建的数据类,例如调用MyPackage。MyClass,文件夹内的所有文件MyPackage及其子文件夹被添加到清单中。

    警告

    分析将类中的所有文件添加进来,其中包括任何源代码控制文件,例如. svn.cvs.您可能需要编辑清单以删除这些文件。

  • 用户定义的工具箱必须具有正确配置的Contents.m文件。Simu万博1manbetxlink Manifest Tools搜索用户定义的工具箱如下:

    • 如果你有Contents.m文件在文件夹X的子文件夹中的任何文件X是你的工具箱的一部分。

    • 如果你有Contents.m文件在文件夹X /,即“外部”文件夹的所有子文件夹中的任何文件X是你的工具箱的一部分。

      有关格式的更多信息Contents.m文件,请参阅版本

  • 如果S函数需要TLC文件,则会检测到这些文件。

  • 如果您有Simscape™,那么您的Simscape组件将被分析。另请参阅所需工具箱查看已安装产品对清单的其他影响。s manbetx 845

  • 如果您使用GUIDE创建一个UI并将其添加到模型回调中,那么依赖项分析将检测00无花果文件的依赖关系。

  • 如果您依赖于源代码,例如. c. h文件,这些文件根本不会被分析以找到它们所依赖的任何文件。例如,随后#包括电话里面. h未检测到文件。控件的“自定义代码”窗格的“头文件”部分可以检测到这些文件万博1manbetx仿真软件编码器“配置参数”对话框的部分(或使用rtwmakecfg).或者,要包含分析无法检测到的依赖项,您可以使用View/Edit manifest Contents选项(参见编辑舱单).

  • 各种块集和工具箱可以通过其附加的源块引入对文件的依赖。如果选择“分析范围”选项查找数据文件(例如在“From File”块中)选择时,分析将检测由以下块引入的文件依赖关系:

    产品
    DSP系统工具箱™

    来自Wave File (Obsolete)块(微软®窗户®操作系统只)

    从多媒体文件块(仅限Windows)

    计算机视觉系统工具箱

    文件中的图像

    读取二进制文件

    万博1manbetx仿真软件3 d动画™ VR水槽

    的选项找到数据文件还可以通过为模型设置一个“模型工作区”来检测引入的依赖项垫锉MATLAB代码,以及在“配置参数”对话框的“模型引用”窗格中指定的模型依赖项。

依赖关系分析的最佳实践

依赖关系分析的起点是模型本身。确保模型引用它需要的任何数据文件,即使您通常手动加载这些文件。例如,向模型中添加代码PreLoadFcn自动加载它们,就像下面这个例子:

负载mydatafile负载(“my_other_data_file.mat”)
这样,Simulink Ma万博1manbetxnifest Tools就可以将它们添加到清单中。有关回调分析的更多细节,请参阅代码分析的说明(参见代码分析).

更一般地说,确保模型在模型回调或从模型回调调用的脚本中创建或加载它使用的任何变量。这减少了Simulink清单工具在分析块回调时混淆变量名和函数名的可能性。万博1manbetx

如果您计划在创建清单之后导出它,请确保模型不引用任何文件的绝对路径,例如:

加载C: \ mymodel \ mydata \ mydatafile.mat
当您将模型导出到另一台计算机时,绝对路径可能会失效。如果引用其他文件夹中的文件,使用相对路径,例如:
负载mydata \ mydatafile.mat
选择保持文件夹层次结构在导出时,使导出的文件相对于其他文件处于相同的位置。另外,选择一个根文件夹,以便清单中列出的所有文件都在其中。否则,根目录之外的任何文件都会被复制到一个名为外部的在根目录下,这些文件的相对路径将失效。

如果您导出的模型使用00MATLAB类中的文件(位于名为@我的班级,例如),则必须选择保持文件夹层次结构复选框,以维护类的文件夹结构。

始终通过将内容提取到计算机上的新位置并测试模型来测试导出的ZIP文件。请注意,在某些情况下,如果路径包含对MathWorks工具箱以外的文件夹的引用,则所需文件可能在路径中,而不在ZIP文件中。

使用模型清单报告

报告部分

如果你选择完成时查看HTML报告在生成模型清单对话框中,模型清单报告出现在Simulink生成清单之后。万博1manbetx报告显示:

  • 分析日期

  • 行动窗格—提供用于重新生成、编辑或比较清单的链接,并将清单中的文件导出为ZIP文件。

  • 模型参考和库链接层次结构-你可以点击链接来打开模型。

  • 此模型使用的文件-必需的文件,以及相对于projectroot

    您可以通过单击报表列标题对结果进行排序。

  • 此模型所需的工具箱.有关详细信息,请参见所需工具箱

  • 模型中的参考文献-本节提供了对其他文件的引用的详细信息,以便您可以确定在哪里出现依赖关系。控件控制此部分的范围报告文件依赖位置“生成清单”对话框上的选项。您可以选择仅包含对用户文件、所有文件或无文件的引用。请参阅生成体现。使用报表的此部分可跟踪依赖项,以了解模型需要特定文件或工具箱的原因。如果需要分析多个引用,请单击报表列标题对结果进行排序。

  • 此模型引用的文件夹

  • 孤立的基本工作空间变量—选择分析选项查找孤立的基本工作空间数据,本节将报告模型需要的任何基本工作空间变量,这些变量没有定义在此清单中的文件中。

  • 分析MATLAB代码时产生的警告—您可以通过清除在清单中存储MATLAB代码分析警告分析选择。

  • 依赖关系分析设置—记录分析范围选项的详细信息。

参见中显示的示例范例模型清单报告

所需工具箱

在报告中,“此模型所需的工具箱”部分列出了该模型所需的所有产品s manbetx 845分析可以检测到的。请注意,分析可能不会报告模型所需的某些块集或工具箱,例如,无法检测到不依赖任何文件(如定点设计器)的块集。工具箱/共享下的某些MathWorks文件只能报告需要MATLAB,而不需要其相关工具箱。

报告的结果可能会受到您的分析范围设置和安装的产品的影响。s manbetx 845例如:

  • 如果你有代码生成产品并选择范围选项s manbetx 845查找代码生成所需的文件“,然后:

    • 万博1manbetx仿真软件编码器软件始终按要求报告。

    • 如果你也有.ert系统目标文件选择,然后嵌入式编码器软件总是报告所需。

  • 如果你通过了找到库链接选项,则分析无法找到依赖项,例如,someBlockSet,因此不会报告对块集的依赖性。

  • 如果你通过了分析MATLAB文件选项,则分析无法找到依赖fuzzy.m,因此不报告与模糊逻辑工具箱™的依赖关系。

范例模型清单报告

你应该经常检查依赖关系分析设置部分,以查看用于生成它的分析设置的范围。

以下是样本报告的部分内容。

相关的话题

这个话题有用吗?