【群体智能集群控制工程实践】第3章 一致性协同算法

第 3 章 一致性协同算法

所属卷册:第二卷 核心集群控制算法

集群控制的所有"高级"任务------编队、协同避障方向协商、任务价值共识------都共享同一个底层操作:让一群节点对一个公共状态达成一致 。第 1 章从生物学看到蜜蜂通过法定人数达成共识决策,第 2 章建立了分析工具(拉普拉斯谱、积分器模型),本章把这些要素组装为工程可用的一致性协议(consensus protocol),并逐一回答工程实现中最常遇到的四类问题:步长怎么调?丢包了怎么办?执行器饱和了怎么办?通信太贵怎么省?

一致性问题的数学提法为:给定 NNN 个节点,各自持有初始状态 xi(0)x_i(0)xi(0),设计分布式协议 ui=fi({xj−xi:j∈Ni})u_i = f_i(\{x_j - x_i: j \in \mathcal{N}i\})ui=fi({xj−xi:j∈Ni}) 使 lim⁡t→∞∥xi(t)−xj(t)∥=0\lim{t\to\infty} \|x_i(t) - x_j(t)\| = 0limt→∞∥xi(t)−xj(t)∥=0 对任意 i,ji,ji,j 成立。若收敛到的公共值是初始状态的加权平均,称为平均一致 ;若指向某个动态参考 x0x_0x0,称为跟踪一致/领航一致。一致性问题在车辆协同、多机器人编队与网络化估计中的标准综述参见文献1,2,本章直接以第 2 章的结论为出发点,不再重复谱理论的推导,只补充工程实现的细节。

3.1 经典一致性协议实现

3.1.1 离散时间一致性算法

工程上算法总是以固定周期在嵌入式处理器上迭代执行,因此离散时间协议是实现的默认形态,连续时间模型(3.1.2 节)则作为设计与分析参考。离散一致性协议的本质是"每步向邻居的平均值靠近一点",其性能完全由步长与谱决定------本小节先给出协议与步长的调试方法,再讨论通信丢包这一最普遍的鲁棒性问题。

3.1.1.1 步长参数对收敛速度的影响调试

在无向拓扑、单位权重、无丢包的理想条件下,离散一致性协议及其矩阵形式为

xi(k+1)=xi(k)+ε∑j∈Niaij(xj(k)−xi(k)),x(k+1)=(I−εL)x(k)(3.1)x_i(k+1) = x_i(k) + \varepsilon \sum_{j \in \mathcal{N}i} a{ij} \big( x_j(k) - x_i(k) \big), \qquad \mathbf{x}(k+1) = \big( \mathbf{I} - \varepsilon \mathbf{L} \big) \mathbf{x}(k) \tag{3.1}xi(k+1)=xi(k)+εj∈Ni∑aij(xj(k)−xi(k)),x(k+1)=(I−εL)x(k)(3.1)

其中 ε\varepsilonε 为步长。由第 2 章的谱分析(特征方程 μk=1−ελk\mu_k = 1 - \varepsilon \lambda_kμk=1−ελk)可知收敛条件为所有非平凡特征值的模小于 1,即步长必须落在稳定区间

0<ε<2λN(3.2)0 < \varepsilon < \frac{2}{\lambda_N} \tag{3.2}0<ε<λN2(3.2)

λN=λmax⁡(L)\lambda_N = \lambda_{\max}(\mathbf{L})λN=λmax(L) 为最大特征值。步长过大的危险是振荡乃至发散;过小则收敛缓慢。当拓扑与权重确定、λ2\lambda_2λ2 与 λN\lambda_NλN 已知时,最优步长与最优收敛因子有闭式解(对 λ2\lambda_2λ2、λN\lambda_NλN 两侧等化):

ε∗=2λ2+λN,ρ∗=λN−λ2λN+λ2(3.3)\varepsilon^{\ast} = \frac{2}{\lambda_2 + \lambda_N}, \qquad \rho^{\ast} = \frac{\lambda_N - \lambda_2}{\lambda_N + \lambda_2} \tag{3.3}ε∗=λ2+λN2,ρ∗=λN+λ2λN−λ2(3.3)

式(3.3)与第 2 章式(2.6)相同,此处从"调试视角"重新解读。实际工程中直接使用 ε∗\varepsilon^{\ast}ε∗ 有两个陷阱:其一,λN\lambda_NλN 依赖全图信息,分布式节点难以精确获知,估错 λN\lambda_NλN 可能把步长推出式(3.2)的稳定区间;其二,ε∗\varepsilon^{\ast}ε∗ 收敛最快但鲁棒性最差,任何扰动(丢包、量化)都会把实际收敛因子拉回 ρ∗\rho^{\ast}ρ∗ 附近甚至更糟。因此工程调试的标准做法是保守起步、谱上校准

