主要内容

选择求解器

要模拟动态系统,需要在指定的时间范围内以连续的时间步长计算其状态。这种计算使用系统模型提供的信息。时间步长是计算发生的时间间隔。这个时间间隔的大小被称为步长。以这种方式计算模型状态的过程称为解决该模型。没有一种求解模型的方法适用于所有系统。金宝app动态仿真模块®提供一组名为解决者。每个求解器都包含求解模型的特定方法。

求解器应用数值方法来求解代表模型的一组常微分方程。通过这种计算,确定下一个仿真步骤的时间。在求解这个初值问题的过程中,求解器还满足您指定的精度要求。

数学家们已经开发了各种各样的数值积分技术来求解代表动态系统连续状态的常微分方程(ode)。提供了一组广泛的固定步长和变步长连续求解器,每个都实现了特定的ODE求解方法(参见解决比较)。选项中选择求解器解算器模型配置参数面板。

所有求解器均由MATLAB提供®和Sim金宝appulink遵循类似的命名约定:颂歌,后面跟着两个或三个数字,表示解算器的顺序。一些求解器可以求解刚性微分方程,它们所使用的方法由年代t,或结核病后缀。

求解器选择标准

模拟模型的合适求解器取决于以下特征:

  • 系统动力学

  • 溶液的稳定性

  • 计算速度

  • 解算器的鲁棒性

因此,Simulink提供的数值求解器可以大致分为两类。金宝app

计算步长

  • 固定步长求解器,顾名思义,从模拟开始到结束使用相同的步长来求解模型。您可以指定步长或让求解器选择它。通常,减小步长会增加结果的准确性和模拟系统所需的时间。

  • 变步长求解器在模拟过程中改变步长。这些解算器减少步长以提高模型模拟过程中某些事件的精度,例如快速状态变化、过零事件等。此外,它们增加步长以避免在模型状态变化缓慢时采取不必要的步骤。计算步长会增加每一步的计算开销。然而,它可以减少总步骤数,从而减少为具有过零、快速变化的状态和其他需要额外计算的事件的模型维持指定精度级别所需的模拟时间。

模型状态

  • 连续求解方法利用数值积分方法,根据模型在前一个时间步长的状态和状态导数计算模型在当前时间步长的连续状态。连续求解器依靠单个块来计算模型在每个时间步长的离散状态值。

  • 离散解算器主要用于求解纯离散模型。它们只计算模型的下一个模拟时间步长。当他们执行这种计算时,他们依赖于模型中的每个块来更新其单独的离散状态。它们不计算连续状态。

使用迭代方法为您的需求选择求解器。比较几个求解器的模拟结果,选择一个以最小代价提供最佳性能的求解器。

用以下方法为你的模型选择一个求解器:

  • 使用自动求解器。新模型的求解器选择默认设置为自动求解器。自动求解器为您的模型推荐固定步长或可变步长求解器以及最大步长。有关更多信息,请参见选择使用自动求解器求解

  • 如果您对使用自动求解器的仿真结果不满意,请在解算器窗格中的模型配置参数。

在构建和模拟模型时,可以根据模型的动态特性选择求解器。变步长求解器更适合于纯连续模型,如质量弹簧阻尼器系统的动力学。对于包含多个开关的模型,如逆变电源系统,建议使用固定步长求解器,因为求解器复位的次数会导致变步长求解器的行为与固定步长求解器相似。

请注意

当您将模型部署为生成的代码时,您只能使用固定步骤求解器。如果在模拟期间选择了可变步长求解器,请使用它来计算部署时所需的固定步长求解器所需的步长。

这个图表提供了Simulink库中求解器的广泛分类。金宝app

若要根据您的模型定制所选求解器,请参见检查和提高仿真精度

理想情况下,您选择的求解器应该:

  • 成功求解该模型。

  • 对于可变步长求解器,请在指定的公差范围内提供解决方案。

  • 在合理的时间内求解模型。

单个解算器可能无法满足所有这些目标。在做出选择之前,尝试使用不同的求解器进行模拟。

Simu金宝applink库提供了几个求解器,它们都可以与代数循环求解器一起工作。有关更多信息,请参见代数循环求解器是如何工作的

解算器类型 显式或隐式 离散 连续 Variable-Order
固定步 显式的 不适用 固定步长连续显式求解 不适用
隐式的 不适用 固定步长连续隐式求解 不适用
变步 显式的 Simulink中的变步长求解器金宝app 变步长连续显式求解 单阶与变阶连续求解
隐式的 变步连续隐式求解 单阶与变阶连续求解

解算器在模型配置参数面板中,Simulink求解器库分为两大类。金宝app看到固定步骤与可变步骤求解器

有关比较求解器的其他方法,请参见:

相关的例子

更多关于