微分代数方程 (DAE)

2025 年 3 月 1 日 | 13 分钟阅读

引言

微分代数方程 (DAE) 是一种数学模型,用于描述由微分方程和代数方程共同控制的系统。与传统的常微分方程 (ODE) 不同,DAE 包含微分方程以及系统必须满足的代数等式约束。DAE 的一般形式可以表示为:

F(t, y(t), ẏ(t)) = 0

其中 F 是时间 t、状态变量 y(t) 及其一阶导数 ẏ(t) 的函数。

偏微分方程和常微分方程的区别

常微分方程更简单,因为它们只涉及形式为的微分方程

ẏ(t) = f(t, y(t))

  • 在常微分方程中,解需要识别一个“t”的函数 y(t),该函数将求解微分方程并满足指定的初始条件。与涉及代数条件的偏微分方程不同,在求解常微分方程时,它们在解析和数值上都相对更容易求解。

DAE 的重要性

DAE 主要用于不同研究中系统的建模和仿真。

  • 机械系统:在机械工程中,DAE 用于描述具有约束性质的系统,如机器人机构、汽车和多体动力学系统。这些约束能够一次性更新所有组件,这比基于 ODE 和约束的系统更真实。
  • 电路:许多电路仿真使用 DAE 来模拟计算。因此,一些组件,如电容器和电感器,会产生微分方程,而基尔霍夫定律则引入了代数方程。
  • 化学过程控制:在化学工程中,反应器和其他工艺设备的动力学由 DAE 表示。
  • 生物系统:上述提到的代谢网络、信号转导通路或生态模型等生物系统通常由 DAE 表示。

DAE 的组成部分

DAE 由两个主要部分组成:微分部分和代数部分。理解这些组成部分是研究 DAE 的基本前提,这将使读者倾向于了解 DAE 的行为和特征。

1. 微分部分

DAE 的微分部分包含相对于时间的导数项。这些项定义了某些变量如何随时间变化,类似于 ODE 中使用的项。例如,在机械系统中,该值可能是由系统的微分部分表示的移动物体的位置和速度的变化率。

示例

dy(t)/dt = f(y(t), z(t), t)

这里,y(t) 代表状态变量,其动力学由函数 f 确定,可能包含来自变量 z(t) 和时间 t 的输入。

2. 代数部分

代数部分包含不含导数但对变量施加限制的方程。这些方程保证变量之间的某些形式的互连性始终保持。在机械系统中,代数部分可能是受约束的,例如连接到两个点的给定长度的刚性杆。

示例

g(y(t), z(t), t) = 0

这里,g 是一个必须始终为零的函数,它涉及代数方程中的变量 y(t) 和 z(t)。

微分项和代数项在一个 DAE 系统中相互关联,该系统描述了建模系统的行为,并且必须同时求解。

DAE 的指标

因此,DAE 的指标定义为代数约束的数量与微分方程数量的比率。它表示必须对代数方程进行多少次微分才能得到与常微分方程等效的方程组。这个指标有助于解释 DAE 的可解性级别以及要应用的数值技术。

  • 指标 0:系统已经是 ODE。这是因为质量 m 是常数,因为它不是时间的函数。
  • 指标 1:系统中的代数方程只需微分一次即可转换为 ODE。
  • 指标 2:系统需要对代数方程进行两次微分,并可能需要进一步微分。

该指标的相关性与数值稳定性和解决 DAE 的方法有关。由于指标较高的系统更容易受到舍入误差的影响,因此这些方法是专门为高效解决方案和准确性而设计的。

说明不同指标的示例

1. 指标 0 示例

没有代数约束的 ODE。

dy(t)/dt = -ky(t)

这里,系统已经是 ODE,不需要对代数方程进行微分。

2. 指标 1 示例

一个简单的 DAE 系统。

dy(t)/dt + y(t) = u(t)

z(t) = y(t)

对代数方程 z(t) = y(t) 进行一次微分得到

dz(t)/dt = dy(t)/dt

此微分将系统简化为 ODE。

3. 指标 2 示例

一个更复杂的 DAE 系统。

dy(t)/dt = z(t)