框 3-1 离散一致性协议的步长调试与指标化验收流程

text 复制代码
输入:邻居表 {a_ij}、初始状态、验收指标(收敛迭代数 K_95、残差 e_tol)
1) 保守起步:ε0 = 1 / (max d_i + 1)   # 理论上必在稳定区间内的无全局信息初值
2) 本地估计谱界:每节点用邻居计数估计 d_max,保守取 λ_N ≈ 2 d_max
   (依据盖尔什戈林圆盘/λ_N ≤ 2Δ_max),由式(3.2)反推 ε_max
3) 试跑:取 ε ∈ {0.3, 0.5, 0.7, 0.9}·ε_max,各跑 K 步,统计实际衰减因子
   ρ_meas = sup_k ‖x(k+1)-x̄‖ / ‖x(k)-x̄‖
4) 选定使 ρ_meas 最小者;若两档差异 < 5%,取更小档(稳健优先)
5) 验收:K_95 与 e_tol 满足任务预算;留 20% 裕度交付

调试中有三个容易误读的现象需要辨析。第一,"收敛变快"不等于"步长尽量大" ------式(3.2)的上界是硬约束,且含丢包/时延后有效稳定区间会收窄(见 3.1.1.2 与 1.2.2.1 节),工程上习惯把工作步长定在 0.5ε∗0.5\varepsilon^{\ast}0.5ε∗ 附近;第二,均匀权重未必最优------权重本身也是设计变量,分布式可用的"最优点对权重"(Metropolis 权重)按局部度归一化:

wij=11+max⁡(di,dj),wii=1−∑j∈Niwij(3.4)w_{ij} = \frac{1}{1 + \max(d_i, d_j)}, \qquad w_{ii} = 1 - \sum_{j \in \mathcal{N}i} w{ij} \tag{3.4}wij=1+max(di,dj)1,wii=1−j∈Ni∑wij(3.4)

式(3.4)的权重矩阵是双随机阵(每行每列和为 1),从而平均一致性与权重归一化同时成立 ------它只利用度数信息,却接近集中优化谱(式(3.3))的性能,是实际集群中最值得优先采用的权重方案,相关谱性能对比见文献3第三,"平均"不是默认属性------式(3.1)若不满足双随机/平衡条件,收敛值是加权平均而非算术平均,验收时必须同时检查"一致性(方差)"与"准确性(均值偏差)"两个指标,只盯着残差收敛可能掩盖均值漂移。

图 3-1 建议插入位:同一拓扑下取 ε∈{0.2ε∗,ε∗,1.9ε∗}\varepsilon \in \{0.2\varepsilon^{\ast}, \varepsilon^{\ast}, 1.9\varepsilon^{\ast}\}ε∈{0.2ε∗,ε∗,1.9ε∗} 的收敛曲线对比------过小步长单调缓慢、最优步长最快、接近上界时出现振荡。

3.1.1.2 通信丢包场景下的鲁棒性改进

无线信道的丢包使式(3.1)的理想结构被破坏:每一时刻哪些边"真的通了"是随机的。以伯努利模型描述,链路 ijijij 在时刻 kkk 以概率 qijq_{ij}qij 成功传输(qijq_{ij}qij 即链路可用率),实际执行的是随机协议

xi(k+1)=xi(k)+ε∑j∈Niγij(k) aij(xj(k)−xi(k))(3.5)x_i(k+1) = x_i(k) + \varepsilon \sum_{j \in \mathcal{N}i} \gamma{ij}(k) \, a_{ij} \big( x_j(k) - x_i(k) \big) \tag{3.5}xi(k+1)=xi(k)+εj∈Ni∑γij(k)aij(xj(k)−xi(k))(3.5)

