主要内容

解算器分析器

确定求解器的性能瓶颈

描述

使用解算器分析器检查求解器和模型行为,以确定可能导致较差的仿真性能的问题。

使用解算器分析器分析影响模型模拟的模式。的解算器分析器提供有关模拟、求解器设置、事件和错误的图形和统计信息。您可以使用此数据来识别模型中导致模拟瓶颈的位置。

此外,还有许多因素会限制模拟速度。Solver Profiler记录并报告模拟模型时发生的所有主要事件:

  • 讨论二阶导数过零事件

  • 求解器异常事件

  • 求解器重置事件

  • 雅可比计算事件

这些事件对于精确的模拟来说是常见和必要的。然而,它们确实会产生计算成本,频繁发生会减慢甚至停止模拟。

可用的行动

  • 跟踪

  • 过滤器

  • 探索

信息窗格

  • 统计数据

  • 步长

  • 建议

打开解算分析器

通过单击Simulink右下角的超链接打开求解分析器金宝app®编辑器。

例子

全部展开

此示例展示如何使用模拟球从地面反弹的模型来查找特定求解器事件的源。当球静止时,过零的密度增加,导致求解器减速。

首先,打开ex_spi_show_zc建模并启动求解分析器。

点击运行分析模型。

注意,该模型有45个过零事件,选择零交叉选项卡中的结果窗格。

选择ex_spi_show_zc /开关字段。所有零交叉事件引起的开关块中突出显示步长情节。

跟踪部分,选择强调块

你应该看到开关块导致零交叉事件。

相关的例子

参数

配置

默认情况下,分析器不保存模型的状态。启用此参数将配置分析器将状态保存到分析器数据MAT文件中。

启用此参数可将Simscape状态保存到分析器数据MAT文件。

启用此参数可将零交叉信息保存到分析器数据MAT文件中

选项将解算器雅可比矩阵记录到内存中。此选项对于使用隐式求解器的模拟非常有用。有关求解器的比较,请参见解决比较

有关解算器雅可比矩阵的更详细解释,请参见选择隐式求解器的雅可比方法

启用此参数可以将Simscape状态的刚度分析记录到分析器数据MAT文件中。有关刚度和其他物理系统概念的Simscape表示的更多信息,请参见Simscape模型如何表示物理系统(Simscape)

分析器开始分析模型的模拟时间(以秒为单位)。这与模拟的开始时间不一样。

剖析器应该剖析模型的仿真时间(以秒为单位)。默认情况下,分析将持续到模拟结束。更改此参数不会更改您在模型配置参数中指定的模型的停止时间。

小于模型的配置停止时间的值将停止分析和模拟StopTime

记录的最大事件数。如果记录的事件数量达到这个值,并且内存可用,则增加BufferSize.如果内存有限,请考虑降低该值。

过滤器

启用此参数可在求解分析器的步长图中突出显示求解器异常事件。

启用此参数可在求解分析器的步长图中突出显示求解器重置事件。

启用此参数以突出显示求解分析器的步长图中的零交叉事件。

启用此参数以突出显示求解分析器的步长图中的雅可比矩阵更新事件。

点击自定义规则在Solver Profiler中访问规则集。您可以更改大多数规则的阈值,也可以选择在模拟运行期间有选择地应用哪些规则。

若要修改规则,请启用自定义,然后输入所需的阈值。

自定义规则集

上的设置规则集对话框中指定自定义规则集。

创建一个作为MATLAB的规则集®属性中指定脚本的路径自定义规则集部份规则集对话框。

一个简单的规则集示例如下:

function diagnosticsString = customRule(profilerData) if isempty(profilerData. zcevents) diagnosticsString{1} = '未检测到过零事件';else diagnosticsString{1} = '检测到过零事件。';结束结束
函数的输入是一个名为profilerData.该结构数组组织了Solver Profiler在分析运行期间收集的所有信息。它包含以下子结构。

子结构 字段
stateInfo:存储块状态信息
  • 的名字:块名

  • 价值:状态值

  • blockIdx:块ID

blockInfo:块和状态id的交叉引用
  • 的名字:块名

  • stateIdx:状态ID

zcSrcInfo:存储导致零交叉事件的块的信息
  • 的名字:块名

  • blockIdx:块ID

zcEvents:零交叉事件的时间戳与对应状态id的交叉引用
  • t:事件时间戳

  • srcIdx:块ID

exceptionEvents:异常事件时间戳、引起该事件的相应状态的ID以及原因的交叉引用。
  • t:事件时间戳

  • stateIdx:状态ID

  • 导致:异常原因

resetTime:存储求解器重置的时间戳。 没有一个
吹捧:存储模拟次数。 没有一个

数据类型:

更多关于

全部展开

在R2016a中引入