基于一致性原理的时间协同制导及其Matlab仿真

来源:https://www.worthpen.top/blog?id=658ec46390d3d1241da10728

引言

本文给出了多智能体系统的一致性理论、多弹剩余时间协同制导律及其Matlab代码。

多智能体系统的一致性原理

系统模型

考虑连续时间内由n个智能体构成的n阶多智能体系统,每个智能体的动力学模型为:
在这里插入图片描述
式中t——时间;
在这里插入图片描述——第i个智能体的状态,表示k阶导数,k = 0, 1,…, n-1;
ut——第i个智能体的控制输入。

如果在任意初始条件下,控制算法能够使得多智能体系统的状态满足
在这里插入图片描述
则称多智能体系统的状态在控制算法的作用下能够渐近的达到一致。

如果在任意初始条件下,存在常数,控制算法ut能够使得
在这里插入图片描述
则称领导-跟随多智能体系统的状态在控制算法的作用下能够在有限时间内达到一致。

经典一致性控制算法

经典一致性控制算法:
在这里插入图片描述
式中N——智能体i的邻居集合;
a——固定拓扑结构下智能体i的邻接矩阵元素;
γ——智能体i的控制增益;
α——符号函数的幂指数;
β——相对信息的反馈增益。

代码及仿真结果

核心代码(全部代码在文末):

function [output] = control(state_self, state_com)
%CONTROL 根据自身信息和接收到的状态计算出控制量
%   输入:自身状态,接收到的状态
%   输出:控制量
% 控制增益,行表示不同状态,列表示不同节点
gama = [4, 4, 4, 4, 4;
	    8, 8, 8, 8, 8;
        8, 8, 8, 8, 8];
% 符号函数的幂指数
alpha = [0.8, 0.8, 0.8, 0.8, 0.8;
         0.67, 0.67, 0.67, 0.67, 0.67;
         0.57, 0.57, 0.57, 0.57, 0.57];
%%
num_node = size(state_self,2);
output = zeros(1,num_node);
% 接受节点序号
for i =1:num_node
    for cou_state = 1:size(state_self,1)
        state_temp = 0;
        % 发送节点序号
        for j =1:size(state_com{1,i},2)
            state_temp = state_temp+ state_com{1,i}(cou_state,j)-state_self(cou_state,i);
        end
        output(1,i) = output(1,i) + ...
            gama(cou_state,i)*sig(state_temp,alpha(cou_state,i));
    end
end
end

结果展示:
一阶:
在这里插入图片描述
二阶
在这里插入图片描述
三阶
在这里插入图片描述

基于一致性原理的时间协同制导律

系统模型

在三维协同制导空间中,第i个飞行器的加速度在视线系三个轴的分量为在这里插入图片描述
,目标加速度在视线系三个轴的分量为在这里插入图片描述。与平面相对运动模型类似,定义如下三维空间内飞行器和目标的相对速度矢量表达式。
在这里插入图片描述
其中 R ——第i个飞行器与目标距离;
在这里插入图片描述——第i个飞行器的视线在惯性系中的高低角;
在这里插入图片描述——第i个飞行器的视线在惯性系中的偏角;

VR——第i个飞行器视线系中x轴的速度;
在这里插入图片描述——第i个飞行器视线系中y轴速度;
Vq——第i个飞行器视线系中z轴速度。
求导,可得
在这里插入图片描述
其中 在这里插入图片描述——在惯性系中相对时间的导数;
在这里插入图片描述——在视线系中相对时间的导数;
在这里插入图片描述——视线系相对于惯性系的旋转角速度;
w——目标加速度在视线系各轴的分量;
u——第i个飞行器的加速度在视线系各轴的分量。
可以得出
在这里插入图片描述
带入,得
在这里插入图片描述
整理可得
在这里插入图片描述
与平面的协同制导问题一样,设计三维空间协同制导律的关键是首先通过和使得视线角速率制导过程中使得视线角速率和趋近于零,从而实现准平行接近;然后在视线稳定的情况下利用调整飞行器的剩余飞行时间,实现多个飞行器的时间一致。

基于一致性原理的剩余飞行时间控制方法

本节给出视线方向控制量的设计方法。根据多智能体一阶积分系统有限时间一致性算法,给出三维空间内协同制导律视线方向控制定理。
定义函数在这里插入图片描述
符号函数定义为
在这里插入图片描述

假设系统的齐次度为k,如果原点是渐进稳定的,并且k>0,那么系统的原点是有限时间稳定点。
利用领导-跟随多智能体一致性理论和有限时间控制方法,当多飞行器系统的通信拓扑是连通时,为第i个跟随飞行器设计如下控制算法:
在这里插入图片描述
可以使系统的状态在有限时间内达到一致。
在这里插入图片描述替换式中的在这里插入图片描述,可以得到如下有限时间一致性算法:
在这里插入图片描述
在这里插入图片描述, 可以写为
在这里插入图片描述

代码及仿真结果

核心代码(全部代码在文末):

function [ u ] = control( status, other_missiles, t )
% 控制器参数
n = 3;
beta = 2;
eta = 0.7;
%%
u = zeros(3,1);
sum_error = 0;
for cou_other_missile = 1:size(other_missiles,2)
    sum_error = sum_error + other_missiles(1, cou_other_missile) /...
        other_missiles(4, cou_other_missile) - status(1, 1) / status(4, 1);
