主要内容

选择一个解算器

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

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

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

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

解算器选择标准

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

  • 系统动力学

  • 溶液的稳定性

  • 计算速度

  • 解算器的鲁棒性

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

计算步长

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

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

模型状态

  • 连续求解器使用数值积分来计算模型在当前时间步上的连续状态,该状态是基于前一个时间步上的状态和状态导数。连续求解器依赖于单个块来计算模型在每个时间步骤中的离散状态值。

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

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

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

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

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

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

请注意

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

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

要根据模型裁剪选定的求解器,请参见检查和提高模拟精度

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

  • 成功求解模型。

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

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

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

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

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

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

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

相关的例子

更多关于