[分布式控制浅述] (3)简单分布式事件触发控制

  • [分布式控制浅述] (3)简单分布式事件触发控制
    • 1 前言
    • 2 分布式事件触发控制
    • 3 稳定性分析

[分布式控制浅述] (3)简单分布式事件触发控制

事件触发控制(Event-triggered Control,ETC)是与传统的连续的周期控制不同的一类控制方法,事件触发控制不是在每个周期时都去计算和改变控制输入,而是在一些特定的、由系统稳定关系决定的一些特定时刻,去计算或改变控制输入。最早是K.Z Arzen教授和K.Astrom教授在首次提出的。
事件触发控制一般由两部分组成,第一是反馈控制器,第二是触发条件,也就是什么时候区更新控制输入。
本文根据笔者的经验和浅薄的知识,通俗易懂的介绍一个笔者认为较为经典的、容易理解的和一个分布式事件触发控制。
建议首先学习图论的预备知识以及简单的一致性理论:
[分布式控制浅述] (1) 图论基础
[分布式控制浅述] (2) 经典一阶系统的一致性问题

1 前言

经过多年的发展,分布式事件触发控制已经衍生出了很多,根据笔者的经验,大致有以下五种主要类别:
基于事件的控制(Event-Based Control,ETC)
基于模型的事件触发控制(Model-Based Event-Triggered Control)
基于采样数据的事件触发控制(Sampled-Data-Based Event-Triggered Control)
自触发控制(Self-Triggered Control)
动态事件触发控制(Dynamic Event-Triggered Control)

如果您想深入了解他们差异细节和讨论的不同问题,您可以参考下篇这篇综述:
Ding L, Han Q, Ge X, et al. An Overview of Recent Advances in Event-Triggered Consensus of Multiagent Systems[J]. IEEE Transactions on Cybernetics, 2018,48(4):1110-1123.

不过本文仅仅介绍其中一个笔者认为较为经典的、容易理解的和一个分布式事件触发控制,是基于Dimos V. Dimarogonas教授2012年的一篇TAC:
Dimarogonas D V, Frazzoli E, Johansson K H. Distributed Event-Triggered Control for Multi-Agent Systems[J]. IEEE Transactions on Automatic Control, 2012,57(5):1291-1297.

2 分布式事件触发控制

