采用数值解决动力学问题(ISA模型)

3视图(30天)
JXT119
JXT119 2021年9月26日
评论道: JXT1192021年9月26日
我如何表达一个变量在diferentialfuntion2密度?我建模complex_atm_model athmospheric密度的高度(位置在dimensioinal运动模型)但我试图解决采用数值时遇到了麻烦。什么好主意吗?
z0 = const.h0;
v0 = const.v0;
t0 = 0;
tf = 800;
N = 60000;
t = linspace (t0, tf, N);
X = [z0; v0);
(t, X) =数值(“diferentialfunction2”t X);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -主要代码
函数dXdt = diferentialfunction2 (t, X)
c = 2;
s = 0.3;
g = 9.81;
m = 100;
G = 6.67 e-11;
R = 6371年e3;
M = 5.9722 e24;
h = 39045: 1:0;
h (39046) = 0;
(ρ,T) = complex_atm_model (h (X);
dXdt (1,1) = X (2);
dXdt(2, 1) =((ρ* c * * ((X(2)) ^ 2)) /(2 *米))——(G * (m / (R + X (1)) ^ 2));
结束
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
函数(密度、T) = complex_atm_model (h, X)
%使用参数:
T_SL = 288.16;%海平面温度[K]
rho_SL = 1.225;%海平面密度(公斤/立方米)
Rg = 287.0;%气体常数的空气(J /公斤)。
dT_dh = -0.0065;%的对流层温度梯度(K / m)
g0 = 9.81;%重力加速度在海平面(m / s2)
%所有海拔温度模型:
T = (T_SL * h。/ h) + (dT_dh * h);%温度向量模型常数
第1 =找到(h) > 11000;%为海拔找到索引> 11000米
T(第1)= (11000);%设置常数T = T h > 11000 (11000)
%密度模型对所有海拔:
inds_low =找到(h < 11000);11000年海拔< % inds_low定义为索引
ρ= rho_SL * h / h;% Prelocate密度向量和统一的密度
ρ(inds_low) = (rho_SL * (T (inds_low) / T_SL) ^ 4.26);%密度矢量模型常数
exp_athmos = (Rg * T (11000)) / g0;%测量密度衰减与高度
i = 11000:39045
ρ(i) =ρ(11000)* exp (- (h (i) -11000) / exp_athmos);%设置密度值h > 11000
结束
密度=ρ(X (1));
结束
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年9月26日
你遇到什么问题?
z0 = const.h0;
v0 = const.v0;
我们需要知道那些为了测试。

登录置评。

接受的答案

艾伦·史蒂文斯
艾伦·史蒂文斯 2021年9月26日
像这样
z0 = 39045;% const.h0;
v0 = 0;% const.v0;
t0 = 0;
tf = 800;
N = 60000;
tspan = linspace (t0, tf, N);
X = [z0; v0);
(t, X) =数值(@diferentialfunction2 tspan X);
情节(t) X(: 1)),网格
包含(“时间”),ylabel (“高度”)
函数dXdt = diferentialfunction2 (X ~)
c = 2;
s = 0.3;
% g = 9.81;
m = 100;
G = 6.67 e-11;
R = 6371年e3;
M = 5.9722 e24;
h = 0:39045;
ρ= complex_atm_model (h (X);
dXdt (1,1) = X (2);
dXdt(2, 1) =((ρ* c * * ((X(2)) ^ 2)) /(2 *米))——(G * (m / (R + X (1)) ^ 2));
结束
函数密度= complex_atm_model (h, X)
%使用参数:
T_SL = 288.16;%海平面温度[K]
rho_SL = 1.225;%海平面密度(公斤/立方米)
Rg = 287.0;%气体常数的空气(J /公斤)。
dT_dh = -0.0065;%的对流层温度梯度(K / m)
g0 = 9.81;%重力加速度在海平面(m / s2)
%所有海拔温度模型:
T = T_SL + dT_dh * h;%温度向量模型常数
第1 = 11000:马克斯(h);%为海拔找到索引> 11000米
T(第1)= (11000);%设置常数T = T h > 11000 (11000)
%密度模型对所有海拔:
inds_low = 1:11000;11000年海拔< % inds_low定义为索引
%ρ= rho_SL;% Prelocate密度向量和统一的密度
ρ(inds_low) = (rho_SL * (T (inds_low) / T_SL) ^ 4.26);%密度矢量模型常数
exp_athmos = (Rg * T (11000)) / g0;%测量密度衰减与高度
我= 11000:马克斯(h) + 1
ρ(i) =ρ(11000)* exp (- (h (i) -11000) / exp_athmos);%设置密度值h > 11000
结束
密度= interp1 (h,ρ,X (1));
结束
1评论
JXT119
JXT119 2021年9月26日
非常感谢! !做得很成功。我认为我的主要问题是complex_atm_model索引,谢谢你的澄清!

登录置评。

更多的答案(0)

类别

找到更多的在石油、天然气和石化帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!