0 = y(t)2 + z(t)2 - 1

对代数方程 0 = y(t)2 + z(t)2 - 1 进行一次微分

0 = (2y(t))dy(t)/dt + (2z(t))dz(t)/dt

代入 dy(t)/dt = z(t) 并简化

0 = 2y(t)z(t) + 2z(t)(新导数)

需要进一步微分才能完全解决系统。

微分代数方程 (DAE) 的分类

1. 线性 DAE 与非线性 DAE

线性 DAE

根据微分方程和代数方程的默认值,线性 DAE 是那些线性地包含微分项和代数项的方程。在数学上,它们可以表示为:

Et ẋ(t) = A(t)x(t) + B(t)u(t) + f(t)

其中

  • 这里的 E(t) 是一个可能奇异的矩阵。
  • A(t) 和 B(t) 是定义了时间变化的系数矩阵,n 和 m 表示矩阵的维度。
  • x(t) 是未知向量。
  • u(t) 是输入向量。
  • f(t) 是给定的向量函数。

非线性 DAE

微分或代数部分包含非线性项的 DAE 仍然是非线性 DAE。由于方程中包含的非线性性质,这些方程通常更难求解。

2. 自主 DAE 与非自主 DAE

自主 DAE

如前所述,DAE 的数量与时间无关,因此系数和函数不包含时间。自主 DAE 的一般形式是

Eẋ = f(x, u)

其中

  • E 是标量矩阵,
  • f(x, u) 代表系统动力学的陈述,其中 x 是状态向量,u 是输入向量。

非自主 DAE

  • 非自主 DAE 中的因变量或传输弹性的函数是时间和其他系数或函数。这些方程通常表示为
    E(t)ẋ(t) = f(t, x(t), u(t))

其中 E(t) 是一个可以取决于时间 t 或状态向量 x(t) 和输入向量 u(t) 的算子。

3. 半隐式 DAE 与完全隐式 DAE

半隐式

半隐式 DAE 更清楚地分为微分和代数部分。一般形式是

ẋ = f(x, y, u)

0 = g(x, y, u)

其中

  • x 是微分变量向量,即 [x1, x2, … xn]。
  • y 是代数变量向量,
  • f 和 g 表示所述函数中系统的状态。

完全隐式 DAE

完全隐式 DAE 不分离微分和代数部分,并以更通用的形式给出

F(t, ẋ, x, u) = 0

这种表示形式可以涵盖给定方程组中的微分和代数部分。

微分代数方程 (DAE) 的数学公式

DAE 的一般形式

DAE 是一种包含微分和代数特征的方程描述,因此得名。与以前只包含导数的常微分方程等主题不同,DAE 在系统内部包含代数约束。

DAE 的一般形式表示为

F(t, y(t), ẏ(t)) = 0

其中

  • t 是自变量,通常表示时间。
  • y(t) 是因变量向量。
  • ẏ(t) 是因变量的时间导数向量。
  • F 是一个向量值函数,它封装了变量之间的微分和代数关系。

范式

由于 DAE 解决方案的复杂性,它们通常会转换为某些标准形式。半隐式和完全隐式形式是两种最常见的规范形式。

1. 半隐式形式

半隐式形式将微分和代数部分分离如下

ẋ(t) = f(t, x(t), z(t))

0 = g(t, x(t), z(t))

这里,x(t) 是微分变量,z(t) 是代数变量。函数 f 描述微分方程,g 描述代数关系。

2. 完全隐式形式

在完全隐式形式中,微分和代数部分没有明确分离

F(t, y(t), ẏ(t)) = 0

这种形式更通用,在某种意义上更广泛;可以使用它解决更广泛的问题;但是,它通常更难分析和求解。

DAE 的初始条件

对 DAE 解决方案产生重大影响的另一个角度是初始条件。虽然 ODE 的解决方案总是从所有状态变量的给定值开始,但 DAE 需要更多地关注公式的制定以保持良好的规定。

对于 DAE 系统,初始条件必须满足必须满足的微分条件和代数条件。设

y(t0) = y0

