Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
hallo, ich habe zwei messgeräte, die zeitgleich messen sollen und die mir ihre messdaten mit einem zeitstempel versehen jeweils in unterschiedlichen dateien ablegen:
datei 1:
Zeit Messwert x Messwert y
17:10:23 xxx xxx
17:10:24 xxx xxx
...
...
17:20:22 xxx xxx
datei 2:
Zeit Temperatur
17:10:22 xxx
17:10:23 xxx
17:10:24 xxx
...
...
17:20:22 xxx
17:20:23 xxx
17:20:24 xxx
17:20:25 xxx
Ich möchte am schluß eine grafik erzeugen, die messwert x und messwert y in abhängigkeit von der Temperatur darstellt.
Die alsolute zeit spielt also keine rolle mehr, sondern dient nur der zuordnung der messwerte.
da ich erst seit kurzem mit labview arbeite, dachte ich mir, dass ihr mirvieleicht einen tipp geben könnt,
wie sich das am einfachsten bewerkstelligen lässt? messwerte einfach in in einer matrix ablegen?
problem ist auch, dass die start und endzeiten jeweils unterscheidlich sind. Hier wäre wohl ein vergleich beider dateien (also start-/endzeiten) und das löschen der unnötigen temperaturdaten die einfachste lösung, oder?
RE: Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
(18.04.2011 11:59 )Flosen schrieb: problem ist auch, dass die start und endzeiten jeweils unterscheidlich sind. Hier wäre wohl ein vergleich beider dateien (also start-/endzeiten) und das löschen der unnötigen temperaturdaten die einfachste lösung, oder?
Nicht nur die einfachste, sondern die einzig mögliche Lösung. Wenn es zur Temperatur x keinen Messwert y gibt, dann hat man doch keinen verwertbaren Punkt, und am Rand läßt sich auch nichts interpolieren.
Sind denn ansonsten die Zeiten in beiden Diagrammen dieselben? Sind die Distanzen dt in beiden Diagrammen gleich, und auch innerhalb der Messreihe immer gleich groß (äquidistant)?
Hilfreich ware, ein Beispiel ganz konkreter Daten zu posten - gegenbüber dem Original evtl. abgespeckt auf Wertanzahl im unteren zweistelligen Bereich.
RE: Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
@Flosen: LVF-Regeln lesen und und in Zukunft beachten! Dazu gehört auch eine sinnvolle Verwendung der Shift-Taste beim Verfassen von Beiträgen, und nicht (fast) alles klein zu schreiben.
Danke, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
RE: Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
@Jens: Sorry, werd drauf achten.
@Lucki: Das Temperaturmessgerät gibt die Werte genau im Sekundentakt aus (also dt=1s).
Das andere Messgerät nimmt die Pointingstability eines Lasers auf. D.h.: Die Verschiebung eines vorher bestimmten Fokuspunktes in x- bzw. y-Richtung auf Grund der Temperaturänderung des Lasers wird gemessen. (Laser strahlt in Z-Richtung)
Dazu wird ein spezielles Program verwendet um das ich nicht herum komme. Dieses liefert mir pro Messung (und hier ist auch leider keine andere Einstellung möglich) 600 Messwerte. Bei einer Messdauer von 10 min wären dies ebenfalls dt=1s. Allerdings nimmt das Program aus unerfindlichen Gründen anfangs 3 unbenutzbare Messwerte auf und lässt in einem Intervall von ca. 2 bis 3 Minuten einen Messwert aus. D.h. ich habe kein exaktes dt=1s.
Da der Laser recht langsam erhitz werden soll, ist es aber nicht schlimm, wenn ein einzelner Wert zwischen drin fehlt.
Ich habe mir gedacht, dass ich ein kleines VI erstelle, dass diese Stellen in der Datei findet und den Mittelwert aus dem vorherigen und dem nachfolgenden Messwert bildet und diesen dort einfügt.
Somit könnte ich ein minimal manipuliertes Ergebnis mit einem dt=1s bekommen.
Im Anhang ist eine Messdatei als Beispiel.
Das Wegschneiden der unnötigen Temperaturdaten habe ich schon hinbekommen.
gruß flo
18.04.2011, 15:38 (Dieser Beitrag wurde zuletzt bearbeitet: 18.04.2011 19:16 von Lucki.)
RE: Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
Alles kein Problem. Es gibt eine Funktion, damit kann man einen Signalverlauf neu abtasten. Also z.B die ungleichmäßig abgetasteten Laserwerte auf genau dt=1s (bzw. auf die Abtastwerte der Temperatur) ausrichten, was durch Interpolation geschieht.
Edit: habe erst mal die Daten als Zeitdarstellung geplottet. Wenn Du noch die Temperaturwerte schickst, könnte man auch das andere noch machen.
Ideal wäre ein Temperaturtabelle, die zeitlich vor der Datentabelle beginnt und danach erst aufhört. Wie viele Messpunkt sie ansonsten enthält, ist egal.
Wie geheim ist denn diese Arbeit? Habe nämlich ein paar Jahre zuvor mal so eine ähnliche Untersuchung gemacht, deshalb würden mich die Details interessieren.
19.04.2011, 10:04 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2011 10:08 von Flosen.)
RE: Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
Hi Lucki, erstmal vielen Dank. Das hat mir für die Darstellung der Messdaten schonmal sehr gut weitergeholfen.
Ich habe eine kleine Testmessung durchgeführt. Die entsprechenden Daten sind in dem hochgeladenen VI eingetragen.
Das Temperaturmessgerät ist mit 4 Sensoren ausgestattet die an verschiedenen Punkten am Laser angebracht werden. Die Lasertemperatur soll einfach der Durchschnitt der 4 Messwerte sein.
Leider ist meine "Hotbox" mit Heizlüfter, die den Laser später erhizen soll, noch nicht fertig. D.h. bei miener Testmessung musste ich etwas Kreativ werden und tricksen. Ich habe die Temperatursensoren einfach erwärmt, indem ich sie immer näher an eine Heizung herangebracht habe.
Parallel dazu habe ich manuell den Fokuspunkt mit einer Mikrometerschraube aus dem Zentrum "herausgerückt".
Natürlich sind das jetzt zunächst alles andere als vernünftige Werte, aber vom Prinzip her werden die Werte so ähnlich aussehen und ich denke mann kann damit auf jeden Fall die gewünschte Darstellung programieren.
Zitat:Ideal wäre ein Temperaturtabelle, die zeitlich vor der Datentabelle beginnt und danach erst aufhört. Wie viele Messpunkt sie ansonsten enthält, ist egal.
Temperatur-Messwerte habe ich wie gefordert aufgenommen.
Sie sind im VI eingetragen. Mit einem X-Achsen-Offset der Temperaturmesswerte habe ich erreicht, dass diese schon einmal Zeitlich synchron unterhalb der Pointing-Daten dargestellt werden.
Zitat:Wie geheim ist denn diese Arbeit? Habe nämlich ein paar Jahre zuvor mal so eine ähnliche Untersuchung gemacht, deshalb würden mich die Details interessieren.
Da muss ich nochmal mit meinem Chef sprechen, aber aller Vorraussicht nach, darf ich von den wirklichen Messungen später keine Ergebnisse rausgeben. Sorry.
Es sollen aus den gewonnenen Daten aber später aller Datenblätter entstehen. Es wird noch entschieden, ob diese ins Internet gestellt werden oder nur für den entsprechenen Kunden sind, der den Laser kauft. Das wird sich aber erst in 2 bis 3 Monaten klären. Ich würde dann zum gegebenen Zeitpunkt hier nochmal posten.
Werde mal schauen, ob ich weiterkomme und eine x-,y-Verlauf in Abhängigkeit von der Temperatur hinbekomme.
Bin aber natürlich für jede Hilfe dankbar. ;-)
gruß flo
RE: Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
Ich habe die x- und y-Werte nun in Abhängigkeit der Temperatur dargestellt. Dementsprechend gibt es für einen Temperatur Wert aber nun viele x- und y-Werte. Diese kommen zunächst einmal davon, das es sich um die oben beschriebene Testmessung handelt und somit keine "realen" Bedingungen vorgeherscht haben. Aber auch später wird es durch Hystereseeffekte, Messungenauigkeiten oder einfach durch sehr langsames erhizen zu mehreren Messwerten pro Temperaturschritt kommen. Ich muss also irgend eine Art "Gewichtung" drüber legen, so dass ich nachher eine Funktion der x-Abweichung in Abhängigkeit der Temperatur bekomme und quantitativ verschiedene Laser vergleichen kann.
Da kenne ich mich leider gar nicht aus. Ich kann leider auch nicht sagen, ob sich das ganze linear, exponenziell, logarithmisch oder wie auch immer verhalten wird.
Einfach einen Mittelwert für jeden einzelnen Temperaturwert zu bilden wird der Sache ja nicht wirklich gerecht, oder?
19.04.2011, 14:00 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2011 14:12 von Lucki.)
RE: Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
Dank der Vorabeit von Flosen war es ja für mich jetzt einfach.
Der Grundgedanke ist der: Aus den original-Temperturwerten mit original Temperatur-Zeitraster werden mittels linearer Interpolation aus benachbarten Werten neue Temperaturwerte entsprechend dem Zeitraster der X,Y-Messwerte berechnet. Als Resultat hat man einheitliche Array-Größen mit einheitlichen Zeitarrays für Temperaturen und Messwerte. (Das hört sich umständlich an - aber es gibt dafür das fertige maßgeschneiderte VI)
Die Temperaturmessung kann bliebig viel mehr oder weniger Messwerte enthalten als die XY-Messung. Hauptsache ist nur, daß bei der Temperaturmessung der Anfangswert der Zeitmessung vor, der Endpunkt der Messungen hinter den entsprechenden Zeitpunkten der XY-Messung liegt, damit im gesamten Bereich eine Interpolation möglich ist.
Ich verwende immer Dezimalpunkte in LV als Standard, und empfehle das wärmstens. Wenn nicht, muß evtl. das False wieder angeschlossen werden.
Mögliche Verbesserung: Das VI skalierbar machen. D.h. statt zwei Messreihen 1..N Messreihen möglich, und entprechend ändert sich die Plotzahl automatisch.
Zur Thema "Geheimhaltung": Mich interessieren nicht die Ergebnisse, sondern nur die Messtechnik und ob die Stabilitätsmessung den Laser selbst betrifft oder ein Gerät, in dem sich der Laser befindet.
RE: Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
Was deine Fragen betrifft:
Es wird der reine Laser im Gehäuse mit der standartmäßig verbauten Fokusieroptik vermessen. Es werden keine zusätzlichen Optiken dazwischen "geschalten". Als Messgerät dient der "ModeMaster PC" von Coherent.
Zu deinem VI hätte ich noch ein paar Fragen:
Ich habe meine Ausgabe mal als jpg angehängt. Das wird ja das gleiche wie bei dir sein.
1) Mir ist nicht ganz klar wieso du die Temperaturwerte interpolierst. Ich habe bei den Temperaturwerten einen exakten abstand von dt=1s. Meine x- und y-Werte haben jedoch vereinzelt "fehlstellen". Wieso findet die Interpolation dan bei den Temperaturwerten statt.
2) Ich muss das VI nochmal in Ruhe durchgehen, aber auf den ersten Blick erscheint es mir jetzt so, als ob es anhand der durchgehenden Linie nun möglich ist eine Art Hysteresekurve zu betrachten. Ich könnte also schauen ob sich der Laser beim abkühlen und beim Erwärmen gleichermasen verhält oder ob es zu abweichungen kommt. Sehe ich das richtig?
(Ich muss jetzt leider gehen und kann erst morgen weiter machen. Werde mir das dann morgen nochmal in Ruhe anschauen.)
RE: Messwerte aus Dateien auslesen und über Zeitstempel zuordnen
Zur Interplation: Im Prinzip ist es egal, was man mit wem interpoliert. Dein Vorschlag ist allerdings logischer und hätte den Vorteil, daß man wegen des konstanten dt für die Zeitdiagramme kein XY-Gaphen verwenden müßte. Die X-Arrays würden entfallen, man hätte weniger im Memory. Wenn man es aber so macht wie Du es vorschlägst und nimmt dann trotzdem XY-Diagramme, dann bringt es nichts.
Der Zeitbereich für die Temperatur müsste dann innerhalb des Zeibereiches für die Messung liegen, und nicht umgekehrt.
Zur Hysterese: selbstverständlich geht das, davon bin ich ausgegangen, daß die Temepratur steigt und wieder fällt.
Die scheinst in einem Erdbebengebiet zu wohnen, oder ihr habt nicht in einen tonnenschweren und abgefederten opischen Tisch investiert. Die Messwerte zitteren ja ganz schön.