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!
Ich möchte in LabVIEW ein Diagramm eines schiefen Wurfes (irgend ein Gegenstand) erstellen.
Ich habe hier einige physikalische Formeln, wie zum Beispiel y(t)=v0*sin(alpha)-(gt^2/2).
Wie kann ich eine solche Formel verwenden? Bei mir Funktionieren nur so Variablen wie X1 oder X2 usw...
Nimm doch eine For schleife mit einen Formelknoten, such Dir doch ein Beispiel aus den mitgelieferten Krams unter Formula Note glaube ich, das ist leicht zu verstehe auch die Variablennamen sind dann beliebeig wählbar sofern Du Buchtaben und Zahlen verwendest.
Bedienlement mit Schleifendurchläufen verbinden, dann für z.Bsp 100 Werte das Y-Array mit einem X-Wert Array verbinden und mit Graphen darstellen.
Also ich hab da mal was an meinem Programm gemacht. Jedoch funktioniert noch gar nichts.
In dieser Formelsammlung unter schräger Wurf findet man die nötigen Formeln.
Der Bogen, also der Wurf, soll auf der grafischen Anzeige ausgegeben werden. Nachdem der Gegenstand wieder auf dem Boden "gelandet" ist, soll die Berechnung beendet werden.
Die Wurfgeschwindigkeit und der Wurfwinkel kann eingegeben werden.
Auf der X-Achse soll die Distanz angezeigt werden. Auf der Y-Achse soll die Höhe des Gegenstandes angezeigt werden.
Beides ist natürlich abhängig von den Formeln.
ich habe dein VI zu Hause leider nicht öffnen können (LV61), habe es aber mal programmiert.
Wenn du lust hast, kannst du es ja mal erweitern.
Interresant wäre doch die Wurfweite als Funktion des Winkels zu ermitteln...
Natürlich kannst du dich aber auch über andere Formeln her machen...
bis zur nächsten Frage..
Oliver
P.s.: Wenn ich es schaffe, schau ich mir dein VI morgen auf der Firma mal an und sage dir dann was du falsch gemacht hast, oder was ich nicht verstehe...
Oliver Frank schrieb:Hi 54m,
P.s.: Wenn ich es schaffe, schau ich mir dein VI morgen auf der Firma mal an und sage dir dann was du falsch gemacht hast, oder was ich nicht verstehe...
Danke für die schnelle Hilfe. Wenn du vieleicht noch ein paar Kommentare zu meinem Programm abgeben könntest wäre ich sehr froh. Wundere dich aber nicht über komische Sachen, ich bin ein LabVIEW-Anfänger (lerne es in der Ausbildung).
Ich werde jetzt noch versuchen dein Programm zu verstehen. Einige "Bausteine" verstehe ich noch nicht. Aber das wird schon noch klappen.
Damit du den Wurf nicht als fertiges Rechenergebnis siehst, sondern auch die Zeitliche simulation, ist es notwendig die While-schleife mit jedem Durchlauf zu verzögern.
Das Viereckige "i" ist der Schleifendurchlaufzähler, der mit jedem Durchlauf um 1 inkrementiert wird (angefangen bei 0).
Je nach angegebener Wurf-Geschwindigkeit, dauert die Berechnung aber unterschiedlich lange. Deshalb habe ich ein Control gesetzt, mit dem man die zeitliche Auflösung einstellen kann: "resolution".
Das "wait (ms)" sorgt dafür, das die Schleife immer die eingestellte Zeit wartet.
Als nächstes berechne ich, wie oft die Schleife dann pro Sekunde ausgeführt werden muß und gewichte dann im zweiten Teiler, den Schleifendurchlaufzähler.
z.B.:
Die Auflösung beträgt 10ms -> d.h. die Schleife wird pro Sekunde 100 mal durchlaufen -> das heißt der Schleifenzähler muß durch 100 geteilt werden und liefert folglich die Zeitliche Auflösung in 100stel Sekunden für die Berechnung.
Soweit ok?
Das ganze funktioniert nur, weil LabVIEW mit dem "wait (ms)" VI gleichzeitig auch die Berechnung durchführt.
Solange die in der "resolution" eingestellte Zeit nicht kleiner ist, als die Berechnung dauert, ist die Schleife erst zu ende, wenn die Wartezeit vorbei ist.
Ist das nicht der Fall, und die eingestellte resolution ist kleiner als die Berechnungsdauer, so wird die Schleifendauer nicht mehr durch das VI "wait (ms)" bestimmt, sondern durch die Berechnung. Dann ergibt sich eine zeitlch falsche Simulation.
Da das Endergebnis aber gleich bleibt (X/Y ensprechen ja der Wurfhöhe und ~weite), denke ich das es hier zu vernachlässigen ist.
mfg
Oliver Frank
Bitte frage nach, wenn ich zu kompliziert wurde und du noch fragen hast.
Ich habe noch eine Frage. Würde das Programm auch funktionieren wenn ich die resolution fest auf 1 setze. Weil ich begreiffe deren Funktion noch nicht ganz. Wieso muss man das verändern?
also die Auflösung (resolution) solltest du schon auf deine Bedürfnisse einstellen. Wenn du sie auf 1 fest einstellst, heißt das, dass das Programm dir jede Millisekunde ein Datenpaar (Höhe - Weite) berechnet.
Probier es doch mal aus, was der Unterschied ist zwischen 1 (1 ms) und 1000 (1 s). Da siehst du, dass zwischen den nicht-berechneten Punkten einfach linear interpoliert wird.
Und je weiter diese Zeitpunkte auseinanderliegen, desto größer liegen auch die Orte auseinander, wo sozusagen das "Photo" gemacht wurde.
Weil so kann man sich das glaub ich am Besten vorstellen. Denk einfach, da ist einer, der den Ball schief wirfst und du stehst daneben mit einem Photoapparat und machst alle [resolution] ms ein Photo.
Je länger du wartest bis zum nächsten Photo, desto ungenauer kannst du die Flugbahn rekonstruieren.
Und dafür stellt man ein niedriges Zeitinterval ein, wenn man eine hohe Auflösung haben will.
Ich hoffe, dass das jetzt ein wenig klarer geworden ist.