[分布式控制] (1) 图论基础
[分布式控制] (1) 图论基础
因为笔者学习和研究的需要,将会开启一个系列博客(如果笔者不咕咕咕),主要讲述现在十分火热的分布式协同控制理论,其应用一个是纯理论性质的一致性问题,另一个则是偏向实际的编队问题。
不过从实际上来说,分布式控制应用还是得有一定的时间,各方面的技术,尤其是定位与通信还没有达到分布式控制所要求的高度。因此说白了目前这些理论算法多难以应用到实际应用,但是从学术的角度来说,还是很值得研究的。笔者曾经利用一致性理论做过大疆M210飞机的编队飞行试验,就结果而言,算法是很好的,但是效果很一般,实际实验中的定位误差和通信丢包阻塞才是更为主要的问题,当然,这可能也和笔者的试验设备通信能力有关。
大疆m210无人机编队试验
首先笔者必须介绍图论,这是本领域的最基础知识,后面将利用笔者浅薄的知识,为读者最为通俗易懂地、介绍一些笔者接触学习和使用过的分布式控制与一致性理论问题。
[分布式控制] (2) 经典一阶系统的一致性问题
1 前言
“History repeats itself twice: the first time as tragedy, the next time as farce. ”
——Karl Marx
图论可谓是分布式控制和一致性理论的基础,下面简单介绍。
2 概述
图论是用于表示多智能体之间通信拓扑的工具。假设有
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}
3 度矩阵(Degree Matrix)
定义节点
υ
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
4 拉普拉斯矩阵(Laplacian Matrix)
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有以下重要性质:
- Laplacian matrix为半正定的。
- 特征值0出现的次数就是图连通的区域。
- 最小特特征值为0(因为每行和均为0,且图最少有一个连通区域)
- 最小非0特征值是图的代数通达度。
对控制而言,其中最重要的就是其性质中的半正定性了,这对于稳定性证明十分重要。
5 特殊图
从严格角度来说有向图最弱,有:
有向图
<
强连接图
<
生成树
<
平衡图
<
无向图
有向图<强连接图<生成树<平衡图<无向图
有向图<强连接图<生成树<平衡图<无向图注:关于强连接图和生成树的条件强度比较可以详见下面文献的Remark 1:
R. Olfati-Saber, J. A. Fax, and R. M. Murray, “Consensus and cooperation in networked multi-agent systems,” Proc. IEEE, vol. 95, no. 1, pp. 215–233, 2007.
5.1 有向图与无向图(directed graph and undirected graph)
顾名思义,无向图有:
a
i
j
=
a
j
i
{{a}_{ij}}={{a}_{ji}}
aij=aji而有向图上式不一定成立。
值得一提的有向图的性质:
- 邻接矩阵和拉普拉斯矩阵都是对称的
- 出度和入度相同,很好理解,因为对称,即:
deg ( υ i ) o u t = ∑ j = 1 n a i j = ∑ j = 1 n a j i deg ( υ i ) i n \deg {{\left( {{\upsilon }_{i}} \right)}_{out}}=\sum\limits_{j=1}^{n}{{{a}_{ij}}}=\sum\limits_{j=1}^{n}{{{a}_{ji}}}\deg {{\left( {{\upsilon }_{i}} \right)}_{in}} deg(υi)out=j=1∑naij=j=1∑najideg(υi)in
5.2 平衡图(balanced graph)
平衡图是指对任意
i
i
i和
j
j
j,有:
∑
i
≠
j
a
i
j
=
∑
j
≠
i
a
j
i
\sum\limits_{i\ne j}{{{a}_{ij}}}=\sum\limits_{j\ne i}{{{a}_{ji}}}
i=j∑aij=j=i∑aji可以知道,平衡图可以是一个有向图。
5.3 强连接图(strongly connected graph)
简单的说,图中任意两个节点有一条通路,即为强连接图。
5.4 生成树(spanning tree)
简单的说,图中存在一个节点,对所有节点都可达(包括间接可达)。那么其Laplacian矩阵有且仅有一个0特征值,其特征向量为1向量,即
L
1
n
=
0
n
L{{\mathbf{1}}_{n}}={{\mathbf{0}}_{n}}
L1n=0n,且其他非零特征值均有负实部。性质的证明可以参考Wei Ren教授的文章Lemma 3.3:
Wei Ren, Randal W. Beard, ”Consensus Seeking in Multiagent Systems UnderDynamically Changing Interaction Topologies”, IEEE Transactions on automatic control, 2005