生活指南——让生活变得更简单

matlab定位算法_交叉定位MATLAB仿真

课程:

利用matlab分别对三边测量定位算法和改进算法进行仿真和验证 急求源程序

%% 清空环境变量

clc

clear

load data

%% 数据累加作为网络输入

[n,m]=size(X);

for i=1:n

y(i,1)=sum(X(1:i,1));

y(i,2)=sum(X(1:i,2));

y(i,3)=sum(X(1:i,3));

y(i,4)=sum(X(1:i,4));

y(i,5)=sum(X(1:i,5));

y(i,6)=sum(X(1:i,6));

end

%% 网络参数初始化

a=0.3+rand(1)/4;

b1=0.3+rand(1)/4;

b2=0.3+rand(1)/4;

b3=0.3+rand(1)/4;

b4=0.3+rand(1)/4;

b5=0.3+rand(1)/4;

%% 学习速率初始化

u1=0.0015;

u2=0.0015;

u3=0.0015;

u4=0.0015;

u5=0.0015;

%% 权值阀值初始化

t=1;

w11=a;

w21=-y(1,1);

w22=2*b1/a;

w23=2*b2/a;

w24=2*b3/a;

w25=2*b4/a;

w26=2*b5/a;

w31=1+exp(-a*t);

w32=1+exp(-a*t);

w33=1+exp(-a*t);

w34=1+exp(-a*t);

w35=1+exp(-a*t);

w36=1+exp(-a*t);

theta=(1+exp(-a*t))*(b1*y(1,2)/a+b2*y(1,3)/a+b3*y(1,4)/a+b4*y(1,5)/a+b5*y(1,6)/a-y(1,1));

kk=1;

%% 循环迭代

for j=1:10

%循环迭代

E(j)=0;

for i=1:30

%% 网络输出计算

t=i;

LB_b=1/(1+exp(-w11*t));   %LB层输出

LC_c1=LB_b*w21;           %LC层输出

LC_c2=y(i,2)*LB_b*w22;    %LC层输出

LC_c3=y(i,3)*LB_b*w23;    %LC层输出

LC_c4=y(i,4)*LB_b*w24;    %LC层输出

LC_c5=y(i,5)*LB_b*w25;    %LC层输出

LC_c6=y(i,6)*LB_b*w26;    %LC层输出

LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6;    %LD层输出

theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1));   %阀值

ym=LD_d-theta;   %网络输出值

yc(i)=ym;

%% 权值修正

error=ym-y(i,1);      %计算误差

E(j)=E(j)+abs(error);    %误差求和

error1=error*(1+exp(-w11*t));     %计算误差

error2=error*(1+exp(-w11*t));     %计算误差

error3=error*(1+exp(-w11*t));

error4=error*(1+exp(-w11*t));

error5=error*(1+exp(-w11*t));

error6=error*(1+exp(-w11*t));

error7=(1/(1+exp(-w11*t)))*(1-1/(1+exp(-w11*t)))*(w21*error1+w22*error2+w23*error3+w24*error4+w25*error5+w26*error6);

%修改权值

w22=w22-u1*error2*LB_b;

w23=w23-u2*error3*LB_b;

w24=w24-u3*error4*LB_b;

w25=w25-u4*error5*LB_b;

w26=w26-u5*error6*LB_b;

w11=w11+a*t*error7;

end

end

%画误差随进化次数变化趋势

figure(1)

plot(E)

title('训练误差','fontsize',12);

xlabel('进化次数','fontsize',12);

ylabel('误差','fontsize',12);

%print -dtiff -r600 28-3

%根据训出的灰色神经网络进行预测

for i=31:36

t=i;

LB_b=1/(1+exp(-w11*t));   %LB层输出

LC_c1=LB_b*w21;           %LC层输出

LC_c2=y(i,2)*LB_b*w22;    %LC层输出

LC_c3=y(i,3)*LB_b*w23;    %LC层输出

LC_c4=y(i,4)*LB_b*w24;    %LC层输出

LC_c5=y(i,5)*LB_b*w25;

LC_c6=y(i,6)*LB_b*w26;

LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6;    %LD层输出

theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1));   %阀值

ym=LD_d-theta;   %网络输出值

yc(i)=ym;

end

yc=yc*100000;

y(:,1)=y(:,1)*10000;

%计算预测的每月需求量

for j=36:-1:2

ys(j)=(yc(j)-yc(j-1))/10;

end

figure(2)

plot(ys(31:36),'-*');

hold on

plot(X(31:36,1)*10000,'r:o');

三站平面时差定位的MATLAB仿真和GDOP图

clc;

clear;

x2=-12.99; x3=12.99; xt=0; x1=0;%%%星型d=15km

y2=7.5; y3=7.5; yt=-15; y1=0;

z2=0.01; z3=0; zt=0.01; z1=0.01;

%

% x1=-25.98; x2=25.98; x3=0; xt=0;%%%星型d=30km

