质心定位算法_Matlab仿真
假定有6个观测站,随机部署在长宽100米的场地上,每个观测站都相同,探测距离均为50米。一个目标随机出现在场地内,被观测站观测到,并计算估计位置。Matlab仿真如下.
Matlab代码:
代码片
.
function CentroidLocalization %质心定位算法
Length=100;
Width=100;
d=50; %探测能力50m
for i=1:N %观测站的位置初始化
Node(i).x=Width*rand;
Node(i).y=Length*rand;
end
%目标的真实位置,这里也随机给出
Target.x=Width*rand;
Target.y=Length*rand;
X=[ ]; %用于保存探测到目标的探测站的位置
for i=1:N
if getDist(Node(i),Target)<=d %调用距离子函数,getDist()函数必须写在另一个m文件中,见末尾
X=[X;Node(i).x, Node(i).y]; %保存探测到目标的探测站的位置,注意观测站x,y值之间逗号分隔开
end
end
M=size(X,1); %探测到目标的观测站个数
if M>0
Est_Target.x=sum(X(:,1))/M;
Est_Target.y=sum(X(:,2))/M; %质心的估计位置
Error_Dist=getDist(Est_Targ