主要内容

解决比较

利用模型提供的信息,通过计算特定时间跨度内连续时间步长的状态来模拟动态系统。从一个系统的模型计算其连续状态的过程称为模型求解。没有一种解决一个模型的单一方法能适用于所有的系统。因此,仿真软件金宝app®提供一组程序,称为解决者,每一个都包含了解决模型的特定方法。配置参数对话框允许您选择最适合您的模型的求解器。

固定步长与可变步长求解器

你可以选择Simulink提供的求解器,根据它们计算步长的方式:固定步长和可变金宝app步长。

固定的解决者从仿真开始到仿真结束,按一定的时间间隔求解模型。间隔的大小称为步长。您可以指定步长或让求解器选择步长。一般来说,减小步长会提高结果的准确性,同时增加模拟系统所需的时间。

变步解决者在模拟过程中改变步长。当模型状态变化迅速时,它们减少步长以提高精度,当模型状态变化缓慢时,它们增加步长以避免采取不必要的步骤。计算步长会增加每一步的计算开销,但可以减少总步数,因此需要模拟时间来维护具有快速变化或分段连续状态的模型的指定精度水平。

固定步长和可变步长求解器计算下一个仿真时间为当前仿真时间和步长之和。的类型控制在解算器配置窗格允许您选择求解器的类型。使用固定步长求解器,步长在整个仿真过程中保持不变。在变步长求解器中,步长可以根据模型动力学的不同而变化。特别是,可变步长求解器增加或减少步长以满足指定的误差公差。

这些类型之间的选择取决于您计划如何部署模型和模型动态。如果您计划从模型生成代码并在实时计算机系统上运行代码,请选择固定步长求解器来模拟模型。不能将可变步长映射到实时时钟。

如果您不打算将模型作为生成的代码部署,那么在变量步骤和固定步骤求解器之间的选择取决于您的模型的动态。可变步长求解器可能会显著缩短模型的模拟时间。可变步长求解器允许这种节省,因为对于给定的精度水平,求解器可以根据需要动态调整步长。这种方法减少了所需的步骤数量。基于精度要求,固定步长求解器必须在整个模拟过程中使用单个步长。为了在整个模拟过程中满足这些要求,固定步长求解器通常需要一个小步骤。

ex_multirate实例模型展示了变步长求解器如何缩短多速率离散模型的仿真时间。

该模型以两种不同的速率产生输出:每0.5秒和每0.75秒。为了捕获两个输出,固定步长求解器必须每0.25秒取一个时间步长基本样品时间模型)。

[0.0 0.25 0.5 0.75 1.0 1.25 1.5…]

相比之下,变量步长求解器只有在模型生成输出时才需要执行一步。

[0.0 0.5 0.75 1.0 1.5…]

该方案显著减少了模拟模型所需的时间步长。

连续与离散解算器

金宝appSimulink提供连续和离散求解器。

选择求解器类型时,还可以选择特定的求解器。这两组求解器都包括离散求解器和连续求解器。离散和连续求解器依赖于模型块来计算任何离散状态的值。定义离散状态的块负责在每个时间步骤计算这些状态的值。然而,与离散求解器不同的是,连续求解器使用数值积分来计算块定义的连续状态。当选择求解器时,首先确定是使用离散求解器还是连续求解器。

如果您的模型没有连续状态,那么Simulink将切换到固定步长离散解算器或可变步长离散解算金宝app器。如果您的模型只有连续状态或连续和离散状态的混合,根据您的模型的动态,从剩余的求解器选择中选择一个连续的求解器。否则,发生错误。

连续解决者利用数值积分,根据前一个时间步骤的状态和状态导数,计算模型在当前时间步骤中的连续状态。连续求解器依赖于单个块来计算模型在每个时间步骤中的离散状态值。

离散动力学主要用于求解纯离散模型。它们只计算模型的下一个仿真时间步长。在执行这些计算时,它们依赖于模型中的每个块来更新其各自的离散状态。它们不计算连续状态。

解算器库包含两个离散解算器:固定步长离散解算器和可变步长离散解算器。固定步长求解器默认选择足够快的步长和模拟速率,以跟踪模型中最快块中的状态变化。可变步长求解器调整模拟步长,以跟上模型中离散状态变化的实际速率。这种调整可以避免不必要的步骤,缩短多速率模型的仿真时间。看到系统中的采样时间为更多的信息。

请注意

必须使用连续求解器来求解既包含连续状态又包含离散状态的模型,因为离散求解器不能处理连续状态。另一方面,如果您为一个没有状态或只有离散状态的模型选择一个连续求解器,那么Simulink软件将使用一个离散求解器。金宝app

显式与隐式连续求解

你用一个方程来表示一个显式系统

x ˙ f x

对于任意给定的值x,你可以计算 x ˙ xf (x)求方程的值。

这种形式的方程

F x ˙ x 0

被认为是隐式的。对于任意给定的值 x ,你必须解出这个方程来计算 x ˙

线性隐式方程组可以用这个方程表示

x x ˙ f x

x叫做质量矩阵 f x 为强迫函数。当您在模型中使用物理建模块时,系统就变成了线性隐式的。

虽然你可以应用隐式或显式连续求解器来解决所有这些系统,隐式求解器是专门为解决刚性问题而设计的。显式求解者解决非刚性问题。如果期望的解变化缓慢,则常微分方程问题被称为刚性问题,但也有变化迅速的更接近的解。金宝搏官方网站数值方法必须采取小的时间步骤来解方程组。刚度是一个效率问题。系统越僵硬,显式求解器执行计算所需的时间就越长。刚性系统具有慢变和快变的连续动态。

与显式求解器相比,隐式求解器为振荡行为提供了更大的稳定性。然而,隐式求解器在计算上也更昂贵。他们生成雅可比矩阵,并在每个时间步用牛顿方法求解代数方程组。为了减少这个额外的成本,隐式求解器提供了一个雅可比矩阵求解方法参数,该参数允许您改进隐式求解器的模拟性能。看到为隐式求解器选择雅可比方法为更多的信息。对于求解线性隐式方程组,隐式求解比显式求解更有效。

单步与多步连续求解

Simu金宝applink求解器库提供单步和多步求解器。一步求解估计使用前一个时间点的溶液,,以及两者之间多个点处的导数值tntn - 1.这些都是次要步骤。

多步求解器使用前面几个时间步骤的结果来计算当前的解。金宝appSimulink提供了一个显式的多步求解器,ode113,一个隐式多步求解器,ode15s.两者都是变步长求解器。

单阶与变阶连续求解器

这种区别是基于求解器用于求解方程组的阶数。两个variable-order解决者,ode15sode113,是求解程序库的一部分。他们用多重阶来解方程组。具体来说,是隐式的变量步长ode15s求解采用一阶到五阶方程,而显式的变步长ode113求解程序使用一阶到十三阶方程。为ode15s,您可以通过最大的订单参数。有关更多信息,请参见最大的订单

另请参阅

||