try ai
科普
编辑
分享
反馈
  • 带控制的动态模态分解 (DMDc)

带控制的动态模态分解 (DMDc)

SciencePedia玻尔百科
核心要点
  • DMDc 通过显式地对外部控制输入的影响进行建模,将系统的内部“漂移”与外部“驱动”分离开来,从而扩展了标准 DMD。
  • 该方法利用单次线性最小二乘回归,从时间序列数据中辨识出线性状态空间模型(xk+1=Axk+Bukx_{k+1} = Ax_k + Bu_kxk+1​=Axk​+Buk​)。
  • 采用持续激励输入的恰当实验设计对于确保系统动态和控制响应的唯一可辨识性至关重要。
  • 通过 Koopman 算子框架,扩展 DMDc (EDMDc) 能够通过在提升的可观测量空间中寻找线性表示来为复杂的非线性系统建模。

引言

在理解和预测复杂系统行为的探索中——从机翼上的气流到发电厂的热力学动态——数据驱动方法已变得不可或缺。虽然像动态模态分解 (DMD) 这样的技术在从无强迫系统中提取相干模式方面表现出色,但当系统处于主动控制之下时,它们便会失效。它们无法区分系统的内在行为与其对外部输入的反应,从而导致模型存在缺陷。这一知识鸿沟正是带控制的动态模态分解 (DMDc) 所要解决的问题,它提供了一个强大的框架来解开这些影响。本文探讨了 DMDc 的理论与实践。在第一部分“原理与机制”中,我们将深入研究 DMDc 背后精妙的线性代数,它使得分离系统内部动态与控制响应成为可能;讨论数据收集和共线性的实际挑战;并了解该方法如何通过 Koopman 算子扩展到非线性系统。随后,“应用与跨学科联系”部分将展示该技术如何应用于解决系统辨识、控制设计以及创建自适应数字孪生等宏伟目标中的现实世界挑战。

原理与机制

想象一下,你正在试图理解一艘小船在湖面上的运动。如果你只是观察它漂浮,你或许能推断出底层水流的模式。这是许多经典分析方法的核心:观察系统自然的、无强迫的演化,以理解其内部动态。标准的​​动态模态分解 (DMD)​​ 正是如此;它观察“漂移”,并建立一个形如 xk+1=Axkx_{k+1} = A x_kxk+1​=Axk​ 的模型,其中矩阵 AAA 封装了系统的固有行为。

但如果湖面上有风,或者你开始划桨,情况会怎样?这些是外部力,或称​​输入​​。一个只了解漂移的简单模型会感到困惑。它会错误地将你划桨引起的船体运动归因于一种奇怪的新水流。它会混淆系统的内部性质与外部影响,导致对两者的理解都有偏差。要真正理解这艘船,你需要能够区分水的漂移和船桨的驱动。这正是​​带控制的动态模态分解 (DMDc)​​ 所实现的飞跃。

基本思想:分离漂移与驱动

DMDc 的哲学核心简单而深刻:建立一个模型,该模型为系统的内部动态和外部输入效应分别设置了“槽位”。DMDc 提出一个比简单自治模型稍丰富的模型:

xk+1≈Axk+Bukx_{k+1} \approx A x_k + B u_kxk+1​≈Axk​+Buk​

在这里,AxkA x_kAxk​ 项仍然代表“漂移”——即由于系统自身性质无论如何都会发生的那部分运动。新增的 BukB u_kBuk​ 项则代表“驱动”。向量 uku_kuk​ 是我们在时刻 kkk 施加的已知控制输入(我们划桨的力),而矩阵 BBB 描述了该输入如何影响系统状态(船桨的推力如何转化为船的运动)。通过提供这两个独立的项,我们让模型有机会解开这两种效应。

这种方法的精妙之处在于它如何利用线性代数的工具优雅地得到解决。我们从收集数据开始。我们在一系列时间步上观察系统,记录状态 xkx_kxk​ 和为达到下一状态 xk+1x_{k+1}xk+1​ 所施加的输入 uku_kuk​。然后我们将这些快照堆叠成大型数据矩阵:

X=[x0x1⋯xm−1],X′=[x1x2⋯xm],U=[u0u1⋯um−1]X = \begin{bmatrix} x_0 & x_1 & \cdots & x_{m-1} \end{bmatrix}, \quad X' = \begin{bmatrix} x_1 & x_2 & \cdots & x_m \end{bmatrix}, \quad U = \begin{bmatrix} u_0 & u_1 & \cdots & u_{m-1} \end{bmatrix}X=[x0​​x1​​⋯​xm−1​​],X′=[x1​​x2​​⋯​xm​​],U=[u0​​u1​​⋯​um−1​​]

所有这些快照的 DMDc 方程可以写成一个非常紧凑的形式:X′≈AX+BUX' \approx A X + B UX′≈AX+BU。我们可以通过将未知矩阵和数据矩阵捆绑在一起,使其更加紧凑:

X′≈[AB][XU]X' \approx \begin{bmatrix} A & B \end{bmatrix} \begin{bmatrix} X \\ U \end{bmatrix}X′≈[A​B​][XU​]

我们称组合系统矩阵为 G=[AB]G = \begin{bmatrix} A & B \end{bmatrix}G=[A​B​],组合数据矩阵为 Ω=[XU]\Omega = \begin{bmatrix} X \\ U \end{bmatrix}Ω=[XU​]。现在问题简化为求解方程 X′≈GΩX' \approx G \OmegaX′≈GΩ 以得到未知矩阵 GGG。这是一个经典的​​线性最小二乘​​问题。我们寻找矩阵 AAA 和 BBB,使得在所有数据上平均而言,预测值 Axk+BukA x_k + B u_kAxk​+Buk​ 尽可能接近观测到的现实 xk+1x_{k+1}xk+1​。解可以通过​​Moore-Penrose 伪逆​​找到,该伪逆用匕首符号(†\dagger†)表示,它提供了最佳的近似解:

G^=X′Ω†\widehat{G} = X' \Omega^\daggerG=X′Ω†

得到的矩阵 G^\widehat{G}G 包含了我们对 A^\widehat{A}A 和 B^\widehat{B}B 的估计。这一单一、简洁的操作使我们能够同时辨识出系统的内部动态及其对外部力的响应。可以预见,当存在外部输入时,与忽略输入的标准 DMD 相比,该方法能提供对系统真实内部动态 AAA 的更为精确的模型。这种方法的强大之处在于它直接与控制理论中的其他经典技术相联系,如本征系统实现算法 (ERA),它们常常从不同视角对系统行为得出相同的结果。整个过程是一个基于你所提供数据的直接(尽管有时冗长)的计算。

提问的艺术:数据与可辨识性

求解 AAA 和 BBB 看似直接,但一个关键问题潜藏其下:我们能计算出一个解,就意味着它是正确的解吗?答案完全取决于我们数据的质量。从数据中寻找模型就像审问一个沉默的系统;我们必须提出正确的问题才能得到有意义的答案。在这里,“提问”意味着设计我们施加的输入信号 uku_kuk​。

这引出了​​可辨识性​​的概念。如果我们可以从测量中唯一地确定矩阵 AAA 和 BBB,那么系统就是可辨识的。为此,级联数据矩阵 Ω=[XU]\Omega = \begin{bmatrix} X \\ U \end{bmatrix}Ω=[XU​] 必须满足一个特定的数学性质:其行向量必须是线性无关的。用技术术语来说,其秩必须等于其行数 n+pn+pn+p(其中 nnn 是状态维数,ppp 是输入维数)。

这在直观上意味着什么?这意味着我们的输入 uku_kuk​ 必须迫使系统探索其全部行为范围。UUU 中的输入数据必须足够“丰富”,以使其影响不会被误认为是系统在 XXX 中捕获的自然漂移。如果我们的输入懒散而缺乏新意——例如,一个恒定的推力——系统的响应可能看起来就像其自然行为模式之一。在这种情况下,Ω\OmegaΩ 的行向量变得线性相关,数学计算会失效,我们便无法唯一地分离 AAA 的效应和 BBB 的效应。

