二阶多智能体的一致性-包含matlab仿真代码

news2024/9/23 23:33:31

模型

这里仅用一个简单的双积分模型
{ x ˙ i = v i v ˙ i = u i \begin{equation} \begin{cases} {\dot x}_i = v_i \\ {\dot v}_i = u_i \\ \end{cases} \end{equation} {x˙i=viv˙i=ui
我们的控制最终的期望是使得状态趋于一致,即
lim ⁡ t → ∞ ∣ x i − x j ∣ = 0 lim ⁡ t → ∞ ∣ v i − v j ∣ = 0 \begin{aligned} \lim_{t \to \infty} |x_i - x_j| = 0 \\ \lim_{t \to \infty} |v_i - v_j| = 0 \\ \end{aligned} tlimxixj=0tlimvivj=0

协议

这里我们用一个简单的控制协议
u i = − k 1 ∑ j = 1 N ( x i − x j ) − k 2 ∑ j = 1 N ( v i − v j ) u_i = -k_1 \sum_{j=1}^N (x_i - x_j) - k_2 \sum_{j=1}^N (v_i - v_j) ui=k1j=1N(xixj)k2j=1N(vivj)

代码

clear;
close all;
clc;

% 拉普拉斯矩阵作为全局变量
global L;
% 图论
A=[0 1 0 0 1;
   1 0 1 0 0;
   0 1 0 1 0;
   0 0 1 0 1;
   1 0 0 1 0];
D=diag(sum(A,2));
L=D-A;
% 初始化
X0=[0;-1;2;1.5;1.2];
V0=[0;1;2;-1.5;-2];
% 迭代
options = odeset('MaxStep', 1e-2, 'RelTol',1e-2,'AbsTol',1e-4);
[t,y] = ode45(@odefun,[0 15],[X0;V0],options);
X = y(:,1:5);
V = y(:,6:10);
U_save=[];

% 重现控制量U
for i = 1:length(t)
    eX = L*y(i,1:5)';
    eV = L*y(i,6:10)';
    eu = controlInput(eX, eV);
    U_save = [U_save;eu'];
end

%% 画图部分
fig1 = figure(1);
plot(t,X);
xlabel('t(sec)');
ylabel('position');

fig2 = figure(2);
plot(t,V);
xlabel('t(sec)');
ylabel('velocity');

fig3 = figure(3);
plot(t,U_save);
xlabel('t(sec)');
ylabel('u');

print(fig1, './fig1.png', '-dpng', '-r300');
print(fig2, './fig2.png', '-dpng', '-r300');
print(fig3, './fig3.png', '-dpng', '-r300');


%% 函数部分
function dydt = odefun(t,y)
    global L;
    dydt = zeros(10,1);
    
    eX = L*y(1:5);
    eV = L*y(6:10);
    U = controlInput(eX,eV);
    
    dydt(1:5)=y(6:10);
    dydt(6:10)=U;
end

%% 计算输入
function u = controlInput(eX, eV)
    k1 = 1;
    k2 = 1;
    u = - k1 .* eX - k2 .* eV;
end

仿真

位置
请添加图片描述
速度
请添加图片描述
控制量
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1324767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年云渲染哪个便宜?超实惠不排队的云渲染农场推荐

随着云计算技术的进步,云渲染逐渐成为动画制作和视觉效果产业中的首选技术。然而,对于许多创作者来说,寻找既经济又可靠的云渲染提供商一直是个重点问题。在众多云渲染提供商中,一家以其超值的性价比而闻名的云渲染农场尤其受到青…

Windows下安装MongoDB实践总结

本文记录Windows环境下的MongoDB安装与使用总结。 【1】官网下载 官网下载地址:Download MongoDB Community Server | MongoDB 这里可以选择下载zip或者msi,zip是解压后自己配置,msi是傻瓜式一键安装。这里我们分别对比进行实践。 【2】ZI…

Hudi 表类型和查询类型

数据湖hudi的表类型定义了数据在DFS上如何组织布局,同时实现一些timeline等操作(表类型定定义数据是如何写入的);查询类型则是定义如何读取DFS上的数据。 Table typequery typeCopy-On-Write 快照查询; 增量查询&…

【数据分享】2019-2023年我国地级市逐年二手房房价数据(免费获取/Excel/Shp格式)

房价是一个城市发展程度的重要体现,一个城市的房价越高通常代表这个城市越发达,对于人口的吸引力越大!因此,房价数据是我们在各项城市研究中都非常常用的数据!之前我们分享了2019—2023年我国地级市逐月的二手房房价数…

VWAP 订单的最佳执行方法:随机控制法

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学,点击下方链接报名: 量化投资速成营(入门课程) Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

React基础巩固日志2

今天开始学习理解如何使用 props向组件传递数据和事件处理函数 在 React 中,props 是组件之间交互的一种方式,它允许你将数据从一个组件传递到另一个组件,下面我书写一个demo,以便于我更好的理解组件之间传值 这个例子中&#xff…

基于遥感数据的地表蒸散量的获取与分析的解决方案

1.引言 蒸散是指水分从地表移向大气的过程,它包括土壤与植株表面液相或固相水的蒸发和通过植物组织的蒸腾。蒸散过程是土壤、植被、大气系统中水分运移、转化的重要环节,因此准确的估算区域蒸散量能够有效提高气象预测以及水文气象预测的精度, 同时蒸散量的精确估算对于地理、…

OpenCV | ROI ——region of interest 感兴趣的区域(车道线掩码)

import cv2 import numpy as npedges_img.jpg edge_img cv2.imread(edges_img.jpg,cv2.IMREAD_GRAYSCALE) mask np.zeros_like(edge_img) mask cv2.fillPoly(mask,np.array([[[81,240],[212,143],[230,143],[386,238]]]),color255)#像素点用画图就能测出来 把鼠标放在图片…

第十七章 : Spring Boot 集成RabbitMQ(一)

第十七章 : Spring Boot 集成RabbitMQ(一) 前言 本章介绍RabbitMQ的核心概念和消息中间件中非常重要的协议——AMQP协议,然后介绍Direct、Topic、Headers、Fanout等交换机的作用和特点;RabbitMQ的五种消息发送模式-简…

Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)

近日,Bert-vits2-v2.2如约更新,该新版本v2.2主要把Emotion 模型换用CLAP多模态模型,推理支持输入text prompt提示词和audio prompt提示语音来进行引导风格化合成,让推理音色更具情感特色,并且推出了新的预处理webuI&am…

图神经网络 (GNN) 概述

GNN 作者 with DALLE 3 一、说明 神经网络是受人脑工作启发的计算模型,能够从复杂的非结构化数据(如图像、文本、音频和视频)中学习。然而,还有许多其他类型的数据无法用传统的神经网络轻松表示,例如那些具有图形结构的…

实验4.2 默认路由和浮动静态路由的配置

实验4.2 默认路由和浮动静态路由的配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.路由器的基本配置。2.配置默认路由,实现全网互通。3.配置浮动静态路由,实现链路备份。 六、任务验收七、任务小结八、知识链接1.默认路…

tensorflow入门 自定义模型

前面说了自定义的层,接下来自定义模型,我们以下图为例子 这个模型没啥意义,单纯是为了写代码实现这个模型 首先呢,我们看有几个部分,dense不需要我们实现了,我们就实现Res,为了实现那个*3,我们…

Axure情形动作篇(ERP登录效验)

目录 一、ERP系统用户登录效验 1.1 完成步骤 1.2 最终效果 二、省市区联动 三、ERP菜单栏页面跳转 四、下拉加载效果实现 4.1 加载动画实现步骤 4.2 下划界面加载实现 4.3 最终效果 一、ERP系统用户登录效验 1.1 完成步骤 首先搭建ERP系统的登录界面(输入…

Codeforces Round 916 (Div. 3)(G未补)

目录 A. Problemsolving Log B. Preparing for the Contest C. Quests D. Three Activities E1.E2. Game with Marbles F. Programming Competition A. Problemsolving Log 题意:A任务需要一分钟完成,B任务需要两分钟完成,……以此类推…

Dockerfile指令参考

写在前面 这里是原文链接,本文学习Dockerfile中的指令。 指令表格 指令描述ADD添加本地文件或远程文件到imageARG环境变量CMD运行container时执行的命令COPY复制文件或目录到imageENTRYPOINT运行container时执行的命令(优先级高)ENV环境变…

Hudi Clustering

核心概念 Hudi Clustering对于在数据写入和读取提供一套相对完善的解决方案。它的核心思想就是: 在数据写入时,运行并发写入多个小文件,从而提升写入的性能;同时通过一个异步(也可以配置同步,但不推荐&…

SQL注入绕过正则及无列名注入

渗透测试 一、select\b[\s\S]*\bfrom正则二、科学计数法绕过三、过滤information四、无列名注入1、利用 join-using 注列名。2、无列名查询 五、报错注入7大常用函数1.ST_LatFromGeoHash()(mysql>5.7.x)payload 2.ST_LongFromGeoHash(mysq…

3 - Electron app BrowserWindow对象-关于窗口

优雅的打开应用~ 当加载缓慢,打开应用的一瞬间会出现白屏,以下方法可以解决 const mainWindow new BrowserWindow({ show: false }) mainWindow.once(ready-to-show, () > {mainWindow.show() }) 设置背景颜色 const win new BrowserWindow({ b…

OpenHarmony应用开发环境搭建指南

OpenHarmony的应用开发主要是基于Deveco Studio(目前只支持Windows及Mac平台)搭配相应的SDK进行,现对开发环境的搭建进行说明。 1:Deveco下载安装 下载对应平台的安装包即可。接下来以Windows平台为例,进行开发环境的搭建。 下载…