其中 γij(k)∈{0,1}\gamma_{ij}(k) \in \{0, 1\}γij(k)∈{0,1} 为随机成功指示。系统从确定性线性迭代变为随机矩阵乘积 x(k+1)=W(k)x(k)x(k+1) = \mathbf{W}(k)\mathbf{x}(k)x(k+1)=W(k)x(k)(W(k)\mathbf{W}(k)W(k) 随机),收敛分析需要遍历理论工具。核心理论结论是:若随机链路模型满足"长期联合连通"条件(每段有界时间内成功链路的联合图以概率 1 连通),则平均一致性几乎必然收敛;而收敛速度与丢包率密切相关------Fagnani 与 Zampieri 对丢包平均一致性的分析给出了丢包条件下收敛的严格刻画4。工程上可操作的结论有三条:

  1. 丢包把"固定谱"变成"随机谱" :直观上,丢包等价于把收敛因子 ρ\rhoρ 恶化到 ρ1/q\rho^{1/q}ρ1/q 量级(qqq 为平均链路可用率)------收敛时间的统计期望约按 1/q1/q1/q 放大。设计预算时若链路可用率仅 80%,应把收敛时间预算乘上约 1.25 的裕度系数;
  2. 平均保持需要"丢包补偿" :节点 iii 发送给 jjj 的数据若丢失,jjj 端本轮就没有收到 iii 的贡献,若 jjj 仍按完整度数归一化则均值漂移。标准修复是收不到即自我补偿 :未收到邻居更新时,把该邻居的权重在本轮并入自身权重 wii←wii+wijw_{ii} \leftarrow w_{ii} + w_{ij}wii←wii+wij(保持行随机),配合对称链路使期望权重矩阵双随机,平均一致性得以维持;
  3. 状态持有(hold)优于丢弃 :上一拍收到的邻居状态 xj(tk)x_j(t_k)xj(tk) 在丢包期间继续使用(零阶保持),比把该项清零更接近连续理想协议,代价是引入等效信息时延------其时延预算仍受 1.2.2.1 节阈值约束。

工程实现的完整鲁棒化措施还包括:MAC 层重传限制与去抖定时器(防止局部拥塞放大丢包)、心跳保活与邻居表超时剔除(防止"假活"节点拖住收敛)、以及对关键任务(如编队位置参考)沿树状扩散路径冗余发布。丢包率显著上升时的在线预警信号是残差曲线出现"阶梯状"停顿------平均一致性的迭代残差若在某段时间内完全不下降,几乎可以断定该段时间全网链路可用率接近零。

图 3-2 建议插入位:链路可用率 q=1.0/0.9/0.7q = 1.0 / 0.9 / 0.7q=1.0/0.9/0.7 时的收敛曲线统计带(多次蒙特卡洛),标注"阶梯停顿"现象与 1/q1/q1/q 时间放大。

3.1.2 连续时间一致性协议

连续时间协议是理论分析与设计参照的标准形态:它的收敛性质(指数速率、Lyapunov 构造)最干净,且与第 2 章的谱结论一一对应。工程上它通过"采样控制"实现(uiu_iui 在采样周期内保持),等价于离散协议在采样周期很小时的极限------因此连续时间分析给出的结论对离散实现具有指导意义,反向亦然。本小节给出其稳定性证明的 Lyapunov 构造(这是全书所有算法证明的模板),并讨论异构节点(动力学差异)下的自适应处理。

3.1.2.1 基于 Lyapunov 函数的稳定性证明

对无向连通拓扑,连续时间一致性协议为 x˙i=−∑j∈Niaij(xi−xj)\dot{x}i = -\sum{j \in \mathcal{N}i} a{ij}(x_i - x_j)x˙i=−∑j∈Niaij(xi−xj),即 x˙=−Lx\dot{\mathbf{x}} = -\mathbf{L}\mathbf{x}x˙=−Lx。其渐近收敛可由一个"能量型"候选 Lyapunov 函数完整证明------选取状态沿拓扑边的"不一致能量":

V(x)=12xTLx=12∑i<jaij(xi−xj)2(3.6)V(\mathbf{x}) = \frac{1}{2} \mathbf{x}^{\mathsf{T}} \mathbf{L} \mathbf{x} = \frac{1}{2} \sum_{i<j} a_{ij} (x_i - x_j)^2 \tag{3.6}V(x)=21xTLx=21i<j∑aij(xi−xj)2(3.6)

沿系统轨迹求导并利用拉普拉斯矩阵的对称性可得 V˙=xTLx˙=−xTL2x=−∥Lx∥2≤0\dot{V} = \mathbf{x}^{\mathsf{T}}\mathbf{L}\dot{\mathbf{x}} = -\mathbf{x}^{\mathsf{T}}\mathbf{L}^2\mathbf{x} = -\|\mathbf{L}\mathbf{x}\|^2 \leq 0V˙=xTLx˙=−xTL2x=−∥Lx∥2≤0。由 LaSalle 不变集原理,轨线收敛到使 V˙=0\dot{V} = 0V˙=0 的最大不变集,即 Lx=0\mathbf{L}\mathbf{x} = \mathbf{0}Lx=0 对应的子空间------无向连通图下恰为 {x1=x2=⋯=xN}\{x_1 = x_2 = \cdots = x_N\}{x1=x2=⋯=xN},一致达成5。若还需指数速率,可改用偏差变量 e=x−xˉ1\mathbf{e} = \mathbf{x} - \bar{x}\mathbf{1}e=x−xˉ1 构造 V2=∥e∥2/2V_2 = \|\mathbf{e}\|^2/2V2=∥e∥2/2,得 V˙2≤−λ2∥e∥2\dot{V}_2 \leq -\lambda_2 \|\mathbf{e}\|^2V˙2≤−λ2∥e∥2,直接给出指数衰减(对应第 2 章式(2.5))。

