垂直发射筒燃气弹射导弹内弹道计算里程及MATLAB源程序
时间: 2023-09-30 21:07:25 浏览: 110
垂直发射筒燃气弹射导弹内弹道计算涉及到多个因素,导弹尺寸、质量、引信、料等,因此需要具体的参数才能进行计算。以下是一个简单的MATLAB程序,仅供参考:
```matlab
clc;
clear all;
close all;
%% 定义参数
g = 9.8; % 重力加速度
m = 1000; % 导弹质量,单位:kg
Cd = 0.5; % 阻力系数
S = 10; % 参考面积,单位:平方米
h0 = 0; % 初始高度,单位:米
v0 = 0; % 初始速度,单位:米/秒
theta = 45; % 初始发射角度,单位:度
dt = 0.01; % 时间步长,单位:秒
t = 0:dt:100; % 时间向量
N = length(t); % 时间长度
%% 计算
h = zeros(1,N); % 高度向量
v = zeros(1,N); % 速度向量
a = zeros(1,N); % 加速度向量
h(1) = h0; % 初始高度
v(1) = v0; % 初始速度
a(1) = -g; % 初始加速度
theta = theta*pi/180; % 转换为弧度
for i=2:N
% 计算阻力
Fd = 0.5*Cd*S*v(i-1)^2;
% 计算重力
Fg = -m*g;
% 计算推力
Ft = m*(g+a(i-1));
% 计算合力
F = Fg + Ft + Fd;
% 计算加速度
a(i) = F/m;
% 计算速度
v(i) = v(i-1) + a(i-1)*dt;
% 计算高度
h(i) = h(i-1) + v(i-1)*dt + 0.5*a(i-1)*dt^2;
% 判断导弹是否落地
if h(i) < 0
h(i) = 0;
v(i) = 0;
a(i) = 0;
break;
end
end
%% 绘图
figure(1);
subplot(311);
plot(t,h);
xlabel('时间(秒)');
ylabel('高度(米)');
title('高度');
subplot(312);
plot(t,v);
xlabel('时间(秒)');
ylabel('速度(米/秒)');
title('速度');
subplot(313);
plot(t,a);
xlabel('时间(秒)');
ylabel('加速度(米/秒^2)');
title('加速度');
```
该程序使用了欧拉方法进行数值计算,通过绘图可以得出导弹在发射角度为45度时的高度、速度和加速度随时间的变化情况。需要注意的是,此程序仅适用于简单的导弹模型,实际情况需要考虑更多因素。
阅读全文