# Flocking of Multi-Agent System with Nonlinear Dynamics via Distributed Event-Triggered Control
## 2 Preliminaries and Problems Formulation
### Controller Design and Stability Analysis  
A distributed ETC law using relative position and velocity information is proposed to realize flocking motion, which is given by  
\[u_{i}(t)=u_{i}^{x}(t)+u_{i}^{v}(t), \tag{6}\]  
in which  
\[u_{i}^{x}(t) =-\sum\limits_{j\in\mathcal{N}_{i}(t_{k}^{i})}\phi\left(\left\|x_{i}(t_ {k}^{i})-x_{j}(t_{k}^{i})\right\|\right)\mathbf{n}_{ij}(t_{k}^{i}),\] \[u_{i}^{v}(t) =-c\sum\limits_{j\in\mathcal{N}_{i}(t_{k}^{i})}a_{ij}(t_{k}^{i}) \left(v_{i}(t_{k}^{i})-v_{j}(t_{k}^{i})\right),\quad t\in[t_{k^{\prime}}^{i}t_ {k+1}^{i}),\]  
where \(c>0\) is a constant coupling gain, \(\mathbf{n}_{ij}(t)=\left(x_{i}(t)-x_{j}(t)\right)/\left\|x_{i}(t)-x_{j}(t)\right\|\), \(\phi(\cdot)\) is the action function defined in (3) and \(t_{k}^{i},k\in\mathcal{Z}\) is the event-triggered controller update time sequence of agent \(i\). Denote the average position and the average velocity of all the agents by \(\tilde{x}(t)=1/N\sum\
olimits_{j=1}^{N}x_{j}(t)\) and \(\tilde{v}(t)=1/N\sum\
olimits_{j=1}^{N}v_{j}(t)\), respectively. Then the position and velocity difference between agent \(i\) and the average are defined as \(\tilde{x}_{i}(t)=x_{i}(t)-\tilde{x}(t)\) and \(\tilde{v}_{i}(t)=v_{i}(t)-\tilde{v}(t)\), respectively. Let \(q_{i}^{x}(t)=\sum_{j\in\mathcal{N}_{i}(t)}\phi\left(\left\|\tilde{x}_{i}(t)- \tilde{x}_{j}(t)\right\|\right)\mathbf{n}_{ij}(t)\), \(q_{i}^{v}(t)=\sum_{j\in\mathcal{N}_{i}(t)}\left(\tilde{v}_{i}(t)-\tilde{v}_{ j}(t)\right)\). For agent \(i\), one can see that \(u_{i}^{x}\) and \(u_{i}^{v}\) are updated at time \(t_{k}^{i}\) and held a constant between \(t_{k}^{i}\) and \(t_{k+1}^{i}\). Then, we define the position and the velocity error of each agent \(i\) as the combined measurements between the latest sampled value and current value, which are  
\[ \begin{split} e_{i}^{x}\left(t\right)=& q_{i}^{x}(t_{k}^{i})-q_{i}^{x}(t),\\ e_{i}^{v}\left(t\right)=& q_{i}^{v}(t_{k}^{i})-q_{i }^{v}(t).\end{split}  \tag{7}\]  
Let \(\tilde{u}(t)=1/N\sum\
olimits_{i=1}^{N}u_{i}(t)\), then one has  
\[\tilde{u}\left(t\right)=\frac{1}{N}\sum\
olimits_{i=1}^{N}\dot{u}_{i}\left(t \right)=\frac{1}{N}\sum\
olimits_{i=1}^{N}\left(u_{i}^{x}\left(t\right)+u_{i}^ {v}\left(t\right)\right),\]  
where  
\[\sum\
olimits_{i=1}^{N}u_{i}^{x}\left(t\right)=\sum\limits_{i=1}^{N}\left(- \sum\limits_{j\in\mathcal{N}_{i}(t_{k}^{i})}\phi\left(\left\|x_{i}(t_{k}^{i}) -x_{j}(t_{k}^{i})\right\|\right)\mathbf{n}_{ij}(t_{k}^{i})\right),\]  
and  
\[ \begin{split}\sum\
olimits_{i=1}^{N}u_{i}^{v}\left(t\right)& =\sum\limits_{i=1}^{N}\left(-c\sum\limits_{j\in\mathcal{N}_{i}( t_{k}^{i})}a_{ij}(t_{k}^{i})\left(v_{i}(t_{k}^{i})-v_{j}(t_{k}^{i}) \right)\right)\\ &=-\left(I_{n}\otimes\mathbf{1}_{N}^{T}\right)\left(c\otimes L \right)v(t_{k}^{i})\\ &=-\left(cI_{n}\otimes\mathbf{1}_{N}^{T}L\right)v(t_{k}^{i}). \end{split} \]  
For \(\forall(i,j)\in\mathcal{E}(t_{k}^{i})\), one has \(\phi\left(\left\|x_{i}(t_{k}^{i})-x_{j}(t_{k}^{i})\right\|\right)=\phi\left( \left\|x_{j}(t_{k}^{i})-x_{i}(t_{k}^{i})\right\|\right)\) and \(\mathbf{n}_{ij}(t_{k}^{i})=-\mathbf{n}_{ji}(t_{k}^{i})\), then \(\sum\
olimits_{i=1}^{N}u_{i}^{x}\left(t\right)=0\). Besides, for a connected undirected graph \(\mathcal{G}\), one has \(1_{N}^{T}L=0\Rightarrow\sum\
olimits_{i=1}^{N}u_{i}^{v}\left(t\right)=0\). Thus, \(\hat{u}\left(t\right)\equiv 0\). Then, the MAS (1) can be rewritten as  
\[\left\{ \begin{array}{l}\hat{x}_{i}(t)=\hat{v}_{i}(t),\\ \hat{v}_{i}(t)=f(v_{i},t)-\frac{1}{N}\sum\limits_{j=1}^{N}f(v_{j},t)+u_{i}(t), \end{array} \right. \tag{8}\]where  
\[u_{i}(t)= -\left(\sum_{j\in\mathcal{N}_{i}(t)}\phi\big{(}\big{\|}\hat{x}_{i}(t )-\hat{x}_{j}(t)\big{\|}\big{)}\mathbf{n}_{ij}(t)+\epsilon_{i}^{x}(t)\right)\] \[-c\left(\sum_{j\in\mathcal{N}_{i}(t)}a_{ij}(t)(\hat{v}_{i}(t)- \hat{v}_{j}(t))+\epsilon_{i}^{x}(t)\right).\]  
Now, we are ready to define the event-triggered controller update time sequence.