LabVIEWForum.de
Zeitmessung für Geschwindigkeit - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Zeitmessung für Geschwindigkeit (/Thread-Zeitmessung-fuer-Geschwindigkeit)



Zeitmessung für Geschwindigkeit - DerJoeka - 18.05.2010 15:13

Hallo,
für Messungen mit einem Pneumatikzylinder habe ich ein Programm entwickelt, was soweit ganz gut funktioniert.
In einer While Schleife werden die Ein- und Ausgänge alle 20ms ein- und ausgelesen.
Jetzt will ich noch die ablaufende Zeit messen, in der der Zylinder fährt, um auf die Geschwindigkeit zu kommen, da ja Geschwindigeit=Strecke/Zeit. Entweder kann ich ein boolches Signal für die Fahrtdauer erstellen, oder ich habe eine Flanke zum Starten und eine zum Beenden.

Diese Frage wurde bestimmt schon oft im Forum gestellt, aber die SF hat nichts für mich brauchbares ergeben, oder ich bin einfach zu doof die Anregungen richtig umzusetzen. Deshalb brauch ich was einfaches, verständliches.

Hier ist die VI für LabVIEW 2009:
[attachment=26547]
[attachment=26548]

Vielen Dank im Vorraus


Zeitmessung für Geschwindigkeit - GerdW - 18.05.2010 16:44

Hallo Joeka,

erstmal (bevor der Admin zuschlägt): Bitte als Crosspost markieren!!! (Wurde dir doch schon mal gesagt...)

Zweitens:
Ich habe mal in deinem VI "rumgepfuscht":
- lokale Variablen entfernt, war ohne die vorherige Sequenzstruktur eh nur noch race condition par excellence
- Vergleiche von boolschen Werte durch boolsche Operation ersetzt (erscheint mir logischer, logische Werten so zu bearbeitenSmile)
- ShiftRegister für die Anzeigen
- dein RS-FF aufgeräumt (Sequenz entfernt, boolsche Operationen statt fast-RubeGoldberg-CaseStrukturen).

"die ablaufende Zeit messen, in der der Zylinder fährt, um auf die Geschwindigkeit zu kommen"

Kannst du das bitte mal in schönem Deutsch formulieren?
Ablaufende (gibt es eine stehende?) Zeit?
"Um auf Geschwindigkeit zu kommen"? Willst du eine Beschleunigung oder die Durchschnittsgeschwindigkeit?

Edit: Die gröbsten Unsauberkeiten der Aufräumfunktion sind wieder beseitigt...

allesLv09_img2


Zeitmessung für Geschwindigkeit - DerJoeka - 18.05.2010 18:22

Danke für die schnelle Antwort.
Ich glaube, ich muss mal DIE REGELN lesen, da ich keine Ahnung hab, wie sich ein Crosspost definiert.
Bis auf die letzte DriverHandle Verbindung (Konntest du ja nicht sehen, da du ja die Advantech Treiber nicht hast) sieht das ja ganz angenehm aus, bin mal gespannt, ob es morgen auch noch funktioniert.

Also die Uhr soll von Null hochzählen, sobald der Zylinder startet. Bei einem Richtungswechsel soll die Uhr zurück setzen und neu starten. Zusammen mit dem zurückgelegten Weg ergibt das ja die aktuelle Geschwindigkeit.


Zeitmessung für Geschwindigkeit - BsaiboT - 18.05.2010 19:23

' schrieb:Also die Uhr soll von Null hochzählen, sobald der Zylinder startet. Bei einem Richtungswechsel soll die Uhr zurück setzen und neu starten. Zusammen mit dem zurückgelegten Weg ergibt das ja die aktuelle Geschwindigkeit.
Das stimmt so nicht.

