写在前面
原论文标题:Affine Formation Maneuver Control of Multiagent Systems.
本文为近期阅读的论文(Zhao 2018)的笔记。该论文研究基于仿射变换的编队控制,重点集中于如何通过控制leader实现maneuver。
预备基础
column stack(记作vec)的性质:
vec(ABC)x⊗y=(CT⊗A)vec(B)=vec(yxT)
configuration matrix定义为:
P(p)=⎣⎢⎡p1T⋮pnT⎦⎥⎤,Pˉ(p)=[P(p)1n],
其中pi∈Rd的column stack叫做configuration p=[p1T,⋯,pnT]T。
结合上面两个,得到一个多智能体控制中常用的性质:
vec((LP(p))T)=(L⊗Id)vec(PT(p))。(1)
该性质在matlab编程中可以简化代码。
线性相关和仿射相关
线性相关(linearly dependant)要求∑i=1naipi=0,而仿射相关(affinely dependant)额外要求∑i=1nai=0。这个区别直接反映在configuration matrix上,故{pi}i=1n仿射相关当且仅当Pˉ(p)行线性相关,即PˉT(p)a=0。
仿射相关肯定线性相关,反之不一定。线性无关肯定仿射无关,反之不一定。
由于Pˉ(p)有d+1列,所以Rd空间最多有d+1个点仿射无关(affinely independant)。相对应的,Rd空间最多有d个点线性无关(linearly dependant)。
当{pi}i=1n中存在d+1个点仿射无关时,Rd可以被{pi}i=1n仿射展开(affine span),此时Pˉ(p)行线性无关,rank(Pˉ(p))=d+1。
引理1:{pi}i=1n仿射展开Rd,当且仅当n≥d+1和rank(Pˉ(p))=d+1。
Stress Matrix
对基于图论定义的formation(G,p),stress是每条边上的标量权重,{ωij}(i,j)∈E ,其中ωij=ωji∈R。
equilibrium stress满足
j∈Ni∑ωij(pi−pj)=0,i∈V。(2)
可知,如果ω是equilibrium stress,则kω也是(k=0)。
Distance Rigidity
对于一组formation,满足等价和全等的条件为:
globally rigid:对于一个formation,等价和全等同时成立。
universally rigid:对于一个formation,在任意Rd1空间满足globally rigid,其中d1≥d。
应用式(1),定义对称的equilibrium stress matrix Ω,我们将平衡条件式(2)重写为
(Ω⊗Id)p=vec((ΩP(p))T)=0。(3)
由于rank(P(p))=d+1,故rank(Ω)=n−d−1。
引理2:给定无向图G和generic configuration p,formation (G,p)是universally rigid当且仅当存在半正定stress matrix Ω满足rank(Ω)=n−d−1。
注意:线性代数里正定性的前提是实对称矩阵。对称正定矩阵可以对角化,特征向量正交(正规矩阵的性质),所有特征值大于0。
Consider all of the coordinates of p=[p1T,⋯,pnT]T as a set of numbers x1,x2,⋯,xdn, and consider any non-zero polynomial equation f(x1,x2,⋯,xdn) with integer coeffcients and the numbers (the coordinates) substituted for the variables x1,x2,⋯,xdn. If f(p)=0 for every such f, we say that the configuration is generic.
论文(Zhao 2018)中对generic的定义是:the coordinates of all the nodes do not satisfy any nontrivial equations with rational coefficients. 由于有理数可以通过乘以最小公倍数得到整数,该定义与上述定义一致。
给定nominal configuration r=[r1T,⋯,rnT]T和nominal formation (G,r),target formation中的configuration为
p∗(t)=[In⊗A(t)]r+1n⊗b(t),A(t)∈Rd×d,b(t)∈Rd,
即p∗(t)∈A(r),其中A(r)为r的affine image。
引理3:A(r)的维度为d2+d当且仅当{ri}i=1n仿射展开Rd。
假设1:{ri}i=1n仿射展开Rd。我们不讨论控制算法的设计和稳定性证明,主要研究下面几个问题。
Affine Image和Stress Matrix的关系
引理4:对任意nominal configuration r,以下条件始终成立:
A(r)Col(Pˉ(r))⊆Null(Ω⊗Id),⊆Null(Ω)。
因为{ri}i=1n满足(2),所以{Ari+b}i=1n满足(2),第一个条件成立。由式(3)知,第二个条件成立。
假设2:nominal formation (G,r)存在满足引理2的Ω。
引理5:满足假设2的条件下,下列条件等价。
- {ri}i=1n仿射展开Rd。
- Null(Ω⊗Id)=A(r)。
- Null(Ω)=Col(Pˉ(r))。
在引理4的基础上,证明引理5只需要证明维度相等。由假设2和引理2,知dim(Null(Ω×Id))=d(d+1),再由引理3,知两者维度相等。同理可证第3条。
什么条件下Stress Matrix可行
定理1:满足假设1的条件下,nominal formation (G,r)仿射可定位(affinely localizable)当且仅当leader节点,即{ri}i∈Vl,仿射展开Rd。
仿射可定位:已知(G,r),给定leader节点pl可以唯一确定target configuration p=[plT,pfT]T。也就是说,A和b被唯一确定。
推论1:如果{ri}i∈Vl仿射展开Rd,那么对任意p∈A(r),相对应的A和b被唯一确定为
Ab=(i∈Vl∑pir~iT)(i∈Vl∑r~ir~iT)−1,=nl1i∈Vl∑pi−Arˉ,
其中rˉ=∑i∈Vlri/nl和r~i=ri−rˉ。
由推论1可知,{ri}i∈Vl仿射展开Rd当且仅当∑i∈Vlr~ir~iT非奇异。
下面研究什么样的Ω满足仿射可定位。定义Ωˉ=Ω⊗Id=[ΩˉllΩˉflΩˉlfΩˉff]。
定理2:满足假设1、2的情况下,nominal formation (G,r)仿射可定位当且仅当Ωˉff非奇异。此时,pf被唯一确定,即pf=−Ωˉff−1Ωˉflpl。
假设3:nominal formation (G,r)仿射可定位。
假设1、2保证Ω的零空间正好是affine image。假设3保证Ωˉff是正定的(因为Ωˉ半正定,且Ωˉff非奇异)。
参考schur complement condition,对于X=[ABTBC],有:
- X>0 ⇔A>0,C−BTA−1B>0;
- X>0 ⇔C>0,A−BC−1BT>0;
- 如果A>0,那么 X≥0 ⇔ C−BTA−1B≥0;
- 如果C>0,那么 X≥0 ⇔ A−BC−1BT≥0。
如何构建Stress Matrix
令H∈R∣E∣×n为incidence matrix。已知formation (G,r)如何求取Ω满足平衡条件?
首先,由Ω=HTdiag(ω)H和ΩPˉ(r)=0,知PˉT(r)HTdiag(ω)H=PˉT(r)HTdiag(ω)[h1,⋯,hn]=0。
由diag(ω)hi=diag(hi)ω,两者位置互换,得到PˉT(r)HTdiag(hi)w=0。
定义E=⎣⎢⎡PˉT(r)HTdiag(h1)⋮PˉT(r)HTdiag(hn)⎦⎥⎤。则Eω=0,因此ω在E的零空间里。
定义z1,⋯,zq∈R∣E∣为E的零空间上的一组基。则ω=∑i=1qcizi,其中c1,⋯,cn∈R是一组待定系数。
对于宽(fat)矩阵A∈Rm×n,其零空间可以写为In−A†A,然而E∈Rn(d+1)×∣E∣也可能是长(slim)矩阵。
对于长矩阵A∈Rm×n,可以通过奇异值分解求A的零空间。
然后,我们继续确定系数c1,⋯,cn∈R。令Pˉ(r)=UΣVT。令U=[U1,U2],其中U1包含U的前d+1列。因为Pˉ(r)的秩为d+1,所以U1是非零奇异值对应的左奇异向量,即Pˉ(r)的列空间。同理U2是PˉT(r)的零空间。
根据假设2和引理2,我们要求Ω是半正定,且秩为n−d−1。
因为ΩPˉ(r)=0,故ΩU1=0,所以Ω在前d+1维秩为0,于是剩下的n−d−1维需要满秩,即Ω在PˉT(r)的零空间上正定,对任意x∈Null(PˉT(r)),有xTΩx>0。换句话说,对任意y∈Rn,yT(U2TΩU2)y>0。
命题:rank(Ω)=n−d−1当且仅当U2TΩU2=U2THTdiag(ω)HU2>0。
将ω=∑i=1qcizi代入U2THTdiag(ω)HU2,得到∑i=1nciU2THTdiag(zi)HU2>0。
定义Mi=U2THTdiag(zi)HU2。可知系数c1,⋯,cn∈R需要满足条件∑i=1nciMi>0。
附录:奇异值分解的原理和应用
我们回顾一下奇异值分解(singular value decomposition)。
特征值和特征向量
如果A∈Rn×n是实矩阵,其特征值和特征向量定义为Aq=λq,那么A=QDQT是它的特征分解(谱分解),其中Q=[q1,⋯,qn]是它的特征向量,D=diag{λi}i=1n是它的特征根。
一般我们会将特征向量转化为标准正交基,使得Q是标准正交矩阵。
# Eigenvalues and eigenvectors in MATLAB
# such that e are eigenvalues and D = diag(e)
e = eig(A)
# such that A*V=V*D (right) and W'*A=D*W' (left)
[V,D,W] = eig(A)
奇异值分解
如果A∈Rm×n不是方阵,可以进行奇异值分解,即A=UΣVT,其中U∈Rm×m和V∈Rn×n是正交矩阵,Σ∈Rm×n是(矩形)对角阵。
U和V分别是对A正交输出和输入的基向量,也是AAT和ATA的特征向量,即
(AAT)U=UDu,(ATA)V=VDv。
证明:A=UΣVT⇒AT=VΣTUT⇒ATA=VΣTUTUΣVT=V(ΣTΣ)VT。
# Singular value decomposition
# such that s are non-zero sigular values
s = svd(A)
# such that A = U*S*V'
[U,S,V] = svd(A)
常见应用
如果A=UΣVT,那么A†=VΣ†UT,其中Σ†是将Σ非零主对角元求倒数,再转置得到。
对角矩阵Σ的非零对角元素的个数对应于矩阵A的秩。
与零奇异值对应的右奇异向量生成矩阵A的零空间,与非零奇异值对应的左奇异向量则生成矩阵A的列空间。
同理,与零奇异值对应的左奇异向量生成矩阵AT的零空间,与非零奇异值对应的右奇异向量则生成矩阵AT的列空间。