在MATLAB上面给已知高度模拟出来气压高度误差的方法与代码

131 阅读2分钟

在已知高度真实值时,如果需要计算此高度下的气压计误差,可考虑本文所述的两种方法

气压高度

气压与高度之间的关系可以用大气压的垂直变化来描述。随着高度的增加,气压通常会下降。这是因为空气的密度在高度增加时减少,导致上方空气柱对下方空气施加的压力减小。

主要关系

气压下降:在海平面,气压约为1013.25 hPa(百帕),随着高度的增加,气压会逐渐降低。 指数关系:气压与高度的关系通常可以用以下公式近似表示:

P=P0×eghRT P=P_0\times e^{-\frac{g\cdot h}{R\cdot T}}

其中:

  • PP是高度hh处的气压

  • P0P_{0}是海平面的气压

  • gg是重力加速度

  • RR是气体常数

  • T T是温度 (绝对温度)

大气层分布:在对流层,气压每上升约 8 km,气压会减少到海平面气压的约一半。

影响因素:

温度:温度的变化会影响气压,温暖的空气比冷空气更轻,可能导致气压变化。 湿度:湿度增加时,气压会下降,因为水蒸气的分子比空气中的氧气和氮气分子轻。

气压高度加误差

直接添加误差

假设获取的气压为1000,直接添加误差则为:

altitude = 1000; % 高度 (m),真实值
altitude_noise = altitude+randn;
fprintf('高度真实值为%f,含噪声的高度值为%f\n', altitude, altitude_noise);

运行结果如下:

image.png

换算到气压误差

更精准的气压高度模拟方法,是把高度转换为理想的气压,再在气压上加误差,最后转换为高度如下:

altitude = 1000; % 高度 (m) 真实值
pressure = altitudeToPressure(altitude); %气压真实值
pressure_noise = pressure+randn; %气压含噪声的值
altitude_noise = pressureToAltitude(pressure_noise); %含噪声的高度值
fprintf('高度真实值为%f,含噪声的高度值为%f\n', altitude, altitude_noise);

function pressure = altitudeToPressure(altitude)
    % 常量定义
    P0 = 101325; % 海平面气压 (Pa)
    R = 287.05;  % 气体常数 (J/(kg·K))
    T0 = 288.15; % 海平面温度 (K)
    L = 0.0065;  % 温度梯度 (K/m)
    g = 9.80665; % 重力加速度 (m/s^2)

    % 计算气压
    pressure = P0 * (1 - (L * altitude) / T0)^(g / (R * L));
end

function altitude = pressureToAltitude(pressure)
    % 常量定义
    P0 = 101325; % 海平面气压 (Pa)
    R = 287.05;  % 气体常数 (J/(kg·K))
    T0 = 288.15; % 海平面温度 (K)
    L = 0.0065;  % 温度梯度 (K/m)
    g = 9.80665; % 重力加速度 (m/s^2)

    % 计算高度
    altitude = (T0 / L) * (1 - (pressure / P0)^(R * L / g));
end

运行结果如下:

image.png