Da du immer auch eine Beschleunigungsphase hast, wirst du mit der Methode niemals die aktuelle sondern allenfalls die durchschnittliche Geschwindigkeit bestimmen können. Ein Beispiel zur Veranschaulichung:
Ein System beschleunigt linear t0=0s bis t1=5s von v0=0m/s auf v1=5m/s und behält ab t1 dann konstant v1 bei. Wenn du nun bei t2=10s deine Messung anhälst, dann hat das System innerhalb der ersten 5s eine Strecke von 12,5m zurückgelegt ((5m/s-0m/s)/2 * 5s) und in der Zeit von t1 bis t2 eine Strecke von 25m; ergibt in Summe 37,5m innerhalb von 10s. Nach deiner Aussage/Messmethode ist die aktuelle Geschwindigkeit somit 37,5m/10s=3,75m/s, obwohl das System sich zum Zeitpunkt t2 mit einer aktuellen Geschwindigkeit von v1=5m/s bewegt.

Wenn du die aktuelle Geschwindigkeit haben möchtest, dann musst du das dt so gering wie möglich und so groß wie nötig wählen. Natürlich war mein Beispiel zur Veranschaulichung extrem gewählt und es mag sein, dass dein Zylinder sich so langsam bewegt und im Verhältnis dazu zu Begin stark beschleunigt, so dass die Durchschnittsgeschwindigkeit eine gute Näherung zur aktuellen Geschwindigkeit darstellt. Jedoch möchte ich die Beurteilung dir überlassen, da wir nicht alle Details kennen.

Ich hoffe ich konnte ein wenig helfen.

Grüße,


Zeitmessung für Geschwindigkeit - jg - 18.05.2010 19:26

Offtopic2
' schrieb:erstmal (bevor der Admin zuschlägt): Bitte als Crosspost markieren!!!
Crosspost?!:hmm:Wo? Wenn ich's finde, spiele ich gernePost-880-1250020144. Unter den üblichen "Verdächtigen" (bzw. Foren) finde ich aber nichts.


' schrieb:Ich glaube, ich muss mal DIE REGELN lesen, da ich keine Ahnung hab, wie sich ein Crosspost definiert.
Crosspost ist, wenn du dieselbe Frage parallel in verschiedenen Foren stellst. In vielen Foren wird das als unhöflich angesehen und ist nicht oder nur unter Einschränkungen erlaubt. Der Hintergrund sei auch erklärt: Alle Mitglieder hier im LVF beantworten die Fragen freiwillig, kostenlos und in ihrer Freizeit. Den Aufwand einer Antwort kann ich mir sparen, wenn die Frage schon irgendwo anders längst beantwortet ist. Dies kann ich aber nur selber überprüfen, wenn ich weiß, wo die Frage ebenfalls gestellt wurde. Deshalb die Regel hier: Bei Crosspost bitte Link veröffentlichen. Nur dann haben die Mitglieder die Chance, selber nachzulesen, ob die Frage vielleicht längst beantwortet ist.

Gruß, Jens


Zeitmessung für Geschwindigkeit - DerJoeka - 18.05.2010 21:26

[OT] Die Anmerkung wegen dem Crosspost kam wegen meiner letzten Anfrage, die ich so ähnlich auch im lvportal gestellt hatte, ohne den dazugehörigen Link.
Aber ich lerne ja dazu, deswegen hab ich erstmal nur hier gepostet.[/OT]

' schrieb:Wenn du die aktuelle Geschwindigkeit haben möchtest, dann musst du das dt so gering wie möglich und so groß wie nötig wählen. Natürlich war mein Beispiel zur Veranschaulichung extrem gewählt und es mag sein, dass dein Zylinder sich so langsam bewegt und im Verhältnis dazu zu Begin stark beschleunigt, so dass die Durchschnittsgeschwindigkeit eine gute Näherung zur aktuellen Geschwindigkeit darstellt. Jedoch möchte ich die Beurteilung dir überlassen, da wir nicht alle Details kennen.

Ich hoffe ich konnte ein wenig helfen.

Grüße,

Danke, ich wollte jetzt nur keine Differentialgleichung in meinem Programm verwenden, da ich mit meiner Schaltung den Zylinder pneumatisch einspanne und so anfangs eine recht hohe Beschleunigung erziehle. Es kann natürlich auch sein, dass das dem Doktoranten, dem ich zuarbeite nachher nicht reicht und er doch eine Diffgleichung haben will.
Aber erstmal reicht es, wenn ich den aktuellgefahrenenweg geteilt duch die verstichenezeit rechne und so auf die bisher gefahrene Durchschnittsgeschwindigkeit komme.