论文复现:三维比例导引

1 论文

欧阳中辉, 刘家祺, 张龙杰,等. 基于矢量运算的三维真比例导引弹道仿真[J]. 弹箭与制导学报, 2013, 33(1):53-56.

三维比例导引,矢量动力学

2 程序

主函数

clear;close all;
global N
N=4;
rt=[7000,10,20]'; rm=[0 0 0]';
vt=[-300 0 0]'; vm=[700 400 200]';
tf=10; dt=0.01; tspan=0:dt:tf;
state=[rt;vt;rm;vm];
stateout=state;
tout=[0];
[tout,stateout]=ode45('equ',tspan,state);
% 自编固定步长ode45
% for t=0:dt:tf
%     k1=dt*equ(t,state);
%     k2=dt*equ(t+0.5*dt,state+0.5*k1);
%     k3=dt*equ(t+0.5*dt,state+0.5*k2);
%     k4=dt*equ(t+dt,state+k3);
%     state=state+(k1+2*k2+2*k3+k4)/6;
%     stateout=[stateout,state];
%     tout=[tout,t];
% end
% stateout=stateout';
figure
plot3(stateout(:,1),stateout(:,2),stateout(:,3),'r','linewidth',2); hold on;
plot3(stateout(:,7),stateout(:,8),stateout(:,9),'b','linewidth',2); hold on;
grid on;
xlabel('x/m'); ylabel('y/m'); zlabel('z/m');

子函数

function out = equ (t,in)
global N
rt=in(1:3); vt=in(4:6);
rm=in(7:9); vm=in(10:12);
r=rt-rm; vr=vt-vm;
omega=cross(r,vr)/norm(r)^2;
vc=-norm(r.*vr)*r/norm(r)^2;
am=N*cross(vc,omega);
% am=cross(N*dot(r,vr)*r/norm(r)^4,cross(r,vr));
dotrt=vt;
dotvt=[0 0 0]';
dotrm=vm;
dotvm=am;
out=[dotrt;dotvt;dotrm;dotvm];
  • 6
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值