主要内容

加快模拟

有几个因素可以慢慢模拟。检查您的模型是否有些条件。

  • 您的模型包括一个解释的MATLAB功能堵塞。当模型包括一个解释的MATLAB功能块,matlab®在每次步骤中调用执行引擎,从而大幅减慢模拟。使用数学函数尽可能堵塞。

  • 您的模型包括MATLAB文件S函数。MATLAB文件S函数在每次步骤时也调用MATLAB执行引擎。考虑将S-函数转换为子系统或C-MEX文件S函数。

  • 您的模型包括内存块。使用内存块导致可变级解码器(ode15s.ode113.)每次步骤重置为订单1。

  • 最大步长太小。如果更改了最大步长大小,请尝试使用默认值再次运行模拟(汽车)。

  • 您的准确性要求太高。默认相对容差(0.1%的精度)通常是足够的。对于具有零零的状态的模型,如果绝对公差参数太小,则模拟可以在近零状态值周围取得太多步骤。查看此错误的讨论最高订单

  • 时间尺度太长了。减少时间间隔。

  • 问题很僵硬,但是你正在使用非任命的求解器。尝试使用ode15s.。有关更多信息,请参阅系统僵硬

  • 该模型使用不是彼此倍数的样本时间。混合彼此不倍数的样本时间使求解器采取足够的步骤以确保所有采样时间的采样时间命中。

  • 该模型包含代数循环。在每次步金宝搏官方网站骤时迭代地计算成代数环路的解决方案。因此,它们严重降低了性能。有关更多信息,请参阅代数循环概念

  • 您的模型将随机数块馈送到积分器块中。对于连续系统,在源库中使用带限量的白噪声块。

  • 您的模型包含一个显示太多数据点的范围查看器。尝试调整可能影响性能的查看器属性设置。有关更多信息,请参阅范围观众

  • 您需要迭代地模拟您的模型。您在迭代之间更改可调参数,但不会对模型进行结构变化。每次迭代都需要模型再次编译,从而增加整体仿真时间。使用快速重启执行迭代模拟。在此工作流程中,模型仅编译一次和迭代模拟与单个编译相位相关联。看快速重启如何提高迭代模拟想要查询更多的信息。

相关例子

更多关于