基于多领导者智能体的Olfati算法matlab仿真

news2024/11/23 1:33:43

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

       人们通过群体行为的研究可以揭示群体智能的产生,群体智能是自组织的过程,将简单的个体通过交互作用或协作表现出来整体智能行为的特性称为“群体智能”。

“群体智能”应用到的算法有哪些?

群体智能可以应用到优化算法中,如遗传优化算法、蚁群优化算法、粒子群优化算法等。另一方面,受群体智能行为的启发,人们可以借鉴生物的智慧,将群体智能应用到多机器人系统协同控制的研究,通过设计一定的控制算法或应用群体智能优化算法,可以使系统整体呈现出所期望的行为。

群体无人机和群体智能的联系:

        群体无人机的英文名称为Swarm UAVs,是指由一组无人机构成的群体。目前对于群体无人机的定义目前还没有一个明确的定论,但从有关群体机器人的文献来看,比较一致的观点是:群体无人机是由一组具有自主能力的同构无人机构成的群体系统,群中无人机是具备局部通信和感知能力的相对简单自治个体,群体中没有集中的控制单元,但众多无人机的群体行为却能体现群体智能的特性。

       群体无人机作为一种受群体智能启发的特殊多无人机系统,除了具有一般多无人机系统的特点外,还具有自身的优点:

1)群体系统结构是基于局部感知或通信的分布式体系结构,采用分布式控制策略,因此,系统具有很强的可扩展性;

2)群体中的个体相对简单,使得无人机的物理实现更加容易,生产成本低;

3)采用分布式控制策略,群体具有自组织的协调控制能力,群体系统对局部个体失效和故障不敏感,系统具有强鲁棒性。

      正因为上述的可扩展性、鲁棒性强、适应性强和个体简单的优点,使得群体无人机具有良好的应用前景,特别是以下几种类型的任务很适合于群体无人机:

     1)区域监测/遍历类任务。群体无人机是分布式系统,很适合于用来协同感知和监测空间状态。例如,在某一区域受灾时,通过构建一群微型自主无人飞行器组成的群体系统,可以对地面受灾状况协同监测,同时可以为地面用户提供应急的通信网络;

     2)外界环境过于危险的任务。由于群体系统中个体无人机的造价成本低,而且个体的故障或坠毁不影响群体的整体行动规划,所以群体无人机适合用来执行蕴藏危险的任务,以牺牲部分个体成员的方式换整体的胜利,如无人战斗机的集群作战等。

      3)有冗余性要求的任务。群体无人机系统具有强鲁棒性,这里的鲁棒性是指在群体中部分个体的失效和故障情况下,系统能正常运作。该鲁棒性决定了群体无人机适合执行有冗余性要求的任务。例如,在战场环境中,群体无人机能临时构建动态的通信网络。

      4)群体规模可及时伸缩的任务。例如,在敌方火力越来越凶猛的情况下,可扩大群体规模集中火力攻击敌方阵地。

        无人机集群以其高度的灵活性、广泛的适应性、可控的经济性,拥有越来越广泛的应用潜力,受到国内外的高度关注。任务规划是无人机集群应用的顶层规划,是根据任务环境态势、任务需求、自身特性等要求进行的综合调度,从而建立无人机与任务的合理映射关系,维持机间合理协同合作关系。本文从基于逻辑与规则的自上而下式任务规划和基于集群智能涌现的自下而上式任务规划两个方面,对无人机集群任务规划技术现状进行了全面的总结,分析了当前无人机集群任务规划技术研究应当关注的若干发展方向。针对多智能体蜂拥控制过程中个体间的差异性,在包含多个虚拟领导者的情况下,研究了针对多智能体个体差异性的优化蜂拥控制算法.首先,在Olfati-Saber算法避碰,聚合和速度匹配的基础上引入多智能体之间的质量差异策略,实现多智能体的聚合和速度匹配;其次,在多领导者的影响下,对引领反馈进行优化,研究了智能体个体跟踪多领导者的控制算法.最后,通过实验仿真,验证了基于改进Olfati-Saber算法的多智能体蜂拥控制算法可以实现多智能体蜂拥运动状态。

       虚拟领导者可以看作是提前给定的预定路线,蜂拥控制的目的是多智能体不仅要达到蜂拥状态而且还要按照预定路线移动,如来自地面指挥员的命令。本文考虑了切换拓扑结构,因此把每个智能体的邻域可以看作是时间t的函数。两个智能体之间的距离超过感应半径时,它们之间的连边会断开,有可能整个多智能体网络会不连通。本文采用动态牵制策略达到多智能体网络蜂拥控制目标。 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

 

