• 大小: 0M
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-05
  • 语言: Matlab
  • 标签: 其他  

资源简介

main.m

资源截图

代码片段和文件信息

clear all
%初始化车的参数
Xo=[0 0];%起点位置
k=15;%计算引力需要的增益系数
K=0;%初始化
m=5;%计算斥力的增益系数,都是自己设定的。
Po=2.5;%障碍影响距离,当障碍和车的距离大于这个距离时,斥力为0,即不受该障碍的影响。也是自己设定。
n=7;%障碍个数
a=0.5;
l=0.1;%步长
J=200;%循环迭代次数
%如果不能实现预期目标,可能也与初始的增益系数,Po设置的不合适有关。
%end
%给出障碍和目标信息
Xsum=[10 10;1 1;3 3;4 4;3 6;6 2;5 5;8 8.5];%这个向量是(n+1)*2维,其中[10 10]是目标位置,剩下的都是障碍的位置。
Xj=Xo;%j=1循环初始,将车的起始坐标赋给Xj
%***************初始化结束,开始主体循环******************
for j=1:J %循环开始
Goal(j1)=Xj(1); %Goal是保存车走过的每个点的坐标。刚开始先将起点放进该向量。
Goal(j2)=Xj(2);
%调用计算角度模块
Theta=compute_angle(XjXsumn);%Theta是计算出来的车和障碍,和目标之间的与X轴之间的夹角,统一规定角度为逆时针方向,用这个模块可以计算出来。

%调用计算引力模块
Angle=Theta(1);%Theta(1)是车和目标之间的角度,目标对车是引力。
angle_at=Theta(1);%为了后续计算斥力在引力方向的分量赋值给angle_at
[FatxFaty]=compute_Attract(XjXsumkAngle0Pon); %计算出目标对车的引力在xy方向的两个分量值。
for i=1:n
angle_re(i)=Theta(i+1);%计算斥力用的角度,是个向量,因为有n个障碍,就有n个角度。
end

%调用计算斥力模块
[FrerxxFreryyFataxxFata

评论

共有 条评论