Meteorologische Berechnungen (Taupunkt, rel. Luftdruck)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Formeln zur Berechnung von Taupunkt und relativem Luftdruck aus den Messwerten von Sensoren (z.B. BME280)
    Wenn man mit sog. "Umweltsensoren" arbeitet, die Temperatur, Luftfeuchte und/oder Luftdruck liefern, dann sind deren Ausgabewerte manchmal nicht ausreichend. Die Luftfeuchte wird in der Regel als relative Luftfeuchte ausgegeben, der Luftdruck dagegen als absoluter.

    Nun braucht man aber vielleicht gerade die absolute Luftfeuchte z.B. für eine Lüftersteuerung, bei der die tatsächliche Menge an Feuchtigkeit innen und außen verglichen werden muss, damit man nicht Feuchte von außen in den Innenraum hineinbläst.

    Oder man braucht den relativen Luftdruck, der die Höhe (und die Temperatur) berücksichtigt, um mit anderen Wetterstationen vergleichen zu können. Dabei wird bei den digitalen Sensoren die Temperatur schon mit eingerechnet, aber die Höhe aus verständlichen Gründen nicht.

    Die aufgeführten Formeln berechnen nun die meteorologischen Zusatzwerte mit BASCOM.

    RoBue



    BASCOM-Quellcode

    1. '**********************************************************
    2. 'Compiler : BasCom
    3. 'Hardware : AVR-Ctrl / RoBue AVR-PC-Control
    4. ' : LCD, DS1307, ...
    5. 'Chip type : ATmega644P
    6. 'Clock frequency : 8,000000 MHz
    7. '**********************************************************
    8. ' Routinen zur Berechnung von Werten aus Temperatur und Luftfeuchte
    9. $regfile = "m644pdef.dat"
    10. $crystal = 8000000
    11. ' framesize
    12. ' - fuer Prozeduren
    13. ' - Umwandlung von Variablen in andere Datentypen
    14. $framesize = 128
    15. ' hwstack:
    16. ' - 32 Bytes fuer Interrupts
    17. ' - 2 pro Gosub
    18. $hwstack = 64
    19. ' swstack:
    20. ' - fuer Prozeduren
    21. $swstack = 32
    22. $baud = 9600
    23. ' Gemeinsame Variable fuer Ausgabe
    24. Dim Ausgabehilfswert As Single
    25. Dim A_feuchte As Single
    26. Dim A_temperatur As Single
    27. Dim Tp As Single
    28. Dim Sdd As Single
    29. Dim Dd As Single
    30. Dim Fa As Single
    31. Dim P_abs As Single
    32. Dim A_druck As Single
    33. ' Hoehe:
    34. Dim Altitude As Word
    35. Do
    36. ' Eingabewerte (Beispiel):
    37. A_temperatur = 28.5
    38. A_feuchte = 63.7
    39. Gosub Meteowerte
    40. If Tp = 9999 Then
    41. Print "Error"
    42. Else
    43. Print "Temperatur: " ; A_temperatur ; " °C"
    44. Print "Luftfeuchte: " ; A_feuchte ; " %H"
    45. Print "Saettigungsdd: " ; Sdd ; " hPa"
    46. Print "Dampfdruck: " ; Dd ; " hPa"
    47. Print "Feuchtegehalt: " ; Fa ; " g/m³"
    48. Print "Taupunkt: " ; Tp ; " °C"
    49. End If
    50. Print
    51. ' Eingabewerte (Beispiel)
    52. Altitude = 565
    53. P_abs = 953.45
    54. Gosub Luftdruck_rel
    55. Print "Luftdruck (abs.): " ; P_abs ; " hPa"
    56. Print "Luftdruck (rel.): " ; A_druck ; " hPa"
    57. Print "Hoehe: " ; Altitude ; " m"
    58. Print
    59. Wait 15
    60. Loop
    61. End
    62. Meteowerte:
    63. ' Infos: -> http://www.wetterochs.de/wetter/feuchte.html
    64. ' Berechnung nur fuer Werte ueber 0°C
    65. If A_temperatur >= 0 Then
    66. ' - Saettigungsdampfdruck (o.k.):
    67. ' Sdd = 6.1078 * 10^ ((7.45 * Temperatur) / (237.3 + Temperatur))
    68. Ausgabehilfswert = A_temperatur
    69. Ausgabehilfswert = 237.3 + Ausgabehilfswert
    70. Ausgabehilfswert = 7.5 / Ausgabehilfswert
    71. Ausgabehilfswert = Ausgabehilfswert * A_temperatur
    72. Ausgabehilfswert = 10 ^ Ausgabehilfswert
    73. Sdd = Ausgabehilfswert * 6.1078
    74. ' Dampfdruck
    75. ' Dd = Feuchte / 100 * Sdd
    76. Ausgabehilfswert = A_feuchte * Sdd
    77. ' Ausgabehilfswert = Ausgabehilfswert / 100
    78. ' (Wert auch noch durch 10 teilen s.o => 1000
    79. Dd = Ausgabehilfswert / 100
    80. ' Feuchtegehalt / absolute Luftfeuchte(o.k.):
    81. ' Fa = 216.7 * Dd / (237.3 + Temperatur)
    82. Ausgabehilfswert = 273.15 + A_temperatur
    83. Fa = 216.7 * Dd
    84. Fa = Fa / Ausgabehilfswert
    85. ' Taupunkt (o.k.):
    86. Ausgabehilfswert = Dd / 6.1078
    87. Ausgabehilfswert = Log10(ausgabehilfswert)
    88. Tp = 7.5 - Ausgabehilfswert
    89. Tp = 237.3 / Tp
    90. Tp = Tp * Ausgabehilfswert
    91. Else
    92. ' Errorausgabe
    93. Tp = 9999
    94. End If
    95. Return
    96. ' Relativer Druck mit barometrischer Hoehenformel berechnen
    97. ' (wenn die Temperaturkompensation schon erfolgt ist: BMP085, BMP180, BME280)
    98. ' Absoluter Luftdruck in hPa muss in der Single-Variablen P_abs stehen
    99. ' Relativer Luftdruck in hPa wird in der Single-Variablen A_druck ausgegeben
    100. ' Formel -> http://www.kompf.de/weather/pibaro.html
    101. Luftdruck_rel:
    102. Ausgabehilfswert = Altitude / 44330
    103. Ausgabehilfswert = 1 - Ausgabehilfswert
    104. Ausgabehilfswert = Ausgabehilfswert ^ 5.255
    105. A_druck = P_abs / Ausgabehilfswert
    106. Return
    Alles anzeigen

    450 mal gelesen