3.MATLAB核心程序

    %-----------------求智能体的位置影响------------------
    %求u11=fya*N(i,j)
    u11=zeros(n,n,2);
    for i=1:n
        for j=1:n
            u11(i,j,1)=fya(i,j)*N(i,j,1);
            u11(i,j,2)=fya(i,j)*N(i,j,2);
        end
    end
    u1=zeros(2,n);
    for i=1:n
        for j=1:n
            u1(1,i)=u1(1,i)+u11(i,j,1);
            u1(2,i)=u1(2,i)+u11(i,j,2);
        end
    end
    %----------------求智能体的速度影响----------------------
    %求u22=aij*(pj-pi-prj+pri)
    u22=[n,n,2];
    for i=1:n
        for j=1:n
            u22(i,j,1)=A(i,j)*(p(1,j)-p(1,i)-pr(1,i)+pr(1,i));
            u22(i,j,2)=A(i,j)*(p(2,j)-p(2,i)-pr(2,i)+pr(2,i));
        end
    end
    %u2为反馈2
    u2=zeros(2,n);
    for i=1:n
        for j=1:n
            u2(1,i)= u22(i,j,1)+ u2(1,i);
            u2(2,i)= u22(i,j,2)+ u2(2,i);
        end
    end
    %-----------------求领导者的影响------------------
    u3=zeros(2,n);
    for i=1:5
        u3(1,i)=-c1*(q(1,i)-qr1(1,1))-c2*(p(1,i)-pr1(1,1));
        u3(2,i)=-c1*(q(2,i)-qr1(2,1))-c2*(p(2,i)-pr1(2,1));
    end
    for i=6:10
        u3(1,i)=-c1*(q(1,i)-qr2(1,1))-c2*(p(1,i)-pr2(1,1));
        u3(2,i)=-c1*(q(2,i)-qr2(2,1))-c2*(p(2,i)-pr2(2,1));
    end
    %-----------------求加速度u---------------------------
    %----各智能体在计算时加入其领导智能体的加速度反馈ur------
    u=zeros(2,n);
    for i=1:2
        for j=1:5
          u(i,j)=u1(i,j)+u2(i,j)+u3(i,j)+ur1(i,1);
        end
    end
    for i=1:2
        for j=6:10
          u(i,j)=u1(i,j)+u2(i,j)+u3(i,j)+ur2(i,1);
        end
    end
    %----------------进行下一步运算--------------
    %-------------智能体离散计算------------
    for i=1:2
        for j=1:n
            q(i,j)=q(i,j)+step*p(i,j);
            p(i,j)=p(i,j)+step*u(i,j);
        end
    end
    %------------虚拟领导者离散计算------------
    for i=1:2
        qr1(i,1)=qr1(i,1)+step*pr1(i,1);
        pr1(i,1)=pr1(i,1)+step*ur1(i,1);
    end
    for i=1:2
        qr2(i,1)=qr2(i,1)+step*pr2(i,1);
        pr2(i,1)=pr2(i,1)+step*ur2(i,1);
    end
 
end
%---------------------循环结束,绘图------------------------
%---------------------智能体初始时刻状态--------------------
figure(1);
plot(qq(1,:,1),qq(2,:,1),'o');
hold on;
quiver(qq(1,:,1),qq(2,:,1),pp(1,:,1),pp(2,:,1),'Color','red');
for i=1:n
    for j=1:n
        if sqrt((qq(1,i,1)-qq(1,j,1))^2+(qq(2,i,1)-qq(2,j,1))^2)<=r
            line([qq(1,i,1),qq(1,j,1)],[qq(2,i,1),qq(2,j,1)]); 
        end
    end
