positionsbestimmung mit einem sensor - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: positionsbestimmung mit einem sensor (/Thread-positionsbestimmung-mit-einem-sensor) |
positionsbestimmung mit einem sensor - newcomer05 - 10.04.2006 13:27 Hallo! Ich möchte innerhalb eines Projektes mittels eines Sensors Positionsbestimmungen bzw. Wegmessungen durchführen. Allerdings stosse ich dabei auf ein paar Probleme, vielleicht kann mir jmd. helfen. 1.Ich nehme in der Sekende 1000 Werte auf, der 1000. Wert soll zugleich meine Position sein und am Bildschirm ausgegeben werden;wie kann ich ich dies realisieren, also, dass nur ein Wert aus dem Array angezeigt wird. 2.Wieann ich meinen x-y- Graph darstellen...bündele meine skalaren Werte in einem Cluster, aber leider schaffe ich es nicht, den Datentyp so umzuformen, dass ich die Werte als Eingangsdaten für die Graphendarstellung nehmen kann (ich stelle immer ein xy - Wertepaar dar. 3. Da ich das Ganze mit dem DAQ - Assistenten realisiere, stelle ich dort auch meine Sample Rate ein, ich erfasse in der Sekunde 1000 Werte, also pro ms ein Wertepaar(x und y)....Wenn ich nun die zweifach integrierte Formel 0,5+a*^2 anwende , muss ich dann entsprechend für meinen konstanten Faktor t auch 0,001 wählen? 4. Reicht es einfach mittels der Summenfunktion meine 1000 erfassten Werte und umgerechneten Streckenwerte, zusammenzurechnen, oder muss ich diese vorher nochmals in ein Array einfügen! Für jede Hilfe bin ich sehr dankbar! Gruß, Michael positionsbestimmung mit einem sensor - Lucki - 10.04.2006 16:09 Also ich gehe hier mal nur auf Frage 2 eine - wozu sind schließlich die anderen da. Beim XY-Diagramm gibt es zwei alternative Möglichkeiten zur Wertübergabe 1.) Array aus Clustern. Die Cluster beinhalten die Punktkoordianten [Xi,Yi] 2) Cluster aus Arrays. Es handelt sich dabei um die beiden Arrays "X-Array" und "Y-Array". Die erste Methode, Array aus Punktkoordinaten, ist logischer, so daß man sich fragt, wozu es diese zweite Methode überhaupt gibt. Ganz einfach: sie hat einen entscheidenten Vorteil. Es lassen sich damit mehrere Kurven in einem Diagramm darstellen, indem man mehrere solcher Cluster zu einem Array bündelt und dann an den Graphen übergibt. In Deinem Falle, wenn Du nur eine Kurve hast, ist die Sache doch denkbar einfach. Du bildest also aus aus jedem Punkt Pi[Xi,Yi] einen Cluster, genannt "Point", und bildest aus diesen Points einen "Array of Points". Wieso Du nur einen Point darstellt, weiß ich nicht. Natürlich ist ein XY-Graph kein Streifendiagranmm, d.h. wenn Du nur einen Punkt übergibst, wird er nicht an die bereits bestehende Kurve angehängt. Bei jeder Eingabe wird eine ganz neue Kurve gezeichnet, und wenn sie nur aus einem einzigen Punkt besteht, siehst Du eben entsprechend wenig. Es gibt allerdings eine wunderbar einfache Methode, an einen XY-Graph Einzelpunke anzuhängen: Express-Element "XY-Graph" verwenden (Im Frontpanel-Menü, nicht im Blockdiagramm) positionsbestimmung mit einem sensor - newcomer05 - 10.04.2006 21:20 Hallo! Vielen Dank für die schnelle Antwort!! Ich ahbe es versucht jetzt umzusetzen, aber immernoch ohne Erfolg....mein Graph zeigt nur wirre Werte an....:-(...Mit dem Punkt meinte ich eigentlich nur, dass ich quasi den letzten Wert nehme, also die Gesamtaddition der Strecke, und diesen Punkt dann in einem anderen Graphen darstelle, so dass quasi nach jeden tausend Wertepaaren,bzw. nach jeder Sekunde, eine neue Position im Graph "markiert" wird! Habe mal ein Beipiel beigefügt, vielleicht könnte jemand mal drüber schauen, wäre sehr dankbar! Für Anmerkungen oder Verbesserungsvorschlägen bin ich auch dankbar, da ich noch Newbie bin! positionsbestimmung mit einem sensor - eg - 10.04.2006 21:30 Hallo, kurze Frage: welchen Sensor nimmst du? Etwa Beschleunigungssensor? Gruss positionsbestimmung mit einem sensor - Lucki - 10.04.2006 23:03 Habe mir das Vi vor dem Schlafengehen kurz angesehen, und mir sträubt sich das Gefieder. LabVIEWmäßig sieht es auf den ersten Blick gar nicht so schlecht aus, aber physikalisch ist es total unmöglich. Wie berechne ich aus dem Beschleunigungsverleuf a(t) die Position s(t)? Die von Dir benutzte Formel s=0,5 * a*t^2 gilt nur für eine gleichmäßig beschleunigte Bewegung mit der Anfangsgeschwindigkeit Null. Selbst bei konstanter Beschleunigung wäre das von Dir benutzte Verfahren falsch. Die Formel würde nur für das erste Zeitintervall gelten, aber im zweiten und in den folgenden Zeitintervallen stimmt nichts mehr, da dann die Anfangsgeschwindigkeit nicht mehr Null ist. Für eine richtige Berechnung gäbe es zwei Möglichkeiten: a) Mit Benutzung der richtigen Formel für beliebige Anfangsgeschwindigkeiten und Anfangspositioninen: s(0) = 0; v(0)=0 ............. .(Anfangsbedingung) v(i) = a(i-1)*dt + v(i-1) ........... ...(Geschwindigkeitsverlauf) s(i) = 0.5 * a(i-1) * dt^2 + v(i-1)*dt + s(i-1) ........(Wegverlauf) b) Einfach 2 mal integrieren, die Tools dafür sind in LabVIEW dabei: vt) = Integral von (a(t)*dt) in den Grenzen von 0 bis t s(t) = Integral von v(t)*dt in den Grenzen von 0 bis t Editiert am nächten Tag: Nach zweimaliger Integration Deines Sensorsignales (gespeichert in den Graphen) sieht es dann gar nicht so schlecht aus. (siehe Bild es fehlt die richtige Skalierung) Evtl. muß Du bei den Sensoren den Offset beseitigen, denn ansonsten hast Du bereits im Ruhezustand eine gleichmäßig beschleunigte Bewegung in der Anzeige. Die Offset-Erfassung solltest Du in Deinem Programm automatisieren: Der Offet ist so zu wählen, daß im tatsächlichen Ruhezustand der Weg am Ende der abgelaufenen Zeit tatsächlich Null ist. Also: Auswahl - Button Messen/Kalibrieren bereitstellen. positionsbestimmung mit einem sensor - newcomer05 - 11.04.2006 10:44 Hallo! Erst einmal vielen Dank für Eure Bemühungen! @ Eugen: Ja, es handelt sich hierbei um einen zweiachsigen Beschleunigungssensor!!! @Lucki: Danke , dass Du Dir das Programm einmal angeschaut hast, ich habe fast schon befürchtet, dass bei meinem Algorithmus der Wurm drin ist. Die von Dir zuerst aufgelisteten Formelgleichungen habe ich in einem früheren Versuch auch schon mal versucht zu implementieren. Damals habe ich es mit Rückkopplungsknoten versucht, für V(k-1) und s(k-1), Da ich hiermit auch keinen Erfolg hatte, dachte ich nun, dass die Lösung vielleicht näher liegt. Leider finde ich in meiner Version auch nicht die Integrate - Tools....Ich bin wirklich mit meinem Latein am Ende. Das mit dem Offset wäre ja das geringste Problem im Endeffekt, wobei ich diesen eigentlich vorher messtechnisch erfassen wollte(Ossi) und dann in dem Programm dann von der Eingangsspannung abziehe. Aber die von Dir vorgeschlagene Lösung ist wahrscheinlicher besser....Ich wäre um jede weitere Hilfe oder Beispiel dankbar! Gruß, Michael positionsbestimmung mit einem sensor - Lucki - 11.04.2006 11:42 Habe nur V8, kann die Vi nicht abspeichern wie gewünscht. Du hast recht, in V7 gibt es als Tool nur das bestimmte Integral, mir einem einzigen Zahlenwert als Ausgang, aber nicht die Integral-Funktion. Man kann sich das aber ganz leicht zusammenbasteln, z.B mit dem Point-to-Point-Integral-VI Hier also nur 2 Bilder. DAQ konnte ich ohne Sensor nicht verwenden. Zu Glück sind in Deinen Diagrammen Sensorwerte gespeichert. Da in X und Y immer dasselbe gemacht wird, ist es sinnvoll, mit Clustern/Arrays zu arbeiten positionsbestimmung mit einem sensor - newcomer05 - 11.04.2006 12:55 Hallo Lucki! Leider bekomme ch manche Schritte von Dir nicht nachvollzogen und kann das dementsprechend leider nicht umsetzen, da ich auch Newbie bin:-( Mal davon abgesehen, dass ich mit manchen programmietechn. Umsetzungen (aber sehr elegant gelöst) Schwierigkeiten habe, frage ich ich, ob ich es richtig verstehe, dass die Signalwerte, welche in den Signalverlaufsgraphen dargestellt sind, durch 800(ist ja nur der Empfindlichkeitsfaktor des Sensors) geteilt werden und dann mit 9,81 multipliziert um die Beschleunigung zu erhalten? Wo werden diese Graphen denn dann erzeugt (Eingangsdaten), ich weiss, blöde Frage, aber ich bin für jede Aufklärung dankbar. Gäbe es denn vielleicht die Möglichkeit, das Programm mit Dummys anstatt dem DAQ Assistenten zu speichern, es würde mir wirklich sehr helfen, denn dann könnte ich es auch Schritt für Schritt nachvollziehen! Gruß, und vielen Dank für Deinen Einsatz..... Michael positionsbestimmung mit einem sensor - newcomer05 - 11.04.2006 14:54 Habe mich gerade nochmals versucht, aber weiß zum Verzweifeln nicht, wo ich dieses Point-to-Point-Inegral-VI herbekomme, ist das bei Version 7.1 auch dabei?? positionsbestimmung mit einem sensor - Lucki - 11.04.2006 17:43 Habe jetzt noch mehr Zeit alles zu beantworten. Nur das: Woher kommen die Daten her? Du selbst hast in den Graphen, nachdem dort ein Verlauf zu sehen war, mit der rechten Maustaste"Diesen Wert als Standard speichern" gedrückt. Der Verlauf ist damit mit abgespeichert worden. Um die Daten auszulesen, habe ich dann die beiden Diagramme von "Anzeigeelement" in "Bedienelement" umfunktioniert - es geht so. Die Rechenoperatione mit 9,81 und 800 habe ich von Dir so übernommen wie es war. Punkt2Punkt Integral: Wird nicht gebraucht, das Integral(t) it doch in LV7 einhalten, nur gut getarnt: Funktionen --> Analyse --> Signalverarbeitung --> Zeitbereich --> Integral x(t) Also, ein Integral hat in LV7 im Unterschied zu LV 8 nichts mit Mathematik zu tun, sondern nur mit "Signalverarbeitung" |