探查器的工作原理
探查器在您的模型进行仿真时捕获性能数据。它能找出模型中需要最多仿真时间的部分。探查信息可用来决定模型优化工作的重点。
注意
您不能在 Rapid Accelerator 模式下使用探查器。
Simulink® 将性能数据存储在仿真探查报告中。数据显示执行模型中的每个函数所花费的时间。
探查器基于一个执行模型来工作,该模型的伪代码如下所示:
Sim()
ModelInitialize().
ModelExecute()
for t = tStart to tEnd
Output()
Update()
Integrate()
Compute states from derivs by repeatedly calling:
MinorOutput()
MinorDeriv()
Locate any zero crossings by repeatedly calling:
MinorOutput()
MinorZeroCrossings()
EndIntegrate
Set time t = tNew.
EndModelExecute
ModelTerminate
EndSim
根据此概念模型,Simulink 通过调用以下函数零次、一次或多次来运行模型,具体取决于函数和模型。
函数用途级别sim对模型进行仿真。此顶层函数调用仿真模型所需的其他函数。在此函数中花费的时间是模型仿真所需的总时间。系统
ModelInitialize建立仿真模型。系统
ModelExecute在从仿真开始到结束的每个时间步中,通过对每个模块调用 output、update、integrate 等函数来执行模型。系统
Output计算模块在当前时间步的输出。模块
Update更新模块在当前时间步的状态。模块
Integrate通过对当前时间步的状态导数进行积分,计算模块的连续状态。模块
MinorOutput计算模块在子时间步的输出。模块
MinorDeriv计算模块在子时间步的状态导数。模块
MinorZeroCrossings计算模块在子时间步的过零值。模块
ModelTerminate释放内存并执行任何其他仿真结束时的清理工作。系统
Nonvirtual Subsystem通过对所包含的每个模块调用 output、update、integrate 等函数,计算非虚拟子系统在当前时间步的输出。在此函数中花费的时间是执行该非虚拟子系统所需的时间。模块
探查器测量执行这些函数的每次调用所需的时间。模型仿真完成后,探查器会生成一份报告,说明在每个函数上花费的仿真时间量。