Engee 文档

物理网络的本地求解器

advanced users cn

在*Engee*中,使用局部求解器机制来计算物理网络的行为。在系统模型中,由放大器链路、积分器等定向组件连接的物理网络被识别出来。每个物理网络都由各自独立的求解器进行计算,并在其输入和输出端安装插值器。模型的定向部分由全局求解器控制,物理网络被全局求解器视为无内部状态的普通定向元件。

局部求解器可以大大提高模型的计算速度,而不会降低求解质量。物理模型通常包含不同物理性质的组件,不同的物理现象在模型中以不同的速度进行。例如,利用局部求解器,可以对模型的电气部分进行细步计算,对机械部分进行粗步计算。

另一方面,电路通常由刚性微分方程系统描述,而机械模型则由非刚性微分方程系统描述。这使得复杂的方法可以用于电路,而简单的方法可以用于机械电路。此外,大型刚性模型可以分成几个部分,每个部分都将被视为相同的隐式或半隐式求解器。

分解大小为 NxN 的雅可比矩阵的时间复杂度为 。为简单起见,让它正好为 。如果我们将一个大型模型分解为两个部分,计算的总操作数为

,

其中 是插值器和求解器同步的开销。对于一个稍微复杂的模型来说,这些费用通常只占总计算时间的很小一部分,可以忽略不计。将原始模型划分为由局部求解器计算的两个部分,最多可将计算速度提高四倍。在实践中,由于各种因素的影响,计算速度会有所降低,但局部求解器往往能显著加快计算速度。 Engee 支持两种类型的局部和全局求解器同步:离散和连续。

第一种类型尤其适用于实时计算,例如在半自然 RITM 建模 综合体上的计算。物理网络被表示为离散的无状态原子组件,并为其指定离散化区间。有两种数值方法可供选择:隐式欧拉法("ImplicitEuler")和梯形法("Trapezoid")。它们不需要对输入信号进行插值,输出信号根据定义是离散的。

discrete synchronization results

除了数值方法外,还可以选择快速("Fast")或稳健("Robust")版本的方法。如果出现收敛错误,可以切换到稳健算法版本("Robust")或减少采样步长。有时,将采样步长减小到不是原始值倍数的值是有用的,例如,不是从 "0.1 "减小到 "0.01",而是减小到 "0.03",以便绕过问题点。

离散同步模式下使用的简化方法可能会加快模型的读取速度,但计算精度可能不够高。这时可以在求解器设置的相应窗口中减少采样间隔或切换到连续同步模式。

开启连续同步后,全局求解器开始将物理网络视为无内部状态的连续组件。全局求解器的输入使用适合所选求解器的插值方法,输出为连续函数。必须设置本地求解器和全局求解器交换信息的同步时间间隔。本地求解器可以根据需要采取尽可能多的中间步骤到达下一个同步点。这种方法可以提高计算精度,但计算成本较高。

这就出现了打破代数循环的问题—​物理网络通过无内部状态的有向分量进行连接。在这种情况下,就会出现错误:

algebraic loop

要消除误差,可以使用取样间隔较小的Unit Delay

unit delay

或具有适当时间常数的非周期性链路:

delay

本地 Engee 求解器列表仅限于对计算物理模型最有用的求解器,是全局求解器的子集。使用连续滤波器或双曲正切等特殊函数对进入物理网络的信号进行平滑处理,以逼近不连续函数,是非常有用的。

如果选择连续同步,则有三种求解器可供选择:固定步长"、"可变步长 "和 "继承全局"。前两种分别用于固定步长和可变步长,第三种则继承全局求解器的设置。这并不意味着模型将由一个全局求解器求解。本地求解器将获得与全局求解器相同的设置。最后一种模式在实践中很少使用,因此建议从默认设置开始:连续同步、可变步长求解器、"Rodas4"。