使用matlab绘画弹目交会动态图
时间: 2023-07-22 21:02:56 浏览: 128
弹目交会(Intersection of Lines of Sight,简称LOS)是指从两个观测点出发,分别观测同一目标并记录其方位角和俯仰角,利用三角学原理计算目标在空间中的位置的过程。
下面是一个使用 Matlab 绘制弹目交会动态图的示例代码:
```matlab
% 设置观测点坐标
obs1 = [0, 0, 0];
obs2 = [1000, 0, 0];
% 设置目标真实坐标
target = [500, 500, 500];
% 计算两个观测点与目标的方位角和俯仰角
[az1, el1, r1] = cart2sph(target(1)-obs1(1), target(2)-obs1(2), target(3)-obs1(3));
[az2, el2, r2] = cart2sph(target(1)-obs2(1), target(2)-obs2(2), target(3)-obs2(3));
% 将方位角和俯仰角转换为弧度
az1 = deg2rad(az1);
el1 = deg2rad(el1);
az2 = deg2rad(az2);
el2 = deg2rad(el2);
% 计算两个观测点的坐标系
x1 = [-sin(az1), cos(az1), 0];
y1 = [-cos(az1)*cos(el1), -sin(az1)*cos(el1), sin(el1)];
z1 = [cos(az1)*sin(el1), sin(az1)*sin(el1), cos(el1)];
x2 = [-sin(az2), cos(az2), 0];
y2 = [-cos(az2)*cos(el2), -sin(az2)*cos(el2), sin(el2)];
z2 = [cos(az2)*sin(el2), sin(az2)*sin(el2), cos(el2)];
% 计算目标在两个观测点坐标系中的坐标
target1 = [dot(x1, target-obs1), dot(y1, target-obs1), dot(z1, target-obs1)];
target2 = [dot(x2, target-obs2), dot(y2, target-obs2), dot(z2, target-obs2)];
% 绘制观测点和目标
figure;
plot3(obs1(1), obs1(2), obs1(3), 'ro', 'MarkerSize', 10);
hold on;
plot3(obs2(1), obs2(2), obs2(3), 'bo', 'MarkerSize', 10);
hold on;
plot3(target(1), target(2), target(3), 'g*', 'MarkerSize', 10);
axis equal;
% 循环计算并绘制目标在空间中的位置
for i = 1:100
t = i/100;
pos = (1-t)*target1 + t*target2;
plot3(pos(1), pos(2), pos(3), 'k.', 'MarkerSize', 10);
pause(0.1);
end
```
运行上述代码,将会得到一个弹目交会动态图,其中红色和蓝色的点分别代表两个观测点,绿色的星号代表目标的真实坐标,黑色的点代表目标在空间中的位置,随着时间的推移,黑色的点将会沿着目标的运动轨迹在空间中移动。
需要注意的是,上述代码中的坐标系定义方式可能与实际应用有所不同,具体应根据实际情况进行调整。
阅读全文