💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
摘要
本文研究了基于共识的分布式滤波器在离散时间设置中对有向图和无向图的稳定性和最优性如何取决于共识步数。通过引入两种新算法,一种基于估计的动态平均的简化版本,另一种更复杂的版本,其中还交换了本地误差协方差矩阵,我们能够得出完整的理论分析。特别是,我们表明仅通过动态平均就足以近似最优集中式估计,如果共识步数足够大,并且共识步数所需的稳定性可以通过分布式方式计算得出。这些结果揭示了在线性时不变系统的基本情况下,这类算法的所有现有提案所共享的优势以及基本限制,并且这对于分析更复杂情况具有相关性。
近年来,低成本传感器的可用性和无线网络的普及促进了基于无线传感器网络的应用的发展,这些应用涵盖了广泛的领域,如环境监测(Silva等,2015)、空中目标跟踪(Sun & Xin,2015)、空间态势感知(Jia等,2016)、航天器导航(Vu & Rahmani,2015)等。主要是由于人们对将无线传感器网络应用于大规模估计和控制问题的兴趣激增,分布式估计和滤波已成为滤波理论领域中最活跃的话题之一(He等,2020)。
分布式估计是基于多个传感器节点的合作进行大规模感知任务的使用,这些任务无法由单个设备完成。在完全分布式的架构中使用冗余和协作信息源可能增强部署的灵活性、效率、鲁棒性和估计的准确性。分布式算法规定了信息如何在网络的节点之间交换和处理,以便在每个节点只能与其邻居通信的约束下达到目标系统状态的共享估计。额外的挑战包括单个节点的有限处理能力,通常是低成本设备,有限的通信带宽,动态网络拓扑,不可靠通信信道和/或通信延迟的存在,传感器相对于其对目标系统的测量的异质性以及有限的能量(He等,2020)。通常假设节点可以是通信节点,只具有通信和处理能力,或者是传感器节点,除了具有感知能力外还具有(Battistelli等,2015)。
鉴于此,分布式估计算法评估了以下几个方面:(a)估计的准确性,线性高斯系统的最佳参考是使用所有传感器的测量值的集中式卡尔曼滤波器;(b)节点之间估计的一致性,在估计用于控制目的时尤为重要;(c)通信成本,表示相邻节点之间交换的信息量;(d)能够在最小的网络连接和系统集体可观测性要求下保证稳定性的能力。
在共识滤波器中,相邻节点之间交换的信息可以是本地状态估计(估计一致性,CE),如卡尔曼共识滤波器(KCF)(Olfati-Saber,2007),也可以是信息(矩阵-向量)对(信息一致性,CI(Battistelli等,2015)),或者创新信息对(测量一致性,CM)。 CI滤波器(Battistelli和Chisci,2014,He等,2018,Hlinka等,2014)在执行一个共识步骤时退化为协方差交集方法(Julier&Uhlmann,2017),它们通常不会收敛到最优的集中式估计,无论共识步骤和融合策略的数量如何,因为它们未充分考虑创新项,但具有良好的稳定性属性,并且即使对于有限数量的共识迭代,也会生成无偏差和一致的局部估计。 CM滤波器包括最初在Olfati-Saber(2005)中提出的CM卡尔曼滤波器(CMKF)及其相关变体(Kamgarpour和Tomlin,2008,Li等,2018,Wu等,2018)和流言版本(Wan等,2018),以及迭代共识滤波器(ICF,Kamal等,2013)。 当共识步骤的数量趋于无穷大时,这些滤波器恢复了最优的集中式性能,但不保持局部估计的一致性。 为了解决这个问题,Battistelli等人(2015)的混合CM和CI(HCMCI)滤波器在先验估计和新测量上提出了双重共识迭代,从而实现了错误稳定性和任意数量的共识步骤的一致性。 最后,在分布式优化的视角下,Ryu和Back(2019)推导出了一个CI滤波器,该滤波器收敛到最优的集中式估计。
受到文献中完整理论结果缺乏的启发,本文探讨了共识滤波器的一些基本属性,即(i)当共识步骤数量增加时收敛到最优估计;(ii)协方差矩阵交换对性能及相关稳定性问题的影响;(iii)计算达到错误稳定所需的最小共识步骤数。 这种分析突出了适用于更一般系统类别的基本限制和权衡。
以下是论文的贡献和创新的总结:
(1)我们描述了两种CE滤波器。在简单的一种中(分布式卡尔曼滤波器,DKF),只交换估计值。在另一种(稳态修改的分布式卡尔曼滤波器,SMDKF)中,还交换协方差矩阵。通过仿真,我们展示了SMDKF产生的性能与CM滤波器相同,从而建立了CE和CM共识滤波器之间的等价性。
(2)我们对这些滤波器进行了完整的理论分析:稳定性和性能以及它们与共识步骤数量的依赖关系。由于我们表明文献中提出的算法没有一个在只有一个共识步骤时具有可接受的性能,我们认为在实践中,这个结果比仅仅建立任意数量的共识步骤的错误的稳定性更为重要。
(3)本文分析的一个突出而新的结果是,对于大量的共识步骤,仅交换估计值的简单算法趋向于最优的集中式估计,类似于连续时间情况(Battilotti等人,2020)。
(4)我们证明了,与预期相符,交换协方差矩阵的算法减少了估计误差均方稳定所需的最小共识步骤数。
(5)我们证明了,对于静态网络,可以分布式计算出实现稳定所需的最小共识步骤数。
该问题在第2节中形式化。DKF及其属性是第3节的对象。我们在第4节考虑了有向图,在第5节考虑了确定性情况。第6节介绍并研究了SMDKF。在第7节,针对一个边缘稳定和一个不稳定的系统,我们通过仿真对几种分布式共识滤波器进行了比较。这个比较验证了理论分析,并突显了现有方法的共同局限性。
1. 问题背景与研究意义
在传感器网络、多智能体系统等领域,分布式状态估计通过局部通信实现全局状态估计,避免了集中式处理的单点故障和通信瓶颈。基于共识的分布式滤波器(如DKF、SMDKF、CI、ICF、HCMCI)通过融合局部观测和邻居节点信息,在保证稳定性的同时逼近集中式卡尔曼滤波器(KF)的最优性。其核心挑战在于:
- 稳定性:需满足动态系统可观性、网络连通性、共识步数下限等条件。
- 最优性:需权衡通信成本与估计精度,逼近集中式KF的均方误差(MSE)。
- 鲁棒性:需适应异构网络(拓扑稀疏、时延、丢包等)的扰动。
2. 核心算法原理与架构
2.1 算法定义与数学模型
-
KF(集中式卡尔曼滤波器):
最小化状态估计误差协方差,核心方程为:其中 Kk 为卡尔曼增益,P 为误差协方差矩阵 。
-
DKF(分布式卡尔曼滤波器):
将KF分解为局部滤波器与共识滤波器:- 局部更新:节点 ii 计算局部估计 x^ix^i 和协方差 PiPi。
- 共识融合:通过低通/带通共识滤波器交换加权测量和逆协方差矩阵,近似全局平均值:
通信复杂度为 O(n2),非可扩展 。
-
SMDKF(简化动态平均DKF):
仅交换状态估计值,不交换协方差矩阵,降低通信负担:稳定性依赖足够大的 γγ 。
-
CI(协方差交集):
保守融合策略,避免协方差矩阵不一致:不收敛到最优估计,但稳定性强 。
-
ICF(信息加权共识滤波器):
融合信息向量和矩阵:需全局网络大小信息,限制应用 。
-
HCMCI(混合CM-CI滤波器):
结合共识测量(CM)和共识信息(CI)的优势:- HCMCI-1:仅融合状态估计。
- HCMCI-2:额外交换局部误差协方差矩阵。
在集体可观性和网络连通性下稳定 。
2.2 架构设计关键
-
共识协议:Metropolis权重保证双随机性,加速收敛 :
-
事件触发机制:减少通信频率,仅当估计偏差超阈值时交换数据 。
-
时滞处理:Lyapunov函数分析时滞系统稳定性,LMI设计滤波器参数 。
3. 稳定性分析
3.1 稳定性条件
算法 | 稳定性条件 | 理论依据 |
---|---|---|
DKF/SMDKF | γ≥γ0(γ0 依赖网络连通性) | 代数连通性 λ2(L) |
CI/ICF | 任意 γ 下稳定(保守融合避免发散) | 协方差有界性 |
HCMCI | 集体可观性 + 网络连通图无孤立节点 | 李雅普诺夫分析 |
所有算法 | 不稳定系统需更大 γ0(如 γ0=71) | Riccati方程收敛性 |
3.2 共识步数(γγ)的关键影响
- 连通图(10节点) :γ0=1,γ=4 时MSE逼近集中式KF 。
- 链式图(30节点) :γ0=31(弱连通性需更多迭代)。
- 不稳定系统:γ0=71,γ≤20 时所有算法性能不可接受 。
稳定性-通信成本权衡:
- 低 γγ:通信负担轻,但估计误差大(尤其弱连通网络)。
- 高 γγ:逼近最优估计,但延迟和能耗增加。
4. 最优性与性能评估
4.1 评估指标
- MSE(均方误差) :对比集中式KF的基准值 。
- 估计方差标准差:衡量节点间一致性 。
- 收敛速度:达到稳态MSE所需时间步数。
- 鲁棒性:在丢包、时延下的性能保持率 。
4.2 性能对比(仿真结果)
算法 | 最优性 | 稳定性 | 通信复杂度 | 适用场景 |
---|---|---|---|---|
KF | 全局最优(基准) | 稳定 | O(n2)O(n2) | 集中式系统 |
DKF | γγ 足够大时逼近KF | 依赖 γγ | O(n2)O(n2) | 强连通网络 |
SMDKF | 同DKF | 同DKF | O(n)O(n) | 资源受限网络 |
CI | 次优(有偏估计) | 强鲁棒性 | O(n)O(n) | 高噪声/异构网络 |
ICF | γγ 大时接近KF | 中等 | O(n)O(n) | 固定拓扑网络 |
HCMCI-1 | 逼近KF,优于CI | 高 | O(n)O(n) | 一般分布式系统 |
HCMCI-2 | 最优(协方差交换提升精度) | 高 | O(n2)O(n2) | 高精度要求场景 |
关键结论:
- 拓扑影响:链式拓扑中,所有算法在 γ=20γ=20 时MSE超限(+300% vs KF)。
- 算法等效性:SMDKF与ICF在相同 γγ 下性能等价 。
- 渐进行为:
- DKF/SMDKF/ICF:时间增长时估计误差发散(limt→∞MSE=∞limt→∞MSE=∞)。
- CI/HCMCI:渐进收敛到有限值 。
5. 异构网络下的鲁棒性分析
5.1 挑战与表现
- 通信时延:
- DKF/ICF:时延导致振荡甚至发散 。
- CI/HCMCI:保守融合抑制时延影响。
- 丢包率:
- ICF:丢包超10%时MSE显著上升(因需全局信息)。
- HCMCI-2:协方差冗余设计容忍20%丢包。
- 拓扑突变:
- 所有算法需重构共识权重,HCMCI因混合架构恢复最快 。
5.2 改进策略
- 自适应事件触发:动态调整数据发送阈值,节省带宽 。
- 量化滤波:降低数据精度以适配低带宽网络 。
- 鲁棒权重设计:Metropolis权重增强拓扑适应性 。
6. 研究展望
- 理论方向:
- 非理想权值收敛下的稳定性证明(现有理论依赖权值收敛至 1/∣N∣1/∣N∣)。
- 离散时间HCMCI的严格稳定性分析(当前限于连续时间)。
- 工程方向:
- 5G网络下时延补偿机制 。
- 边缘计算部署的轻量化算法(如SMDKF变体)。
- 多目标跟踪中的分布式伯努利滤波器 。
核心结论:基于共识的分布式滤波器需在稳定性(γ≥γ0γ≥γ0)、最优性(逼近KF的MSE)、鲁棒性(抗时延/丢包)三者间权衡。HCMCI-2在多数场景综合性能最优,但通信成本较高;CI和SMDKF更适资源受限的异构网络。未来研究需聚焦于自适应共识步长和理论完备性提升。
📚2 运行结果
主函数代码:
%% Simulation script for:
% - DKF (stationary, no exchange of matrices, single consensus cycle)
% - SMDKF (information form, exchange of matrices offline, stationary)
% - ICF [Kamal, 2013]
% - CI_filter (CIKF)
% - HCMCI-1 [Battistelli, 2015]
% - HCMCI-2 [Battistelli, 2015]
% - centralized Kalman Filter
% rev 24.09.20 Filippo Cacace
%% initialize system & graph
init_ADKF;
%============================================
% Number of simulations
nsim= 1e1; %###
%============================================
% IMPORTANT: number of consensus iterations
gamma= 1e1;
%====================================================================
% IMPORTANT: weight matrix for DKF, SMDKF
pig= max(diag(Lap)); % best uniform choice
%============================================
mseK= zeros(nsim,1);
mseA= zeros(nsim,N); % DKF filter
mseD= zeros(nsim,N); % SMDKF filter
mseC= zeros(nsim,N); % CIKF
mseICF= zeros(nsim,N); % ICF, consensus on measurements filter
mseH1= zeros(nsim,1); % HCMCI-1 filter
mseH2= zeros(nsim,1); % HCMCI-2 filter
tra= round(tf/5); % transient
tp= zeros(1,N);
%% Main simulation cycle
for i=1:nsim
[x,yN,ytot]= sistemaN(N,A,B,Q,qi,Ctot,Rtot,Ex0,Psix0,uk,tf,seed+i);
[t,xh,Kf,P]= KF(A,B,Ctot,Q,Rtot,Ex0,Psix0,uk,tf,ytot);
[~,xha,K,Pinf]= DKF(A,B,Ctot,Q,Rtot,Ci,Ri,N,Lap,qi,pig,gamma,Ex0,uk,tf,ytot);
[~,xhd,PDKF,ZigD]= SMDKF(A,B,Q,Ci,Ri,N,Lap,qi,pig,gamma,Ex0,uk,tf,ytot);
[~,xhc,Omega]= CI_filter(A,B,Q,Ci,Ri,N,Lap,qi,gamma,Ex0,Psix0,uk,tf,ytot);
[~,xhicf,Ji]= ICF_filter(A,B,Q,Ci,Ri,N,Lap,qi,gamma,Ex0,Psix0,uk,tf,ytot);
[~,xhh1,Omegah1]= HCMCI1_filter(A,B,Q,Ci,Ri,N,Lap,qi,gamma,Ex0,Psix0,uk,tf,ytot);
[~,xhh2,Omegah2]= HCMCI2_filter(A,B,Q,Ci,Ri,N,Lap,qi,gamma,Ex0,Psix0,uk,tf,ytot);
% errors, without transient
mseK(i)= mean(sum((x(:,tra:end)- xh(:,tra:end)).^2));
for j=1:N
mseA(i,j)= mean(sum((x(:,tra:end)- squeeze(xha(:,j,tra:end))).^2));
mseD(i,j)= mean(sum((x(:,tra:end)- squeeze(xhd(:,j,tra:end))).^2));
mseC(i,j)= mean(sum((x(:,tra:end)-xhc(:,tra:end,j)).^2));
mseICF(i,j)= mean(sum((x(:,tra:end)-xhicf(:,tra:end,j)).^2));
mseH1(i,j)= mean(sum((x(:,tra:end)-xhh1(:,tra:end,j)).^2));
mseH2(i,j)= mean(sum((x(:,tra:end)-xhh2(:,tra:end,j)).^2));
end
end % for
tC= 0;
tH1= 0;
tH2= 0;
tICF= 0;
tIDKF= 0;
for i=1:N
tC= tC + trace(inv(Omega((i-1)*n+1:i*n,:)));
tICF= tICF+ trace(inv(Ji{i}));
tIDKF= tIDKF+ trace(PDKF(:,(i-1)*n+1:i*n));
tH1= tH1 + trace(inv(Omegah1((i-1)*n+1:i*n,:)));
tH2= tH2 + trace(inv(Omegah2((i-1)*n+1:i*n,:)));
end
%% plot MSE
figure(1);
pkf=plot(1:nsim,mseK,'k*--');
hold on;
% plot a priori error variance
plot(1:nsim,trace(P)*ones(1,nsim),'k-');
plot(1:nsim,mean(mseK)*ones(1,nsim),'k--');
for j=1:N
padkf= plot(1:nsim,mseA(:,j),'r.-'); % DKF filter
pidkf= plot(1:nsim,mseD(:,j),'c.-'); % SMDKF filter
pcf= plot(1:nsim,mseC(:,j),'b.-'); % CI filter
picf= plot(1:nsim,mseICF(:,j),'g.-'); % ICF filter
phcmci1= plot(1:nsim,mseH1(:,j),'m.-'); % HCMCI-1 filter
phcmci2= plot(1:nsim,mseH2(:,j),'y.-'); % HCMCI-2 filter
end
plot(1:nsim,mean(mean(mseA))*ones(1,nsim),'r-');
plot(1:nsim,mean(mean(mseD))*ones(1,nsim),'c-');
plot(1:nsim,mean(mean(mseC))*ones(1,nsim),'b-');
plot(1:nsim,mean(mean(mseICF))*ones(1,nsim),'g-');
plot(1:nsim,mean(mean(mseH1))*ones(1,nsim),'m-');
plot(1:nsim,mean(mean(mseH2))*ones(1,nsim),'y-');
legend([pkf, padkf, pidkf, pcf, picf, phcmci1,phcmci2],...
'KF mse','DKF mse','SMDKF mse','CI mse','ICF mse','HCMCI-1 mse','HCMCI-2 mse');
saveas(gcf, '../results/mse.png')
disp('---------------------------------------------------------------------------------');
disp(strcat('##> Number of simulations:_',num2str(nsim),'__gamma:_',num2str(gamma)));
disp('---------------------------------------------------------------------------------');
disp('Simulation: MSE averaged over the nodes.')
disp('Central KF mse, DKF mse, SMDKF mse, CI mse, ICF mse, HCMCI-1 mse, HCMCI-2 mse');
mK= mean(mseK);
mA= mean(mseA);
mID= mean(mseD);
mC= mean(mseC);
mICF= mean(mseICF);
mH1= mean(mseH1);
mH2= mean(mseH2);
disp([mK, mean(mA), mean(mID), mean(mC), mean(mICF), mean(mH1), mean(mH2)]);
disp('---------------------------------------------------------------------------------');
disp('A priori: average trace(P).');
disp('CKF t(P), DKF t(P), SMDKF avtP, CI avtP, ICF avtP, HCMCI-1 avtP, HCMCI-2 avtP');
disp([trace(P), trace(Pinf), mean(tIDKF), mean(tC), mean(tICF), mean(tH1), mean(tH2)]);
disp('---------------------------------------------------------------------------------');
disp('St. dev. of MSE across nodes.');
disp('DKF mse, SMDKF mse, CI mse, ICF mse, HCMCI-1 mse, HCMCI-2 mse');
disp([std(mA), std(mID), std(mC), std(mICF), std(mH1), std(mH2)]);
disp('---------------------------------------------------------------------------------');
out_p=[gamma, trace(P), mK,...
mean(mA), mean(mID), mean(mC), mean(mICF), mean(mH1), mean(mH2),...
std(mA), std(mID), std(mC), std(mICF), std(mH1), std(mH2)];
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。