分析器如何捕获性能数据
Profiler如何工作
剖析器在模型模拟时捕获性能数据。它确定了模型中需要花费最多时间来模拟的部分。使用分析信息来决定将模型优化工作的重点放在哪里。
请注意
不能在快速加速器模式下使用分析器。
金宝app®对象中存储性能数据模拟剖面报告。数据显示了在模型中执行每个函数所花费的时间。
Profiler的基础是伪代码总结的执行模型。
ModelInitialize Sim()()。ModelExecute() for t = tStart to tEnd Output() Update() Integrate()通过重复调用MinorOutput() MinorDeriv()通过重复调用:MinorOutput() minorzerocssings () EndIntegrate设置时间t = tNew。EndModelExecute ModelTerminate EndSim
根据这个概念模型,根据函数和模型的不同,Simulink通过0次、1次或金宝app多次调用以下函数来运行一个模型。
函数 | 目的 | 水平 |
---|---|---|
sim卡 |
模拟模型。这个顶级函数调用模拟模型所需的其他函数。在这个函数中花费的时间是模拟模型所需的总时间。 |
系统 |
ModelInitialize |
建立模型进行仿真。 |
系统 |
ModelExecute |
在从模拟开始到结束的每个时间步骤中,通过为每个块调用输出、更新、集成等函数来执行模型。 |
系统 |
输出 |
计算块在当前时间步长的输出。 |
块 |
更新 |
在当前时间步更新块的状态。 |
块 |
集成 |
通过积分当前时间步长的状态导数来计算块的连续状态。 |
块 |
MinorOutput |
计算块输出在一个小的时间步长。 |
块 |
MinorDeriv |
以小时间步长计算块的状态导数。 |
块 |
MinorZeroCrossings |
计算块在小时间步长的过零值。 |
块 |
ModelTerminate |
释放内存并执行任何其他模拟结束清理。 |
系统 |
Nonvirtual子系统 |
通过调用非虚拟子系统包含的每个块的输出、更新、集成等函数,计算非虚拟子系统在当前时间步骤的输出。在这个函数中花费的时间是执行非虚拟子系统所需的时间。 |
块 |
分析器测量执行这些函数的每次调用所需的时间。在模型模拟之后,Profiler生成一个报告,描述在每个函数上花费的模拟时间。
开始分析器
打开模型。
在调试选项卡上,选择性能顾问>金宝app仿真软件分析器。
模拟模型。
仿真完成后,Simulink将在Simulink编辑器的面金宝app板中生成并显示模型的仿真概要文件。
块层次结构视图
报告的块层次结构视图以嵌套的树形式显示模型的概要信息。表的第一行(树的顶部)对应整个模型。嵌套第一级的后续行对应于模型根级的块。
视图执行堆栈视图
执行堆栈视图按模型的模拟阶段分解分析报告。模型的主要仿真阶段是编译、初始化、仿真和终止。有关模拟阶段的更详细说明,请参见动态系统仿真阶段“,。
保存分析器结果
您可以将Profiler报告保存到垫
文件。稍后,您可以通过加载已保存的报表来导入和查看该报表垫
文件到当前工作区或将其导入到现有的分析器会话中。
若要保存分析报告,选择出口到MAT在分享部份配置文件选项卡,并可选地为垫
文件。
若要在Simulink编辑器中的开放分析会话中查看已保存的报告,请选择金宝app从文件导入在配置文件选项卡。
要在命令行中查看已保存的报表,请加载垫
包含报告的文件。分析信息被加载到当前工作区中金宝appSimulink.profiler.Data
对象。有关更多信息,请参见金宝appSimulink.profiler.Data
。