end
% 固定数17最合适或者直接使用t
u(1,1) = min([max([t * sig(sum_error, eta),-200]),200]); 
u(2,1) = min([max([-n * status(4, 1) * status(6, 1) + ...
    beta * sig(status(6, 1), eta),-200]),200]); 
u(3,1) = min([max([n * status(4, 1) * status(5, 1)-...
    beta * sig(status(5, 1), eta),-200]),200]); 
end

结果展示:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

完整代码分为多个文件,数量较多,无法放在文章中。完整代码在公众号(沸腾的火锅资源号)中自取。

  • 17
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 基于惯导的无人机协同定位是一种利用多架无人机通过惯性导航系统相互配合完成位置定位任务的方法。在这个问题中,需要使用MATLAB进行仿真,以验证该方法的可行性。 首先,需要建立一个基于惯性测量单元(IMU)的无人机运动模型。这个模型可以包括无人机的姿态、角速度和线性加速度等信息。利用这些信息,可以计算出无人机的位置和速度。 接下来,需要设置多架无人机的初始位置和速度。可以通过定义一个无人机群的数组,每个数组元素代表一个无人机,具有自己的位置和速度信息。 然后,可以模拟无人机之间的通信和配合行动。可以使用MATLAB中的通信工具箱来实现无人机之间的通信,并设计合适的协议和算法来实现协同行动。例如,可以定义一个领航无人机,其他无人机根据领航无人机的位置和速度进行飞行控制。 最后,可以通过绘制无人机的轨迹和位置误差等图表来评估系统的性能。可以利用MATLAB中的图表工具箱来实现这些功能。通过分析这些结果,可以评估基于惯导的无人机协同定位的准确性和稳定性。 总结而言,基于惯导的无人机协同定位的MATLAB仿真可以通过建立无人机运动模型、通信和配合行动算法、绘制相关图表等步骤来完成。这个仿真可以帮助验证该方法的可行性,并优化相关算法,提高无人机协同定位系统的性能。 ### 回答2: 基于惯导的无人机协同定位是指通过惯性导航系统实现无人机之间的位置信息交互和协同。它可以提高无人机编队的定位精度和鲁棒性,在一定程度上解决GPS信号受限或不可靠的问题。 在Matlab仿真中,可以通过以下步骤进行基于惯导的无人机协同定位的仿真实验: 1. 创建仿真环境:使用Matlab中的图形界面工具或编程方式,创建一个合适的仿真环境。该环境包括多个无人机和惯性导航系统模型,以及模拟环境中的其他障碍物和地形等。 2. 建立无人机模型:在仿真环境中,为每个无人机建立模型。这些模型需要考虑无人机的动力学特性、传感器性能、控制算法等。 3. 建立惯导系统模型:为每个无人机建立惯导系统模型。惯导系统包括加速度计和陀螺仪等传感器,以及惯性导航算法。 4. 设计协同定位算法:根据实际需求和无人机之间的通信约束,设计协同定位算法。该算法可以基于位置估计或滤波器等方法实现。 5. 运行仿真实验:在仿真环境中运行仿真实验,使无人机按照设定的任务和路线进行协同定位。在仿真过程中,通过惯导系统对无人机位置信息进行测量和估计,并通过无线通信在无人机之间交换位置信息。 6. 评估仿真结果:对仿真的结果进行评估和分析。可以比较不同算法的性能,评估无人机编队的定位精度和鲁棒性。 通过以上步骤,就可以在Matlab中进行基于惯导的无人机协同定位的仿真实验。这样的仿真实验有助于优化和验证无人机协同定位算法的性能,并为实际无人机编队的应用提供参考。 ### 回答3: 基于惯导的无人机协同定位是一种利用惯性导航系统,通过无线通信网络实现多架无人机之间的位置同步与定位,可以提高无人机在无GPS环境下的定位精度和准确性。 在进行基于惯导的无人机协同定位的Matlab仿真时,我们可以按照以下步骤进行: 1. 建立无人机模型:在Matlab中,可以使用Simulink工具建立无人机的运动模型,包括飞行力学和动力学方程,以及无人机的陀螺仪和加速度计等传感器模型。 2. 设计惯导系统:在模型中,可以加入惯性导航系统,包括惯性导航单元(IMU)和姿态解算算法。IMU由加速度计和陀螺仪组成,用于测量无人机的线性加速度和角速度信息。姿态解算算法则根据IMU的测量数据计算无人机的姿态角。 3. 建立通信网络:在仿真中,可以模拟无人机之间的无线通信网络。可以设定无人机之间的通信范围、信号传播特性等参数,并利用无线通信协议模拟无人机之间的数据传输和位置信息交换。 4. 设计协同定位算法:基于惯导的无人机协同定位需要设计合适的算法来实现多架无人机之间的定位同步。常用的算法包括扩展卡尔曼滤波(EKF)和无线信号强度测量等方法。可以在Matlab中实现这些算法,并与无人机模型和通信网络进行连接。 5. 进行仿真实验:在Matlab仿真环境中,可以对设计的无人机协同定位系统进行实验和验证。可以设置不同的场景和参数,观察无人机之间的位置同步情况,评估定位精度和准确性,并进行性能分析和优化。 通过以上步骤,我们可以在Matlab中进行基于惯导的无人机协同定位的仿真实验,以便评估和改进无人机系统的定位性能,提高其在无GPS环境下的定位精度和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoilingHotPot

听说打赏我的人,都发顶会顶刊了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值