是时间 t 0 () 的初始值。初始条件 y0 必须选择为使得

F(t0, y0, ẏ0) = 0

其中 ẏ0 是从 DAE 获得的初始导数。

一致性和适定性

换句话说,DAE 在初始点的所有条件都必须一致,并且问题必须适定。

1. 一致性

如果存在一个 ẏ(t₀) 在 t = t₀ 时至少满足给定 DAE 的一个解,则称初始条件是一致的。这意味着求解代数方程以获得 ẏ(t0) 以确保

F (t0, y0, ẏ0) = 0

2. 适定性

适定 DAE 问题具有唯一的解,该解又连续地取决于初始条件和输入函数。这通常需要

  • 这些函数 F 必须足够平滑,以便可以实现规定的规律性。
  • DAE 系统具有一组一致的初始条件。
  • 确保 DAE 的指标使得系统不是很难解决。较低指标的 DAE 更容易解决。

稳定性和非奇异行为的要求通常需要修改 DAE 系统、降阶或采用适合 DAE 的数值技术。

求解微分代数方程 (DAE)

1. 解析方法

化简为 ODE

DAE 的各种求解器最流行的策略之一是把问题转换为求解 ODE。这种方法包括对微分方程进行代数操作,以将一些因变量表示为其他变量的函数,然后求解这些方程。通过这种方式,可以将给定的方程组简化为一组 ODE,我们解释过,ODE 通常更容易求解。这种方法特别适用于代数方程可以以标准方式管理的半隐式 DAE。

示例

考虑 DAE 系统

ẋ = y + z

0 = x + y - 1

为了将其简化为 ODE,求解代数方程以得到 \( y \)

y = 1 - x

将 y 代入微分方程

ẋ = (1 - x) + z

现在,我们有一个 ODE 系统

ẋ = 1 - x + z

摄动法

摄动法是基于这样一个事实:DAE 系统中包含一个小的参数 ϵ,并且解以 ϵ 的级数表示。这种方法适用于处理在多时间尺度系统中出现的 DAE。通过这种方式,当将小参数视为摄动时,可以以更结构化的方式获得解。

示例

考虑一个带有小参数 ϵ 的 DAE 系统

ϵẋ = f(x, y, t)

0 = g(x, y, t)

将 x 和 y 展开成幂级数

x = x0 + ϵx1 + ϵ2 x2 + …..

y = y0 + ϵy1 + ϵ2 y2 + …..

将这些展开式代入原始方程并收集 ϵ 的相同幂的项。这允许迭代求解系统。

2. 数值方法

隐式和显式方法

应用于 DAE 的离散化方法可以分为隐式和显式时间积分方法。

显式方法

显式技术从当前时间步长的给定信息中寻找下一个时间步长的解决方案。它们易于使用;但是,可能需要小的步长以确保稳定性,尤其是在刚性问题中。

示例

DAE 系统的向前欧拉法

ẋ = f(x, y, t)

0 = g(x, y, t)

更新规则

Differential Algebraic Equations (DAE)

隐式方法

隐式方法可以通过从可能需要迭代的方程中找到自然步长解来解决,因此它们对于刚性系统更稳定,并且可以使用更大的时间步长。

示例

向后欧拉法

Differential Algebraic Equations (DAE)

这需要在每个步骤中求解非线性系统。

后向微分公式 (BDF)

BDF 是一系列专门为刚性 DAE 开发的隐式数值积分技术。它们是迭代过程,涉及来自几个先前时间步长的信息来计算解决方案。

示例

DAE 的二阶 BDF 公式

Differential Algebraic Equations (DAE)

这需要在每个步骤中求解非线性系统,但提供良好的稳定性特性。

龙格-库塔方法

求解 ODE 的通用方法是龙格-库塔方法,它们可以轻松地用于 DAE。两者都是单步方法,这意味着它们不依赖于来自先前时间步长的信息来计算下一步。

示例

DAE 的隐式龙格-库塔方法

Differential Algebraic Equations (DAE)

求解 DAE 的软件工具和库

可以列出许多用于求解 DAE 的软件库和工具。这些工具提供了许多数值技术的可靠实现,并广泛应用于工程和科学领域。

