【论文笔记】分布式加权质心跟踪(Weighted Centroid Tracking)的观测控制器设计

写在前面

原论文:A Decentralized Controller-Observer Scheme for Multi-Agent Weighted Centroid Tracking。

本文是Antonelli 2013[1]的总结,主要介绍了一种控制器和观测器结合的分布式加权质心跟踪方法,其中每一个智能体都通过观测器估计所有智能体的状态。

问题描述

定义x=[x1T,,xnT]Tx=[x_1^T,\cdots,x_n^T]^T。系统模型

x˙=u(1)\dot x=u\qquad (1)

控制目标是加权质心跟踪:

σ(x)=i=1nwixiσd\sigma(x)=\sum_{i=1}^nw_ix_i\to\sigma_d

状态观测器

ΠiRnd×nd\Pi_i\in\mathbb R^{nd\times nd}为选择矩阵,即Πi=diag{Od,,Id,,Od}\Pi_i=\operatorname{diag}\{O_d,\cdots,I_d,\cdots,O_d\},仅有第ii块矩阵为单位阵,其余均为全零矩阵,满足i=1nΠi=Ind\sum_{i=1}^n\Pi_i=I_{nd}

智能体ii通过如下观测器估计整个系统的状态:

ix^˙=ko(jNi(jx^ix^)+Πi(xix^))+iu^(2)^i\dot {\hat x}=k_o\left(\sum_{j\in\mathcal N_i}({^j\hat x}-{^i\hat x})+\Pi_i(x-{^i\hat x})\right)+{^i\hat u}\qquad (2)

其中ko>0k_o>0,且

ix^=[ix^1ix^2ix^n],iu^=[iu^1iu^2iu^n]Rnd.^i\hat x=\begin{bmatrix} ^i\hat x_{1}\\ ^i\hat x_{2}\\ \vdots\\ ^i\hat x_{n} \end{bmatrix},\quad ^i\hat u=\begin{bmatrix} ^i\hat u_{1}\\ ^i\hat u_{2}\\ \vdots\\ ^i\hat u_{n} \end{bmatrix}\in\mathbb R^{nd}.

注意到,每一个智能体只用到了局部信息,因为Πi\Pi_i只会选择第ii个智能体(即自身)的状态。

简洁起见,将(2)写成矩阵形式

x^˙=koLx^+koΠx~+u^(3)\dot {\hat {\boldsymbol x}}=-k_o\boldsymbol L \hat {\boldsymbol x}+k_o\boldsymbol \Pi\tilde {\boldsymbol x}+\hat {\boldsymbol u}\qquad (3)

其中L=LInd\boldsymbol L=L\otimes I_{nd}Π=diag{Π1,,Πn}\boldsymbol \Pi=\operatorname{diag}\{\Pi_1,\cdots,\Pi_n\},且估计状态误差估计控制输入定义如下

x~=[1x~nx~]=[x1x^xnx^]=1nxx^,u^=[1u^nu^]Rn2d\tilde {\boldsymbol x}=\begin{bmatrix} ^1\tilde x\\ \vdots\\ ^n\tilde x \end{bmatrix}=\begin{bmatrix} x-{^1\hat x}\\ \vdots\\ x-{^n\hat x} \end{bmatrix}=1_n\otimes x-\hat {\boldsymbol x},\quad \hat {\boldsymbol u}=\begin{bmatrix} ^1\hat u\\ \vdots\\ ^n\hat u \end{bmatrix}\in\mathbb R^{n^2d}

定义uu为真实控制输入。估计状态误差动力学

x~˙=ko(L+Π)x~+1nuu^(4)\dot {\tilde {\boldsymbol x}}=-k_o(\boldsymbol L+\boldsymbol \Pi)\tilde {\boldsymbol x}+1_n\otimes u-\hat {\boldsymbol u}\qquad (4)