领航跟踪一致 (第 4 章领航-跟随法的理论核心),协议在邻居耦合项外加"锚定项" bi(xi−x0)b_i(x_i - x_0)bi(xi−x0)(bi>0b_i > 0bi>0 表示节点 iii 可接收领航者状态,否则 bi=0b_i = 0bi=0):

x˙i=−∑j∈Niaij(xi−xj)−bi(xi−x0)(3.7)\dot{x}i = -\sum{j \in \mathcal{N}i} a{ij} \big( x_i - x_j \big) - b_i \big( x_i - x_0 \big) \tag{3.7}x˙i=−j∈Ni∑aij(xi−xj)−bi(xi−x0)(3.7)

只要拓扑中"领航者通过边与至少一个锚定节点连通"且锚定节点的可达集覆盖全网(等价于有向生成树条件),跟踪一致成立;Lyapunov 构造只需在式(3.6)基础上添加锚定能量项 12∑ibi(xi−x0)2\frac{1}{2}\sum_i b_i(x_i - x_0)^221∑ibi(xi−x0)2,谱分析则对应"增广拉普拉斯矩阵" L+B\mathbf{L} + \mathbf{B}L+B------这套"增广"技巧在本书后续(编队领航、队形参考跟踪)反复使用。

Lyapunov 方法在工程中的价值不止于"证明收敛",更在于给出三类可计算的量:收敛率下界 (λ2\lambda_2λ2,第 2 章已述)、扰动影响上界 (在有界扰动 wiw_iwi 下,用类 ISS 分析可得稳态偏差界 lim sup⁡∥e∥≤∥w∥∞/λ2\limsup \|\mathbf{e}\| \leq \|w\|_{\infty}/\lambda_2limsup∥e∥≤∥w∥∞/λ2------"连通性越强,抗扰越强"的定量形式)、以及增益裕度提示 (离散化与饱和带来的能量增速项必须在 V˙\dot{V}V˙ 的衰减项预算内,否则协议失稳------这为 3.2 节约束设计提供了统一判据)。

3.1.2.2 异构智能体的自适应权重调整

真实集群很少同构:低速无人艇的时间常数是秒级、多旋翼是百毫秒级;同一集群内节点计算能力、执行器响应、通信速率各不相同。直接对异构节点跑同一种协议,快节点的状态被慢节点拖累,慢节点的响应又跟不上快节点的更新------必须对协议做异构化处理,思路有三条:

  1. 量纲归一化:若异构仅体现在"状态物理含义不同"(如编队中快机用速度状态、慢艇用位置状态),先把各节点状态折算为统一的归一化量(任务完成度、误差率等 0~1 标量),再跑标准协议。这是最省事也最常用的工程做法;
  2. 动力学差异的权重自适应 :当异构体现在响应时间常数 τi\tau_iτi 上时,固定权重会让慢节点成为瓶颈。自适应方案让快节点适当"放低姿态":信息融合权重随接收方时间常数与发送方时间常数之比自适应,即 τi\tau_iτi 大的节点更多信任邻居的状态、τi\tau_iτi 小的节点对自己的状态保持更强------工程上可用一阶低通估计自身的 τi\tau_iτi,再按 αij=γ/(1+max⁡(0,τi−τj)/τref)\alpha_{ij} = \gamma/(1 + \max(0, \tau_i - \tau_j)/\tau_{\mathrm{ref}})αij=γ/(1+max(0,τi−τj)/τref) 之类的映射在线修正边权;
  3. 输出一致与动态补偿:异构动力学更本质的处理是"输出一致性"框架------不同阶次/不同线性动力学的节点通过输出量达成一致(协调方程与内模设计),更一般的自适应与估计方法可参见多智能体协同综述6及其引文。

工程判据值得单独强调:异构集群中,一致性收敛时间由最慢的动力学校准,但信息传播时延由最深的信息链校准(呼应第 2 章谱与拓扑结论)。若慢节点占比很小,把慢节点"降权"为被动跟踪者(不参与共识计算、只消费共识结果)往往比让它参与共识更优------这与生物群体中"少数侦察蜂决策、多数工蜂执行"的分工原则完全一致(第 1.1.1.2 节),也是第 9 章异构舰队架构设计时的建模起点。

