m0=2300;%起飞质量 P=130000;%平均推力Tk1=20; Tk1=20;%发动机工作时间detm=80; detm=80;%秒耗量 g=9.80665;%引力常数 fai=pi/2 0<=t<=t1;%程序角 fai=alpha+theta t1<t<=t2;%程序角 fai=fai(t2) t2<t<=tk;%程序角 alpha(t)=-4*alpha2 垂直发射条件下,按照飞行程序,完成基于飞行程序的弹道设计;添加注释,MATLAB
时间: 2023-08-04 15:03:19 浏览: 72
代码如下:
```matlab
%定义初始参数
m0 = 2300; %起飞质量
P = 130000; %平均推力
Tk1 = 20;
detm = 80; %秒耗量
g = 9.80665; %引力常数
fai = pi/2; %程序角
%定义时间段
t1 = 10; %第一阶段时间
t2 = 20; %第二阶段时间
tk = 30; %总时间
%第一阶段程序角
alpha2 = 0.5; %角度常数
alpha = zeros(1, t1+1); %初始化alpha数组
for i = 1:t1+1
alpha(i) = -4 * alpha2;
end
%第二阶段程序角
theta = pi/6; %角度常数
fai_t2 = pi/4; %第二阶段程序角
alpha_t2 = zeros(1, t2-t1); %初始化alpha_t2数组
for i = 1:t2-t1
alpha_t2(i) = fai_t2 - theta;
end
%第三阶段程序角
alpha_tk = fai_t2; %第三阶段程序角
%计算弹道
v = zeros(1, tk+1); %初始化速度数组
h = zeros(1, tk+1); %初始化高度数组
m = zeros(1, tk+1); %初始化质量数组
m(1) = m0; %初始质量
for i = 1:tk
if i <= t1+1 %第一阶段
f = P - Tk1 * detm * (i-1);
alpha_i = alpha(i);
elseif i <= t2 %第二阶段
f = P - Tk1 * detm * t1;
alpha_i = alpha_t2(i-t1);
else %第三阶段
f = 0;
alpha_i = alpha_tk;
end
m(i+1) = m(i) - detm;
v(i+1) = v(i) + (f/m(i) - g * sin(alpha_i)) * 1;
h(i+1) = h(i) + v(i+1) * 1;
end
%绘制弹道图像
t = 0:tk;
plot(t, h);
xlabel('Time(s)');
ylabel('Altitude(m)');
title('Trajectory Design Based on Flight Program');
```
本程序是基于垂直发射条件下的飞行程序,根据时间段的不同,计算出不同的推力和程序角,从而得出弹道的高度变化。最后使用MATLAB绘制出弹道图像。