MATLAB

MATLAB 中有两个用于求解 DAE 的选项,即 `ode15s` 和 `ode23t`。这些函数旨在用于简化系统,并提供定义 DAE 指标的可能性。

示例

SciPy

名为 SciPy 的 Python 库具有 `solve_ivp` 函数,该函数配备了用于 DAE 的“BDF”方法。

示例

其他工具

  • SUNDIALS:DAE 和 ODE 求解器的集合,例如 CVODE、IDA 等。
  • DAETS:专门为高指标 DAE 开发的求解器。

这些工具为处理专制 DAE 系统提供了健壮且可移植的解决方案,并让用户的精力集中在建模和研究上,而不是数值计算的技术细节。

微分代数方程 (DAE) 中的指标降低

DAE 是由微分方程和代数方程描述的系统;一个称为指标的特定属性定义了它的复杂性。DAE 的指标用于估计所需微分的级别以及在考虑约束的情况下求解方程的复杂性。应该注意的是,由于不稳定性和数值相关问题,高指标 DAE 更难解决。

指标降低是一种将第一个高指标 DAE 更改为等效的低指标 DAE(最好是指标为一的 DAE)的过程,因为 DAE 更容易分析和数值求解。这导致可以使用可用的数值方法更有效地解决所得系统,并且舍入误差更少。

指标降低方法

1. Pantelides 算法

DAE 指标的降低也是 Pantelides 算法中常用的另一种技术。第一个识别算法是系统地微分 DAE 的代数等式,以揭示必须考虑的额外约束和关系,以降低指标。

  • 识别代数约束:从包含给定初值问题的 DAE 集合开始,确定代数部分。
  • 微分约束:对代数约束进行时间导数,以获得将揭示关系的新方程。

这种方法的优点是确保考虑所有必要的条件,以便提出的问题适定,从而更容易解决。

2. 虚拟导数方法

虚拟导数技术涉及添加称为虚拟导数的额外变量,以将给定 DAE 转换为具有较低指标的等效方程。

  • 识别高指标变量:识别哪些变量增加了系统的指标。
  • 引入虚拟变量:每个高指标变量对应一个新的虚拟导数变量。
  • 重写系统:用新的虚拟变量替换原始方程,从而大幅降低微分阶数。
  • 求解转换后的系统:具有虚拟导数的新系统应该更容易通过应用标准数值技术来求解。

由于约束的直接微分无法获得一阶条件,因此该方法对于约束的直接微分不可能或不利的系统很有用。

3. 约束微分

另一种指标降低方法是直接微分 DAE 的代数约束以降低指标。

  • 识别约束:单独求解微分方程的代数部分。
  • 微分约束:所有代数约束都必须相对于时间进行微分;这会产生新的微分方程。

这种方法简单明了,可以与其他技术结合使用以实现所需的指标降低。

微分代数方程 (DAE) 的应用

1. 机械系统

机器人技术

机器人系统的典型机制包括机械臂、关节、传感器及其相互关系。DAE 在建模此类系统中至关重要,因为它们可以通过微分方程考虑动力学,并通过代数方程考虑约束。

2. 电路

SPICE 仿真

SPICE:带集成电路重点的仿真程序是一种用于模拟电路电气方面的流行工具。DAE 在 SPICE 仿真中很重要,因为它们描述了电压和电流以及电路元件之间的耦合。

3. 化学过程控制

在化学工程领域,DAE 有助于化学过程的描述性建模和控制。

4. 生物系统建模

代谢网络、细胞信号传导和认知相关的神经回路中的生物系统本质上是多组分系统。这些系统使用 DAE 建模,DAE 预测生物过程的动力学以及与物理和生化定律和法规的符合性。

结论

微分代数方程 (DAE) 的动态和代数特性使它们能够表示广泛的系统,包括生物、化学、机械和电气系统。DAE 有助于机械系统中的机械臂仿真和车辆仿真。它们提高了电路分析和优化,尤其是在 SPICE 仿真中。DAE 通过精确表征传输和反应来提高化学过程的效率。


下一个主题数字信号处理