考虑无向图。
系统方程:
x˙i=ui{{\dot{x}}_{i}}={{u}_{i}}x˙i​=ui​事件触发控制器:
ui(t)=qi(t)=−k∑j∈Ni(xi(tki)−xj(tk′(t)j))t∈[tki,tk+1i)\begin{matrix} {{u}_{i}}\left( t \right)={{q}_{i}}\left( t \right)=-k\sum\limits_{j\in {{N}_{i}}}^{{}}{\left( {{x}_{i}}\left( t_{k}^{i} \right)-{{x}_{j}}\left( t_{{k}'\left( t \right)}^{j} \right) \right)} & t\in \left[ t_{k}^{i},t_{k+1}^{i} \right) \\ \end{matrix}ui​(t)=qi​(t)=−kj∈Ni​∑​(xi​(tki​)−xj​(tk′(t)j​))​t∈[tki​,tk+1i​)​

切换条件:
ei2(t)≤σ2klijq^i(t)e_{i}^{2}\left( t \right)\le \frac{\sigma }{2k{{l}_{ij}}}{{\hat{q}}_{i}}\left( t \right)ei2​(t)≤2klij​σ​q^​i​(t)

其中:
0<σ<10<\sigma <10<σ<1ei(t)=xi(tki)−xi(t)t∈[tki,tk+1i)\begin{matrix} {{e}_{i}}\left( t \right)={{x}_{i}}\left( t_{k}^{i} \right)-{{x}_{i}}\left( t \right) & t\in \left[ t_{k}^{i},t_{k+1}^{i} \right) \\ \end{matrix}ei​(t)=xi​(tki​)−xi​(t)​t∈[tki​,tk+1i​)​

对于t∈[tki,tk+1i)t\in \left[ t_{k}^{i},t_{k+1}^{i} \right)t∈[tki​,tk+1i​),tk′(t)jt_{{k}'\left( t \right)}^{j}tk′(t)j​为智能体jjj上次事件触发更新事件。因此,控制ui(t){{u}_{i}}\left( t \right)ui​(t)会在自身时刻事件触发t0i,t1i,…t_{0}^{i},t_{1}^{i},\ldotst0i​,t1i​,…,以及其邻居事件触发更新时刻t0j,t1j,…t_{0}^{j},t_{1}^{j},\ldotst0j​,t1j​,… ,进行更新。值得注意的是,智能体iii和jjj一般不会在同一时刻发生事件触发,因此tkit_{k}^{i}tki​和tkjt_{k}^{j}tkj​表示的是不同时刻。
好了,这就是Dimos V. Dimarogonas教授提出的控制律,可以发现,输入ui(t){{u}_{i}}\left( t \right)ui​(t)是非连续的,因为xi(tki){{x}_{i}}\left( t_{k}^{i} \right)xi​(tki​)和xj(tkj){{x}_{j}}\left( t_{k}^{j} \right)xj​(tkj​)是非连续的。
下面进行理论层面的分析。

3 稳定性分析

考虑Lyapunov函数:
V=12xT(In−1n1T1)x=12∑i=1n(xi(t)−xˉ(0))2\begin{aligned} & V=\frac{1}{2}{{\mathbf{x}}^{T}}\left( {{I}_{n}}-\frac{1}{n}{{\mathbf{1}}^{T}}\mathbf{1} \right)\mathbf{x} \\ & =\frac{1}{2}\sum\limits_{i=1}^{n}{{{\left( {{x}_{i}}\left( t \right)-\bar{x}\left( 0 \right) \right)}^{2}}} \end{aligned}​V=21​xT(In​−n1​1T1)x=21​i=1∑n​(xi​(t)−xˉ(0))2​其中xˉ(0)=1n∑i=1nxi(0)\bar{x}\left( 0 \right)=\frac{1}{n}\sum\limits_{i=1}^{n}{{{x}_{i}}\left( 0 \right)}xˉ(0)=n1​i=1∑n​xi​(0)
求导:
V˙=∑i=1n(xi(t)−xˉ(0))x˙i(t)=∑i=1nxi(t)∑j=1n−klijx^j(t)=−∑i=1n(x^i(t)−ei(t))∑j=1nklijx^j(t)=−∑i=1nq^i(t)−∑i=1n∑j=1nei(t)klijx^j(t)=−∑i=1nq^i(t)−∑i=1n∑j=1,i≠jnei(t)klij(x^j(t)−x^i(t))≤−∑i=1nq^i(t)+∑i=1n∑j=1,i≠jnklijei2(t)+∑i=1n∑j=1,i≠jn14klij(x^j(t)−x^i(t))2=−∑i=1n12q^i(t)+∑i=1n∑j=1,i≠jnklijei2(t)\begin{aligned} & \dot{V}=\sum\limits_{i=1}^{n}{\left( {{x}_{i}}\left( t \right)-\bar{x}\left( 0 \right) \right){{{\dot{x}}}_{i}}\left( t \right)} \\ & =\sum\limits_{i=1}^{n}{{{x}_{i}}\left( t \right)\sum\limits_{j=1}^{n}{-k{{l}_{ij}}{{{\hat{x}}}_{j}}\left( t \right)}} \\ & =-\sum\limits_{i=1}^{n}{\left( {{{\hat{x}}}_{i}}\left( t \right)-{{e}_{i}}\left( t \right) \right)\sum\limits_{j=1}^{n}{k{{l}_{ij}}{{{\hat{x}}}_{j}}\left( t \right)}} \\ & =-\sum\limits_{i=1}^{n}{{{{\hat{q}}}_{i}}\left( t \right)}-\sum\limits_{i=1}^{n}{\sum\limits_{j=1}^{n}{{{e}_{i}}\left( t \right)k{{l}_{ij}}{{{\hat{x}}}_{j}}\left( t \right)}} \\ & =-\sum\limits_{i=1}^{n}{{{{\hat{q}}}_{i}}\left( t \right)}-\sum\limits_{i=1}^{n}{\sum\limits_{j=1,i\ne j}^{n}{{{e}_{i}}\left( t \right)k{{l}_{ij}}\left( {{{\hat{x}}}_{j}}\left( t \right)-{{{\hat{x}}}_{i}}\left( t \right) \right)}} \\ & \le -\sum\limits_{i=1}^{n}{{{{\hat{q}}}_{i}}\left( t \right)}+\sum\limits_{i=1}^{n}{\sum\limits_{j=1,i\ne j}^{n}{k{{l}_{ij}}e_{i}^{2}\left( t \right)}}+\sum\limits_{i=1}^{n}{\sum\limits_{j=1,i\ne j}^{n}{\frac{1}{4}k{{l}_{ij}}{{\left( {{{\hat{x}}}_{j}}\left( t \right)-{{{\hat{x}}}_{i}}\left( t \right) \right)}^{2}}}} \\ & =-\sum\limits_{i=1}^{n}{\frac{1}{2}{{{\hat{q}}}_{i}}\left( t \right)}+\sum\limits_{i=1}^{n}{\sum\limits_{j=1,i\ne j}^{n}{k{{l}_{ij}}e_{i}^{2}\left( t \right)}} \end{aligned}​V˙=i=1∑n​(xi​(t)−xˉ(0))x˙i​(t)=i=1∑n​xi​(t)j=1∑n​−klij​x^j​(t)=−i=1∑n​(x^i​(t)−ei​(t))j=1∑n​klij​x^j​(t)=−i=1∑n​q^​i​(t)−i=1∑n​j=1∑n​ei​(t)klij​x^j​(t)=−i=1∑n​q^​i​(t)−i=1∑n​j=1,i​=j∑n​ei​(t)klij​(x^j​(t)−x^i​(t))≤−i=1∑n​q^​i​(t)+i=1∑n​j=1,i​=j∑n​klij​ei2​(t)+i=1∑n​j=1,i​=j∑n​41​klij​(x^j​(t)−x^i​(t))2=−i=1∑n​21​q^​i​(t)+i=1∑n​j=1,i​=j∑n​klij​ei2​(t)​

其中:
∑i=1nq^i(t)=∑i=1n∑j=1,i≠jn12klij(x^j(t)−x^i(t))2=kx^T(t)Lx^(t)\sum\limits_{i=1}^{n}{{{{\hat{q}}}_{i}}\left( t \right)}=\sum\limits_{i=1}^{n}{\sum\limits_{j=1,i\ne j}^{n}{\frac{1}{2}k{{l}_{ij}}{{\left( {{{\hat{x}}}_{j}}\left( t \right)-{{{\hat{x}}}_{i}}\left( t \right) \right)}^{2}}}}=k{{\mathbf{\hat{x}}}^{T}}\left( t \right)L\mathbf{\hat{x}}\left( t \right)i=1∑n​q^​i​(t)=i=1∑n​j=1,i​=j∑n​21​klij​(x^j​(t)−x^i​(t))2=kx^T(t)Lx^(t)ei(t)(x^j(t)−x^i(t))≤ei2(t)+(x^j(t)−x^i(t))2{{e}_{i}}\left( t \right)\left( {{{\hat{x}}}_{j}}\left( t \right)-{{{\hat{x}}}_{i}}\left( t \right) \right)\le e_{i}^{2}\left( t \right)+{{\left( {{{\hat{x}}}_{j}}\left( t \right)-{{{\hat{x}}}_{i}}\left( t \right) \right)}^{2}}ei​(t)(x^j​(t)−x^i​(t))≤ei2​(t)+(x^j​(t)−x^i​(t))2
容易知道,该系统在控制时必然满足切换条件ei2(t)≤σ2klijq^i(t)e_{i}^{2}\left( t \right)\le \frac{\sigma }{2k{{l}_{ij}}}{{\hat{q}}_{i}}\left( t \right)ei2​(t)≤2klij​σ​q^​i​(t),那么代入切换条件,即有:
V˙≤−∑i=1n12q^i(t)+∑i=1n∑j=1,i≠jnklijei2(t)≤−12(1−σ)x^T(t)Lx^(t)≤0\begin{aligned} & \dot{V}\le -\sum\limits_{i=1}^{n}{\frac{1}{2}{{{\hat{q}}}_{i}}\left( t \right)}+\sum\limits_{i=1}^{n}{\sum\limits_{j=1,i\ne j}^{n}{k{{l}_{ij}}e_{i}^{2}\left( t \right)}} \\ & \le -\frac{1}{2}\left( 1-\sigma \right){{{\mathbf{\hat{x}}}}^{T}}\left( t \right)L\mathbf{\hat{x}}\left( t \right)\le \text{0} \end{aligned}​V˙≤−i=1∑n​21​q^​i​(t)+i=1∑n​j=1,i​=j∑n​klij​ei2​(t)≤−21​(1−σ)x^T(t)Lx^(t)≤0​

显然,是渐近稳定的。

[分布式控制浅述] (3)简单分布式事件触发控制相关推荐

  1. [分布式控制浅述] (1) 图论基础

    [分布式控制浅述] (1) 图论基础 [分布式控制浅述] (1) 图论基础 1 前言 2 概述 3 度矩阵(Degree Matrix) 4 拉普拉斯矩阵(Laplacian Matrix) 5 特殊 ...

  2. 事件触发控制_基于事件触发机制的直流微电网多混合储能系统分层协调控制方法...

    点击下面标题,了解通知详情第九届电工技术前沿问题学术论坛征文通知 华北电力大学电气与电子工程学院的研究人员郭伟.赵洪山,在2020年第5期<电工技术学报>上撰文,以含有多个混合储能系统(H ...

  3. 事件触发控制 Event-Trigger Control Matlab Code

    提示:仅供参考 事件触发控制Matlab Code 前言 一.线性系统 二.有限差分法 三. Matlab ODE45 总结 前言 自动控制的大部分工作和研究考虑了周期或时间触发控制系统,在这些系统中 ...

  4. 事件触发控制_SystemVerilog线程控制与通信

    01 线程控制 1.概述 线程,即独立运行的程序: 线程需要被触发执行,可以结束或者不结束: 在module中的initial和always,都可以看作独立的线程,他们在仿真0时刻开始,而选择结束或者 ...

  5. 浅谈hashchange和popstate事件触发条件

    基本概念 工欲善其事,必先利其器.因此,让我们先从MDN上了解一下这两个事件的触发条件. 1.hashchange 当URL的片段标识符更改时,将触发hashchange事件 (跟在#符号后面的URL ...

  6. 事件触发控制_前端性能优化:事件的节流throttle与防抖debounce

    scroll 事件是一个非常容易被反复触发的事件,另外,resize 事件.鼠标事件(比如 mousemove.mouseover 等).键盘事件(keyup.keydown 等)都存在被频繁触发的风 ...

  7. 事件触发航天器编队调研

    事件触发通信 <Observer-Based Spacecraft Formation Coordinated Control via a Unified Event-Triggered Com ...

  8. 非完整多智能体系统事件触发二分一致性

    摘要: 本文研究了非完整多智能体系统的事件触发控制,同时考虑了智能体之间的合作与竞争关系.针对无向连通结构平衡拓扑下的多智能体系统,依次设计出集中式和分布式的事件触发控制,实现了智能体全状态的二分一致 ...

  9. 基于事件触发的二阶多智能体领导跟随一致性

    [无限嚣张(菜菜)]:hello您好,我是菜菜,很高兴您能来访我的博客,我是一名爱好编程学习研究的菜菜,每天分享自己的学习,想法,博客来源与自己的学习项目以及编程中遇到问题的总结. 座右铭:尽人事,听 ...

最新文章

  1. php request order,php.ini中的request_order推荐设置,requestorder_PHP教程
  2. 源目标OKR— 在线团队协同办公、项目管理工具
  3. OpenCV 20 年,首款开源软硬一体的 OAK 套件来了!
  4. python-requests数据驱动延伸
  5. 将数组项复制到另一个数组中
  6. 视频工作者应该知道的几个网站
  7. JTA分布式事务处理
  8. 输入1到100带圈字符Ⓢ你以为很容易的/其实特容易翻车的需求
  9. Qt多语言翻译(国际化)
  10. 单片机定时器实验报告C语言,51单片机定时器实验报告.doc
  11. Quorum简介部署
  12. 【考研经验】中国科学技术大学软件学院考研经历及复试回忆
  13. visual_studio2012、vs2012下载
  14. 全国多地打造城市三维实景模型 给城市管理带来新利器
  15. 基于Visual C++2010 与office2010开发办公自动化 2 -自动生成excel与word并打开
  16. js快捷获取超链接参数和修改超链接(新增URLSearchParams方法获取参数)
  17. 车机如何安装鸿蒙os,跨平台的鸿蒙OS,会如何影响车机领域?
  18. 什么是软著?有什么用?怎么申请呢?
  19. 代码实现pe文件图标替换
  20. 基于labview的自动饮料售卖机

热门文章

  1. 局域网攻击工具linux,Kalilinux-教你如何简单使用Xerosploit攻击局域网
  2. Linux--基本命令
  3. access汇总含义_如何用access进行分类汇总
  4. PYTHON实现自动发送邮件
  5. python修改桌面壁纸_3分钟教你用python把你的桌面壁纸变得酷起来
  6. 股市大跌对于IT行业的我们应该如何应对!2020年Android开发的未来发展方向该如何走?
  7. 《诗经》诗无邪 —— 风篇
  8. 计算机的英语词汇牛津,牛津小学英语词汇表.PDF
  9. 全球与中国冷气喷涂市场深度研究分析报告
  10. 使用libvirt和qemu将pci pass through设备添加到虚拟机上