那么,我们如何设计一个好的实验来确保可辨识性呢?

  1. ​​激励系统​​:输入信号必须是​​持续激励​​的。这意味着它应包含丰富的光谱频率。与其使用单一的推力,不如考虑一系列复杂的推拉组合。一个常见的策略是使用​​多正弦​​输入,即多个不同频率正弦波的叠加,甚至是经过仔细滤波的随机噪声。这会以多种不同方式“摇晃”系统,从而揭示其在各种条件下的响应。
  2. ​​充分采样​​:我们必须以足够快的速度测量系统的响应,以捕捉其最快的运动。​​奈奎斯特采样准则​​告诉我们,采样速率至少需要是系统动态中最高频率的两倍,以避免混叠,混叠会模糊我们的视野。
  3. ​​分离效应​​:当处理多个输入时(例如,房间里的多个加热器),一个有效的策略是逐个激活它们。通过对一个加热器施加阶跃输入并观察响应,然后关闭它,让系统稳定下来,再对下一个加热器重复此过程,我们可以清晰地将观察到的变化归因于特定的输入,这对于准确辨识 BBB 矩阵的各列至关重要。

一个遵循这些原则精心设计的实验,是收集能让 DMDc 可靠地揭示系统背后隐藏规律的数据的关键。

当事情变得棘手:共线性的挑战

即使实验设计得很好,我们也可能遇到一个微妙但严重的问题,称为​​共线性​​。当输入信号 uku_kuk​ 和系统状态响应 xkx_kxk​ 变得近似线性相关时,就会发生这种情况。想象一个惯性非常大的系统,比如一个巨大的工业熔炉。如果我们施加一个缓慢的加热输入,温度会缓慢平稳地升高。这种缓慢的上升可能看起来与熔炉在无人干预时其自然的、缓慢的冷却过程几乎完全相同。

在这种情况下,XXX 中的数据行(代表自然动态)和 UUU 中的数据行(代表输入)变得几乎无法区分。最小二乘问题变得​​病态​​。这就像试图将铅笔尖朝下立在桌上;数据中最轻微的噪声都可能导致 AAA 和 BBB 的解爆炸到物理上无意义的巨大数值。算法根本无法判断缓慢的温度变化是由系统自身的热特性 (AAA) 引起的,还是由缓慢的加热输入 (BBB) 引起的。

解决这一困境的方法是一种优美的数学技巧,称为​​正则化​​。此处最常用的形式是​​Tikhonov 正则化​​,也称为岭回归。我们通过增加一个小的惩罚项来修正问题,该惩罚项不鼓励 AAA 和 BBB 的元素变得过大。目标函数变为最小化一个组合成本:

J(A,B)=∥X′−AX−BU∥F2+λA∥A∥F2+λB∥B∥F2J(A, B) = \|X' - AX - BU\|_F^2 + \lambda_A \|A\|_F^2 + \lambda_B \|B\|_F^2J(A,B)=∥X′−AX−BU∥F2​+λA​∥A∥F2​+λB​∥B∥F2​

这就像增加一个看不见的微小弹簧来帮助稳定铅笔。正则化参数 λA\lambda_AλA​ 和 λB\lambda_BλB​ 控制这个弹簧的“硬度”。通过增加这个惩罚项,我们引导算法找到一个具有较小系数的“更简单”的解,这通常更符合物理实际,且对噪声更具鲁棒性。这种技术优雅地处理了病态问题,使我们即使在数据信息不完全充分的情况下也能提取出稳定且有意义的模型。

超越线性:一窥 Koopman 宇宙

到目前为止,我们一直生活在一个舒适的线性世界里,假设我们的系统遵循简单的规则 xk+1=Axk+Bukx_{k+1} = A x_k + B u_kxk+1​=Axk​+Buk​。但现实世界充满了非线性。如果真实的动态由一个复杂的非线性函数 xk+1=f(xk,uk)x_{k+1} = f(x_k, u_k)xk+1​=f(xk​,uk​) 给出,我们的整个框架会崩溃吗?

在这里,我们遇到了一个来自现代动力学系统理论的惊人而优雅的思想:​​Koopman 算子​​。Koopman 理论的核心洞见是:虽然状态 xkx_kxk​ 的演化可能是非线性和复杂的,但状态的函数(称为​​可观测量​​)的演化却是完全线性的。