end
%-------------------智能体最终时刻状态---------------
figure(2);
plot(qq(1,:,loop),qq(2,:,loop),'o');
hold on;
quiver(qq(1,:,loop),qq(2,:,loop),pp(1,:,loop),pp(2,:,loop),'Color','red');
for i=1:n
    for j=1:n
        if sqrt((qq(1,i,loop)-qq(1,j,loop))^2+(qq(2,i,loop)-qq(2,j,loop))^2)<=r
            line([qq(1,i,loop),qq(1,j,loop)],[qq(2,i,loop),qq(2,j,loop)]); 
        end
    end
end
%--------------------智能体t时刻--------------------------------
a77

4.完整MATLAB

V

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

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

相关文章

win10系统怎样分区,win10固态硬盘怎么分区

Windows10简称win10&#xff0c;是微软公司研发的跨平台操作系统&#xff0c;应用于计算机和平板电脑等设备。许多用户在购买一台新电脑后&#xff0c;开机后发现&#xff1a;电脑只有一个C盘&#xff0c;且C盘存储空间很大&#xff0c;为了更加合理地使用磁盘分区&#xff0c;…

Linux文件搜索命令find、which和whereis应用

记录&#xff1a;349 场景&#xff1a;在CentOS 7.9操作系统上&#xff0c;使用find命令在指定目录搜索文件&#xff0c;支持精确搜索和模糊搜索&#xff1b;使用which命令搜索一个命令所在的目录和别名信息。使用whereis命令搜索命令所在的目录和man帮助手册等相关的文件路径…

NR CSI(四) PMI

微信同步更新欢迎关注同名modem协议笔记 如38.214 5.1.1.1中所述&#xff0c;NR PDSCH 38214只有一种传输模式Transmission scheme 1&#xff0c;gNB将data(di)和DMRS一同预编码&#xff0c;之后通过无线信道&#xff0c;发送给UE,如下图。DMRS是用于信道估计&#xff0c;服务…

一键获取主图设计模板的工具平台

想设计一个好看又简介的电商商品模板&#xff1f;不懂如何设计排版电商商品主图&#xff1f;今天小编分享给你这个主图设计工具和设计教程&#xff0c;乔拓云不仅能快速上手设计&#xff0c;还有海量的主图设计素材能直接使用&#xff01;只需要跟着小编下面的工具使用教程&…

C语言IO操作fread/fwrite/fflush

参考 1 2 IO操作 fread/fwrite/fflush&#xff1a; c语言标准规定的io流操作&#xff0c;建立在read/write/fsync之上&#xff1b;在用户层&#xff0c; 又增加了一层缓冲机制&#xff0c;用于减少内核调用次数&#xff0c;但是增加了一次内存拷贝&#xff1b; read/write/…

[附源码]SSM计算机毕业设计学生量化考核管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

mysql相关基础知识篇(五)

1.MySQL 事务的四大特性说一下&#xff1f; 原子性&#xff1a;事务作为一个整体被执行&#xff0c;包含在其中的对数据库的操作要么全部被执行&#xff0c;要么都不执行。一致性&#xff1a;指在事务开始之前和事务结束以后&#xff0c;数据不会被破坏&#xff0c;假如 A 账户…

maven的pom.xml文件爆红,并且刷新maven无法下载依赖的解决方案

平时使用idea时&#xff0c;对于新手有时候会遇到一些比较尴尬的事情——依赖无法下载 分析一下&#xff0c;maven依赖无法下载有以下原因 &#xff08;1&#xff09;maven在项目中是否安装且环境变量是否配置成功 &#xff08;2&#xff09;maven依赖下载慢&#xff0c;考虑是…

Dubbo3入门实践,SpringBoot+Dubbo+Nacos+DubboAdmin

