定位仿真 随机运动-matlab实现一个质点随机运动无果

问题描述

matlab实现一个质点随机运动无果

我是做定位算法的,但是在展示上需要仿真一个质点在区域内运动,然后我对其进行定位。我的思路是先随机产生一个点,然后由这个点的坐标加一个随机产生的向量,得到下一个点的位置。在此同时用我的算法对该点进行定位。但是实现不出来,下面是我的代码,急求大神帮忙修改,我17号就要答辩了。谢谢。!!
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~myshow~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~节点自定位~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
% BorderLength-----正方形区域的边长,单位:m
% NodeAmount-------网络节点的个数
% BeaconAmount---信标节点数
% Sxy--------------用于存储节点的序号,横坐标,纵坐标的矩阵
%Beacon----------信标节点坐标矩阵;BeaconAmount*BeaconAmount
%UN-------------未知节点坐标矩阵;2*UNAmount
% Distance------未知节点到信标节点距离矩阵;2*BeaconAmount
%h---------------节点间初始跳数矩阵
%X---------------节点估计坐标初始矩阵,X=[x,y]'
% R------------------节点的通信距离,一般为10-100
BorderLength=100;
NodeAmount=100;
BeaconAmount=20;%信标节点数量
UNAmount=NodeAmount-BeaconAmount;%未知节点数量
R=50;%通信半径
MinNode=5;%计算平均每跳距离的时候删除的节点
n=3%最后计算的时候删除的节点
Sxy=initialxy(BorderLength,NodeAmount)%产生随机分布的节点
Beacon=[Sxy(2,1:BeaconAmount);Sxy(3,1:BeaconAmount)];%随机分布的节点中,信标节点的坐标
UN=[Sxy(2,(BeaconAmount+1):NodeAmount);Sxy(3,(BeaconAmount+1):NodeAmount)];%假定的未知节点的坐标
h=initialhop(Sxy,NodeAmount,R)%初始化任意两个节点之间的跳数
Dall=initialDall(NodeAmount,Sxy)%在假定已知任意节点坐标的基础上计算出每个点之间的距离。
h=caculatehop(NodeAmount,h)%计算出每个节点之间的最小跳数

%估计出了位置节点i的横坐标和纵坐标分别为Y(1,i)和Y(2,i)

%通过产生一些点,对该点的运动进行定位,并且把定位的误差率进行比较。%
%具体过程:1.先随机产生一个点a;
%2.随机产生一个向量,与时间有关系,起点a,指向终点b。
%3.重复2.
%4.设定一个限制条件,使得物体走出范围以后,对其不进行定位。
%~~~~~~~~~~~~~~~~~~~~~~~~~~首先产生一个随机的点,这个点应该在区域内部~~~~~~~~~~~~~~~~~~~~%
%ttime表示一个质点一共经历了几段位移
%a表示运动的点被检测的时候的位置
a=zeros(2,ttime)
a(1,0)=rand(1)*BorderLength;%先产生一个随机的点x坐标
a(2,0)=rand(1)*BorderLength;%先产生一个随机的点y坐标
%产生多个向量模拟质点做一个个步骤的运动,即用多个直线运动来模拟质点的曲线运动
Line=zeros(1,ttime)
%产生ttime个向量
for i=1:ttime
Line(1,i)=rand(1);
Line(2,i)=rand(1);
end
%t函数和定位的物体运动速度有关系
for i=1:ttime
a(1,i)=a(1,(i-1))+Line(1,i)*t;
a(2,i)=a(2,(i-1))+Line(2,i)*t;
end
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第一步,首先对目标自节点自己进行定位,得出未知节点的坐标~~~~~~~~~~~~~~~~~~~~%
Distance=dvhopdeveloped(BeaconAmount,h,Dall,NodeAmount,UNAmount,MinNode)%计算未知节点和锚节点之间的距离
Y=caculatedvhopdevelop(h,BeaconAmount,NodeAmount,Distance,Dall,Beacon,n)%估算未知节点的坐标
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第二步,把原来定位出来的结果(已知节点和未知节点的数据载入)~~~~~~~~~~~~~~~~%
%对Z初始化以后,给Z赋值,为每个节点的坐标
Z=zeros(NodeAmount);
for i=1:BeaconAmount
Z(1,i)=Sxy(2,i)
Z(2,i)=Sxy(3,i)
end
%信标节点赋值
for i=(BeaconAmount+1):NodeAmount
Z(1,i)=Y(1,i)
Z(2,i)=Y(2,i)
end
%未知节点赋值
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第三步,进行基于误差自定位下的物体定位~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
X=centr(BorderLength,BeaconAmount,UNAmount,R,Sxy,Beacon,UN);
for i=1:ttime
error(1,i)=sqr((X(1,i)-a(1,i))^2+(X(2,i)-a(2,i))^2);
end
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第四步,画出质点实际运动的过程和根据定位出来的运动过程~~~~~~~~~~~~~~~~~~~~~~%

