1) 首先依 BMP180 data sheet 第15頁公式, 逐步計算
溫度及氣壓值, 確保每個步驟的數值均與範例完全相同無誤.
(如下圖).
2) 依壓高公式 (hypsometric equation)
(0.0065 * h / (T + 273.15) + 1) ^ 5.257 = P0 / P
分別實施三個副程式:
a) float BMP180_PressureToAltitude (float fSeaLevelPressure, float fAtmophericPressure, float fTemperature);
由海平面氣壓, 測得的大氣壓力及溫度,得出海拔高度.
b) float BMP180_AltitudeToAtmospheric(float fSeaLevelPressure, float fAltitude, float fTemperature);
由海平面氣壓, 海拔高度及溫度,得出大氣壓力.
c) float BMP180_AltitudeToSeaLevel(float fAtmosphericPressure, float fAltitude, float fTemperature);
由海拔高度, 測得的大氣壓力及溫度,得出海平面氣壓.
實例驗算如下:
Sea-level pressure P0= 1013.25 hPa
Atmospheric pressure P = 1009.32 hPa
Temperature T = 30.4 DegC
Altitude h = 34.53 m
(如下圖).
3) 實測大氣壓力及溫度,得出海平面氣壓. 結果如附圖.
經詢問中央氣象局, 其答覆如下:
///////////////
測站氣壓與海平面氣壓進行轉換時,皆是使用壓高公式(Hypsometric
equation)進行換算,原始公式及使用常數值如下所示,與您附件所提之公式一樣,只是形式上會略做調整,以方便作業上使用。
P=Psea/exp(gh/RT)
P:海拔高度為h處的氣壓(測站氣壓)
Psea:海平面(高度為0)氣壓
R:氣體常數=287.05278 J/K*Kg
T:空氣層(Psea~P)的平均溫度
g:重力加速度=9.80665 m/s*s
氣象站所使用的壓高公式之形式如下所示:
Psea=P*10^m
Psea:海平面氣壓(hPa)
P:測站氣壓(hPa)
m:公式中除氣壓值以外的參數及常數值之整理值
m=h/(18400(1+aT)),h為測站高度(公尺),T為測站氣溫(度C),a為1/273
其中T應該為測站高度至海平面間的平均氣溫,依照溫度遞減率每上升1000公尺氣溫下降約5~6度,但是於計算時影響不大,因此計算上直接使用測站氣溫。
謝謝您的來信。敬祝 安康
中央氣象局 敬復
///////////////
沒有留言:
張貼留言