💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
摘要—多智能体系统的事件驱动策略是受到未来使用资源有限的嵌入式微处理器的启发,这些微处理器将收集信息并触发个体智能体控制器的更新。本文考虑的控制器更新是事件驱动的,取决于某个测量误差与状态函数范数的比值,并应用于一阶一致性问题。首先考虑了集中式方案,然后是其分布式对应方案,在该方案中,智能体仅需要知道其邻居的状态即可实现控制器。随后,结果被扩展到自触发设置,其中每个智能体在上一次更新时计算其下一次更新时间,而无需持续跟踪触发两次连续更新之间动作的状态误差。通过仿真例子展示了这些结果。
关键词—自触发,状态误差。
在分布式算法的实现中,通信和控制器动作方案是一个重要方面。 未来的设计可能会为每个智能体配备一个嵌入式微处理器,该微处理器将负责从邻近节点收集信息,并根据某些规则触发控制器更新。本技术报告的目标是提供规则,以减少控制器更新的次数,这在某些应用场景中是更优的选择。例如,对于配备传感器的微处理器,这种方法可能是合适的。控制器更新的调度可以通过时间驱动或事件驱动的方式完成。第一种情况涉及在预设时间点采样,通常这些时间点由固定周期分隔。当考虑到嵌入式处理器的有限资源时,事件触发方法似乎更具优势。此外,合理的设计还应保留名义系统的期望特性,例如稳定性和收敛性。关于随机系统的时间驱动和事件驱动控制的比较,后者更受青睐,相关内容可以在[3]中找到。随机事件驱动策略已在[13]、[22]中出现。在本技术报告中,我们使用了在[26]中引入的确定性事件触发策略。关于确定性事件触发反馈控制的相关结果已在[1]、[10]、[11]、[15]、[18]、[28]、[29]中出现。
在[26]中,每当某个误差相对于状态范数足够大时,就会触发控制动作。假设名义系统对测量误差是输入到状态稳定的(Input-to-State Stable, ISS)[24]。我们首先证明这种框架适用于一类协同控制算法,即可以简化为一阶一致性问题的算法[20],该问题已被证明是ISS的[14]。集中式和分布式两种情况都被考虑了。然后,我们考虑了一种自触发的多智能体一致性问题解决方案。具体来说,每个智能体现在在其上一次更新时计算其下一次更新时间,而无需持续跟踪触发两次连续更新之间动作的误差测量。这种方法首先以集中式方式提出,然后是分布式方式。自触发控制是事件触发方法的自然扩展,并已在[1]、[18]、[29]中被考虑。此外,自触发分析还提供了关于分布式事件触发情况下执行间隔时间计算的进一步结果。
由此产生的系统模型可以转化为具有不同延迟的时间延迟系统,这些延迟在智能体及其邻居之间是不同的。这与文献中具有恒定延迟的一阶一致性时间延迟模型[16]、[19]以及不考虑智能体状态的自身延迟或假设每个智能体与其邻居之间延迟相等的一阶一致性模型[17]形成对比。需要注意的是,在没有自身延迟的情况下,即使在异构延迟和异步更新的情况下,也能保证收敛[27]。然而,我们的模型中存在自身延迟。本质上,由分布式事件触发设置产生的延迟模型比文献中的一阶一致性延迟模型更为通用。同样重要的是,应该强调的是,提供分段常数控制律的设计,以及通过事件触发机制决定何时更新控制律的设计,似乎比假设延迟信息且控制律连续变化的方法更适用于网络化多智能体系统,而后者没有提供关于何时进行采样的决策机制。
本文的其余部分安排如下:第II节介绍一些背景知识,并讨论本技术报告中处理的系统模型。集中式事件触发控制设计在第III节讨论,而第IV节介绍其分布式对应方案。第V节介绍了第III节和第IV节框架的自触发形式。第VI节给出了一些例子,第VII节总结了本技术报告的结果,并指出了进一步的研究方向。
结论
我们研究了多智能体系统的事件驱动策略。控制器的动作更新是事件驱动的,取决于某个测量误差与状态函数范数的比值。首先考虑了问题的集中式方案,随后将结果扩展到分布式方案,在该方案中,智能体仅需要知道其邻居的状态即可实现控制器。通过仿真例子验证了本技术报告的结果。
未来的研究将专注于框架的性能分析及其在其他协同多智能体控制任务中的应用。此外,尽管当前技术报告中的事件驱动方案侧重于减少控制器更新次数,但在此基础上考虑传感器的限制也是一个有趣的方向。最后,当前研究还涉及一种情况,即每个智能体负责向其邻居广播信息,而不是从它们那里请求信。
📚2 运行结果
2.1 集中式
2.2 分布式
部分代码:
x(1,1)=x(1,1)+h*u(1,1);%更新状态值
x(1,2)=x(1,2)+h*u(1,2);%更新状态值
x(1,3)=x(1,3)+h*u(1,3);%更新状态值
x(1,4)=x(1,4)+h*u(1,4);%更新状态值
x(1,5)=x(1,5)+h*u(1,5);%更新状态值
U=[U;u];
if ef_1>=0%第1个智能体事件触发
xhat(1,1)=x(1,1);
t1=A;
T_1=[T_1;t1];
else
xhat(1,1)=xhat(1,1);
end
if ef_2>=0%第2个智能体事件触发
xhat(1,2)=x(1,2);
t1=A;
T_2=[T_2;t1];
else
xhat(1,2)=xhat(1,2);
end
if ef_3>=0%第3个智能体事件触发
xhat(1,3)=x(1,3);
t1=A;
T_3=[T_3;t1];
else
xhat(1,3)=xhat(1,3);
end
if ef_4>=0%第4个智能体事件触发
xhat(1,4)=x(1,4);
t1=A;
T_4=[T_4;t1];
else
xhat(1,4)=xhat(1,4);
end
if ef_5>=0%第4个智能体事件触发
xhat(1,5)=x(1,5);
t1=A;
T_5=[T_5;t1];
else
xhat(1,5)=xhat(1,5);
end
A=A+1;
end
T1=h*T_1;
T2=h*T_2;
T3=h*T_3;
T4=h*T_4;
T5=h*T_5;
B1=ones(size(T_1,1),1);
B2=2*ones(size(T_2,1),1);
B3=3*ones(size(T_3,1),1);
B4=4*ones(size(T_4,1),1);
B5=5*ones(size(T_5,1),1);
figure(1)
plot(Ts,x1,'LineWidth',1);
xlabel('time(s)');ylabel({'positions of agents';'x_{i}'});
legend('Agent1','Agent2','Agent3','Agent4','Agent5')
grid on
figure(2)
plot(Ts,abs(E(:,1)).^2,Ts,Y1,'LineWidth',1);
xlabel('time(s)');ylabel('|e_{1}|');
legend('|e_{1}|')
grid on
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
🌈4 Matlab代码、文献下载
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取