注意到,L+Π\boldsymbol L+\boldsymbol \Pi对于连通无向图以及强连通平衡图是正定矩阵,这个性质在后面会用到。

证明L+Π\boldsymbol L+\boldsymbol \Pi正定性

显然两个矩阵都是半正定的,那么相加也同样是半正定的。如果是正定,除非他们的零空间不相交,即

null(L)null(Π)={0n2d}.\operatorname{null}(\boldsymbol L)\cap\operatorname{null}(\boldsymbol \Pi)=\{0_{n^2d}\}.

注意到L,ΠRn2d×n2d\boldsymbol L,\boldsymbol \Pi\in\mathbb R^{n^2d\times n^2d},而rank(L)=nd(n1)\operatorname{rank}(\boldsymbol L)=nd(n-1),则dim(null(L))=nd\dim(\operatorname{null}(\boldsymbol L))=nd。那么null(L)\operatorname{null}(\boldsymbol L)可以如下参数化

null(L)=span(1nInd)\operatorname{null}(\boldsymbol L)=\operatorname{span}(1_n\otimes I_{nd})

其中的向量满足

vL=[νT,,νT]TRn2d,νRndv_L=[\nu^T,\cdots,\nu^T]^T\in\mathbb R^{n^2d},\quad \forall \nu\in\mathbb R^{nd}

同样地,我们有rank(Π)=nd\operatorname{rank}(\boldsymbol \Pi)=nd,则dim(null(Π))=nd(n1)\dim(\operatorname{null}(\boldsymbol \Pi))=nd(n-1)。那么null(Π)\operatorname{null}(\boldsymbol \Pi)可以如下参数化

null(Π)=span(In2dΠ)\operatorname{null}(\boldsymbol \Pi)=\operatorname{span}( I_{n^2d}-\boldsymbol \Pi)

其中的向量满足

vΠ=[v1T,,vnT]TRn2dvi=[vi,1T,,vi,nT]Rnd:vi,jRd,vi,i=0dv_\Pi=[v_1^T,\cdots,v_n^T]^T\in\mathbb R^{n^2d}\\ v_i=[v_{i,1}^T,\cdots,v_{i,n}^T]\in\mathbb R^{nd}: \forall v_{i,j}\in\mathbb R^d,v_{i,i}=0_d

比较vLv_LvΠv_\Pi可知,非空的vLv_L不可能属于null(Π)\operatorname{null}(\boldsymbol \Pi),反之非空的vΠv_\Pi也不可能属于null(L)\operatorname{null}(\boldsymbol L)

经典consensus算法

网络化系统中,只要有一个节点知道参考信息,而拓扑又是连通的,那么就可以利用经典consensus算法使得参考信息传递到整个网络中,有兴趣可以比较一下,这里不继续讨论。

ix^˙k=1ibk+j=1naij(jNiaij(jx^˙kγ(ix^kjx^k))+ibk(x˙kγ(ix^kxk)))^i\dot {\hat x}_k=\frac{1}{{^ib}_k+\sum_{j=1}^n a_{ij}}\left(\sum_{j\in\mathcal N_i} a_{ij}({^j\dot {\hat x}}_k-\gamma({^i\hat x}_k-{^j\hat x}_k))+{^ib}_k(\dot x_k-\gamma({^i\hat x_k}-x_k))\right)

其中ibk=1^ib_k=1如果i=ki=k,否则ibk=0^ib_k=0k=1,,nk=1,\cdots,n

加权质心跟踪算法

定义w=[w1,,wn]Tw=[w_1,\cdots,w_n]^Tw=wId\boldsymbol w=w\otimes I_d。那么σ˙=wTx˙\dot \sigma=\boldsymbol w^T\dot x,有集中式算法(u0Rndu_0\in\mathbb R^{nd})

u0=(wT)(σ˙dkc(σ(x)σd))(5)u_0=(\boldsymbol w^T)^\dagger(\dot \sigma_d-k_c(\sigma(x)-\sigma_d))\qquad (5)

