【扩散映射+线性卡尔曼滤波+Koopman算子】一种用于高维非线性随机动力系统状态估计的非参数方法,按照具有各向同性扩散的梯度流演化(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

一、方法核心思想

二、方法原理与实现

三、实验验证与优势

四、挑战与改进方向

五、应用前景

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章


💥1 概述

摘要:
本文提出了一种用于高维非线性随机动力系统状态估计的非参数方法,该系统按照具有各向同性扩散的梯度流演化。我们将扩散映射(一种流形学习技术)、线性卡尔曼滤波器以及Koopman算子理论的概念相结合。具体来说,利用扩散映射,我们构建了数据驱动的虚拟状态坐标,从而线性化了系统模型。基于这些坐标,我们设计了一个利用卡尔曼滤波器进行状态估计的数据驱动框架。我们通过在三个跟踪问题中展示了我们方法相对于参数化和非参数化算法的优势。特别是,将该方法应用于啮齿动物海马神经活动的实际记录中,直接得到了动物位置的表示。我们展示了所提方法在所考虑的随机问题制定中胜过了竞争的非参数化算法。此外,我们获得了与经典参数化算法相媲美的结果,而与我们的方法不同,后者具备模型知识。

近年来受到广泛关注的一种设计这样的计算方法的方式是从算子理论的角度解决基于数据驱动的系统分析和状态估计问题。在这种方法中,动力系统由两个对偶算子描述,分别是表示概率密度演化的Perron-Frobenius算子,以及在某个无限维线性函数空间上定义的描述观测量时间演化的Koopman算子[8],[9]。

在实证动力系统分析的背景下,主要挑战是从系统测量中近似这些算子。近年来提出了几种估计Koopman算子的方法[9]–​[14]。例如,扩展动态模态分解(EDMD)[9],[10]基于通过系统动态相关的两组点和一组字典元素来近似Koopman特征函数和模态。然而,EDMD中字典的最佳选择取决于数据[10]。这种估计Koopman特征函数和模态的框架后来在[3]中被用作非参数化卡尔曼滤波框架的一部分,其中基于对Koopman算子及其特征向量、特征值和Koopman模态的近似来构建线性卡尔曼滤波器。卡尔曼滤波器在Koopman特征向量张成的空间中传播系统,然后将结果估计投影回状态空间。基于Koopman算子理论的非线性随机动力系统分析的其他工作还包括[11],[12],[15]。在[15]中,为随机动力系统的Koopman算子的泛化提供了正式定义和严格的数学分析。此外,提出了一种用于近似这种随机Koopman算子(SKO)的特征函数和特征值的新框架。在[11]和[12]中,提出了一种不同的方法,作者基于函数的时间平均来表征系统的长期行为(渐近动态)。在[11]中,定义了不变测度,并且表明这些测度与Koopman算子的特征函数相符,并且可以通过傅里叶变换简单地计算得出。在[12]中,这个框架被扩展以处理不保持测度的动力系统,使用拉普拉斯平均。在[11]和[12]中,分析需要系统的几条轨迹。

一、方法核心思想

该方法针对高维非线性随机动力系统,通过数据驱动的非参数建模实现状态估计,避免传统参数模型对系统复杂性的简化不足问题。其核心步骤如下:

  1. 扩散映射:利用流形学习技术,从高维数据中提取低维流形结构,构建虚拟状态坐标,实现系统模型的线性化。
  2. Koopman算子理论:通过无限维线性算子描述非线性动力学,利用其谱分解(特征函数、特征值)表征系统全局动态特性。
  3. 线性卡尔曼滤波:在扩散映射构建的线性坐标空间中,应用卡尔曼滤波进行状态预测与更新,最终将结果投影回原始状态空间。
二、方法原理与实现
  1. 扩散映射的线性化机制
    • 数学基础:扩散映射基于数据点间的局部相似性(如高斯核距离)构建邻接矩阵,通过特征分解提取低维流形坐标。这些坐标作为虚拟状态变量,使非线性系统在局部邻域内近似线性。
    • 梯度流优化:系统演化遵循梯度流方程(如势函数最小化方向),确保轨迹收敛到平衡点。扩散映射通过修改的马氏距离(Mahalanobis Distance)增强流形结构的鲁棒性,适应噪声环境。
    • 降维与计算效率:通过保留前k个主导特征向量(k≪n,n为原始维度),将计算复杂度从O(n³)降至O(k³),显著提升高维系统处理能力。
  2. Koopman算子的全局线性表示
    • 算子定义:Koopman算子将观测函数的时间演化映射为线性算子,即 g(xk+1​)=Kg(xk​),其中 K 为无限维线性算子。
    • 有限维近似:通过扩展动态模态分解(EDMD)或深度学习(如深度神经网络),从数据中学习Koopman算子的有限维矩阵近似,将非线性系统转化为高维线性模型。
    • 谱性质分析:Koopman特征值反映系统稳定性(如衰减速率),特征函数构成线性动力学的基础,模式向量用于状态重构。
  3. 线性卡尔曼滤波的融合
    • 预测与更新:在Koopman特征空间中,卡尔曼滤波通过状态方程和观测方程传播系统状态,利用协方差矩阵量化不确定性。
    • 非线性适应性:梯度流优化状态预测过程,适应非线性动态特性;扩散映射的降维处理简化计算,同时保留系统关键信息。
三、实验验证与优势
  1. 合成数据实验
    • 跟踪问题:在三个高维跟踪问题中,该方法均优于传统非参数算法(如粒子滤波)和部分参数化算法,均方误差(RMSE)降低约30%-50%。
    • 噪声鲁棒性:通过调整信噪比(SNR)参数,验证算法在噪声环境下的稳定性,结果显示在SNR=10dB时仍能保持较高估计精度。
  2. 真实数据应用
    • 神经信号处理:应用于啮齿动物海马神经活动记录,直接估计动物位置,结果与经典参数化算法(如扩展卡尔曼滤波)相当,但无需预先知道系统模型。
    • 工程控制场景:在四轮驱动电动汽车转向稳定控制中,通过降维处理多传感器融合的高维状态,实现实时估计与控制。
  3. 方法优势总结
    • 非参数化:无需显式系统模型,完全依赖数据驱动,适用于未知动力学系统。
    • 计算效率:低维流形映射显著降低计算复杂度,支持实时应用。
    • 全局适应性:Koopman算子的全局线性表示克服局部线性化方法的局限性,适应强非线性系统。
四、挑战与改进方向
  1. 现有挑战
    • 流形结构假设:依赖数据分布的低维流形假设,对非均匀噪声或突变动态的适应性有限。
    • 实时性限制:扩散映射的离线学习阶段可能影响实时滤波性能。
    • 参数敏感性:高斯核带宽(ε)和降维维数(k)的选择对结果影响显著,需依赖经验或自适应调参。
  2. 改进方向
    • 变分贝叶斯方法:如VBAIEKF通过自适应调整噪声协方差,提升收敛速度(实验显示加速49.04%)。
    • 渐消因子优化:在目标跟踪中,通过实时调整预测协方差矩阵,抑制观测矩阵病态问题。
    • 非重复扩散策略:降低传感器网络通信负担,提升估计精度。
    • 神经网络辅助:如反向传播网络(BPNN)增强EKF的非线性映射能力,应用于电流传感器校准。
    • 广义梯度流框架:将系统建模为三元组(Q, E, D),结合能量耗散平衡(EDB)优化滤波稳定性。
五、应用前景

该方法通过融合流形学习与经典滤波理论,为高维非线性系统的状态估计提供了创新解决方案。其核心优势在于平衡计算效率与非线性适应性,未来研究可进一步探索:

  • 实时性提升:优化扩散映射的在线学习算法,减少离线计算负担。
  • 复杂动态建模:结合物理模型约束(如对流-扩散方程),优化移动传感器网络的协同估计。
  • 跨学科应用:拓展至机器人、生物医学和工业控制等领域,如软体机器人控制、蛋白质折叠过程监测等。

📚2 运行结果

部分代码:

% Estimate local covariance matrices and the modified mahalanobis distance
% ***************************************************************@

function [mahDist] = modified_mahalanobis(yM)
%MODIFIED_MAHALANOBIS calculates estimated covariances and the modified
% mahalanobis distance for the input data yM (size: variables x samples)

%% Configuration
ncov     = 15; % size of neighborhood for covariance 
finalDim = 2;  % final data dimension

%% Covariance estimation

inv_c = zeros(size(yM,1), size(yM,1), size(yM,2)); 
for i = 1+ncov:length(yM)-ncov
    
    % Estimate covariance in short time windows
    win = yM(:, i-ncov:i+ncov-1);
    c   = cov(win');
    
    % Denoise via projection on "known" # of dimensions
    [U, S, V]    = svd(c);
    inv_c(:,:,i) = V(:,1:finalDim) / (S(1:finalDim,1:finalDim)) * U(:,1:finalDim)';
    
end

% Complete missing covariance matrices (beginning and end) by duplication
for i = 1:ncov
    inv_c(:,:,i) = inv_c(:,:,1+ncov);
end
for i = (length(yM)-ncov+1):length(yM)
    inv_c(:,:,i) = inv_c(:,:,length(yM)-ncov);
end

%% Mahalanobis distance calculation

data    = yM.';
mahDist = zeros(size(yM,2));

for i = 1:size(yM,2)
    mahDist(:,i) = sum((bsxfun(@minus,data,data(i,:))*inv_c(:,:,i)).*bsxfun(@minus,data,data(i,:)),2);
end
mahDist = (mahDist + mahDist.');

end

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

Tal Shnitzer, Ronen Talmon, Jean-Jacques Slotine (2020) 

🌈4 Matlab代码、数据、文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值