cooperative Output Regulation of linear Multi-Agent Systems
《线性多智能体系统的协同输出调节问题》论文阅读
关于其中dynamic compensator(或者也叫做distributed observer)从一个agent扩展到N个整体系统时其中关于克罗内克积写法的推导
首先在ren的书中《Distributed Consensus in Multi-vehicle Cooperative Control》中,我们提到过对于一阶积分器连续系统模型
ξ
˙
i
=
u
i
\dot{\xi}_i=u_i
ξ˙i=ui, 其中
i
=
1
,
⋯
,
n
i=1,\cdots,n
i=1,⋯,n,
ξ
i
∈
R
m
\xi_i \in \mathbb{R}^{m}
ξi∈Rm,
u
i
∈
R
m
u_i \in \mathbb{R}^{m}
ui∈Rm
我们提出的一阶连续系统的一致性算法
u
i
=
−
∑
j
=
1
n
a
i
j
(
t
)
(
ξ
i
−
ξ
j
)
u_i=-\sum_{j=1}^{n}a_{ij}(t)(\xi_i-\xi_j)
ui=−∑j=1naij(t)(ξi−ξj) 其中
i
=
1
,
⋯
,
n
i=1,\cdots,n
i=1,⋯,n,
a
i
j
(
t
)
a_{ij}(t)
aij(t) 是邻接矩阵A的第
(
i
,
j
)
(i,j)
(i,j)个元素
那么当我们考虑n个agent组成的整体系统时,
ξ
=
[
ξ
1
T
,
⋯
,
ξ
n
T
]
T
\xi=[\xi_1^T,\cdots,\xi_n^T]^T
ξ=[ξ1T,⋯,ξnT]T,
L
n
(
t
)
∈
R
n
×
n
\mathcal{L}_n(t) \in \mathbb{R}^{n \times n}
Ln(t)∈Rn×n,整个系统写成矩阵形式
ξ
˙
=
−
[
L
n
(
t
)
⊗
I
m
]
ξ
\dot{\xi}=-[\mathcal{L}_n(t) \otimes I_m]\xi
ξ˙=−[Ln(t)⊗Im]ξ
下面是上面式子到下面式子的证明:
u
i
=
−
∑
j
=
1
n
a
i
j
(
t
)
(
ξ
i
−
ξ
j
)
=
−
∑
j
=
1
n
a
i
j
(
t
)
ξ
i
+
∑
j
=
1
n
a
i
j
(
t
)
ξ
j
\begin{aligned} u_i&=-\sum_{j=1}^{n}a_{ij}(t)(\xi_i-\xi_j)\\ &=-\sum_{j=1}^{n}a_{ij}(t)\xi_i+\sum_{j=1}^{n}a_{ij}(t)\xi_j \end{aligned}
ui=−j=1∑naij(t)(ξi−ξj)=−j=1∑naij(t)ξi+j=1∑naij(t)ξj
直接针对条件证明结论等于直接看出来,我是绝对看不出来的,所以我们从结论演化到条件
我们知道其中
L
=
D
−
A
\mathcal{L}=\mathcal{D}-\mathcal{A}
L=D−A
上面结论的式子就可以演化为
ξ
˙
=
−
[
L
n
(
t
)
⊗
I
m
]
ξ
=
−
[
D
n
(
t
)
⊗
I
m
]
ξ
+
[
A
n
(
t
)
⊗
I
m
]
ξ
\begin{aligned} \dot{\xi}&=-[\mathcal{L}_n(t) \otimes I_m]\xi\\ &=-[\mathcal{D}_n(t) \otimes I_m]\xi+[\mathcal{A}_n(t) \otimes I_m]\xi \end{aligned}
ξ˙=−[Ln(t)⊗Im]ξ=−[Dn(t)⊗Im]ξ+[An(t)⊗Im]ξ
其中关于邻接矩阵,我们有
A
=
[
0
a
12
⋯
a
1
n
a
21
0
⋯
a
2
n
⋮
⋮
⋮
⋮
a
n
1
a
n
2
⋯
0
]
\mathcal{A}=\left[ \begin{array}{cccc} 0 & a_{12} & \cdots & a_{1n}\\ a_{21} & 0 & \cdots & a_{2n}\\ \vdots & \vdots & \vdots & \vdots\\ a_{n1} & a_{n2} & \cdots & 0\\ \end{array} \right]
A=⎣⎢⎢⎢⎡0a21⋮an1a120⋮an2⋯⋯⋮⋯a1na2n⋮0⎦⎥⎥⎥⎤
关于度矩阵
D
\mathcal{D}
D,我们有
D
=
[
∑
j
=
1
n
a
1
j
0
⋯
0
0
∑
j
=
1
n
a
2
j
⋯
0
⋮
⋮
⋮
⋮
0
0
⋯
∑
j
=
1
n
a
n
j
]
\mathcal{D}=\left[ \begin{array}{cccc} \sum_{j=1}^{n}a_{1j} & 0 & \cdots & 0\\ 0 & \sum_{j=1}^{n}a_{2j}& \cdots & 0\\ \vdots & \vdots & \vdots & \vdots\\ 0 &0 & \cdots & \sum_{j=1}^{n}a_{nj}\\ \end{array} \right]
D=⎣⎢⎢⎢⎡∑j=1na1j0⋮00∑j=1na2j⋮0⋯⋯⋮⋯00⋮∑j=1nanj⎦⎥⎥⎥⎤
其中关于
D
n
(
t
)
⊗
I
m
\mathcal{D}_n(t) \otimes I_m
Dn(t)⊗Im,令
S
i
S_i
Si是
m
×
m
m \times m
m×m的数量矩阵,
0
m
0_m
0m是
m
×
m
m \times m
m×m的全零矩阵。
S
i
=
[
∑
j
=
1
n
a
i
j
0
⋯
0
0
∑
j
=
1
n
a
i
j
⋯
0
⋮
⋮
⋮
⋮
0
0
⋯
∑
j
=
1
n
a
i
j
]
S_i=\left[ \begin{array}{cccc} \sum_{j=1}^{n}a_{ij} & 0 & \cdots & 0\\ 0 & \sum_{j=1}^{n}a_{ij}& \cdots & 0\\ \vdots & \vdots & \vdots & \vdots\\ 0 &0 & \cdots & \sum_{j=1}^{n}a_{ij}\\ \end{array} \right]
Si=⎣⎢⎢⎢⎡∑j=1naij0⋮00∑j=1naij⋮0⋯⋯⋮⋯00⋮∑j=1naij⎦⎥⎥⎥⎤
D
⊗
I
m
=
[
S
1
0
m
⋯
0
m
0
m
S
2
⋯
0
m
⋮
⋮
⋮
⋮
0
m
0
m
⋯
S
n
]
\mathcal{D} \otimes I_m=\left[ \begin{array}{cccc} S_1 & 0_m & \cdots & 0_m\\ 0_m & S_2& \cdots & 0_m\\ \vdots & \vdots & \vdots & \vdots\\ 0_m &0_m & \cdots & S_n\\ \end{array} \right]
D⊗Im=⎣⎢⎢⎢⎡S10m⋮0m0mS2⋮0m⋯⋯⋮⋯0m0m⋮Sn⎦⎥⎥⎥⎤
同理,对于
A
n
(
t
)
⊗
I
m
\mathcal{A}_n(t) \otimes I_m
An(t)⊗Im,同样的
令
R
i
j
R_{ij}
Rij是
m
×
m
m \times m
m×m的数量矩阵
R
i
j
=
[
a
i
j
0
⋯
0
0
a
i
j
⋯
0
⋮
⋮
⋮
⋮
0
0
⋯
a
i
j
]
R_{ij}=\left[ \begin{array}{cccc} a_{ij} & 0 & \cdots & 0\\ 0 & a_{ij}& \cdots & 0\\ \vdots & \vdots & \vdots & \vdots\\ 0 &0 & \cdots & a_{ij}\\ \end{array} \right]
Rij=⎣⎢⎢⎢⎡aij0⋮00aij⋮0⋯⋯⋮⋯00⋮aij⎦⎥⎥⎥⎤
则
A
n
(
t
)
⊗
I
m
=
[
0
m
R
12
⋯
R
1
n
R
21
0
m
⋯
R
2
n
⋮
⋮
⋮
⋮
R
n
1
R
n
2
⋯
0
m
]
\mathcal{A}_n(t) \otimes I_m=\left[ \begin{array}{cccc} 0_m & R_{12} & \cdots & R_{1n}\\ R_{21} & 0_m & \cdots & R_{2n}\\ \vdots & \vdots & \vdots & \vdots\\ R_{n1} & R_{n2} & \cdots & 0_m\\ \end{array} \right]
An(t)⊗Im=⎣⎢⎢⎢⎡0mR21⋮Rn1R120m⋮Rn2⋯⋯⋮⋯R1nR2n⋮0m⎦⎥⎥⎥⎤
在上面要注意的是
ξ
i
\xi_i
ξi本身就是
m
×
1
m \times 1
m×1维的,所以在不用kroncker积的情况下,是用一个数去乘一个向量,数与向量的每一个元素相乘。当我们用kroncker积的时候,全用矩阵表达需要注意维数的匹配,自然而然就能推导成功。
其实上面的是在用数乘以一个向量,和我们用矩阵乘不矛盾,对角矩阵就有这样的能力。
在某一些情况下,化成矩阵的时候要考虑维数匹配,这样就知道
⊗
\otimes
⊗所要加入的单位矩阵的维数。
本文在已经有了多智能体基础以及输出调节基础的情况下,推导的难点在于关于v的估计量
η
\eta
η的kroncker积推导。
在后面得到矩阵方程的时候,与输出调节中证明的内容相同
X
c
(
I
N
⊗
S
)
=
A
c
X
c
+
B
c
0
=
C
c
X
c
+
D
c
\begin{aligned} X_c(I_N \otimes S)&=A_cX_c+B_c\\ 0&=C_cX_c+D_c \end{aligned}
Xc(IN⊗S)0=AcXc+Bc=CcXc+Dc
这篇论文形成的一个最重要的条件是:
g
n
+
1
g_{n+1}
gn+1有有向生成树并且以要跟踪的leader为根节点。
LQR-based coupling gain for sychronization of linear systems
第一遍文献阅读:
记录下一些自己的想法和体会,后期再看对与不对
Main result中,黎卡提(Riccati)equation 有解的条件难道就是(A,B)是可镇定的,如果Riccati方程有唯一正定的解p,那么改写方程后得出
A
−
B
B
T
P
A-BB^TP
A−BBTP是Hurwitz的条件应该就是矩阵
P
B
B
T
P
PBB^TP
PBBTP是正定的,后面我在具体证明,整个论文最中心的内容在于
V
V
V与
v
v
v的引入。
第二遍阅读文献:基本从数学的角度推过去了,这次推过去的主要用到的数学公式就是克罗内克积的逆的公式,但是仍然有几个点有待解决,如
Δ
\Delta
Δ的对角线元素就是其特征值,我还没有证明。这一点过去也就没啥了。
第三遍阅读文献:从整个思想上去把握
- couple:耦合的思想
我只能隐约的记得我在chi-tsong chen的线性系统中有遇到过耦合的概念。
Δ \Delta Δ第一个耦合是在书中的第二章中介绍系统的数学描述时出现的,系统的A,B,C矩阵都能拆分成block diagonal的形式,所以方程可以分解为uncoupled parts(解耦的各个部分)。对于各个部分可以分别考虑其各种特性:例如可控性、稳定性、能观性
Δ \Delta Δ第二个耦合 在第9章中对于线性系统的POLE PLACEMENT AND MODEL MATCHING这一设计章节中,专门有介绍Decoupling的,思想还是转换成对角的形式
在线性系统中耦合似乎是一件不好的事情,我们尽力的去除耦合,但是在多智能体系统中耦合是很重要且必要的,耦合描述了多个智能体之间的连通性,信息交互能力。耦合的刻画指标对于系统能否实现相应的功能至关重要。 - 对于
v
v
v与
V
V
V的引入,其实是一种等价变换,相当于对状态x将其通过equivalence transformation转化为
x
ˉ
\bar{x}
xˉ,然后再进行后续的工作
借着这里的机会,我很想谈谈等价变换到底再做什么:首先,对于最一般的线性时不变系统的状态方程,A将n维实数空间映射到其本身,每一个状态空间方程都对应着一组正交基,我们做一个等价变换就是选择另外一组正交基来表示他们。
总体思路
多智能体中永恒的两个问题:状态的sychronization或者tracking,怎么样设计一个数学描述去表示sychronization或者tracking,对于线性系统,我们可以借助特征值分析整个系统的变化,所以其一般的方法有:
- 有设计误差变量e(对于tracking的问题:直接与reference做差即可;对于sychronization,可以选择其中任意的两个状态做差 δ i = x i − x j \delta_i=x_i-x_j δi=xi−xj,获得误差变量后,就是证明当时间趋向于无穷时,其误差能趋向于0。
- 讨论加入控制输入 u i u_i ui的状态方程,直接分析状态 x i x_i xi的变化。