因为笔者学习和研究的需要,将会开启一个系列博客(如果笔者不咕咕咕),主要讲述现在十分火热的分布式协同控制理论,其应用一个是纯理论性质的一致性问题,另一个则是偏向实际的编队问题。
不过从实际上来说,分布式控制应用还是得有一定的时间,各方面的技术,尤其是定位与通信还没有达到分布式控制所要求的高度。因此说白了目前这些理论算法多难以应用到实际应用,但是从学术的角度来说,还是很值得研究的。笔者曾经利用一致性理论做过大疆M210飞机的编队飞行试验,就结果而言,算法是很好的,但是效果很一般,实际实验中的定位误差和通信丢包阻塞才是更为主要的问题,当然,这可能也和笔者的试验设备通信能力有关。
大疆m210无人机编队试验
首先笔者必须介绍图论,这是本领域的最基础知识,后面将利用笔者浅薄的知识,为读者最为通俗易懂地、介绍一些笔者接触学习和使用过的分布式控制与一致性理论问题。
“History repeats itself twice: the first time as tragedy, the next time as farce. ”
——Karl Marx
图论可谓是分布式控制和一致性理论的基础,下面简单介绍。
图论是用于表示多智能体之间通信拓扑的工具。假设有 n n n个智能体,他们之间的信息交互可以用一个有向图表示: G = { V , E , A } \mathbf{G}=\left\{ \mathbf{V},\mathbf{E},\mathbf{A} \right\} G={V,E,A}。其中 V = { υ i , i = 1 , ⋯ , n } V=\left\{ {{\upsilon }_{i}},i=1,\cdots ,n \right\} V={υi,i=1,⋯,n}为节点集,代表 n n n个智能体; E ⊆ V × V \mathbf{E}\subseteq \mathbf{V}\times \mathbf{V} E⊆V×V为边集, A = [ a i j ] ∈ R n × n A=\left[ {{a}_{ij}} \right]\in {{R}^{n\times n}} A=[aij]∈Rn×n为图的加权邻接矩阵。
在有向图 G \mathbf{G} G中,如果从节点 υ j {{\upsilon }_{j}} υj到节点 υ i {{\upsilon }_{i}} υi存在一条有向边,则表示智能体 j j j的信息可以传给智能体 i i i,同时用 ( υ j , υ i ) ∈ E \left( {{\upsilon }_{j}},{{\upsilon }_{i}} \right)\in \mathbf{E} (υj,υi)∈E表示。加权邻接矩阵的定义为:
a i j > 0 ⇔ ( υ j , υ i ) ∈ E {{a}_{ij}}>0\Leftrightarrow \left( {{\upsilon }_{j}},{{\upsilon }_{i}} \right)\in \mathbf{E} aij>0⇔(υj,υi)∈E a i j = 0 ⇔ ( υ j , υ i ) ∉ E {{a}_{ij}}=0\Leftrightarrow \left( {{\upsilon }_{j}},{{\upsilon }_{i}} \right)\notin \mathbf{E} aij=0⇔(υj,υi)∈/E一般地,定义 a i i = 0 {{a}_{ii}}=0 aii=0,即智能体无自反馈。
智能体 i i i的邻居智能体为:所有可以传输信息给智能体 i i i的其他智能体,即:
N i = { j : ( υ j , υ i ) ∈ E } {{\mathbf{N}}_{i}}=\left\{ j:\left( {{\upsilon }_{j}},{{\upsilon }_{i}} \right)\in \mathbf{E} \right\} Ni={j:(υj,υi)∈E}相似地,定义:
O i = { j : ( υ i , υ j ) ∈ E } {{\mathbf{O}}_{i}}=\left\{ j:\left( {{\upsilon }_{i}},{{\upsilon }_{j}} \right)\in \mathbf{E} \right\} Oi={j:(υi,υj)∈E}
定义节点 υ i {{\upsilon }_{i}} υi的出度:
deg ( υ i ) o u t = d i = ∑ j = 1 n a i j = ∑ j ∈ N i a i j \deg {{\left( {{\upsilon }_{i}} \right)}_{out}}={{d}_{i}}=\sum\limits_{j=1}^{n}{{{a}_{ij}}}=\sum\limits_{j\in {{\mathbf{N}}_{i}}}^{{}}{{{a}_{ij}}} deg(υi)out=di=j=1∑naij=j∈Ni∑aij那么度矩阵为:
D = d i a g { d 1 , d 2 , ⋯ , d n } = [ d 1 0 ⋯ 0 0 d 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ d n ] D=diag\left\{ {{d}_{1}},{{d}_{2}},\cdots ,{{d}_{n}} \right\}=\left[ \begin{matrix} {{d}_{1}} & 0 & \cdots & 0 \\ 0 & {{d}_{2}} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & {{d}_{n}} \\ \end{matrix} \right] D=diag{d1,d2,⋯,dn}=⎣⎢⎢⎢⎡d10⋮00d2⋮0⋯⋯⋱⋯00⋮dn⎦⎥⎥⎥⎤一般地,提到一个图的度和度矩阵都是指出度矩阵。同样还有入度,较少用到,刚好笔者最近要使用,就在这里一并列出:
deg ( υ i ) i n = ∑ j = 1 n a j i = ∑ j ∈ O i a j i \deg {{\left( {{\upsilon }_{i}} \right)}_{in}}=\sum\limits_{j=1}^{n}{{{a}_{ji}}}=\sum\limits_{j\in {{\mathbf{O}}_{i}}}^{{}}{{{a}_{ji}}} deg(υi)in=j=1∑naji=j∈Oi∑aji
Laplacian matrix在一致性理论中十分重要,几乎所有的证明和推导都包含这个矩阵。
定义:
L = D − A L=D-A L=D−A
即:
L = [ ∑ j = 1 n a 1 j − a 12 ⋯ − a 1 n − a 21 ∑ j = 1 n a 2 j ⋯ − a 2 n ⋮ ⋮ ⋱ ⋮ − a n 1 − a n 2 ⋯ ∑ j = 1 n a n j ] L=\left[ \begin{matrix} \sum\limits_{j=1}^{n}{{{a}_{1j}}} & -{{a}_{12}} & \cdots & -{{a}_{1n}} \\ -{{a}_{21}} & \sum\limits_{j=1}^{n}{{{a}_{2j}}} & \cdots & -{{a}_{2n}} \\ \vdots & \vdots & \ddots & \vdots \\ -{{a}_{n1}} & -{{a}_{n2}} & \cdots & \sum\limits_{j=1}^{n}{{{a}_{nj}}} \\ \end{matrix} \right] L=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡j=1∑na1j−a21⋮−an1−a12j=1∑na2j⋮−an2⋯⋯⋱⋯−a1n−a2n⋮j=1∑nanj⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤Laplacian matrix有以下重要性质:
对控制而言,其中最重要的就是其性质中的半正定性了,这对于稳定性证明十分重要。
顾名思义,无向图有:
a i j = a j i {{a}_{ij}}={{a}_{ji}} aij=aji而有向图上式不一定成立。
值得一提的有向图的性质: