第9章 回到目录 第11章

第10章-一阶多智能体系统非合作行为检测与隔离

  • 10.1 研究背景
    • 流言算法
  • 10.2 系统模型及非合作行为建模
    • 10.2.1 系统建模
    • 10.2.2 非合作行为定义
      • 非合作行为
      • 毁坏型
      • 失控型
      • 干扰型
    • 10.2.3 非合作行为建模
  • 10.3 一阶多智能体系统非合作行为检测、隔离与修复
    • 10.3.1 问题描述
      • 定义 10.1 非合作节点
    • 10.3.2 非合作行为检测、隔离与修复算法设计
      • 1. 基于通信的非合作行为检测算法
        • 算法6 一阶多智能体系统非合作行为检测算法
      • 3. 非合作节点的隔离与修复
    • 10.3.3 仿真和实验
      • 1. 节点无任何异常,正常运行
      • 2. 节点出现非合作行为
      • 3. 节点的三种非合作行为
      • 4. 节点三种非合作行为及修复
  • 10.4 结论

10.1 研究背景

流言算法

流言算法,从本质上来说是一种特殊的信息交互算法,其研究的主要内容是信息在复杂网络信息交互结构中的传播效率与代价等问题。


10.2 系统模型及非合作行为建模

10.2.1 系统建模

多智能体系统模型包含两部分:拓扑模型和节点动力学模型。

本章统一采用无向图。


节点动力学模型通常采用一阶或二阶积分器模型。

一阶积分器模型有如下结构:
x˙(t)=u(t)(10.1)\dot{x}(t) = u(t) \tag{10.1}x˙(t)=u(t)(10.1)

二阶积分器模型有如下结构:
p˙(t)=v(t)v˙(t)=u(t)(10.2)\dot{p}(t) = v(t) \\ \dot{v}(t) = u(t) \tag{10.2}p˙​(t)=v(t)v˙(t)=u(t)(10.2)

更为一般地,采用线性系统模型描述的节点动力学模型为:
x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)(10.3)\dot{x}(t) = A x(t) + B u(t) \\ y(t) = C x(t) \tag{10.3}x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)(10.3)


由于一阶积分器模型有其自身的特殊性秩,本章将单独分节对其进行讨论。

而对于其他节点动力学模型,则统一采用式(10.3)所示的线性系统模型进行描述。


在 MAS 的实际运行中,可能存在节点只能获得 相关状态信息 的情况。

含有相关状态信息的节点动力学模型为:

x˙(t)=Ax(t)+Bu(t)zij(t)=C(xi(t)−xj(t))(10.4)\dot{x}(t) = A x(t) + B u(t) \\ \red{z_{ij}(t)} = C (x_i(t) - x_j(t)) \tag{10.4}x˙(t)=Ax(t)+Bu(t)zij​(t)=C(xi​(t)−xj​(t))(10.4)

zij(t)∈Rp\red{z_{ij}(t)} \in \mathbb{R}^pzij​(t)∈Rp 代表节点 iii 与邻居 jjj 之间的相关状态信息

注意,相关状态信息广泛存在于实际的 MAS 中,其存在并不会影响系统的正常控制,但会对非合作行为检测产生不利影响。


10.2.2 非合作行为定义

故障:系统中至少有一项特性或参数偏离了可接受/通常/标准的范围。

在 MAS 中执行故障检测的是节点的邻居而非节点本身,所以即使检测出完整的故障信息也无法对故障进行实时处理。

非合作行为

本章提出非合作行为的概念,即将节点整体视为系统的构成要素,不考虑节点内部具体的运行情况,而只关心其执行任务的能力。若节点无法正常执行协同控制任务,则认定其产生了非合作行为。

毁坏型

失控型

干扰型


10.2.3 非合作行为建模

故障检测领域,常用的带故障信号的线性系统模型为:
x˙(t)=Ax(t)+Bu(t)+Bff(t)y(t)=Cx(t)(10.5)\dot{x}(t) = A x(t) + B u(t) + \red{B_f f(t)} \\ y(t) = C x(t) \tag{10.5}x˙(t)=Ax(t)+Bu(t)+Bf​f(t)y(t)=Cx(t)(10.5)

f(t)∈Rq\red{f(t)} \in \mathbb{R}^qf(t)∈Rq 代表故障信号。


非合作行为检测,由于只关心节点执行任务的情况,而不考虑节点内部的运行情况,因此用以下模型:
x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)+e(t)(10.6)\dot{x}(t) = A x(t) + B u(t) \\ y(t) = C x(t) + \red{e(t)} \tag{10.6}x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)+e(t)(10.6)

e(t)∈Rq\red{e(t)} \in \mathbb{R}^qe(t)∈Rq 代表残差信号,用于描述节点的非合作行为。

展开来写:
[x˙1x˙2x˙3x˙4x˙5x˙6x˙7x˙8]=[1000000001000000001000000001000000001000000001000000001000000001][x1x2x3x4x5x6x7x8]+[1000000001000000001000000001000000001000000001000000001000000001][u1u2u3u4u5u6u7u8]\left[\begin{matrix} \dot{x}_1 \\ \dot{x}_2 \\ \dot{x}_3 \\ \dot{x}_4 \\ \dot{x}_5 \\ \dot{x}_6 \\ \dot{x}_7 \\ \dot{x}_8 \\ \end{matrix}\right] = \left[\begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{matrix}\right] \left[\begin{matrix} x_1 \\ x_2 \\ x_3 \\ x_4 \\ x_5 \\ x_6 \\ x_7 \\ x_8 \\ \end{matrix}\right] + \left[\begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{matrix}\right] \left[\begin{matrix} u_1 \\ u_2 \\ u_3 \\ u_4 \\ u_5 \\ u_6 \\ u_7 \\ u_8 \\ \end{matrix}\right] ⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​x˙1​x˙2​x˙3​x˙4​x˙5​x˙6​x˙7​x˙8​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​10000000​01000000​00100000​00010000​00001000​00000100​00000010​00000001​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​x1​x2​x3​x4​x5​x6​x7​x8​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​+⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​10000000​01000000​00100000​00010000​00001000​00000100​00000010​00000001​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​u1​u2​u3​u4​u5​u6​u7​u8​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​

[x˙1x˙2x˙3x˙4x˙5x˙6x˙7x˙8]=[1000000001000000001000000001000000001000000001000000001000000001][x1x2x3x4x5x6x7x8]+[1000000001000000001000000001000000001000000001000000001000000001]∗(−[d11−a12−a13−a14−a15−a16−a17−a18−a21d22−a23−a24−a25−a26−a27−a28−a31−a32d33−a34−a35−a36−a37−a38−a41−a42−a43d44−a45−a46−a47−a48−a51−a52−a53−a54d55−a56−a57−a58−a61−a62−a63−a64−a65d66−a67−a68−a71−a72−a73−a74−a75−a76d77−a78−a81−a82−a83−a84−a85−a86−a87d88])[x1x2x3x4x5x6x7x8]\left[\begin{matrix} \dot{x}_1 \\ \dot{x}_2 \\ \dot{x}_3 \\ \dot{x}_4 \\ \dot{x}_5 \\ \dot{x}_6 \\ \dot{x}_7 \\ \dot{x}_8 \\ \end{matrix}\right] = \left[\begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{matrix}\right] \left[\begin{matrix} x_1 \\ x_2 \\ x_3 \\ x_4 \\ x_5 \\ x_6 \\ x_7 \\ x_8 \\ \end{matrix}\right] + \left[\begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{matrix}\right] *(- \left[\begin{matrix} d_{11} & -a_{12} & -a_{13} & -a_{14} & -a_{15} & -a_{16} & -a_{17} & -a_{18} \\ -a_{21} & d_{22} & -a_{23} & -a_{24} & -a_{25} & -a_{26} & -a_{27} & -a_{28} \\ -a_{31} & -a_{32} & d_{33} & -a_{34} & -a_{35} & -a_{36} & -a_{37} & -a_{38} \\ -a_{41} & -a_{42} & -a_{43} & d_{44} & -a_{45} & -a_{46} & -a_{47} & -a_{48} \\ -a_{51} & -a_{52} & -a_{53} & -a_{54} & d_{55} & -a_{56} & -a_{57} & -a_{58} \\ -a_{61} & -a_{62} & -a_{63} & -a_{64} & -a_{65} & d_{66} & -a_{67} & -a_{68} \\ -a_{71} & -a_{72} & -a_{73} & -a_{74} & -a_{75} & -a_{76} & d_{77} & -a_{78} \\ -a_{81} & -a_{82} & -a_{83} & -a_{84} & -a_{85} & -a_{86} & -a_{87} & d_{88} \\ \end{matrix}\right]) \left[\begin{matrix} x_1 \\ x_2 \\ x_3 \\ x_4 \\ x_5 \\ x_6 \\ x_7 \\ x_8 \\ \end{matrix}\right] ⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​x˙1​x˙2​x˙3​x˙4​x˙5​x˙6​x˙7​x˙8​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​10000000​01000000​00100000​00010000​00001000​00000100​00000010​00000001​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​x1​x2​x3​x4​x5​x6​x7​x8​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​+⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​10000000​01000000​00100000​00010000​00001000​00000100​00000010​00000001​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​∗(−⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​d11​−a21​−a31​−a41​−a51​−a61​−a71​−a81​​−a12​d22​−a32​−a42​−a52​−a62​−a72​−a82​​−a13​−a23​d33​−a43​−a53​−a63​−a73​−a83​​−a14​−a24​−a34​d44​−a54​−a64​−a74​−a84​​−a15​−a25​−a35​−a45​d55​−a65​−a75​−a85​​−a16​−a26​−a36​−a46​−a56​d66​−a76​−a86​​−a17​−a27​−a37​−a47​−a57​−a67​d77​−a87​​−a18​−a28​−a38​−a48​−a58​−a68​−a78​d88​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​)⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​x1​x2​x3​x4​x5​x6​x7​x8​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​

[y1y2y3y4y5y6y7y8]=[1000000001000000001000000001000000001000000001000000001000000001][x1x2x3x4x5x6x7x8]+[1000000001000000001000000001000000001000000001000000001000000001][e1e2e3e4e5e6e7e8]\left[\begin{matrix} y_1 \\ y_2 \\ y_3 \\ y_4 \\ y_5 \\ y_6 \\ y_7 \\ y_8 \\ \end{matrix}\right] = \left[\begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{matrix}\right] \left[\begin{matrix} x_1 \\ x_2 \\ x_3 \\ x_4 \\ x_5 \\ x_6 \\ x_7 \\ x_8 \\ \end{matrix}\right] + \left[\begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{matrix}\right] \left[\begin{matrix} e_1 \\ e_2 \\ e_3 \\ e_4 \\ e_5 \\ e_6 \\ e_7 \\ e_8 \\ \end{matrix}\right] ⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​y1​y2​y3​y4​y5​y6​y7​y8​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​10000000​01000000​00100000​00010000​00001000​00000100​00000010​00000001​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​x1​x2​x3​x4​x5​x6​x7​x8​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​+⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​10000000​01000000​00100000​00010000​00001000​00000100​00000010​00000001​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​e1​e2​e3​e4​e5​e6​e7​e8​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​


针对上述模型(10.6)。

具体的非合作行为类型如下:

  1. 毁坏型:e(t)=−Cx(t)e(t) = -Cx(t)e(t)=−Cx(t),此时 y(t)=0y(t) = 0y(t)=0。
  2. 失控型:e(t)=const−Cx(t)e(t) = \text{const} - Cx(t)e(t)=const−Cx(t)。
  3. 干扰型:e(t)=rand(t)e(t) = \text{rand}(t)e(t)=rand(t)。

10.3 一阶多智能体系统非合作行为检测、隔离与修复

10.3.1 问题描述

实际的 MAS 中,节点需要对状态信息进行采样,且采样周期不可能无限小,因此采用如下离散时间状态下的节点动力学模型:
zi((k+1)T)=zi(kT)+ui(kT)T,i=1,⋯,N(10.7)z_i((k+1)T) = z_i(kT) + u_i(kT)T, \quad i=1,\cdots,N \tag{10.7}zi​((k+1)T)=zi​(kT)+ui​(kT)T,i=1,⋯,N(10.7)

zikz_i^kzik​ 是节点在二维空间中的位置坐标。


假定节点的控制器有如下结构:
uik=Pi(zik,Iik)(10.8)u_i^k = P_i(z_i^k, I_i^k) \tag{10.8}uik​=Pi​(zik​,Iik​)(10.8)


记所有非合作节点集合为 FFF,时间步长 kkk 内节点 iii 对节点 jjj 的检测结果为 qi,jkq^k_{i,j}qi,jk​,满足:
qi,jk={0,j∉F1,j∈F(10.9)q_{i,j}^k = \left\{\begin{aligned} 0, \quad j\notin F \\ 1, \quad j\in F \end{aligned}\right. \tag{10.9}qi,jk​={0,j∈/​F1,j∈F​(10.9)


定义系统对节点的检测结果 为 该节点所有邻居节点对其检测结果的综合,形式如下:
Qik=∑j=i1ipqj,ik/p=∑j=i1ipqj,ikp(10.10)Q_i^k = \sum_{j=i_1}^{i_p} q^k_{j,i}/p = \frac{\sum_{j=i_1}^{i_p} q^k_{j,i}} {p} \tag{10.10}Qik​=j=i1​∑ip​​qj,ik​/p=p∑j=i1​ip​​qj,ik​​(10.10)


对于单积分模型,输出反映在节点的连续位移上 zik−zik−1z_i^k - z_i^{k-1}zik​−zik−1​,
或者说是节点的速率输出 uiku_i^kuik​上。
因此,用 uiku_i^kuik​ 作为计算系统残差信号的性能指标。

残差信号为:
rik=uir,k−uia,k(10.11)r_i^k = u_i^{\red{r},k} - u_i^{\red{a},k} \tag{10.11}rik​=uir,k​−uia,k​(10.11)

其中,
uir,ku_i^{\red{r},k}uir,k​ 表示在时间步长 kkk 内通过控制协议 PPP 求得的系统理论运动状态;
uia,ku_i^{\red{a},k}uia,k​ 表示在时间步长 kkk 内通过实时测量得到的系统实际运动状态,满足:
uir,k=uik=Pi(zik,Iik)uia,k=h(zik−1,zik)(10.12)u_i^{\red{r},k} = u_i^k = P_i(z_i^k, I_i^k) \\ u_i^{\red{a},k} = h(z_i^{k-1}, z_i^k) \tag{10.12}uir,k​=uik​=Pi​(zik​,Iik​)uia,k​=h(zik−1​,zik​)(10.12)


定义 10.1 非合作节点

∥rik∥=∥uir,k−uia,k∥≥χ(∥uir,k∥,δ)(10.13)\| r_i^k \| = \| u_i^{r,k} - u_i^{a,k} \| \ge \chi(\| u_i^{r,k} \|, \delta) \tag{10.13}∥rik​∥=∥uir,k​−uia,k​∥≥χ(∥uir,k​∥,δ)(10.13)

χ(∥uir,k∥,δ)\chi(\| u_i^{r,k} \|, \delta)χ(∥uir,k​∥,δ) 为门限函数,一般取
χ(∥uir,k∥,δ)=γ1+γ2∥uir,k∥\chi(\| u_i^{r,k} \|, \delta) = \gamma_1 + \gamma_2 \| u_i^{r,k} \|χ(∥uir,k​∥,δ)=γ1​+γ2​∥uir,k​∥


10.3.2 非合作行为检测、隔离与修复算法设计

1. 基于通信的非合作行为检测算法

直观地说,该非合作行为检测算法就是通过获得目标节点邻居节点的信息,借助齐次的信息交互协议求得目标节点的理论运动状态,
并将其与探测到的实际运动状态
进行比较,若误差超过一定幅值,则判定节点产生了非合作行为。


算法6 一阶多智能体系统非合作行为检测算法

输入:目标节点及其邻居节点的状态信息 zjk、Ijkz_j^k、I_j^kzjk​、Ijk​。
输出:节点对节点的非合作行为检测结果 qi,jkq_{i,j}^kqi,jk​。

  1. 节点 iii 借助信息交互内容 1 和 2 获得节点 jjj 及其所有邻居节点当前的状态信息 zjk、Ijkz_j^k、I_j^kzjk​、Ijk​。
  2. 节点 iii 借助齐次控制协议 PPP 及式(10.8)获得节点 jjj 的控制输入 ujku_j^kujk​。
  3. 节点 iii 借助式(10.12)求得 ujr,k、uja,ku_j^{r,k}、u_j^{a,k}ujr,k​、uja,k​。

3. 非合作节点的隔离与修复

非合作行为修复的目的就是消除非合作节点在产生非合作行为到被邻居隔离这一段时间内对系统产生的不利影响,保证系统预定的控制目标不会因此产生偏差。

补偿量为:
uicomp,j=−∑kT=TfTfp(uik−ui∖jk)(10.14)u_{i_{\text{comp}},j} = -\sum_{kT = T_f}^{T_{f_p}} (u_i^k - u^k_{i\setminus j}) \tag{10.14}uicomp​,j​=−kT=Tf​∑Tfp​​​(uik​−ui∖jk​)(10.14)


10.3.3 仿真和实验

1. 节点无任何异常,正常运行

% 仿真实验clear;
clc;A = [0 1 0 0 0 1 1 1;1 0 1 0 0 1 0 1;0 1 0 1 1 0 0 1;0 0 1 0 1 0 1 1;0 0 1 1 0 1 1 0;1 1 0 0 1 0 1 0;1 0 0 1 1 1 0 0;1 1 1 1 0 0 0 0;];D = [4 0 0 0 0 0 0 0;0 4 0 0 0 0 0 0;0 0 4 0 0 0 0 0;0 0 0 4 0 0 0 0;0 0 0 0 4 0 0 0;0 0 0 0 0 4 0 0;0 0 0 0 0 0 4 0;0 0 0 0 0 0 0 4;];L = D - A;X0 = [10, 4, 8, 2, 9, 3, 5, 7]';
Xt(:,1) = X0;epsilon = 0.001;% 时间参数
tbegin = 0;
tfinal = 2;
dT = 0.001;
T(:,1) = 0; % 计算次数
times = (tfinal - tbegin) / dT;for time = 1:1:timesXt(:, time+1) = Xt(:, time) - epsilon * L * Xt(:, time);T(:, time+1) = T(:, time) + dT;
endplot(T(1,:),Xt(1,:),'-', T(1,:),Xt(2,:),':', T(1,:),Xt(3,:),'--', T(1,:),Xt(4,:),'-.',...T(1,:),Xt(5,:), T(1,:),Xt(6,:), T(1,:),Xt(7,:), T(1,:),Xt(8,:),...'linewidth',1)legend('x_1', 'x_2', 'x_3', 'x_4', 'x_5', 'x_6', 'x_7', 'x_8');


2. 节点出现非合作行为

    % 定义发生非合作行为,时间在 0.2s,此时 time=201if time == 201L(4,:) = 0;end



3. 节点的三种非合作行为

    if time >= 201Et(4, time) = -Ut(4, time);                       % 毁坏型% Et(4, time) = -Ut(4, time) - 0.005;               % 失控型% Et(4, time) = -Ut(4, time) - 0.03*(rand-0.5);     % 干扰型Ut(4, time) = Ut(4, time) + Et(4, time);end


    if time >= 201% Et(4, time) = -Ut(4, time);                       % 毁坏型Et(4, time) = -Ut(4, time) - 0.005;               % 失控型% Et(4, time) = -Ut(4, time) - 0.03*(rand-0.5);     % 干扰型Ut(4, time) = Ut(4, time) + Et(4, time);endZt(:, time+1) = Zt(:, time) - Ut(:, time);


    if time >= 201% Et(4, time) = -Ut(4, time);                       % 毁坏型% Et(4, time) = -Ut(4, time) - 0.005;               % 失控型Et(4, time) = -Ut(4, time) - 0.03*(rand-0.5);     % 干扰型Ut(4, time) = Ut(4, time) + Et(4, time);end


4. 节点三种非合作行为及修复

    if time >= 201% Et(4, time) = -Ut(4, time);                       % 毁坏型% Et(4, time) = -Ut(4, time) - 0.005;               % 失控型Et(4, time) = -Ut(4, time) - 0.03*(rand-0.5);     % 干扰型% 修复        U_j(:, time) = epsilon * L_j * Zt(:, time);U_Comp(:,time) = -( Ut(:, time) - U_j(:, time) );Ut(:, time) = Ut(:, time) + U_Comp(:,time);Ut(4, time) = Ut(4, time) + Et(4, time);        end

其中,干扰型的仿真觉得还是这个更贴切一些

for time = 1:1:times% 记录时间刻度T(:,  time+1) = T(:, time) + dT;% 记录状态Ut(:, time) = epsilon * L * Zt(:, time);% 定义发生非合作行为,时间在 0.2s,此时 time=201if time >= 201% Et(4, time) = -Ut(4, time);                       % 毁坏型% Et(4, time) = -Ut(4, time) - 0.005;               % 失控型Et(4, time) =  - 0.12*(rand-0.5);     % 干扰型% 修复        U_j(:, time) = epsilon * L_j * Zt(:, time);U_Comp(:,time) = -( Ut(:, time) - U_j(:, time) );Ut(:, time) = Ut(:, time) + U_Comp(:,time);Ut(4, time) = Ut(4, time) + Et(4, time);        endZt(:, time+1) = Zt(:, time) - Ut(:, time);end


10.4 结论

【控制】《多智能体系统的协同群集运动控制》陈杰老师-第10章-一阶多智能体系统非合作行为检测与隔离相关推荐

  1. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-目录

    无 回到目录 第1章 跳转链接 章节 跳转链接 第1章 绪论 第2章 连通性保持条件下多智能体系统群集运动控制 第3章 基于代数连通度估计的多智能体系统群集运动控制 第4章 连通性保持下多移动机器人群 ...

  2. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第11章-基于邻居相关状态的多智能体非合作行为检测与隔离

    第10章 回到目录 无 代码地址:https://github.com/Jichao-Zhao/MAS_CooperativeClusterMotionControl 第11章-基于邻居相关状态的多智 ...

  3. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第1章-绪论

    无 回到目录 第2章 第1章-绪论 1.1 多智能体分布式群集运动控制 Boids 模型 人工势场函数 极值映射 非光滑李亚普诺夫稳定性理论 势场力 代数连通度 谱特征 几何约束法 谱图理论法 次梯度 ...

  4. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第5章-基于骨干网络的多智能体系统群集运动与避障控制

    第4章 回到目录 第6章 第5章-基于骨干网络的多智能体系统群集运动与避障控制 5.1 研究背景 5.2 预备知识 5.2.1 问题描述 运动方程 (5.1) 5.2.2 流体力学基础 可压缩性 黏性 ...

  5. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第3章-基于代数连通度估计的多智能体系统群集运动控制

    第2章 回到目录 第4章 第3章-基于代数连通度估计的多智能体系统群集运动控制 3.1 研究背景 3.2 问题描述 系统方程 (3.1) 3.3 控制律设计 控制协议 (3.7) 3.4 λ2\lam ...

  6. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第2章-连通性保持条件下多智能体系统群集运动控制

    第1章 回到目录 第3章 第2章-连通性保持条件下多智能体系统群集运动控制 2.1 研究背景 2.2 问题描述 2.3 领航跟随群集运动控制律 控制协议 (2.2) 符号函数 sgn(·) 人工势场函 ...

  7. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第9章-多任务约束下多智能体协同编队控制

    第8章 回到目录 第10章 第9章-多任务约束下多智能体协同编队控制 9.1 研究背景 9.2 问题描述 系统模型 (9.1) 9.3 多任务约束协调与求解 9.4 多任务切换与编队控制器设计 控制协 ...

  8. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第4章-连通性保持下多移动机器人群集控制

    第3章 回到目录 第5章 第4章-连通性保持下多移动机器人群集控制 4.1 研究背景 4.2 问题描述 系统方程 (4.1) 4.3 群集运动控制器设计 4.3.1 不带有领航者的群集运动控制 加权镜 ...

  9. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第8章-高阶非线性多智能体分布式自适应鲁棒控制

    第7章 回到目录 第9章 第8章-高阶非线性多智能体分布式自适应鲁棒控制 8.1 研究背景 8.2 问题描述 系统模型 (8.1) 8.3 自适应鲁棒一致性控制 自适应律 (8.15) 控制协议 (8 ...

最新文章

  1. Spring原理总结
  2. C++ Primer 第三版 读书笔记
  3. 如何matlab导入邻接矩阵,“excel如何做矩阵“matlab中读取excle中的邻接矩阵
  4. 小波变换学习~语音端点检测
  5. Asigra无代理备份:“云”数据保护的先行者
  6. 如何使用CSS创建巧妙的动画提示框
  7. 【笔记】 感受野与权值共享 摄像头标定 相机坐标与世界坐标
  8. centos7安装nvidia驱动
  9. 第3章 文件IO | 001 文件描述符
  10. apache php mysql_PHP环境搭建(php+Apache+mysql)
  11. java实现端口扫描
  12. workbench动力学周炬_ANSYSWorkbench有限元分析实例详解(动力学)
  13. Android OTA升级
  14. 人力资源书籍排行榜,这些好书不容错过!
  15. SQLserver中的内连接和左连接
  16. 关于手机定位精度的调研报告
  17. 大一学生WEB前端静态网页——旅游网页设计与实现(15页面)
  18. 计算机一级wps考试方式,2015全国计算机一级WPSoffice考试方式和要求
  19. IEEE论文模板下载
  20. 蓝桥杯.振兴中华(递归)

热门文章

  1. ping不通www.baidu.com,但可以访问www.baidu.com网页
  2. 运行SSIS包的几种方式
  3. 用ASP.NET Web API技术开发HTTP接口(一)
  4. 隐藏Nginx或Apache以及PHP的版本号的方法
  5. IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) A. Bear and Three Balls 水题
  6. BZOJ 3218(a + b Problem-二分图套值域线段树)
  7. (android之sqlite一)Sqlite介绍和sqlite工具介绍
  8. 在SQL2008中清除日志
  9. UA MATH574M 统计学习I 监督学习理论下
  10. 一些关于mathematica的tips