【Paper】2021_Optimal Distributed Leader-following Consensus of Linear Multi-agent Systems: A Dynamic
Ren Y, Wang Q, Duan Z. Optimal Distributed Leader-following Consensus of Linear Multi-agent Systems: A Dynamic Average Consensus-based Approach[J]. IEEE Transactions on Circuits and Systems II: Express Briefs, 2021.
gig_igi | pinning gain of agent iii | |
文章目录
- 2. Preliminaries and problem formulation
- 2.1 Basic graph theory
- 2.2 Problem formulation
- Simulations
2. Preliminaries and problem formulation
2.1 Basic graph theory
2.2 Problem formulation
δi:=∑j∈Niaij(xi−xj)+gi(xi−x0),∀i∈N(3)\delta_i := \sum_{j \in N_i} a_{ij} (x_i - x_j) + g_i (x_i - x_0), \quad \forall i \in N \tag{3}δi:=j∈Ni∑aij(xi−xj)+gi(xi−x0),∀i∈N(3)
δ=((L+G)⊗In)(x−x‾0)(4)\delta = ((L+G) \otimes I_n) (x-\underline{x}_0) \tag{4}δ=((L+G)⊗In)(x−x0)(4)
x=diag[x1T,x2T,⋯,xNT]Tx = \text{diag} [ x_1^\text{T}, x_2^\text{T}, \cdots, x_N^\text{T} ]^\text{T}x=diag[x1T,x2T,⋯,xNT]Tδ=diag[δ1T,δ2T,⋯,δNT]T\delta = \text{diag} [ \delta_1^\text{T}, \delta_2^\text{T}, \cdots, \delta_N^\text{T} ]^\text{T}δ=diag[δ1T,δ2T,⋯,δNT]Tx‾0=1N⊗x0∈RnN\underline{x}_0 = \mathbf{1}_N \otimes x_0 \in \R^{nN}x0=1N⊗x0∈RnNG=diag{g1,g2,⋯,gN}G = \text{diag}\{g_1, g_2, \cdots, g_N\}G=diag{g1,g2,⋯,gN}
the over all form of tracking error dynamics is
δ˙=(IN⊗A)δ+[(L+G)⊗B]u(5)\dot{\delta} = (I_N \otimes A) \delta + [(L+G) \otimes B] u \tag{5}δ˙=(IN⊗A)δ+[(L+G)⊗B]u(5)
u=[u1T,u2T,⋯,uNT]Tu = [ u_1^\text{T}, u_2^\text{T}, \cdots, u_N^\text{T} ]^\text{T}u=[u1T,u2T,⋯,uNT]T
Simulations
A=[01−10],B=[21]\begin{aligned} A = \left[\begin{matrix} 0 & 1 \\ -1 & 0 \\ \end{matrix}\right], B = \left[\begin{matrix} 2 \\ 1 \\ \end{matrix}\right] \end{aligned}A=[0−110],B=[21]
L=[2−10−1−12−100−12−1−10−12],G=[1000000000000000]\begin{aligned} L = \left[\begin{matrix} 2 & -1 & 0 & -1 \\ -1 & 2 & -1 & 0 \\ 0 & -1 & 2 & -1 \\ -1 & 0 & -1 & 2 \\ \end{matrix}\right], G = \left[\begin{matrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ \end{matrix}\right] \end{aligned}L=⎣⎢⎢⎡2−10−1−12−100−12−1−10−12⎦⎥⎥⎤,G=⎣⎢⎢⎡1000000000000000⎦⎥⎥⎤
解黎卡提方程求得
%% Define Initial States
A = [0 1-1 0];
B = [21];
Q = [1 00 1] * 10;
R = 1;[P, l, g] = care(A, B, Q, R);K = 1/(R) * B' * P
结果为:
K =4.3851 -0.8782
K=[4.3851−0.8782]K = [4.3851 -0.8782]K=[4.3851−0.8782]
u1∗=(a11+a12+a13+a14+g1)−1(a11u1∗+a12u2∗+a13u3∗+a14u4∗−Kδ1)u2∗=(a21+a22+a23+a24+g2)−1(a21u1∗+a22u2∗+a23u3∗+a24u4∗−Kδ2)u3∗=(a31+a32+a33+a34+g3)−1(a31u1∗+a32u2∗+a33u3∗+a34u4∗−Kδ3)u4∗=(a41+a42+a43+a44+g4)−1(a41u1∗+a42u2∗+a43u3∗+a44u4∗−Kδ4)\begin{aligned} u_1^* &= (a_{11} + a_{12} + a_{13} + a_{14} + g_1)^{-1} &(a_{11}u_1^* + a_{12}u_2^* + a_{13}u_3^* + a_{14}u_4^* - K \delta_1) \\ u_2^* &= (a_{21} + a_{22} + a_{23} + a_{24} + g_2)^{-1} &(a_{21}u_1^* + a_{22}u_2^* + a_{23}u_3^* + a_{24}u_4^* - K \delta_2) \\ u_3^* &= (a_{31} + a_{32} + a_{33} + a_{34} + g_3)^{-1} &(a_{31}u_1^* + a_{32}u_2^* + a_{33}u_3^* + a_{34}u_4^* - K \delta_3) \\ u_4^* &= (a_{41} + a_{42} + a_{43} + a_{44} + g_4)^{-1} &(a_{41}u_1^* + a_{42}u_2^* + a_{43}u_3^* + a_{44}u_4^* - K \delta_4) \\ \end{aligned}u1∗u2∗u3∗u4∗=(a11+a12+a13+a14+g1)−1=(a21+a22+a23+a24+g2)−1=(a31+a32+a33+a34+g3)−1=(a41+a42+a43+a44+g4)−1(a11u1∗+a12u2∗+a13u3∗+a14u4∗−Kδ1)(a21u1∗+a22u2∗+a23u3∗+a24u4∗−Kδ2)(a31u1∗+a32u2∗+a33u3∗+a34u4∗−Kδ3)(a41u1∗+a42u2∗+a43u3∗+a44u4∗−Kδ4)
原文中,每个智能体的跟踪误差 δ\deltaδ 的定义为:
δi:=∑j∈Niaij(xi−xj)+gi(xi−x0)(3)\delta_i := \sum_{j\in N_i} a_{ij} (x_i - x_j) + g_i (x_i - x_0) \tag{3}δi:=j∈Ni∑aij(xi−xj)+gi(xi−x0)(3)
δ1=a11(x1−x1)+a12(x1−x2)+a13(x1−x3)+a14(x1−x4)+g1(x1−x0)=a12(x1−x2)+a13(x1−x3)+a14(x1−x4)+g1(x1−x0)δ2=a21(x2−x1)+a22(x2−x2)+a23(x2−x3)+a24(x2−x4)+g2(x2−x0)=a21(x2−x1)+a23(x2−x3)+a24(x2−x4)+g2(x2−x0)δ3=a31(x3−x1)+a32(x3−x2)+a33(x3−x3)+a34(x3−x4)+g3(x3−x0)=a31(x3−x1)+a32(x3−x2)+a34(x3−x4)+g3(x3−x0)δ4=a41(x4−x1)+a42(x4−x2)+a43(x4−x3)+a44(x4−x4)+g4(x4−x0)=a41(x4−x1)+a42(x4−x2)+a43(x4−x3)+g4(x4−x0)\begin{aligned} \delta_1 &= a_{11}(x_1-x_1) + a_{12}(x_1-x_2) + a_{13}(x_1-x_3) + a_{14}(x_1-x_4) + g_1(x_1 -x_0) \\ &= a_{12}(x_1-x_2) + a_{13}(x_1-x_3) + a_{14}(x_1-x_4) + g_1(x_1 -x_0) \\ \delta_2 &= a_{21}(x_2-x_1) + a_{22}(x_2-x_2) + a_{23}(x_2-x_3) + a_{24}(x_2-x_4) + g_2(x_2 -x_0) \\ &= a_{21}(x_2-x_1) + a_{23}(x_2-x_3) + a_{24}(x_2-x_4) + g_2(x_2 -x_0) \\ \delta_3 &= a_{31}(x_3-x_1) + a_{32}(x_3-x_2) + a_{33}(x_3-x_3) + a_{34}(x_3-x_4) + g_3(x_3 -x_0) \\ &= a_{31}(x_3-x_1) + a_{32}(x_3-x_2) + a_{34}(x_3-x_4) + g_3(x_3 -x_0) \\ \delta_4 &= a_{41}(x_4-x_1) + a_{42}(x_4-x_2) + a_{43}(x_4-x_3) + a_{44}(x_4-x_4) + g_4(x_4 -x_0) \\ &= a_{41}(x_4-x_1) + a_{42}(x_4-x_2) + a_{43}(x_4-x_3) + g_4(x_4 -x_0) \\ \end{aligned}δ1δ2δ3δ4=a11(x1−x1)+a12(x1−x2)+a13(x1−x3)+a14(x1−x4)+g1(x1−x0)=a12(x1−x2)+a13(x1−x3)+a14(x1−x4)+g1(x1−x0)=a21(x2−x1)+a22(x2−x2)+a23(x2−x3)+a24(x2−x4)+g2(x2−x0)=a21(x2−x1)+a23(x2−x3)+a24(x2−x4)+g2(x2−x0)=a31(x3−x1)+a32(x3−x2)+a33(x3−x3)+a34(x3−x4)+g3(x3−x0)=a31(x3−x1)+a32(x3−x2)+a34(x3−x4)+g3(x3−x0)=a41(x4−x1)+a42(x4−x2)+a43(x4−x3)+a44(x4−x4)+g4(x4−x0)=a41(x4−x1)+a42(x4−x2)+a43(x4−x3)+g4(x4−x0)
总的误差写成矩阵的形式
δ=((L+G)⊗In)(x−x‾0)(4)\begin{aligned} \delta &= (( L + G ) \otimes I_n) (x - \underline{x}_0) \\ \end{aligned} \tag{4}δ=((L+G)⊗In)(x−x0)(4)
这里其实假定了系统是一阶的,也就是状态向量 x1x_1x1 仅为一维的,而文中用到的 InI_nIn 这里的小写字母 nnn 就是代表了单个智能体的状态向量的维度,也就是系统的阶数。
同时,大写字母 NNN 表示的是系统中智能体的数量。
δ=((L+G)⊗In)(x−x‾0)=((L+G)⊗In)(x−1N⊗x0)=(([2−10−1−12−100−12−1−10−12]+[1000000000000000])⊗In)([x1x2x3x4]−[1111]⊗x0)=([3−10−1−12−100−12−1−10−12]⊗In)([x1x2x3x4]−[x0x0x0x0])\begin{aligned} \delta &= (( L + G ) \otimes I_n) (x - \underline{x}_0) \\ &= (( L + G ) \otimes I_n) (x - 1_N \otimes x_0) \\ &= ((\left[\begin{matrix} 2 & -1 & 0 & -1 \\ -1 & 2 & -1 & 0 \\ 0 & -1 & 2 & -1 \\ -1 & 0 & -1 & 2 \\ \end{matrix}\right]+ \left[\begin{matrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ \end{matrix}\right]) \otimes I_n )(\left[\begin{matrix} x_1 \\ x_2 \\ x_3 \\ x_4 \\ \end{matrix}\right] -\left[\begin{matrix} 1 \\ 1 \\ 1 \\ 1 \\ \end{matrix}\right] \otimes x_0) \\ &= (\left[\begin{matrix} 3 & -1 & 0 & -1 \\ -1 & 2 & -1 & 0 \\ 0 & -1 & 2 & -1 \\ -1 & 0 & -1 & 2 \\ \end{matrix}\right] \otimes I_n) (\left[\begin{matrix} x_1 \\ x_2 \\ x_3 \\ x_4 \\ \end{matrix}\right]- \left[\begin{matrix} x_0 \\ x_0 \\ x_0 \\ x_0 \\ \end{matrix}\right]) \end{aligned}δ=((L+G)⊗In)(x−x0)=((L+G)⊗In)(x−1N⊗x0)=((⎣⎢⎢⎡2−10−1−12−100−12−1−10−12⎦⎥⎥⎤+⎣⎢⎢⎡1000000000000000⎦⎥⎥⎤)⊗In)(⎣⎢⎢⎡x1x2x3x4⎦⎥⎥⎤−⎣⎢⎢⎡1111⎦⎥⎥⎤⊗x0)=(⎣⎢⎢⎡3−10−1−12−100−12−1−10−12⎦⎥⎥⎤⊗In)(⎣⎢⎢⎡x1x2x3x4⎦⎥⎥⎤−⎣⎢⎢⎡x0x0x0x0⎦⎥⎥⎤)
δ˙=(IN⊗A)δ+[(L+G)⊗B]u(5)\begin{aligned} \dot{\delta} &= (I_N \otimes A) \delta + [(L+G)\otimes B]u \\ \end{aligned} \tag{5}δ˙=(IN⊗A)δ+[(L+G)⊗B]u(5)
Cost function 的设计为
J=∫0∞L(δ(τ),u(τ))dτ(6)J = \int_0^\infty L(\delta(\tau), u(\tau)) d\tau \tag{6}J=∫0∞L(δ(τ),u(τ))dτ(6)
L(δ(t),u(t))=12(δT(t)Qδ(t)+uT(t)Ru(t))L(\delta(t), u(t)) = \frac{1}{2} (\delta^T(t) Q \delta(t) + u^T(t) R u(t) )L(δ(t),u(t))=21(δT(t)Qδ(t)+uT(t)Ru(t))
控制协议的设计为
ui∗=(∑j=1Naij+gi)−1(∑j=1Naijuj∗−Kδi)(7)u_i^* = (\sum_{j=1}^N a_{ij} + g_i)^{-1} (\sum_{j=1}^N a_{ij} u_j^* - K \delta_i) \tag{7}ui∗=(j=1∑Naij+gi)−1(j=1∑Naijuj∗−Kδi)(7)
代入数值
u1∗=(2+1)−1(0⋅u1∗+1⋅u2∗+0⋅u3∗+1⋅u4∗−Kδ1)=(3)−1(u2∗+u4∗−[4.3851,−0.8782]δ1)u2∗=(2+0)−1(1⋅u1∗+0⋅u2∗+1⋅u3∗+0⋅u4∗−Kδ2)=(2)−1(u1∗+u3∗−[4.3851,−0.8782]δ2)u3∗=(2+0)−1(0⋅u1∗+1⋅u2∗+0⋅u3∗+1⋅u4∗−Kδ3)=(2)−1(u2∗+u4∗−[4.3851,−0.8782]δ3)u4∗=(2+0)−1(1⋅u1∗+0⋅u2∗+1⋅u3∗+0⋅u4∗−Kδ4)=(2)−1(u1∗+u3∗−[4.3851,−0.8782]δ4)\begin{aligned} u_1^* &= (2 + 1)^{-1} (0 \cdot u_1^* + 1 \cdot u_2^* + 0 \cdot u_3^* + 1 \cdot u_4^* - K \delta_1) \\ &= (3)^{-1} (u_2^* + u_4^* - [4.3851, -0.8782] \delta_1) \\\\ u_2^* &= (2 + 0)^{-1} (1 \cdot u_1^* + 0 \cdot u_2^* + 1 \cdot u_3^* + 0 \cdot u_4^* - K \delta_2) \\ &= (2)^{-1} (u_1^* + u_3^* - [4.3851, -0.8782] \delta_2) \\\\ u_3^* &= (2 + 0)^{-1} (0 \cdot u_1^* + 1 \cdot u_2^* + 0 \cdot u_3^* + 1 \cdot u_4^* - K \delta_3) \\ &= (2)^{-1} (u_2^* + u_4^* - [4.3851, -0.8782] \delta_3) \\\\ u_4^* &= (2 + 0)^{-1} (1 \cdot u_1^* + 0 \cdot u_2^* + 1 \cdot u_3^* + 0 \cdot u_4^* - K \delta_4) \\ &= (2)^{-1} (u_1^* + u_3^* - [4.3851, -0.8782] \delta_4) \end{aligned}u1∗u2∗u3∗u4∗=(2+1)−1(0⋅u1∗+1⋅u2∗+0⋅u3∗+1⋅u4∗−Kδ1)=(3)−1(u2∗+u4∗−[4.3851,−0.8782]δ1)=(2+0)−1(1⋅u1∗+0⋅u2∗+1⋅u3∗+0⋅u4∗−Kδ2)=(2)−1(u1∗+u3∗−[4.3851,−0.8782]δ2)=(2+0)−1(0⋅u1∗+1⋅u2∗+0⋅u3∗+1⋅u4∗−Kδ3)=(2)−1(u2∗+u4∗−[4.3851,−0.8782]δ3)=(2+0)−1(1⋅u1∗+0⋅u2∗+1⋅u3∗+0⋅u4∗−Kδ4)=(2)−1(u1∗+u3∗−[4.3851,−0.8782]δ4)
整理一下
u1∗=(3)−1(u2∗+u4∗−[4.3851,−0.8782]δ1)u2∗=(2)−1(u1∗+u3∗−[4.3851,−0.8782]δ2)u3∗=(2)−1(u2∗+u4∗−[4.3851,−0.8782]δ3)u4∗=(2)−1(u1∗+u3∗−[4.3851,−0.8782]δ4)\begin{aligned} u_1^* &= (3)^{-1} (u_2^* + u_4^* - [4.3851, -0.8782] \delta_1) \\ u_2^* &= (2)^{-1} (u_1^* + u_3^* - [4.3851, -0.8782] \delta_2) \\ u_3^* &= (2)^{-1} (u_2^* + u_4^* - [4.3851, -0.8782] \delta_3) \\ u_4^* &= (2)^{-1} (u_1^* + u_3^* - [4.3851, -0.8782] \delta_4) \end{aligned}u1∗u2∗u3∗u4∗=(3)−1(u2∗+u4∗−[4.3851,−0.8782]δ1)=(2)−1(u1∗+u3∗−[4.3851,−0.8782]δ2)=(2)−1(u2∗+u4∗−[4.3851,−0.8782]δ3)=(2)−1(u1∗+u3∗−[4.3851,−0.8782]δ4)
定义Hamilton函数为
H(δ,u)=L(δ,u)+λTF(δ,u)(9)H(\delta, u) = L(\delta, u) + \lambda^T F(\delta, u) \tag{9}H(δ,u)=L(δ,u)+λTF(δ,u)(9)
F(δ,u)=(IN⊗A)δ+[(L+G)⊗B]u=([1000010000100001]⊗[01−10])δ+[[3−10−1−12−100−12−1−10−12]⊗B]u=([A0000A0000A0000A])δ+[[3−10−1−12−100−12−1−10−12]⊗B]u=δ˙\begin{aligned} F(\delta, u) &= (I_N \otimes A) \delta + [(L + G) \otimes B] u \\ &= (\left[\begin{matrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{matrix}\right]\otimes \left[\begin{matrix} 0 & 1 \\ -1 & 0 \\ \end{matrix}\right]) \delta + [ \left[\begin{matrix} 3 & -1 & 0 & -1 \\ -1 & 2 & -1 & 0 \\ 0 & -1 & 2 & -1 \\ -1 & 0 & -1 & 2 \\ \end{matrix}\right] \otimes B] u \\ &= (\left[\begin{matrix} A & 0 & 0 & 0 \\ 0 & A & 0 & 0 \\ 0 & 0 & A & 0 \\ 0 & 0 & 0 & A \\ \end{matrix}\right] ) \delta + [ \left[\begin{matrix} 3 & -1 & 0 & -1 \\ -1 & 2 & -1 & 0 \\ 0 & -1 & 2 & -1 \\ -1 & 0 & -1 & 2 \\ \end{matrix}\right] \otimes B] u \\ &= \dot{\delta} \end{aligned}F(δ,u)=(IN⊗A)δ+[(L+G)⊗B]u=(⎣⎢⎢⎡1000010000100001⎦⎥⎥⎤⊗[0−110])δ+[⎣⎢⎢⎡3−10−1−12−100−12−1−10−12⎦⎥⎥⎤⊗B]u=(⎣⎢⎢⎡A0000A0000A0000A⎦⎥⎥⎤)δ+[⎣⎢⎢⎡3−10−1−12−100−12−1−10−12⎦⎥⎥⎤⊗B]u=δ˙
必要性证明
【Paper】2021_Optimal Distributed Leader-following Consensus of Linear Multi-agent Systems: A Dynamic相关推荐
- 【Paper】2020_GrHDP Solution for Optimal Consensus Control of Multiagent Discrete-Time Systems
X. Zhong and H. He, "GrHDP Solution for Optimal Consensus Control of Multiagent Discrete-Time S ...
- 【Paper】2021_Observer-based distributed consensus for multi-agent systems with directed networks and
Shuzhen Yu, Zhiyong Yu, Haijun Jiang, Xuehui Mei, Observer-based distributed consensus for multi-age ...
- 【Paper】2017_The distributed optimal consensus algorithms for general linear multi-agent systems
Zhang F, Wang H, Tan C, et al. The distributed optimal consensus algorithms for general linear multi ...
- 【Paper】2013_Event-triggering Sampling Based Leader-following Consensus in Second-order Multi-agent S
Event-triggering Sampling Based Leader-following Consensus in Second-order Multi-agent Systems 文章目录 ...
- 【Paper】2021_Distributed Consensus Tracking of Networked Agent Systems Under Denial-of-Service Attack
Y. Wan, G. Wen, X. Yu and T. Huang, "Distributed Consensus Tracking of Networked Agent Systems ...
- 【Paper】2015_Leader–follower consensus of linear multi-agent systems with unknown external disturbanc
[Cao W, Zhang J, Ren W. Leader–follower consensus of linear multi-agent systems with unknown externa ...
- 【Paper】2003_Consensus Problems in Networks of Agents with Switching Topology and Time-Delays
此篇文章主要在于仿真代码,关于文献的解释请参考 [Paper]2003_Murr_Consensus Problems in Networks of Agents with Switching Top ...
- 【Paper】2019_Consensus Control of Multiple AUVs Recovery System Under Switching Topologies and Time D
Zhang W, Zeng J, Yan Z, et al. Consensus control of multiple AUVs recovery system under switching to ...
- 【Paper】2009_Controllability of Multi-Agent Systems from a Graph-Theoretic Perspective 精炼版
详细版请参考:[Paper]2009_Controllability of Multi-Agent Systems from a Graph-Theoretic Perspective 文章目录 5. ...
最新文章
- 50 道 CSS 基础面试题及答案
- [Oracle]如何在亿级记录表中创建索引
- SpringBoot_日志-SpringBoot默认配
- ngx_connection_t结构体
- win7计算机用户名在哪找,win7 c盘里找不到users,用户里也没有C:#92;User...-win7电脑c盘USERS文件夹在哪...
- .NET Core开发日志——简述路由
- linux shell之得到当前路径下的目录
- IDEA 自动生成类注释和方法注释
- DockerFile最佳实践:
- zookeeper安装和基本操作
- 【SSD目标检测】3:训练自己的数据集
- ARM版本的IAR的下载和安装
- MySQL判断是否在同一天
- 论文阅读:Which Has Better Visual Quality: The Clear BlueSky or a Blurry Animal?
- 【JPress】jpress-core架构
- 助力危化运输升级 欧曼一体化解决方案再写山东危化安全运输新篇
- jupter 使用
- 使用pyTorch搭建自己的facenet
- 使用elementUI中的date-picker组件年月日显示英文
- 京东程序员压力太大在网页植入骂人代码?官方辟谣!