3.2 约束条件下的一致性控制

3.1 节协议隐含两个理想假设:控制输入无界、通信免费且无故障。工程现实是:执行器有输出上限(电机推力、舵面偏转、桨距),通信有功耗与带宽预算。约束不处理,协议要么在饱和区失稳(windup),要么以高占空比浪费稀缺的无线资源。本节给出输入饱和与间歇通信两类约束下的一致性算法,其设计哲学一脉相承:让协议本身"知道"约束的存在,而不是事后补救。

3.2.1 输入饱和限制的一致性算法

执行器饱和指控制输入受物理上限约束:uiu_iui 实际执行值为 uisat=σU(ui)u_i^{\mathrm{sat}} = \sigma_{U}(u_i)uisat=σU(ui),其中饱和函数为

σU(u)=sign(u)⋅min⁡(∣u∣,U),ψU(u)≜u−σU(u)(3.8)\sigma_{U}(u) = \mathrm{sign}(u) \cdot \min\big( |u|, U \big), \qquad \psi_{U}(u) \triangleq u - \sigma_{U}(u) \tag{3.8}σU(u)=sign(u)⋅min(∣u∣,U),ψU(u)≜u−σU(u)(3.8)

ψU(u)\psi_{U}(u)ψU(u) 称为死区函数(饱和截掉的部分)。饱和对一致性的破坏机制很直接:协议计算出的 uiu_iui 是"应该施加的加速度/力",饱和后实际只施加了一部分,若协议内部状态(积分器、估计器)仍按 uiu_iui 积分,就产生积分饱和(windup)------误差虽大但执行器已顶满,积分器继续累积导致过冲、振荡甚至发散。

3.2.1.1 抗饱和补偿器的设计方法

抗饱和(Anti-Windup, AW)设计的第一类方案是让误差饱和在协议内部。注意到一致协议的输入本质是"邻居差之和",若对每个相对误差分量单独饱和(而非对合成输入整体饱和),输入峰值可被逐项限定:

ui=−∑j∈Niaij σδ(xi−xj),δ=Udi(3.9)u_i = -\sum_{j \in \mathcal{N}i} a{ij} \, \sigma_{\delta}\big( x_i - x_j \big), \qquad \delta = \frac{U}{d_i} \tag{3.9}ui=−j∈Ni∑aijσδ(xi−xj),δ=diU(3.9)

其中 did_idi 为节点度,σδ\sigma_{\delta}σδ 以 δ\deltaδ 为界的饱和函数。由于 ∥∑jaijσδ(⋅)∥≤diδ=U\|\sum_{j} a_{ij}\sigma_{\delta}(\cdot)\| \leq d_i \delta = U∥∑jaijσδ(⋅)∥≤diδ=U,协议输出永不饱和------这是"相对饱和"方案,牺牲一定收敛速度换取全局可行性,对一阶/二阶一致协议均适用。

第二类方案是补偿器抗饱和(条件积分):主控制器含积分通道时(如 PID 中的 I 项,或比例积分一致协议),把"饱和截掉的部分"负反馈回积分器,阻止其继续累积:

z˙i=Kiei+Kaw(σU(uc,i)−uc,i)(3.10)\dot{z}i = K_i e_i + K{\mathrm{aw}} \big( \sigma_{U}(u_{c,i}) - u_{c,i} \big) \tag{3.10}z˙i=Kiei+Kaw(σU(uc,i)−uc,i)(3.10)

其中 uc,iu_{c,i}uc,i 为控制器(饱和前)输出,ziz_izi 为积分状态,eie_iei 为一致性耦合误差,KawK_{\mathrm{aw}}Kaw 为抗饱和增益。饱和发生时 σU(uc)−uc=−ψU(uc)≠0\sigma_U(u_c) - u_c = -\psi_U(u_c) \neq 0σU(uc)−uc=−ψU(uc)=0,积分器以反方向回拉;脱离饱和后补偿自动消失。式(3.10)结构即经典的条件积分形式,其系统化的设计(含 KawK_{\mathrm{aw}}Kaw 的选取与闭环稳定性保证)见现代抗饱和综合理论7,集群应用中建议 KawK_{\mathrm{aw}}Kaw 取主积分增益的 2~5 倍并由 3.2.1.2 节方法校核收敛域。

第三类方案是低增益设计:当执行器余量小且任务要求大初始误差(半全局/全局一致)时,通过参数化代数 Riccati 方程把协议增益压到"任何给定界内"------输入永不出界,同时保收敛8。低增益思路在工程上等价于"先把增益调小到任务能接受的最慢速率,再逐步放大并随时校验饱和率",与前文步长调试的保守起步哲学一致。

