Zeitliche Verschiebung von Daten - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: Zeitliche Verschiebung von Daten (/Thread-Zeitliche-Verschiebung-von-Daten) |
Zeitliche Verschiebung von Daten - Lucas - 07.11.2010 17:24 Hallo, ich hätt da gerne ein Problem. Und zwar: Ich erfasse Positionsdaten mit einer Ni PCIe 6363 und bilde (wie in dem Bild zu sehen) eine Differenz der Wegpunkte. Zudem möchte ich von Messung zu Messung die verstrichene Zeit aufnehmen, um damit über Geschwindigkeit=Wegänderung/Zeitänderung meine Geschwindigkeit zu bestimmen. Theoretisch klappt das auch ganz ordentlich, allerdings ist mir beim Durchsehen meiner Werte aufgefallen, dass der zum Wegpunkte gehörige Zeitpunkt um eine Messung (Messtakt) verschoben ist (die Zeit ist einen Messtakt zu früh). Zum Bildchen: Im oberen Teil nehme ich die aktuelle Position auf und subtrahiere davon die vorhergehende Postion. Darunter findet sich mein Versuch eine Zeitdifferenz zwischen den beiden Messabläufen zu ermitteln. Ich nehme den aktuellen Zeitstempel auf ("Zeitstempel neu") und gebe ihn per Feedback-Node wieder vorne in mein Programm rein in die Variable "Zeitstempel alt" (ist nicht besonders geschickt, aber sollte ja eigentlich funktioieren). [attachment=30402] Weiss jemand den Grund für diese Zeitlcihe Verschiebung der Werte?! Hoffe ich hab mich nachvollziehbar ausgedrückt. Mfg, LuCas Zeitliche Verschiebung von Daten - Matze - 07.11.2010 17:30 Hallo Lucas, ich kann bei dir kein Feedbacknode erkennen. Daher weiß ich aktuell nicht, woher "Zeitstempel alt" kommt. Prinzipiell ist das vorgehen korrekt, hier einen Feedbacknode bzw. ein Schieberegister zu nehmen, um auf den vorigen Zeitstempel (Werte im letzten Schleifendurchlauf) zugreifen zu können. Solltest du die Daten über einen Signalverlauf einlesen, dann hättest du dort den zugehörigen Zeitstempel gespeichert (Start-Zeitstempel und Delta-t) und müsstest vermutlich nichts manuelles machen. Denn der von dir erzeugte Zeitstempel weicht garantiert etwas vom realen ab, da du diesen nach dem Einlesen ermittelst und nicht zeitgleich, wenn ich dich richtig verstanden habe. Zeitliche Verschiebung von Daten - jg - 07.11.2010 19:47 Für weitergehende Analysen als von meinem Vorschreiber solltest du einmal dein VI hochladen - oder zumindest einen abgespeckten Teil inkl. der Datenerfassung Gruß, Jens Zeitliche Verschiebung von Daten - Lucas - 08.11.2010 17:00 Hi, da bin ich wieder. So, ich habe jetzt mal mein Testprogramm angefügt und die soweit dazugehörigen Bilder. Die Aufgabe die ich habe ist, dass ich einen bzw. mehrere Elektrozylinder steuern und regeln soll. Also eine bestimmte Position anfahren oder mit einer vorgegeben Geschwindigkeit fahren oder mit einer bestimmten Kraft drücken, bzw. ziehen. Die momentanen Probleme liegen halt bei der Geschwindigkeitsbestimmung. Die Position nehme ich über ein Potentiometer auf. Zum Programm: Ich rufe in dem PWMTESTtool mein Unterprogramm Geschwindigkeitsberechnung auf, lasse dort einen Wegpunkt samplen und verarbeite diesen dann weiter. Da ich ein recht hohes Rauschen (kommt vom Netzteil) auf der Leitung habe habe ich einen Tiefpass eingebaut. Danach werden die Spanungswerte auf einen von mir bestimmten Nullpunkt umgerechnet und mit einem Faktor multiplziert, der dem Verhältnis von Gesamtwegstrecke zu Spannungswerten entspricht. Durch den Mittelwert aller Samples komm ich zu einem Absolutwert, der wiederrum mit der verstrichenen Zeit zu einer Geschwindigkeit umgesetzt wird. Nur leider schwankt diese Geschwindigkeit nicht nur wegen des (immernoch vorhanden) Rauschen bei f=0Hz sondern halt auch weil die Zeit scheinbar um einen Takt verschoben ist. Das raff ich halt nicht. siehe nachfolgendes Bild: [attachment=30421] Spalte 1: Postionsdifferenz Spalte 2: Zeitdifferenz Spalte 3: resultierende Geschwindigkeit Die maximale Geschwindigkeit des Zylinders liegt bei ca. 6-7mm/s. In meinem (hochgeladenen) Programm hab ich nun über eine zweite Feedback-Node die Zeit um einen Takt verschoben. Funktioniert zwar aber ich hatte eigentlich nicht vor mein Programm durch "hinpfuschen" zum korrekten Arbeiten zu übereden. Den Vorschlag von Mechatronik-Ingenieur mit dem vorhandenen Zeitstempel konnte ich nicht umsetzen. Ich bin noch nicht sooo geübt mit den Feinheiten von LV. Deshalb weiss ich nicht ob das bei mir überhaupt möglich ist. Wenn noch weitere Fragen da sein sollten zum Verständnis meiner "Arbeit" oder noch besser VERBESSERUNGEN, dann nur raus damit. Gruß, LuCas [attachment=30413] [attachment=30414] VIs in LV 10-Format [attachment=30415] [attachment=30416] [attachment=30417] [attachment=30418] |