前言 学习Dubbo的过程中发现官网文章太过简单&#xff0c;而且没有提供完整的项目整合&#xff0c;导致入门门槛比较高&#xff0c;初学者不知从何下手。本文将在SpringBoot的基础上整合Dubbo&#xff0c;注册中心使用当下流行的Nacos&#xff0c;还将使用Dubbo-Admin来管理服务…

RationalDMIS 2020 叶片检测 -快速定义叶片截面线方法

1.快速定义叶片截面线方法 用多平面切割叶片CAD定义曲线的方法,用来快速定义叶片截面曲线;自定义多个平面,使用这些平面切割CAD,生成多个叶片曲线(BladeCurve):再将生成的叶片曲线(BladeCurve)自动打断为两个子曲线(Curve);上述所有生成的曲线(Curve)都会添加到元…

[附源码]Python计算机毕业设计Django常见Web漏洞对应POC应用系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

使用 Rainbond 搭建本地开发环境

在开发之前&#xff0c;你需要在本地安装各种开发工具和服务&#xff0c;比如&#xff1a;Mysql、Redis、Nacos 等等&#xff0c;我们都知道在个人电脑上安装这些服务相当的繁琐&#xff0c;可能会遇到很多问题&#xff0c;环境问题、依赖问题等等。 在需要团队协作业务联调的…

第十三章《集合》第5节:Map集合

List、Set和Queue都是Collection接口的子接口,因此从更高层次来说它们属于统一类型的集合。Map接口也代表一种集合,但它不是Collection子接口,因此它属于另一种类型的集合。Map用于保存具有映射关系的数据。映射关系的数据分为两部分,就好比电话本一样,如图13-20所示。 图…

运筹说 第82期 | 算法介绍之图与网络分析(二)

本期我们继续进行运筹学之图与网络分析算法的讲解&#xff0c;我们将对图与网络分析的基础知识进行一个简单的回顾&#xff0c;并介绍求解最大流问题和最小费用最大流的MATLAB和Python相关代码&#xff0c;以帮助大家利用工具快速求解最大流问题和最小费用最大流问题&#xff0…

Spring的Bean意义

一、Spring概述 1. Spring家族 官网&#xff1a;https://spring.ioSpring发展到今天已经形成了一种开发的生态圈&#xff0c;Spring提供了若干个项目&#xff0c;每个项目用于完成特定的功能。 2. Spring体系结构 ⑴. Spring Framework系统架构图 Spring Framework是Spri…

四、【React-Router5】样式丢失问题

文章目录1、先上结论2、修改上一节代码3、发现问题4、分析原因5、3个解决办法1、先上结论 public/index.html 中 引入样式时不写 ./ 写 / [ 常用 ]public/index.html 中 引入样式时不写 ./ 写 %PUBLIC_URL% [ 常用 ]使用 HashRouter 2、修改上一节代码 点击访问 上节代码&…

[附源码]SSM计算机毕业设计学生档案管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【错误 :Segmentation fault 】以及gdb调试 core duumped文件

core dumped文件&#xff08;核心转储文件&#xff09; 当进程意外终止&#xff0c;系统可以将该进程的地址空间的内容急终止的一些其它信息转储到核心转储文件 它的触发条件&#xff0c;当系统收到以下信号时就会产生coredumped文件。 SIGABRT &#xff1a;异常终止(abort)时…

野火FPGA进阶(1):基于SPI协议的Flash驱动控制

文章目录第48讲&#xff1a;基于SPI协议的Flash驱动控制0. 理论部分1. Flash全擦除实验key_filterflash_be_ctrlspi_flash_betb_flash_be_ctrltb_spi_flash_be2. Flash扇区擦除实验key_filterflash_se_ctrlspi_flash_se3. 数据读操作key_filteruart_txflash_read_ctrlspi_flash…

专注于元宇宙实际应用方案的企业

元宇宙的话题持续火热。国内互联网大厂正在加大对元宇宙相关技术和应用的研发&#xff0c;元宇宙正在逐步成为创新创业的主战场。企业元宇宙在教育、会展、文创、旅游、博物馆、文化艺术、娱乐、社交、版权、零售等等领域发力&#xff0c;增加客户对企业的认同。 也许未来只需一…