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
有关查找所有的详细信息模型块和指定模型中的引用模型。
选项 |
有效的输入 |
输出 |
---|---|---|
|
根模型、库或子系统 |
列出系统中所有唯一的块以及每个块出现的次数。这包括嵌套在屏蔽子系统或隐藏块中的块。 |
|
根模型、库或子系统 |
列出系统中所有唯一的statflow对象以及每个对象出现的次数。 |
|
根模型 |
列出根模型中使用的状态、输出、输入和采样次数,以及指示直接馈通的标志。 |
|
根模型、库或子系统 |
列出根模型中引用的所有惟一库,以及库块的名称和编号。 |
|
根模型 |
列出根模型的每个编译阶段所使用的时间和额外内存。这些信息可以帮助用户解决模型编译速度和内存问题。 |
|
根模型 |
列出与 您必须显式地指定这个选项,因为它不是默认分析的一部分。 |
|
不适用 |
执行所有诊断。 |
请注意
运行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仿真软件编码器除了所报告的信息之外,还要构建统计信息CompileStats
在sRpt
输出。
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
以秒为单位显示该阶段的运行时间。ProcessMemUsage
,ProcessMemUsagePeak
而且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_boiler
Stateflow软件自带的模型;返回的文本报告被捕获为myReport
.
myReport = sldiagnostics('sf_boiler', 'CountBlocks', 'CountSF')
下面的命令打开f14
模型,并计算在模型中使用的块的数量万博1manbetx控制器
子系统。
sldiagnostics(“f14 /控制器”、“CountBlocks”)
命令执行大小
而且CompileStats
故障诊断f14
模型,以文本报告和结构数组的形式捕获结果。
[txtRpt, sRpt] = sldiagnostics('f14', 'Sizes', 'CompileStats')