3.2.1.2 饱和边界对收敛域的影响分析

饱和使系统变为分段线性(非线性)系统 ,稳定不再是全局的------只有落在收敛域(Domain of Attraction, DOA)内的初始状态才能保证收敛。工程上需要回答:给定执行器上限 UUU 与协议参数,多大的初始不一致可以接受? 饱和一致性的理论工具是扇区(sector)条件与死区建模:死区 ψU\psi_UψU 满足扇区不等式 ψU(u)(ψU(u)−u)≤0\psi_U(u)(\psi_U(u) - u) \leq 0ψU(u)(ψU(u)−u)≤0 类关系,可把饱和问题转化为含扇区非线性项的 LMI 分析,估计收敛域的椭球内近似(更完整的三种处理路线------低增益、扇区/LMI、凸包表示------综述见文献9)。

给出一个便于工程使用的粗略预算公式。设初始状态最大不一致幅度为 Δ=max⁡ixi(0)−min⁡jxj(0)\Delta = \max_i x_i(0) - \min_j x_j(0)Δ=maxixi(0)−minjxj(0),最大节点度为 dmax⁡d_{\max}dmax,则协议(3.1)(连续形式)的输入峰值为 ∥u∥∞≤dmax⁡Δ\|u\|{\infty} \leq d{\max} \Delta∥u∥∞≤dmaxΔ。要求全程不进入饱和的充分条件是 dmax⁡Δ≤Ud_{\max}\Delta \leq UdmaxΔ≤U,即初始许可域

Δ≤Udmax⁡(3.11)\Delta \leq \frac{U}{d_{\max}} \tag{3.11}Δ≤dmaxU(3.11)

式(3.11)是保守但直观 的准则,有三个工程推论:其一,拓扑越密(dmax⁡d_{\max}dmax 越大),同样执行器下允许的初始偏差越小 ------执行器受限时不要盲目加连接,先看饱和预算;其二,若初始偏差超过许可域,正确做法不是放弃协议,而是先降权跑"慢一致" (把增益/权重乘 0.1~0.3 让状态进入域内,再切回正常增益),这与低增益设计的"两步走"同构;其三,对二阶协议(式(2.12)),许可域需同时计入速度项 kdvk_d vkdv 的贡献,预算公式变为 dmax⁡(Δx+kdΔv)≤Ud_{\max}(\Delta_x + k_d \Delta_v) \leq Udmax(Δx+kdΔv)≤U 的联合约束------速度初值大的集群必须留出饱和余量,否则第一拍就会顶满执行器并激发振荡。

图 3-3 建议插入位:饱和一致性系统的收敛域示意(二维偏差平面),标注式(3.11)许可域(保守界)与真实 DOA 边界(扇区/LMI 估计)的差异。

3.2.2 间歇通信下的一致性维持

无线集群的通信能耗常占总能耗的相当比例(第 6.1.2 节将给出量级),且信道是共享的------集群规模越大,每节点可分得的通信时隙越少。间歇通信研究的是:把通信从"每拍都发"降为"必要时才发",一致性损失多少?如何补偿?

3.2.2.1 通信占空比与收敛性能的权衡

最朴素但工程上最稳妥的方案是周期占空比调度 :每个节点按占空比 rrr 周期性地"醒来"通信(如每 TcT_cTc 秒内通信 rTcrT_crTc 秒,其余时间静默省电)。静默期间节点使用上次收到的邻居状态做零阶保持,协议变为等效的慢速交换。占空比下的一致性收敛速率近似为

λ2eff≈r λ2(3.12)\lambda_2^{\mathrm{eff}} \approx r \, \lambda_2 \tag{3.12}λ2eff≈rλ2(3.12)

即收敛时间约按 1/r1/r1/r 放大(式(3.12)为线性近似,严格关系与调度模式有关,但量级判断足够)。由此得到占空比调度的设计等式:给定任务收敛时间预算 TreqT_{\mathrm{req}}Treq 与全速收敛时间 T0≈4.6/λ2T_0 \approx 4.6/\lambda_2T0≈4.6/λ2,最小占空比 rmin⁡≈T0/Treqr_{\min} \approx T_0 / T_{\mathrm{req}}rmin≈T0/Treq------若 rmin⁡r_{\min}rmin 低于链路最低维持需求(心跳频率),则应转向事件触发。

