主要内容

物理模拟中的重要概念与选择

本节描述在为Simscape™模型配置和测试求解器和其他模拟设置时可能需要考虑的高级概念和权衡。有关推荐设置的摘要,请参见物理模拟的最优求解选择.有关背景信息,请咨询Simscape模型如何表示物理系统而且Simscape模拟如何工作

变步长和固定步长求解器

变步解决者通常用于设计、原型和探索性模拟,并在模拟过程中精确定位事件。它们对于实时模拟并不有用,而且如果有很多事件,代价会很高。

变步长求解器在及时向前移动时自动调整步长,以适应其控制求解误差的能力。通过调节求解器的公差,可以控制变步长求解的精度和速度。使用许多可变步长求解器,您还可以限制最小和最大时间步长。

固定的解决者如果您希望跨平台和操作系统进行性能比较,生成模型的代码版本,并限制或固定模拟成本,则建议或必须使用。一个典型的应用是实时仿真。有关更多信息,请参见实时仿真

使用固定步长求解器,您可以指定时间步长来控制模拟的精度和速度。固定步长求解器不适用于提高精度或定位事件。这些限制可能导致显著的模拟不准确性。

显式和隐式求解器

模型中的刚度程度和代数约束的存在影响在和之间的选择显式的隐式的解算器。显式和隐式求解器使用不同的数值方法来模拟系统。

  • 如果系统是非刚性ODE系统,则选择显式求解器。如果其他模拟特征是固定的,显式求解器比隐式求解器需要更少的计算工作量。

    为了找到每个时间步的解,显式求解器使用基于ODE系统局部梯度的公式。

  • 如果系统是僵硬的,使用隐式求解器。虽然显式求解器可能需要较少的计算量,但对于复杂的问题,隐式求解器更准确,通常对获得解是必不可少的。隐式求解器需要在模拟的时间步内进行每一步迭代。使用一些隐式求解器,您可以限制或修复这些迭代。

    隐式求解器从当前步骤的解开始,用代数求解器迭代求解下一个时间步骤的解。隐式算法在每个模拟步骤中做更多的工作,但可以采取更少、更大的步骤。

  • 如果系统包含dae,即使它不是刚性的,也要使用隐式求解器。这样的求解器被设计用来同时求解代数约束和微分方程的积分。

完全和稀疏线性代数

当模拟具有多个状态的系统时,求解器使用矩阵操作数学系统。对于大量的状态,将稀疏线性代数方法应用于大型矩阵可以使仿真更加有效。

事件检测与定位

在大多数情况下,事件发生在模拟的时间步骤之间。

  • 固定步骤求解器在“跳过”事件后检测事件,但不能自适应地及时定位事件。这可能导致很大的不准确性或无法集中到解决方案上。

  • 可变步长求解器既可以检测事件,也可以通过调整时间步长的时间来估计事件发生的瞬间。

提示

要估计模拟中事件或快速变化的时间,请使用变步长求解器。

如果您的模拟必须频繁地通过改变步长来适应事件或快速变化,那么隐式求解器相对于显式求解器的大部分或全部优势就会丧失。

无界、有界和固定成本模拟

在某些情况下,例如实时模拟,您需要模拟的执行时间不仅是有限制的,而且实际上是固定为可预测值的。在模拟频繁事件时,固定执行时间还可以提高性能。

可变步长模拟的实时成本可能是无限的。求解器可以在有限的模拟时间内用无限的实时时间来求解系统,因为时间步长的数量和大小是与系统相适应的。您可以配置一个固定步长求解器,用有限的实时时间来完成模拟,尽管在模拟之前仍然很难预测确切的实时时间。即使是固定步的求解器也可以在每个时间步上进行多次迭代来找到一个解。这样的迭代是可变的,通常在数量上不受限制;求解器根据需要迭代。

固定执行时间意味着欲望模拟,它既固定了时间步长,又限制了每步迭代的次数。固定成本模拟,防止执行超支,当执行时间大于模拟样本时间时。没有已知固定成本的有限执行时间仍然可能导致某些步骤超出样本时间。

求解器所需的实际计算量也取决于许多其他因素,包括模型复杂性和计算机处理器。有关更多信息,请参见实时仿真

全局和局部求解器

您可以在系统的不同部分使用不同的求解器。例如,您可能希望在系统的刚性部分使用隐式求解器,而在其他地方使用显式求解器。这样的当地的解决者提高仿真效率,降低计算成本。

这样的多解算器模拟必须协调每个解算器和每个子系统的独立时间步序列,以便不同的解算器可以在某些或所有共享的时间步上相互传递模拟更新。

Baidu
map