其中kc>0k_c>0(wT)=(1/w2)w(w^T)^\dagger=(1/\|w\|^2)w,满足wT(wT)=Inw^T(w^T)^\dagger=I_n

受(5)启发,可以分布式设计智能体ii的真实控制输入(ui=iu^iRdu_i={^i\hat u_i\in\mathbb R^d})

ui=iu^i=wiw2(σ˙dkc(σ(ix^)σd)(6)u_i={^i\hat u_i}=\frac{w_i}{\|w\|^2}(\dot \sigma_d-k_c(\sigma({^i\hat x})-\sigma_d)\qquad (6)

由于智能体ii对自身的估计是真实的,故可以直接设置为自身的控制输入。

相应的,智能体ii对其他智能体控制输入的估计为

iu^j=wjw2(σ˙dkc(σ(ix^)σd)(7)^i\hat u_j=\frac{w_j}{\|w\|^2}(\dot \sigma_d-k_c(\sigma({^i\hat x})-\sigma_d)\qquad (7)

闭环动力学

定义u=[u1T,,unT]T=[1u^1T,,nu^nT]Tu=[u_1^T,\cdots,u_n^T]^T=[{^1\hat u_1^T},\cdots,{^n\hat u_n^T}]^T。因为

ju^jiu^j=kcwjw2wT(ix^jx^)=kcwjw2wT(jx~ix~)(8)^j\hat u_j-{^i\hat u_j}=k_c\frac{w_j}{\|w\|^2}\boldsymbol w^T({^i\hat x}-{^j\hat x})=k_c\frac{w_j}{\|w\|^2}\boldsymbol w^T({^j\tilde x}-{^i\tilde x})\qquad (8)

所以如下等式成立:

uiu^=kcwwTw2ix~+kcdiag(w)wTw2x~=:Aoix~+Box~(9)u-{^i\hat u}=-k_c\frac{\boldsymbol w\boldsymbol w^T}{\|w\|^2}{^i\tilde x}+k_c\frac{\operatorname{diag}(w)\otimes\boldsymbol w^T}{\|w\|^2}\tilde {\boldsymbol x}=:-A_o{^i\tilde x}+B_o\tilde {\boldsymbol x}\qquad(9)

其中AoRnd×ndA_o\in\mathbb R^{nd\times nd}BoRnd×n2dB_o\in\mathbb R^{nd\times n^2d}

估计状态误差动力学(4)重写为

x~˙=ko(L+Π)x~(AoBo)x~(10)\dot {\tilde {\boldsymbol x}}=-k_o(\boldsymbol L+\boldsymbol \Pi)\tilde {\boldsymbol x}-(\boldsymbol A_o-\boldsymbol B_o)\tilde {\boldsymbol x}\qquad (10)

其中Ao=InAo\boldsymbol A_o=I_n\otimes A_o半正定,Bo=1nBo\boldsymbol B_o=1_n\otimes B_o不定。

由(6)可得,

σ~˙=σ˙dσ˙=σ˙di=1nwix˙i=σ˙di=1nwi2w2(σ˙dkc(σ(ix^)σd)=kcσ~kcw2i=1nwi2wT(xix^)=kcσ~kcw2wTi=1nwi2ix~\begin{aligned} \dot {\tilde \sigma}&=\dot \sigma_d-\dot \sigma=\dot \sigma_d-\sum_{i=1}^n w_i\dot x_i\\ &=\dot \sigma_d-\sum_{i=1}^n\frac{w_i^2}{\|w\|^2}(\dot \sigma_d-k_c(\sigma({^i\hat x})-\sigma_d)\\ &=-k_c\tilde \sigma-\frac{k_c}{\|w\|^2}\sum_{i=1}^n w_i^2\boldsymbol w^T(x-{^i\hat x})\\ &=-k_c\tilde \sigma-\frac{k_c}{\|w\|^2}\boldsymbol w^T\sum_{i=1}^n w_i^2{^i\tilde x} \end{aligned}

因此,跟踪误差动力学可写为

σ~˙=kcσ~Bcx~(11)\dot {\tilde \sigma}=-k_c\tilde \sigma-\boldsymbol B_c\tilde {\boldsymbol x}\qquad(11)

其中Bc=kcw2wT(wTdiag{w}In)Rd×n2d\boldsymbol B_c=\frac{k_c}{\|w\|^2}\boldsymbol w^T(\boldsymbol w^T\operatorname{diag}\{\boldsymbol w\}\otimes I_n)\in \mathbb R^{d\times n^2d}

收敛性分析

定义李雅普诺夫函数

V=Vo+δVc=12x~Tx~+δ2σ~Tσ~(12)V=V_o+\delta V_c=\frac{1}{2}\tilde {\boldsymbol x}^T\tilde {\boldsymbol x}+\frac{\delta}{2}\tilde \sigma^T\tilde \sigma\qquad (12)

其中δ>0\delta>0不需要设计,仅用在证明中。

易知VV满足如下不等式

cm[x~σ~]2VcM[x~σ~]2(13)c_m\left\|\begin{bmatrix} \tilde {\boldsymbol x}\\ \tilde \sigma \end{bmatrix}\right\|^2\leq V\leq c_M\left\|\begin{bmatrix} \tilde {\boldsymbol x}\\ \tilde \sigma \end{bmatrix}\right\|^2\qquad (13)

对任意cmmin{1,δ}/2c_m\leq \min\{1,\delta\}/2cMmax{1,δ}/2c_M\geq \max\{1,\delta\}/2成立。

由(10),VoV_o对时间求导得

V˙o=kox~T(L+Π)x~x~(AoBo)x~(14)\dot V_o=-k_o\tilde {\boldsymbol x}^T(\boldsymbol L+\boldsymbol \Pi)\tilde {\boldsymbol x}-\tilde {\boldsymbol x}(\boldsymbol A_o-\boldsymbol B_o)\tilde {\boldsymbol x}\qquad (14)

由于L+Π\boldsymbol L+\boldsymbol \PiAo\boldsymbol A_o都正定,有

V˙oλox~2+x~TBox~(15)\dot V_o\leq -\lambda_o\|\tilde {\boldsymbol x}\|^2+\tilde {\boldsymbol x}^T\boldsymbol B_o\tilde {\boldsymbol x}\qquad (15)

其中λo=koλm\lambda_o=k_o\lambda_mλm\lambda_mL+Π\boldsymbol L+\boldsymbol \Pi的最小特征根,仅由网络拓扑决定。

由(8)(9),不等式(15)计算得到

V˙oλox~2+kcw2x~T(1n(diag(w)wT))x~=λox~2+kcw2j=1ni=1nwjix~jTwTjx~λox~2+kcw2j=1nwjix~λM(wwT)jx~λox~+kcwi=1nj=1nwjix~jx~λox~+kci=1nj=1nix~jx~λox~+kci=1nj=1nix~2(λonkc)x~2\begin{aligned} \dot V_o&\leq -\lambda_o\|\tilde {\boldsymbol x}\|^2+\frac{k_c}{\|w\|^2}\tilde {\boldsymbol x}^T(1_n\otimes(\operatorname{diag}(w)\otimes\boldsymbol w^T))\tilde {\boldsymbol x}\\ &= -\lambda_o\|\tilde {\boldsymbol x}\|^2+\frac{k_c}{\|w\|^2}\sum_{j=1}^n\sum_{i=1}^nw_j{^i\tilde { x}}_j^T\boldsymbol w^T{^j\tilde { x}}\\ &\leq -\lambda_o\|\tilde {\boldsymbol x}\|^2+\frac{k_c}{\|w\|^2}\sum_{j=1}^n|w_j|\| {^i\tilde { x}}\|\sqrt{\lambda_M(ww^T)}\|{^j\tilde { x}}\|\\ &\leq -\lambda_o\|\tilde {\boldsymbol x}\|+\frac{k_c}{\|w\|}\sum_{i=1}^n\sum_{j=1}^n|w_j|\|{^i\tilde { x}}\|\|{^j\tilde { x}}\|\\ &\leq -\lambda_o\|\tilde {\boldsymbol x}\|+k_c\sum_{i=1}^n\sum_{j=1}^n\|{^i\tilde { x}}\|\|{^j\tilde { x}}\|\\ &\leq -\lambda_o\|\tilde {\boldsymbol x}\|+k_c\sum_{i=1}^n\sum_{j=1}^n\|{^i\tilde { x}}\|^2\\ &\leq -(\lambda_o-nk_c)\|{\tilde {\boldsymbol x}}\|^2 \end{aligned}

由(11),VcV_c对时间求导得

V˙c=σ~Tσ~˙=σ~T(kcσ~Bcx~)=σ~T(kcσ~kcw2wTi=1nwi2ix~)kcσ~2+kcwσ~i=1nwi2ix~kcσ~2+nkcwσ~x~\begin{aligned} \dot V_c&=\tilde \sigma^T\dot {\tilde \sigma}=\tilde \sigma^T(-k_c\tilde \sigma-\boldsymbol B_c\tilde {\boldsymbol x})\\ &=\tilde \sigma^T\left(-k_c\tilde \sigma-\frac{k_c}{\|w\|^2}\boldsymbol w^T\sum_{i=1}^nw_i^2{^i\tilde { x}}\right)\\ &\leq -k_c\|\tilde \sigma\|^2+\frac{k_c}{\|w\|}\|\tilde \sigma\|\sum_{i=1}^nw_i^2\|{^i\tilde { x}}\|\\ &\leq -k_c\|\tilde \sigma\|^2+n k_c \|w\| \|\tilde \sigma\|\|{\tilde {\boldsymbol x}}\|\\ \end{aligned}

因此,李雅普诺夫函数(12)对时间求导得

V˙[x~σ~]T[λonkcδnkcw/2δnkcw/2δkc][x~σ~](16)\dot V\leq -\begin{bmatrix} \|\tilde {\boldsymbol x}\|\\ \|\tilde {\sigma}\| \end{bmatrix}^T\begin{bmatrix} \lambda_o-nk_c&-\delta n k_c\|w\|/2\\ -\delta n k_c\|w\|/2&\delta k_c \end{bmatrix}\begin{bmatrix} \|\tilde {\boldsymbol x}\|\\ \|\tilde {\sigma}\| \end{bmatrix}\qquad (16)

V˙\dot V负定,如果λo=koλm>nkc\lambda_o=k_o\lambda_m>nk_c,即ko>nkc/λmk_o>nk_c/\lambda_m,且

δ<4koλmnkcn2kcw2.\delta<4\frac{k_o\lambda_m -n k_c}{n^2k_c\|w\|^2}.

此时(16)中间的矩阵正定,说明系统指数稳定。

MATLAB仿真

这里简单做了下仿真,蓝色圆圈(bo)是智能体状态,红色圆圈(ro)是质心参考轨迹,蓝色方块(bs)是智能体加权质心,其他同色菱形(d)是所有智能体对某一智能体状态的估计。

仿真结果如图所示。

MATLAB代码和以前一样上传到我的GitHub项目paper-simulation,运行“weighted_centroid_tracking.m”即可。


  1. G. Antonelli, F. Arrichiello, F. Caccavale, and A. Marino, “A decentralized controller-observer scheme for multi-agent weighted centroid tracking,” IEEE Trans. Automat. Contr., vol. 58, no. 5, pp. 1310–1316, May 2013. ↩︎