文档

sldiagnostics

显示有关的诊断信息万博1manbetx系统

语法

sldiagnostics ('sys”)
[txtRpt, sRpt] = sldiagnostics('sys')
[txtRpt, sRpt] = sldiagnostics('sys',选项
[txtRpt, sRpt] = sldiagnostics('sys', 'CompileStats')
[txtRpt, sRpt] = sldiagnostics('sys', 'RTWBuildStats')

描述

sldiagnostics ('sys”)属性指定的模型或子系统关联的以下诊断信息sys

  • 每种类型块的编号

  • 每种类型的状态流的编号®对象

  • 根模型的状态、输出、输入和采样次数。

  • 引用的库名称和引用块的实例

  • 根模型的每个编译阶段使用的时间和额外内存

所指定的模型sys没有装载,那么sldiagnostics在执行分析之前加载模型。

命令sldiagnostics ('sys”,选项仅显示与列出为的特定操作相关联的诊断信息选项特征向量。下表总结了可用选项及其对应的有效输入和输出。

sldiagnostics,您可以输入模型的名称或子系统的路径。对于一些分析选项,sldiagnostics只能分析根模型。如果您为其中一个分析提供了不兼容的输入,那么sldiagnostics发出警告。最后,如果你输入一个Simulink万博1manbetx®库,然后sldiagnostics无法执行需要模型编译的选项(更新图).相反,sldiagnostics发出警告。

在分析过程中,sldiagnostics将遵循库链接,但不会遵循或分析模型参考。看到find_mdlrefs有关查找所有的详细信息模型块和指定模型中的引用模型。

选项

有效的输入

输出

CountBlocks

根模型、库或子系统

列出系统中所有唯一的块以及每个块出现的次数。这包括嵌套在屏蔽子系统或隐藏块中的块。

CountSF

根模型、库或子系统

列出系统中所有唯一的statflow对象以及每个对象出现的次数。

大小

根模型

列出根模型中使用的状态、输出、输入和采样次数,以及指示直接馈通的标志。

填词

根模型、库或子系统

列出根模型中引用的所有惟一库,以及库块的名称和编号。

CompileStats

根模型

列出根模型的每个编译阶段所使用的时间和额外内存。这些信息可以帮助用户解决模型编译速度和内存问题。

RTWBuildStats

根模型

列出与CompileStats诊断。当发出第二个输出参数时sRpt,它捕获的统计数据与CompileStats还有万博1manbetx仿真软件编码器™建立统计数据。

您必须显式地指定这个选项,因为它不是默认分析的一部分。

所有

不适用

执行所有诊断。

请注意

运行CompileStats在第一次模拟模型之前进行诊断将显示更大的内存使用。的后续运行CompileStats模型上的诊断将需要更少的内存使用。

[txtRpt, sRpt] = sldiagnostics('sys')将诊断信息作为文本报告返回txtRpt和一个结构数组sRpt,其中包含与诊断选项对应的以下字段:

  • stateflow

  • 大小

  • 链接

  • compilestats

[txtRpt, sRpt] = sldiagnostics('sys',选项只返回指定的选项。如果您选择的选项只指定了一种类型的分析,那么sRpt仅包含该分析的结果。

[txtRpt, sRpt] = sldiagnostics('sys', 'CompileStats')返回时间和内存使用信息txtRpt而且sRpt

[txtRpt, sRpt] = sldiagnostics('sys', 'RTWBuildStats')包括万博1manbetx仿真软件编码器除了所报告的信息之外,还要构建统计信息CompileStatssRpt输出。

  • txtRpt包含在Simulink和中花费在每个阶段的时间的格式化文本输出万博1manbetx万博1manbetx仿真软件编码器(如果你指定RTWBuildStats),例如:

    编译统计For: rtwdemo_counter Cstat1: 0.00秒模型编译预启动Cstat2: 0.00秒statflow编译预启动通知Cstat3: 0.10秒发布预编译启动引擎事件Cstat4: 10.00秒statflow编译启动通知Cstat5: 0.00秒模型编译启动完成

  • sRpt是一个MATLAB®结构,包含每个阶段的时间和内存使用,例如:

    sRpt = Model: 'myModel1'统计:[1x134 struct]
    的大小sRpt。统计数据数组表示在操作期间执行的编译和构建阶段的数量。检查Statistics字段:
    sRpt.Statistics(1) = Description: 'Phase1' CPUTime: 7.2490 WallClockTime 4.0092 ProcessMemUsage: 26.2148 ProcessMemUsagePeak: 28.6680 ProcessVMSize: 15.9531
    CPUTime而且WallClockTime以秒为单位显示该阶段的运行时间。ProcessMemUsageProcessMemUsagePeak而且ProcessVMSize以MB为单位显示该阶段执行期间的内存消耗。

检查这些关键指标来了解性能:

  • WallClockTime-每个阶段的实时时间以秒为单位。求和WallClockTime在每个阶段中,得到执行操作所花费的总时间:

    ElapsedTime = sum([statRpt.Statistics(:).WallClockTime]);

  • ProcessMemUsage-每个阶段消耗的内存量。求和ProcessMemUsage通过所有阶段来获得整个操作期间的内存消耗:

    TotalMemory = sum([statRpt.Statistics(:).ProcessMemUsage]);

  • ProcessMemUsagePeak-每个阶段分配的最大内存量。在所有阶段获取该指标的最大值,以找到操作期间的内存分配峰值:

    PeakMemory = max([statRpt.Statistics(:).ProcessMemUsagePeak]);

    请注意

    内存统计信息仅在Microsoft上可用®窗户®平台。

例子

类中使用的每种类型的块的计数和列表sldemo_bounce由Simulink软件提供的模型。万博1manbetx

sldiagnostics(“sldemo_bounce”、“CountBlocks”)

类中使用的惟一块和状态流对象的计数和列表sf_boilerStateflow软件自带的模型;返回的文本报告被捕获为myReport

myReport = sldiagnostics('sf_boiler', 'CountBlocks', 'CountSF')

下面的命令打开f14模型,并计算在模型中使用的块的数量万博1manbetx控制器子系统。

sldiagnostics(“f14 /控制器”、“CountBlocks”)

命令执行大小而且CompileStats故障诊断f14模型,以文本报告和结构数组的形式捕获结果。

[txtRpt, sRpt] = sldiagnostics('f14', 'Sizes', 'CompileStats')

另请参阅

|

在R2006a中引入

这个话题有用吗?