Node=[Z(1,1:NodeAmount),Z(2,1:NodeAmount)]%节点坐标
Target=(X(1,1:NodeAmount),X(2,1:NodeAmount))
plot(Z(1,1:ttime),Z(w,1:ttime),'r*',X(1,1:ttime),X(2,1:ttime,'k.')
xlim([0,(NodeAmount+ttime)]);
ylim([0,(NodeAmount+ttime)]);
title('* 红色实际路线 . 黑色估计路线')

时间: 2024-12-11 01:19:03

定位仿真 随机运动-matlab实现一个质点随机运动无果的相关文章

绘图-MATLAB做一个很简单的图

问题描述 MATLAB做一个很简单的图 用matlab把下面这个表格实现,横坐标表示字种数,纵坐标表示百分比,具体怎么实现,多谢了 解决方案 可以呀,把plot改为bar 解决方案二: x=[500 1000 1500 2000 2500 3000 3500 4000];y=[78.53 91.92 96.48 98.39 99.24 99.63 99.82 99.92];plot(xy) 解决方案三: 想请你半个忙,如果可以加我QQ:815359755 解决方案四: x=[500 1000 1

我需要极大似然估计定位算法的matlab代码

问题描述 我需要极大似然估计定位算法的matlab代码 是基于RSSI的室内定位,极大似然估计定位算法,如果有双曲线定位算法的MATLAB代码也行.哪位为好心人发我一份,写论文需要. 解决方案 http://www.baidu.com/link?url=rHXbO6mxsCu_MoH9Ij-06JVpqxyOq3DB3jsOE3BsFgA4sLD9iGWSQd6BCQy632zn-eIqt3JHFJR808e1Iontqi79xVUDJD0U3ig29MjLxW7&ie=utf-8&f=8

请问如何用matlab输出一个n*n的对角阵,而且对角线上的数都随机取(-1,1)

问题描述 请问如何用matlab输出一个n*n的对角阵,而且对角线上的数都随机取(-1,1) 请问如何用matlab输出一个n*n的对角阵,而且对角线上的数都随机取(-1,1)

matlab-Matlab程序案例利用Matlab解决一个利用最优化原理的实际问题

问题描述 Matlab程序案例利用Matlab解决一个利用最优化原理的实际问题 能不能给出一个利用最优化方法工具是使用Matlab来实现的具体案例? 解决方案 听起来是算法表示不懂--话说算法好牛的大数学家的算法可以根据你随便给定的几个数字推算出一个数列符合要求-- 解决方案二: http://cn.mathworks.com/products/optimization/?requestedDomain=www.mathworks.com看官方文档. 解决方案三: 用最小堆解决一个实际问题

matlab中一个10000*5的矩阵,如何随机选择其中的5000行?

问题描述 matlab中一个10000*5的矩阵,如何随机选择其中的5000行? matlab中一个10000*5的矩阵,如何随机选择其中的5000行? 解决方案 randsample(100005000'false')获得5000个样本行标然后就简单了 解决方案二: 产生一个50000x2的二维数组,第一列为0~49999,第二列产生一个0~1的随机浮点数.然后对这个数组按照随机数排序,取前5000行的第一列.对于每一行的第一列,根据它的值%5和/5得到原始矩阵的元素.

三维绘图-请问如何用matlab画一个投影图为梯形的三维网图?

问题描述 请问如何用matlab画一个投影图为梯形的三维网图? 我要画一个网格图,但是他的x y轴取值范围是相关的 在meshgrid的时候只能生成方形的网格区域 然而我需要一个梯形的区域进行三维绘图 我应该怎么做到? 谢谢各位老师了 解决方案 http://zhidao.baidu.com/link?url=0llTgJ9hoWF6l8AOslOf-eZN8-BKFepNI6pDF1S64Pp1quLatfzRFQvRFK0BaLMeYElRNBcQjF54NLFdn7ZQoK

matlab-怎样通过MATLAB表示一个由许多个三角形组成的粗糙面

问题描述 怎样通过MATLAB表示一个由许多个三角形组成的粗糙面 现有三个矩阵分别为x,y,z矩阵,每个矩阵内部有若干个元素(元素数相等并且较大)分别表示x,y,z坐标,每三组坐标为一个三角形三个顶点的空间坐标,求问怎样通过MATLAB显示这个粗糙面(其实就是一次把这些三角形画出来)

MATLAB的一个神经网络已经做好,想用C#写界面,如何才能调用?

问题描述 MATLAB的一个神经网络已经做好,想用C#写界面,如何才能调用? MATLAB的神经网络已经做好,然后MATLAB的GUI控件实在是太少太丑太弱了,所以想用C#写界面, 根据用户的操作调用MATLAB的函数?具体该怎么弄? 我认为网上说的把.m文件封装成.dll在这里根本不行,因为是整个神经网络,很多个文件的.所以我想就是 直接开着vs和MATLAB,点击界面时,调用.m文件,计算后,返回结果给界面.这样能行吗?如何做 解决方案 能做,Matlab提供了接口的,但是不是那么容易的,会

rtec tudio 9-求大师帮助!!用matlab写一个导出ply格式文件的函数

问题描述 求大师帮助!!用matlab写一个导出ply格式文件的函数 matlab写一个导出ply格式文件的函数,使得导出的ply能被Artec Studio 9 读取并显示成三维模型