这听起来像魔术。一个非线性过程如何能产生线性演化?想象一下状态是一个单一的数字 xxx,其动态为 xk+1=xk2x_{k+1} = x_k^2xk+1​=xk2​。这是非线性的。现在,我们来看一组可观测量:g1(x)=xg_1(x) = xg1​(x)=x,g2(x)=x2g_2(x) = x^2g2​(x)=x2,g3(x)=x4g_3(x) = x^4g3​(x)=x4,等等。让我们看看它们是如何演化的:

  • g1(xk+1)=xk+1=xk2=g2(xk)g_1(x_{k+1}) = x_{k+1} = x_k^2 = g_2(x_k)g1​(xk+1​)=xk+1​=xk2​=g2​(xk​)
  • g2(xk+1)=xk+12=(xk2)2=xk4=g3(xk)g_2(x_{k+1}) = x_{k+1}^2 = (x_k^2)^2 = x_k^4 = g_3(x_k)g2​(xk+1​)=xk+12​=(xk2​)2=xk4​=g3​(xk​)

在这些可观测量构成的空间中,演化是完全线性的!这个思想允许我们将一个非线性问题提升到一个可能更高维的空间,使其变为线性。这就是​​扩展动态模态分解 (EDMD)​​ 的基础。

为了处理受控系统,我们得到了​​带控制的 EDMD (EDMDc)​​。我们不仅需要为状态选择一个可观测量字典 ψ(x)\psi(x)ψ(x),还需要为输入选择一个可观测量字典 ϕ(u)\phi(u)ϕ(u)。然后我们在这个提升的空间中寻求一个线性模型:

ψ(xk+1)≈Aψ(xk)+Bϕ(uk)\psi(x_{k+1}) \approx A \psi(x_k) + B \phi(u_k)ψ(xk+1​)≈Aψ(xk​)+Bϕ(uk​)

这非常强大。如果我们的真实系统有一个像 xi2ujx_i^2 u_jxi2​uj​ 这样的非线性项,标准 DMDc 会失败。但是使用 EDMDc,我们只要足够聪明地将可观测量 xi2x_i^2xi2​ 包含在我们的状态字典 ψ\psiψ 中,并将可观测量 uju_juj​ 包含在我们的输入字典 ϕ\phiϕ 中,就可以成功。线性回归随后会找到它们之间的联系。

这个更宏大的视角揭示了 DMDc 只是 EDMDc 的一个特例,其中我们选择的“字典”是最基本的一种:恒等函数(ψ(x)=x\psi(x)=xψ(x)=x, ϕ(u)=u\phi(u)=uϕ(u)=u)。从分离漂移和驱动的简单思想出发,我们一步步走向一个强大而统一的框架,它能够学习即使是复杂的非线性受控系统的线性表示,而这一切都由优雅且实用的线性代数工具所驱动。

应用与跨学科联系

在我们之前的讨论中,我们揭示了带控制的动态模态分解 (DMDc) 背后非凡的原理。我们看到,借助一点线性代数,我们便能将一个动力学系统复杂、旋转的舞蹈提炼成一个简单的线性规则:下一状态等于一个矩阵乘以当前状态,再加上另一个矩阵乘以控制输入。这是一个极具优雅的思想。但正如科学中任何美丽的理论一样,我们必须提出那个关键问题:它有什么用?这种抽象的数学工具在何处与现实接轨?

答案,正如我们即将看到的,是无处不在。DMDc 不仅仅是一个巧妙的技巧;它是一个多功能的透镜,一个通用翻译器,让我们能够理解、预测并最终驾驭我们周围的世界。让我们踏上一段旅程,探索其应用的广阔领域,从揭示隐藏运动规律的侦探工作,到为我们最复杂的机器构建活生生的、会学习的数字孪生的宏伟抱负。

数字侦探:揭示运动规律

想象一下,你面前有一个神秘的黑匣子。你不知道里面是什么,但你可以与它互动。你可以施加各种输入——一次推动、一个电压、一阵热量——并且可以测量它的响应。你的任务是弄清楚支配这个盒子行为的规则。这就是​​系统辨识​​的经典问题,也是 DMDc 最根本的应用。

