RegistrierenRegistrieren   LoginLogin   FAQFAQ    SuchenSuchen   
Luftdruck interpolieren
 
Neue Frage »
Antworten »
    Foren-Übersicht -> Wärmelehre
Autor Nachricht
tueftli



Anmeldungsdatum: 17.04.2016
Beiträge: 14

Beitrag tueftli Verfasst am: 13. Mai 2016 20:51    Titel: Luftdruck interpolieren Antworten mit Zitat

Hallo zusammen!

In Messungen von Wetterballon-Flügen werden ja regelmäßig Atmosphärische Profile bis zu 30 km Höhe erstellt.

Wenn man sich ein solches Druckprofil ansieht, dann wird z.B. der Wert des Luftdrucks nur in bestimmten Abschnitten protokolliert.

Wenn man Zwischenwerte braucht, muss man also interpolieren.
Wenn ich mir das Ergebnis allerdings mit meiner linearen Interpolation ansehe, dann ist der Verlauf des Luftdruck ziemlich "knickig".

Ich weiß zwar, dass der Verlauf des Luftdrucks exponentiell mit der Höhe abnimmt, aber ich finde kein entsprechendes Interpolationsverfahren dafür.

Wenn ich z.B. den Druck in zwei verschiedenen geometrischen Höhen durch Messungen kenne, z. B.

1. Höhe: 15337 m (ü. NN.) Druck: 11028 Pa
2. Höhe: 20193 m (ü. NN.) Druck: 5107 Pa

und den Druck in 18102 m Höhe wissen möchte, dann muss ich zwischen diesen beiden Punkten so interpolieren, dass auch dieser Druckwert dem exponentiellen Verlauf folgt...

Sachen wie die barometrische Höhenformel, die eine isotherme Atmosphäre annimmt, kann ich aufgrund der schlechten Näherung nicht verwenden. Schließlich und endlich muss ich den Druck später noch bis in Höhen von 120 km aus Messwerten interpolieren...

Grüße!
tueftli
ML



Anmeldungsdatum: 17.04.2013
Beiträge: 3405

Beitrag ML Verfasst am: 13. Mai 2016 21:47    Titel: Re: Luftdruck interpolieren Antworten mit Zitat

Hallo,

tueftli hat Folgendes geschrieben:

Ich weiß zwar, dass der Verlauf des Luftdrucks exponentiell mit der Höhe abnimmt, aber ich finde kein entsprechendes Interpolationsverfahren dafür.

Sowas würde ich mit Matlab (kommerziell) oder Gnu Octave (frei) unter Verwendung des Befehls lsqcurvefit machen.

http://fr.mathworks.com/help/optim/ug/lsqcurvefit.html?requestedDomain=www.mathworks.com

Als Eingangsgrößen will der Befehl lsqcurvefit folgendes haben:
- Deine Messdaten in x/y-Form
- den prinzipiellen Funktionsverlauf (mit Parametern!)

Als Ausgangsgröße erhältst Du die Parameter der Funktion, die am besten zu Deinen Messdaten passt (lsq = least square, kleinste Fehlerquadrate) und evtl. noch irgendwas zur Fehlerabschätzung.

Wenn nötig, kann ich Dir bei der Syntax helfen. Den Rest müsstest Du aber beisteuern.


Viele Grüße
Michael
tueftli



Anmeldungsdatum: 17.04.2016
Beiträge: 14

Beitrag tueftli Verfasst am: 13. Mai 2016 23:16    Titel: Antworten mit Zitat

Danke für Deine Hilfe, aber ich brauch einen Formelansatz, weil ich das ganze in Java selbst programmieren muss...

Es sei denn, du kannst mir verraten, wie Mathlab das als Algorithmus umsetzt...

Methode der kleinsten Quadrate... Geht das überhaupt mit 2 Messpunkten?
ML



Anmeldungsdatum: 17.04.2013
Beiträge: 3405

Beitrag ML Verfasst am: 13. Mai 2016 23:34    Titel: Antworten mit Zitat

Hallo,

Zitat:

Methode der kleinsten Quadrate... Geht das überhaupt mit 2 Messpunkten?

Wie, Du hast nur zwei Messpunkte? Das ist aber nicht allzu viel. Ich glaube nicht, dass das sehr genau wird. Bei zwei Messpunkten nutzen Dir natürlich die Fehlerquadrate überhaupt nichts. Das ist ja wirklich das absolute Minimum an Messdaten, das Du zur Berechnung der Parameter benötigst.

Ich vermute, dass Deine Funktion so lautet:

wobei die Höhe und der Luftdruck bei der Höhe bedeutet.

