加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
get_interception_params.m 1012 Bytes
一键复制 编辑 原始数据 按行查看 历史
flyinskybtx 提交于 2023-04-10 17:22 . 完成功能
function [ p_f, v_f, t_f ] = get_interception_params( p_im, p_d, vr, ti, resolution)
%GET_INTERCEPTION_TRAJ 此处显示有关此函数的摘要
% 此处显示详细说明
if nargin <5
resolution = pi/180;
end
[phi_im, lambda_im, ~] = cart2polar(p_im);
[phi_d, lambda_d, ~] = cart2polar(p_d);
theta = get_azimuth(phi_im, lambda_im,phi_d, lambda_d);
M_f2c = build_M_f2c(phi_im, lambda_im, theta);
tt_in = [];
vv_c = [];
tt_out = [];
ggamma = 0:resolution:pi/2;
dd = [];
global ATMOS_HEIGHT
for gamma = ggamma
v_f = [sin(gamma) * vr, cos(gamma) * vr, 0]';
v_c = M_f2c * v_f;
vv_c = [vv_c, v_c];
t_in = ATMOS_HEIGHT / vr;
while get_h(p_im + v_c * t_in) < ATMOS_HEIGHT
t_in = t_in + 1;
end
p_f = p_im + v_c * t_in;
tt_in = [tt_in, t_in];
[d, t_out] = get_deviation(p_f, v_c, p_d);
dd = [dd, d];
tt_out = [tt_out, t_out];
end
[~, i] = min(dd);
t_in = tt_in(i);
t_out = tt_out(i);
v_f = vv_c(:,i);
p_f = p_im + v_f * t_in;
t0 = ti - (t_in + t_out);
t_f = t0 + t_in;
end
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化