给定一系列输入 uku_kuk​ 及其对应的测量状态 xkx_kxk​ 的时间序列数据,DMDc 提供了一个直接的方法来推断其主导的线性模型 xk+1=Axk+Bukx_{k+1} = Ax_k + Bu_kxk+1​=Axk​+Buk​。它通过求解一个庞大的最小二乘问题来实现这一点,实质上是找到能够最好地解释系统随时间演化的观测数据的矩阵 AAA 和 BBB。这是一种数字侦探工作;通过观察系统留在数据中的“指纹”,DMDc 推断出其潜在的运动规律。

这种从原始数据中提取模型的能力是所有其他应用建立的基石。在我们希望能控制一个系统之前,我们必须首先理解它。DMDc 给予我们这种理解,它不是来自手动推导的教科书方程,而是直接来自观测。它使科学过程的一部分自动化了。

控制的艺术:从模型到行动

一旦我们的数字侦探工作为我们提供了矩阵 AAA 和 BBB,一个全新的世界就此打开:控制理论的世界。模型不仅仅用于被动预测;它也是行动的蓝图。输入矩阵 BBB 告诉我们,我们的执行器如何“推动”系统的动态,而状态矩阵 AAA 则告诉我们这些推动如何随时间传播。

但一个关键问题出现了:我们的控制权限足够吗?我们真的能将系统引导到期望的状态吗?或者系统动态中是否存在某些部分对我们的影响免疫?这就是​​可控性​​的问题。如果通过一系列巧妙的输入,我们可以将系统的状态从任何起点驱动到任何目的地,那么该系统就是可控的。

在这里,DMDc 充当了一座强大的桥梁,将数据科学的世界与经典控制工程的严谨框架连接起来。在我们学习了一个例如热流场的降阶模型后,我们可以从学到的 AAA 和 BBB 矩阵构建系统的可控性矩阵。通过检查这个矩阵的秩,我们可以从数学上验证我们选择的执行器(例如,加热器)是否有权限影响我们识别出的所有主导热模态。如果发现某个模态是不可控的,模型会告诉我们,无论如何调整现有执行器都无法影响它;我们必须对系统进行物理上的重新设计,也许是移动一个执行器或增加一个新的。这是从简单地拟合数据到做出可操作的工程决策的深刻飞跃。

驾驭现实世界:驯服杂乱数据

现实世界很少像教科书问题那样干净。测量是有噪声的,物理系统常常会受到缓慢漂移和变化的背景条件的影响。对一个均值漂移的系统(例如,入口温度缓慢上升的热流)的数据天真地应用 DMD 可能会导致灾难。缓慢的漂移可能会“泄漏”到动态模态中,污染模型,使其看起来好像存在实际上并不存在的低频振荡。

这正是 DMDc 的“控制”方面展示其真正灵活性的地方。我们可以用它来解释任何已知的外部影响,而不仅仅是物理执行器。如果我们能够测量或建模系统中的缓慢漂移,我们可以将其视为动力学的另一个“输入”。

考虑入口温度上升的热流。我们可以描述这种热漂移的空间模式,称其为向量 bbb,以及其时变幅度 μ(t)\mu(t)μ(t)。通过在 DMDc 回归中包含这一已知影响,我们指示算法:“在考虑了这种缓慢漂移的影响后,找出波动的动态。” 算法会顺从地将两者分开,为我们提供一个关于真实底层波动的干净、无偏的模型。这展示了一个优美的概念转变:“控制”不仅仅是我们拉动的杠杆,而是系统环境中任何我们可以量化其影响并将其分离出来的部分,从而使我们能够以惊人的清晰度看到真实的动态。

极端环境下的工程:从颤振的机翼到数字孪生

有了这个强大而灵活的工具,我们可以涉足现代科学和工程中一些最具挑战性的领域。

在​​航空航天工程​​中,理解和控制非定常流是关乎安全和效率的问题。考虑在跨音速下飞机机翼上发生的危险“抖振”现象,其中气流分离并产生剧烈的、自持的振荡。为了设计一个抑制这种现象的控制系统,工程师首先需要一个精确的、低维的模型。DMDc 是一个完美的选择。但要获得好的模型,就需要好的数据。在这里,理论与实践以一种优美的舞蹈形式相遇。可控性及其对偶概念可观测性的数学理论,为实验设计提供了指导。为了最好地辨识一个麻烦的模态,应该将执行器放置在“感受性”高的区域(即模态对强迫最敏感的地方),并将传感器放置在“波腹”(即模态运动最大的地方)。这种协同作用——利用物理直觉来指导为数学算法收集数据,而该算法又为物理控制建立模型——是现代工程的精髓。