% y1=15; y2=15; y3=-30; yt=0;

% z1=0.2; z2=0.2; z3=0.2; zt=0.25;

% xt=-12.99; x2=12.99; x3=0; x1=0;%%%菱形型d=15km

% yt=7.5; y2=7.5; y3=15; y1=0;

% zt=0; z2=0; z3=0; z1=0.1;

% x1=-25.98; x2=25.98; x3=0; xt=0;%%%菱形型d=30km

% y1=15; y2=15; y3=30; yt=0;

% z1=0; z2=0; z3=0; zt=0.1;

% x1=-10.6; x2=10.6; x3=21.2; xt=0;%%%平行角型形型d=15km

% y1=10.6; y2=10.6; y3=0; yt=0;

% z1=0; z2=0; z3=0; zt=0.1;

% x1=-21.2; x2=21.2; x3=42.4; xt=0;%%%平行型形型d=30km

% y1=21.2; y2=21.2; y3=0; yt=0;

% z1=0; z2=0; z3=0; zt=0.1;

%

% x1=-30; x2=0; x3=30; xt=0;%%%倒三形型d=30km

% y1=30; y2=30; y3=30; yt=0;

% z1=0; z2=0; z3=0; zt=0.1;

z=15;

y=-200:1:200;x=-200:1:200;

%

for i=1:401

for j=1:401

% for i=-70:70

% for j=-70:70

m=x(i);

n=y(j);

r1=((m-x1).^2+(n-y1).^2+(z-z1).^2).^(1/2);

r2=((m-x2).^2+(n-y2).^2+(z-z2).^2).^(1/2);

r3=((m-x3).^2+(n-y3).^2+(z-z3).^2).^(1/2);

%r4=((m-x4).^2+(n-y4).^2+(z-z4).^2).^(1/2);

rt=((m-xt).^2+(n-yt).^2+(z-zt).^2).^(1/2);

c11=(m-x1)/r1;c21=(m-x2)/r2;c31=(m-x3)/r3;ct1=(m-xt)/rt;

c12=(n-y1)/r1;c22=(n-y2)/r2;c32=(n-y3)/r3;ct2=(n-yt)/rt;

c13=(z-z1)/r1;c23=(z-z2)/r2;c33=(z-z3)/r3;ct3=(z-zt)/rt;

c=[(-ct1+c11) (-ct2+c12) (-ct3+c13);(-ct1+c21) (-ct2+c22) (-ct3+c23);(-ct1+c31) (-ct2+c32) (-ct3+c33)];

b=inv(c'*c)*(c');

b11=b(1);

b12=b(4);

b13=b(7);

b21=b(2);

b22=b(5);

b23=b(8);

b31=b(3);

b32=b(6);

b33=b(9);

% b14=b(10);

% b24=b(11);

% b34=b(12);

sigmap=0.5;%测量误差的标准差

sigmas=0.0075;%测时误差

eta=0.35;%Ri站距离和测量之间的相关系数

sigma11=sigmap.^2+sigmas.^2*2;

sigma22=sigmap.^2+sigmas.^2*2;

sigma33=sigmap.^2+sigmas.^2*2;

sigma44=sigmap.^2+sigmas.^2*2;

sigma12=eta*sigmap.^2+sigmas.^2;

sigma13=eta*sigmap.^2+sigmas.^2;

sigma14=eta*sigmap.^2+sigmas.^2;

sigma21=eta*sigmap.^2+sigmas.^2;

sigma23=eta*sigmap.^2+sigmas.^2;

sigma24=eta*sigmap.^2+sigmas.^2;

sigma31=eta*sigmap.^2+sigmas.^2;

sigma32=eta*sigmap.^2+sigmas.^2;

sigma34=eta*sigmap.^2+sigmas.^2;

sigma41=eta*sigmap.^2+sigmas.^2;

sigma42=eta*sigmap.^2+sigmas.^2;

sigma43=eta*sigmap.^2+sigmas.^2;

sigmax2=b11*b11*sigma11+b11*b12*sigma12+b11*b13*sigma13+b12*b11*sigma21+b12*b12*sigma22+b12*b13*sigma23+b13*b11*sigma31+b13*b12*sigma32+b13*b13*sigma33;

sigmay2=b21*b21*sigma11+b21*b22*sigma12+b21*b23*sigma13+b22*b21*sigma21+b22*b22*sigma22+b22*b23*sigma23+b23*b21*sigma31+b23*b22*sigma32+b23*b23*sigma33;

sigmaz2=b31*b31*sigma11+b31*b32*sigma12+b31*b33*sigma13+b32*b31*sigma21+b32*b32*sigma22+b32*b33*sigma23+b33*b31*sigma31+b33*b32*sigma32+b33*b33*sigma33;

gdop(j,i)=(sigmax2+sigmay2+sigmaz2).^(1/2);

end

end

figure(1);

[c,handle]=contour(x,y,gdop,25);%[c,handle]=contour(gdop,25);