周期占空比的工程优点在于可预测、易验收:占空比与能耗、收敛时间的换算关系确定,测试用例可以覆盖最坏交错。缺点同样明显:占空比是"均匀地浪费"------状态已经收敛的节点仍在按固定节奏广播,没有利用"无事可报"的信息。对能量极端敏感的大规模集群(第 6 章的多机系统、野外长期监测),应采用事件触发。

3.2.2.2 基于事件触发的通信优化策略

事件触发的思想是:只有当"自己状态相对上次广播的变化"积累到不可忽视时,才广播一次 。记节点 iii 上次广播时刻 tkit_k^itki,其测量误差 ei(t)=xi(tki)−xi(t)\mathbf{e}_i(t) = \mathbf{x}_i(t_k^i) - \mathbf{x}_i(t)ei(t)=xi(tki)−xi(t),触发时刻序列由条件决定

tk+1i=inf⁡{t>tki:∥ei(t)∥≥σi∥∑j∈Niaij(xi(t)−xj(t))∥}(3.13)t_{k+1}^{i} = \inf \left\{ t > t_k^i : \| \mathbf{e}i(t) \| \geq \sigma_i \left\| \sum{j \in \mathcal{N}i} a{ij} \big( \mathbf{x}_i(t) - \mathbf{x}_j(t) \big) \right\| \right\} \tag{3.13}tk+1i=inf⎩ ⎨ ⎧t>tki:∥ei(t)∥≥σi j∈Ni∑aij(xi(t)−xj(t)) ⎭ ⎬ ⎫(3.13)

其中 σi∈(0,1)\sigma_i \in (0,1)σi∈(0,1) 为触发灵敏度参数。式(3.13)的物理含义:测量误差的容许上限与该节点当前的"一致性驱动项"(协议要纠正的偏差)成正比------偏差大时允许测量误差也大(反正要动),偏差小时要求状态精确(趋于静止)。Dimarogonas、Frazzoli 与 Johansson 证明:在式(3.13)类条件与连通拓扑下,事件触发协议不仅能渐近一致,而且事件间隔严格大于零(排除 Zeno 现象)、无需节点连续监听邻居状态10------这两个性质分别保证了"可实现"与"真省电"。

工程选型与调参经验如下(见表 3-3):

表 3-3 间歇通信三种方案的工程对比

方案 通信决策 收敛性能 实现复杂度 适用场景
周期占空比 固定节拍 按式(3.12)可预测 任务时间预算明确的集群
事件触发(式(3.13)) 偏差超限才发 略降、无 Zeno 能量敏感、状态稀疏变化
自触发(预测式) 本地预测下次发送 与事件触发接近 不能持续监听、需确定性调度

事件触发协议的四个实现要点:① σi\sigma_iσi 与收敛质量权衡 ------σi\sigma_iσi 越大通信越少但状态"锯齿"越大,编队场景下锯齿直接表现为队形抖动,建议 σi≤0.1\sigma_i \leq 0.1σi≤0.1~0.3 并在仿真中校核抖动指标;② 必须配合丢包处理 ------事件触发本就低频,丢包造成的信息老化更严重,应把"超时未确认即重发"改为"超时即无条件触发一次"(丢包模型与 3.1.1.2 节同一框架);③ 时钟不同步问题 ------式(3.13)的判断基于本地时间与本地缓存,无需全网同步时钟,但广播时刻戳必须单调;④ 与占空比的关系------事件触发不能完全消灭周期心跳(保活与拓扑维护仍需低占空比广播),工程实现通常是"心跳 + 事件触发"双通道。

图 3-4 建议插入位:事件触发一致性的状态轨迹与触发时刻序列(竖线)------收敛初期触发密集、稳态后几乎静默,与固定周期通信对比通信次数。

本章小结

一致性算法是集群控制的地基。本章完成了从"理想协议"到"工程协议"的补全:

  • 离散一致性协议的步长由谱唯一决定(式(3.2)(3.3)),调试铁律是保守起步(框 3-1);丢包把确定性迭代变成随机矩阵乘积,平均保持靠丢包补偿、收敛预算按可用率的倒数放大(3.1.1.2);
  • 连续一致性协议的 Lyapunov 构造(式(3.6))与领航锚定(式(3.7))是全书证明模板;异构集群的工程答案以归一化与自适应权重为主(3.1.2);
  • 执行器饱和通过相对饱和(式(3.9))、条件积分抗饱和(式(3.10))与低增益三类方案处理,初始许可域按式(3.11)预算;通信间歇通过占空比(式(3.12))与事件触发(式(3.13))管理,后者兼顾收敛与通信代价。