也许 DMDc 最雄心勃勃的应用在于创建​​数字孪生​​。数字孪生是一个物理系统——发电厂、喷气发动机、电池组——的活生生的、不断演化的虚拟副本。它由实时传感器数据供给,并用于监控、预测和优化。DMDc 可以作为这种孪生的核心预测引擎。想象一个连续的循环:

  1. DMDc 模型预测系统在下一个时间步的状态。
  2. 来自物理资产的新测量数据到达。
  3. 状态估计器,如卡尔曼滤波器,将模型的预测与带噪声的测量值融合,生成一个修正后的、更准确的当前状态估计。
  4. 这个新的、修正过的数据点随后被用来更新DMDc 模型本身,使得数字孪生能够随着物理资产的老化或操作条件的变化而适应和学习。

这在物理世界和数字世界之间创建了一个动态的、自我修正的反馈回路。它将 DMDc 从一个静态分析工具转变为一个持续学习的赛博物理系统跳动的心脏。

超越线性:Koopman 连接

到目前为止,我们一直沉浸在线性模型的力量中。但我们知道世界本质上是非线性的。当线性近似 xk+1≈Axk+Bukx_{k+1} \approx Ax_k + Bu_kxk+1​≈Axk​+Buk​ 变得不够好时会发生什么?我们的旅程就此结束了吗?

令人惊奇的是,并没有。DMDc 的框架可以通过 Koopman 算子理论中一个惊人优雅的思想,扩展到处理一大类非线性系统。其核心洞见是:虽然状态 xxx 的动态可能是非线性的,但可能存在一组不同的变量——可观测量,它们是 xxx 的函数——其动态是线性的。

这就是​​带控制的扩展动态模态分解 (EDMDc)​​ 背后的原理。我们不再对原始状态 xxx 进行建模,而是选择一个函数字典 ψ(x)\psi(x)ψ(x),并在这个新的、“提升”的空间中寻求一个线性模型:

ψ(xk+1)≈Aψ(xk)+Bϕ(uk)\psi(x_{k+1}) \approx A \psi(x_k) + B \phi(u_k)ψ(xk+1​)≈Aψ(xk​)+Bϕ(uk​)

在这里,ψ(x)\psi(x)ψ(x) 可以包括原始状态变量,也可以包括像 x2x^2x2、sin⁡(x)\sin(x)sin(x) 或状态变量的乘积等非线性项。我们甚至可以使用字典 ϕ(u)\phi(u)ϕ(u) 来提升输入。真正的魔力在于,寻找最佳拟合的矩阵 AAA 和 BBB 仍然是一个简单的线性最小二乘问题!我们将非线性的困难推向了选择一个好的可观测量字典的艺术。

例如,为了捕捉状态和输入相互乘积的双线性相互作用,我们可以简单地将它们的乘积(例如,通过克罗内克积)包含在我们的回归特征集中。这使得 DMDc 的线性回归引擎能够在不改变核心算法的情况下,为高度复杂的、依赖于状态的控制效应建模。这是一个深刻的视角转变。我们不是改变工具,而是改变我们观察的对象。这将 DMDc 从一个线性系统辨识工具提升为一个用于发现非线性动态的线性表示的通用框架,使其与一系列先进的数据驱动方法并列,但又区别于那些寻求捕捉最大方差的方法,如本征正交分解 (POD),或那些从一开始就假设特定非线性模型结构的方法,如算子推断 (Operator Inference)。当然,必须小心:要证明在这个抽象的“提升”空间中的可控性,需要仔细思考,以确保它能转化为对原始物理状态的实际控制权。

一种通用的动力学语言

我们的旅程表明,DMDc 远不止是一个单一的算法。它是一种哲学,一种灵活而强大的语言,用以探究数据,揭示动力学系统的秘密。它始于寻找最佳拟合线性映射的简单前提,但将我们带到了控制工程、实验设计、实时自适应建模以及非线性系统深层理论的前沿。它向我们展示,有时科学中最强大的思想,是那些在一个看起来无比复杂的世界中揭示出隐藏的简单性和统一性的思想。