clabel(c,handle);

% hold on;

% plot(0,0,0.1,'rpentagram','linewidth',2);

% text(0,0,1,'T');

% plot(-30,0,0,'rpentagram','linewidth',2);

% text(-31,0,0,'R1');

% plot(30,0,0,'rpentagram','linewidth',2);

% text(31,0,0,'R2');

% plot(0,-5,0,'rpentagram','linewidth',2);

% text(0,-6,0,'R3');

% plot(0,5,0,'rpentagram','linewidth',2);

% text(0,6,1,'R4');

% hold off;

xlabel('x方向(单位:km)');

ylabel('y方向(单位:km)');

% title('GDOP图');

matlab怎么实现管道定位仿真

MATLAB实现

trilateration_position.m

% ----------------采用三边定位法对未知节点定位-------------------------------

%{

    clc命令是用来清除命令窗口的内容。不管开启多少个应用程序,命令窗口只有一个,

    所以clc无论是在脚本m文件或者函数m文件调用时,clc命令都会清除命令窗口的内容。

    clear命令可以用来清除工作空间的内容。MATLAB有个基本的工作空间,用base标识,

    此外,当打开一个函数m文件时,可能会产生很多工作空间。每一个函数对应一个工作空间。

%}

clear;

maxx = 1000;%参考节点分布的最大横坐标

maxy = 1000;%参考节点分布的最大纵坐标

%----------------------随机初始化三个已知的参考点[cx,cy]-----------------

%{

    rand()产生0和1之间均匀分布的随机数

    rand(m)产生一个m*m的矩阵,当然矩阵的值是0和1之间均匀分布的随机数

    rand(m,n)或者rand([m,n])产生一个m*n的矩阵

    randn()产生均值为0, 方差为1的正态分布的随机数。用法和rand类似。

%}

cx = maxx*rand(1,3);

cy = maxy*rand(1,3);

plot(cx,cy,'k^');%参考节点图

%--------随机初始化一个未知节点(mx,my)-----------

mx = maxx*rand();

my = maxy*rand();

hold on;

% 盲节点图

plot(mx,my,'go'); 

da = sqrt((mx-cx(1))^2+(my-cy(1))^2);

db = sqrt((mx-cx(2))^2+(my-cy(2))^2);

dc = sqrt((mx-cx(3))^2+(my-cy(3))^2);

% 计算定位坐标

[locx,locy] = triposition(cx(1),cy(1),da,cx(2),cy(2),db,cx(3),cy(3),dc);      

plot(locx,locy,'r*');

legend('参考节点','盲节点','定位节点','Location','SouthEast');  

title('三边测量法的定位');

derror = sqrt((locx-mx)^2 + (locy-my)^2);

disp(derror);

跪求GPS定位用户位置解算Matlab仿真程序,哪位仁兄靓姐帮帮忙?急急急!!!

[r,c] = find(R == max(R(:))); 检索R中最大元素所在的位置(行标r和列标c)

thetap = theta(c(1)); theta()是自定义函数

用matlab 做车辆在相交道路上行驶的仿真

clear all

clc

a=[0, 0];

b=[-100 ,100];

c=[-100,100];

d=[0 ,0];

figure(1)

plot(a,b,'k','LineWidth',10)

hold on

plot(c,d,'k','LineWidth',10)

hold on

x1=[-100,0];

x2=[0 -80];

v=1;

aa=[];

ba=[];

for i=1:180;

aa(i)=-100+v.*i;

drawnow;

h1=plot(aa(i),0,'-or','LineWidth',5);

pause(0.01) ;

bb(i)=-80+v.*i;

drawnow;

h2=plot(0,bb(i),'-ob','LineWidth',5);

pause(0.01) ;

delete(h1);

delete(h2);

end

室内定位在matlab的什么库里进行仿真

基于历史数据库的室内定位算法,通过matlab对nnss算法进行仿真

云盘链接已私信发送给你了,你看一下是不是你需要的

如果还有哪位朋友想要,请点“赞”此条回答以后,在下面的评论里留下您的联系方式

学无止境,希望回答能给你带来帮助,如果满意请采纳,不满意的话请继续追问。

  • 评论列表:
  •  访客
     发布于 2022-07-12 19:06:32  回复该评论
  • 80];v=1;aa=[];ba=[];for i=1:180;aa(i)=-100+v.*i;drawnow;h1=plot(aa(i),0,'-or','LineWidth',5);pause(0.01) ;bb(i)=-80+v.*i;draw
  •  访客
     发布于 2022-07-12 14:29:09  回复该评论
  • 面时差定位的MATLAB仿真和GDOP图clc;clear;x2=-12.99; x3=12.99; xt=0; x1=0;%%%星型d=15km y2=7.5; y3=7.5; yt=-15; y1=0; z2=0.01; z3=0; zt=0.01; z1=0.01;% % x1=

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Copyright Your WebSite.Some Rights Reserved.