主要内容

解决比较

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

固定步与可变步求解器

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

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

变步解决者在模拟过程中改变步长。当模型的状态快速变化时,它们减小步长以提高准确性,当模型的状态变化缓慢时,它们增大步长以避免采取不必要的步骤。计算步长增加了每一步的计算开销,但可以减少总步数,因此对于快速变化或分段连续状态的模型,维持指定精度水平所需的仿真时间。

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

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

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

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

该模型以两种不同的速率生成输出:每0.5 s和每0.75 s。为了捕获两个输出,固定步长求解器必须每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求解器库提供了一步求解器和多步求解器。一步求解估计使用前一个时间点的解,,和之间多个点的导数值tn而且tn - 1.这些都是小步骤。

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

单阶与变阶连续求解器

这种区别是基于解算器用于求解方程组的阶数。两个变阶解算器,ode15s而且ode113,是求解器库的一部分。他们用多重阶来解方程组。具体来说,是隐式的,可变步长ode15s求解器使用一阶到五阶方程,而显式的,变步长ode113求解器使用一阶到十三阶方程。为ode15s,可以限制应用的最高阶最大的订单参数。有关更多信息,请参见最大的订单

另请参阅

||