Mit den zwei Messpunkten und ergibt sich folgendes Gleichungssystem:




Die Gleichungen setzt Du ineinander ein und rechnest dann die beiden Unbekannten ( und ) aus. Das Ineinander-Einsetzen überlasse ich Dir.


Erst bei mehr Messpunkten brauchst Du die Fehlerquadrate. Da würdest Du dann systematisch alle möglichen Funktionsverläufe aus Kombinationen erzeugen und jeweils schauen, wie groß die Abweichung zu den Messpunkten ist. Gesucht ist die Kombintion , die den kleinsten Fehler erzzeugt. Bei nur zwei Parametern, deren ungefähre Werte Du wahrscheinlich eh kennst, lässt sich das noch ohne größere Klimmzüge selbst programmieren.


Viele Grüße
Michael
tueftli



Anmeldungsdatum: 17.04.2016
Beiträge: 14

Beitrag tueftli Verfasst am: 14. Mai 2016 13:20    Titel: Antworten mit Zitat

Ja, es sind immer nur 2 Messpunkte, zwischen denen ich Zwischenwerte interpolieren muss.

Eine Formel an sich ist dabei nicht vorhanden. Die barometrische Höhenformel nutzt mir hier nichts, da ich sie mit den beiden Messpunkten nicht verknüpfen kann.

Im Grunde ist es doch so: Ich kann meine beiden Messpunkte in eine logarithmische Skala eintragen und diese Punkte dann durch eine Gerade verbinden. Dann muss sich der interpolierte Punkt doch auf dieser Geraden befinden.

Also muss es ein logarithmisches bzw. exponentielles Interpolationsverfahren geben.
Auf Wikipedia steht zwar etwas von logarithmischer Interpolation, aber ich scheitere gerade an der Umsetzung...
ML



Anmeldungsdatum: 17.04.2013
Beiträge: 3405

Beitrag ML Verfasst am: 14. Mai 2016 14:01    Titel: Antworten mit Zitat

Hallo,

tueftli hat Folgendes geschrieben:

Eine Formel an sich ist dabei nicht vorhanden.

Doch. Du hast von einem exponentiellen Abfall gesprochen. Damit ist dann eine e-Funktion gemeint.

Zitat:

Die barometrische Höhenformel nutzt mir hier nichts, da ich sie mit den beiden Messpunkten nicht verknüpfen kann.

Das habe ich verstanden.

Zitat:

Im Grunde ist es doch so: Ich kann meine beiden Messpunkte in eine logarithmische Skala eintragen und diese Punkte dann durch eine Gerade verbinden. Dann muss sich der interpolierte Punkt doch auf dieser Geraden befinden.

Genau. Und in Java rechnest Du dann stattdessen. Im Grunde habe ich schon alles gesagt:

ML hat Folgendes geschrieben:

Mit den zwei Messpunkten und ergibt sich folgendes Gleichungssystem:




Die Gleichungen setzt Du ineinander ein und rechnest dann die beiden Unbekannten ( und ) aus. Das Ineinander-Einsetzen überlasse ich Dir.


So, jetzt nimmst Du mal ein Stück Papier und einen Bleistift zur Hand und rechnest nach, ob ich alles richtig mache:

(Gl. I)

einsetzen in
(Gl. II)
ergibt









Damit hättest Du den ersten Parameter Deiner Gleichung. Den zweiten erhältst Du, indem Du beispielsweise in (Gl. I) einsetzt. Es ergibt sich dann:



Nun hast Du und und kannst gemäß der Gleichung:



für eine beliebige Höhe h den Luftdruck berechnen. Voraussetzung ist, dass sich der Luftdruck wirklich exponentiell verhält und dass Deine Messergebnisse passen.


Viele Grüße
Michael


Zuletzt bearbeitet von ML am 14. Mai 2016 18:41, insgesamt einmal bearbeitet
tueftli



Anmeldungsdatum: 17.04.2016
Beiträge: 14

Beitrag tueftli Verfasst am: 14. Mai 2016 20:36    Titel: Antworten mit Zitat

Ah jetzt hab ich verstanden...

Ich dachte zuerst, dass sich einer der beiden Messpunkte bei deiner Rechnung herauskürzt, was ja an sich nicht einer Interpolation entsprechen würde...

Inzwischen ist es mir gelungen die Formel, die Wikipedia anbietet, erfolgreich einzusetzen, ich musste nur die Reihenfolge einiger Parameter ändern.

Letztendlich ist dies nur eine umgestellte Form Deiner Variante...

Danke nochmal! :-)
Neue Frage »
Antworten »
    Foren-Übersicht -> Wärmelehre