1 votos

Perfil de densidad en la atmósfera, ¿qué ecuaciones utilizar?

Me encontré con el siguiente perfil de densidad en la atmósfera:

 T_0 = 288.16; %sea level temperature (kelvin)

 rho_0 = 1.225; %sea level density (kg/m^3)

 a = -0.0065; %lapse rate (K/m)

 R = 287.05; %gas constant (J/kg*K)

den = [];

for h = 1:11000

    T = T_0 + a*h;

    den(h) = rho_0 * (T/T_0)^((-g_0/(a*R)) - 1 );

end

T_isot = 217; %isothermal temp (K)

for h = 11001:13000

   den(h) = den(11000) * (exp(1))^((-g_0/(T_isot*R))* (h-11000));

end

Esto es lo que suelo hacer, derivado de la ley de los gases ideales:

$$p(h)=P(h)/(R*T(h))$$ donde $$P(h) = P_0*exp(-(h/h_0))$$

Mi expresión parece mucho más sencilla... ¿cuáles te gustan y por qué? Estoy tratando de decidir cuál usar en un experimento... Y qué recomendarías para $T(h)$ ? como puedes ver, arriba utilizan un gradiente lineal y un supuesto isotérmico....

1voto

Floris Puntos 54054

He calculado la forma de las dos expresiones y he observado la diferencia. También he trazado la diferencia si se utiliza la interpolación lineal de los datos en la tabla que enlazaste en los comentarios (los puntos de datos se muestran en puntos rojos en el primer gráfico):

enter image description here

Supongo que todo depende de cuánto te importe la diferencia... El 6% parece una diferencia bastante grande (será menor en un rango más pequeño; y he calculado h_0 ajustando los datos, y podría tener un valor que funcione mejor en un rango estrecho de alturas). Está claro que incluso la interpolación lineal con datos espaciados por 2 km da una concordancia mucho mejor con el modelo "complejo"; si se utilizara una interpolación de orden superior (cuadrática, cúbica), el error sería ínfimo.

Por cierto, en su código Matlab, la línea

den(h) = den(11000) * (exp(1))^((-g_0/(T_isot*R))* (h-11000));

puede escribirse, por supuesto, como

den(h) = den(11000) * exp(-g_0/(T_isot*R) * (h-11000));

Y, además, es conveniente inicializar las matrices de Matlab con el tamaño que se desea que tengan, de lo contrario, se ralentizará el código de forma significativa (se cambia el tamaño y se puede mover la matriz a medida que se hace más grande). Así que sólo tiene que añadir

den = zeros(1,13000);

Hay otras formas de hacer ese cálculo de densidad mucho más compacto...

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X