这些协议与参数的组合将在第 4 章编队控制(位置/速度一致 + 偏移量)与第 7、10 章的系统实现中直接复用。遗留的一个未解问题------丢包与时延同时存在时的严格性能界------属于研究前沿,工程上以裕度系数覆盖。

思考与练习

  1. 编程实现式(3.1):取 N=10N=10N=10 随机连通图,验证 ε\varepsilonε 超出式(3.2)上界后发散、在 (0.5∼1)ε∗(0.5\sim 1)\varepsilon^{\ast}(0.5∼1)ε∗ 区间收敛最快,并画出收敛因子随 ε\varepsilonε 的实测曲线。
  2. 在练习题 1 的迭代中加入伯努利丢包(q=0.85q=0.85q=0.85),比较"丢包即清零"与"丢包即补偿/保持"两种策略的均值偏差与收敛时间,验证 3.1.1.2 节三条工程结论。
  3. 对式(3.6)的 Lyapunov 函数,加入领航锚定项后重新构造 V˙\dot{V}V˙,推导跟踪一致条件下 λ2(L+B)\lambda_2(\mathbf{L}+\mathbf{B})λ2(L+B) 与收敛率的关系,并与式(3.7)对照。
  4. 一阶一致协议 + 饱和:初始偏差 Δ=2U\Delta = 2UΔ=2U,分别用普通协议(整体饱和)与相对饱和协议(式(3.9))仿真,对比是否进入饱和、是否收敛、收敛时间差异,验证式(3.11)的许可域判断。
  5. 实现事件触发协议(3.13):统计不同 σi\sigma_iσi 下的总通信次数与收敛时间,画出帕累托前沿,并检验是否存在 Zeno(最小事件间隔是否恒大于 0)。

参考文献

1 Ren W, Beard R W, Atkins E M. Information consensus in multivehicle cooperative controlJ. IEEE Control Systems Magazine, 2007, 27(2): 71--82.

2 Olfati-Saber R, Fax J A, Murray R M. Consensus and cooperation in networked multi-agent systemsJ. Proceedings of the IEEE, 2007, 95(1): 215--233.

3 Xiao L, Boyd S. Fast linear iterations for distributed averagingJ. Systems & Control Letters, 2004, 53(1): 65--78.

4 Fagnani F, Zampieri S. Average consensus with packet drop communicationJ. SIAM Journal on Control and Optimization, 2009, 48(1): 102--133.

5 Khalil H K. Nonlinear SystemsM. 3rd ed. Upper Saddle River, NJ: Prentice Hall, 2002.

6 秦家虎, 马麒超, 李曼, 等. 多智能体协同研究进展综述:博弈和控制交叉视角J. 自动化学报, 2025, 51(3): 489--509.

7 Zaccarian L, Teel A R. Modern Anti-Windup Synthesis: Control Augmentation for Actuator SaturationM. Princeton: Princeton University Press, 2011.

8 Lin Z. Low Gain FeedbackM. London: Springer, 1998.

9 Xu Z, Huang J. An overview of recent advances in the event-triggered consensus of multi-agent systems with actuator saturationsJ. Mathematics, 2022, 10(20): 3879.

10 Dimarogonas D V, Frazzoli E, Johansson K H. Distributed event-triggered control for multi-agent systemsJ. IEEE Transactions on Automatic Control, 2012, 57(5): 1291--1297.

相关推荐
禹凕1 小时前
滑动窗口算法实战指南
python·算法
DisonTangor1 小时前
【腾讯混元雪耻归来】 Hy4 preview:770B 参数 MoE 旗舰模型,1M 上下文全面开源
人工智能·算法·开源·aigc·腾讯云·腾讯云ai代码助手
明月_清风2 小时前
从二叉树到 B+ 树:一文搞懂工程中「树」的演化之道
数据结构·算法·go
渡我白衣2 小时前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
hetao17338373 小时前
2026-09-01~09-04 hetao1733837 的刷题记录
c++·算法
Evand J3 小时前
【MATLAB例程,图像滤波5】 反谐波均值滑动窗口滤波(CHMF)图像降噪与质量评价,附代码下载链接
图像处理·算法·计算机视觉·matlab·均值算法·滑动窗口滤波·均值滑动
血小板要健康3 小时前
链表 阶段算法总结
java·数据结构·笔记·算法·leetcode·链表
a187927218313 小时前
【算法】回溯算法(三):三记重锤与 N 皇后——记忆化、状态设计与三层漏斗
算法·leetcode·go·剪枝·回溯·n皇后·算法讲解
HugoStudio_SWAN5 小时前
洛谷 P1420 / P1179 / B4262 最长连号、数字统计与词频统计——统计的三种面孔
c++·学习·程序人生·算法