多智能体一致性控制中的事件触发方案
在这篇文章中,简要讨论一下事件触发机制。
参考文献:D. V. Dimarogonas, E. Frazzoli and K. H. Johansson, “Distributed Event-Triggered Control for Multi-Agent Systems,” in IEEE Transactions on Automatic Control, vol. 57, no. 5, pp. 1291-1297, May 2012, doi: 10.1109/TAC.2011.2174666.
1 系统模型
由 N 个智能体组成的系统,$x_i$ 表示第 i 个智能体。
给定一个单积分系统:$\dot x_i=u_i$
其中,$u_i$ 是每个智能体的控制输入。
一致性控制律:$u_i=-\sum_{j \in N_i}(x_i-x_j)$
对于不考虑干扰的标准系统,其闭环方程为:$\dot x_i=-\sum_{j \in N_i}(x_i-x_j)$
向量化可以得到:$\dot x = -Lx$
对于这个系统,它们的一致点是初始状态的平均值:$\frac{1}{N} \sum{x_i(0)}$
(注:连通图的 $L$ 秩为 N-1,从 $L$ 行和为 0 及特征值特征向量之间的关系可以得出,元素全相同向量是零特征向量!当系统收敛时,状态变化率归零,也就是 $Lx(t)=0$, 说明 $x(t)$ 必须在 $L$ 的零空间中,而这个相等的常数则恰好等于系统初始状态的平均值。)
2 集中式事件触发方案
对于每个智能体,可以对其定义一个时变误差向量。
指定这样的向量:$e(t)=[e_1(t),\dots,e_N(t)]^T$
事件触发时间序列可以定义为 $t_0,t_1,\dots$ 在这些时刻,控制律得到更新。
那么在两次控制更新之间,采用零阶保持方案:$u(t)=u_i(t) \forall t \in[t_i,t_{i+1})$
鉴于上述定义,状态误差向量被定义为:$e(t)=x(t_i)-x(t)\forall t \in[t_i,t_{i+1})$
在集中式控制方案下,间隔时段内的控制策略为:$u(t)=-Lx(t_i)$
闭环系统由如下给出:$\dot x(t)=-Lx(t_i)=-L(x(t)+e(t))$
定义智能体平均状态:$\bar x(t)=\frac{1}{N}\sum{x_i(t)}$
由于给定的图是无向的,得到 $\dot{\bar x}(t)=\frac{1}{N}\sum_i{\dot{x_i}}=-\frac{1}{N}\sum_i\sum_{j\in N_i}(x_i(t)-x_j(t))-\frac{1}{N}\sum_i\sum_{ i\in N_i}(e_i(t)-e_j(t))=0$
因此:$\bar x(t)=\bar x(0)=\frac{1}{N}\sum_ix_i(0)\equiv \bar x$
一个对于此闭环系统的候选输入稳定状态李雅普诺夫函数:
$V=\frac{1}{2}x^TLx$
$\dot V=x^TL\dot x=-x^TLL(x+e)=-||Lx||^2-x^TLLe$
简单放缩:$\dot V<=-||Lx||^2+||Lx||||L||||e||$
使得 e 满足:$||e||<=\sigma \frac{||Lx||}{||L||}$
使得 $\sigma \in (0,1)$, 得到 $\dot V<=(\sigma-1)||Lx||^2$
事件触发得到确定
(注:无向图双重求和会互相抵消。)
事件时间间隔 ${t_{k+1}-t_k}$ 其下界隐含地由严格正的时间 $\tau=\frac{\sigma}{||L||(1+\sigma)}$ 给出
定义:$\frac{||e||}{||Lx||}$ 为误差相对于状态分散程度的比例,对其求导
$\frac{d}{dt}\frac{||e||}{||Lx||}<=(1+(\frac{||L||||e||}{||Lx||})^2)$
定义 $y=\frac{||e||}{||Lx||}$, $\dot y<=(1+||L||y)^2$
因此,y 满足界 $y(t)<=\phi(t,\phi_0)$ ,后者是 $\dot \phi = (1+||L||\phi)^2$ 在初始条件 $\phi(0,\phi_0)=\phi_0$ 下的解
因此,事件间隔事件下界被时间 $\tau$ 界定,$\tau$ 满足 $\phi(\tau,0)=\frac{\sigma}{||L||}$
上述微分方程的解为: $\phi (\tau, 0)=\frac{\tau}{1-\tau||L||}$
得:$\tau=\frac{\sigma}{||L||(1+\sigma)}$
(注:使用微分方程求出最小增长时间)
3 分布式事件触发方案
每个智能体的误差定义:
$e_i(t) = x_i\left(t_k^i\right) - x_i(t), \quad t \in \left[t_k^i, t_{k+1}^i\right).$
控制率:
$u_i(t) = -\sum_{j \in N_i} \left(x_i\left(t_k^i\right) - x_j\left(t_{k’}^j(t)\right)\right)$
$x_j(t_{k’}^j(t)) = x_j(t) + e_j(t)$
则:$\dot{x}i(t) = -\sum{j \in N_i} \left(x_i(t_k^i) - x_j(t_{k’}^j(t))\right) = -\sum_{j \in N_i} \left(x_i(t) - x_j(t)\right) - \sum_{j \in N_i} \left(e_i(t) - e_j(t)\right)$
$\dot{x}(t) = -L (x (t) + e (t))$
定义:
$z_i(t) = \sum_{j \in N_i} (x_i(t) - x_j(t)), \quad i = 1, \dots, N.$
选取:
$\dot{V} = x^T L \dot{x} = -x^T L (Lx + Le) = -z^T z - z^T Le.$
$\dot{V} = -\sum_i z_i^2 - \sum_{i} \sum_{j \in N_i} z_i(e_i - e_j) = -\sum_i z_i^2 - \sum_i |N_i| z_i e_i + \sum_i \sum_{j \in N_i} z_i e_j.$
利用杨不等式:
$\dot{V} \leq -\sum_i z_i^2 + \sum_i a |N_i| z_i^2 + \sum_i \frac{1}{2a} |N_i| e_i^2 + \sum_i \sum_{j \in N_i} \frac{1}{2a} e_j^2$
得到:$\sum_{i} \sum_{j \in N_i} \frac{1}{2 a} e_j^2 = \sum_{i} \sum_{j \in N_i} \frac{1}{2 a} e_i^2 = \sum_i (1/2 a) |N_i| e_i^2$
因此:$\dot{V} \leq -\sum_i (1 - a |N_i|) z_i^2 + \sum_i (1/a) |N_i| e_i^2$
满足:$e_i^2 \leq \frac{\sigma_i a (1 - a |N_i|)}{|N_i|} z_i^2$
得到:$\dot{V} \leq \sum_i (\sigma_i - 1)(1 - a |N_i|) z_i^2$
事件触发条件为:$e_i^2 = \frac{\sigma_i a (1 - a |N_i|)}{|N_i|} z_i^2$
(注:证明方法与集中式类似,不做赘述)
(注:与集中式控制的关键区别在于状态向量的动态方程)