Hallo, ich arbeite momentan daran einen DZB für meinen Roller zu entwickeln. Ich will aber nicht eine max. Drehzahl festlegen, sondern eine Geschwindigkeit. Dies realisiere ich über einen Reed-Kontakt von einem Fahrrad-Tacho. Jetzt meine Frage: Wie messe ich die aktuelle Geschwindigkeit genauer? Eine Möglichkeit wäre die Zeit zwischen zwei Interrupts (des Reed-Kontaks) zu messen und somit die Geschwindigkeit zu errechnen. Die andere Möglichkeit wäre, in dem Interrupt die Anzahl der Umdrehungen eine Sekunde lang zu zählen und so die Geschwindigkeit auszurechnen. Welche Variante ist nun genauer/besser oder gibt es noch eine bessere/genauere? Danke im Voraus burgerohnealles
Jonathan K. schrieb: > Welche Variante ist nun genauer/besser oder gibt es noch > eine bessere/genauere? es kommt auf die Geschwindigkeit an. Wenn es sehr langsam ist, dann ist es besser die Zeit zu messen, wenn es sehr schnell ist dann besser die anzahl der Impulse je zeit.
Hoppla ! schrieb: > Ist das nicht einfach berechenbar ? Mach mal. Also ich denke Variante 1 ist besser, da bei der zweiten Variante evtl. eine halbe Umdrehung nicht gemessen wird .. aber was meint ihr?
Jonathan K. schrieb: > Also ich denke Variante 1 ist besser, da bei der zweiten Variante evtl. > eine halbe Umdrehung nicht gemessen wird .. aber was meint ihr? und was ist wenn die "Auflösung" bei der 1. Variante nicht ausreicht. Du also z.b. 0 also Zeit ermittelst?
Von 0 auf 100 in 3,6 Sekunden. Bei einer Sekunde Messzeit wird eine Durchschnittsgeschwindigkeit berechnet, wie genau soll es werden?
Peter II schrieb: > Jonathan K. schrieb: >> Also ich denke Variante 1 ist besser, da bei der zweiten Variante evtl. >> eine halbe Umdrehung nicht gemessen wird .. aber was meint ihr? > > und was ist wenn die "Auflösung" bei der 1. Variante nicht ausreicht. Du > also z.b. 0 also Zeit ermittelst? Hab nochmal nachgerechnet, der kleinste Intervall zwischen zwei Interrupts ist größer als 40ms, sollte also ausreichen. lutz h. schrieb: > Von 0 auf 100 in 3,6 Sekunden. So schnell beschleunigt kein mir bekannter Roller ^^ Nach euren Antworten ist denk ich mal die erste Variante besser, weil der kleinste Intervall zwischen zwei Interrupts größer als 40ms ist -> das reicht aus; und bei langsamen Geschwindigkeiten ist diese Variante sowieso besser (s. Antwort v. Peter II). Außerdem wird dann die Geschwindigkeit öfters als ein Mal pro Sekunde aktualisiert (außer man fährt extrem Langsam; also < 2km/h).
Beim Bremsen, von 30 auf 0 in 1 Sekunde ist sicher möglich. Deshalb könnte die Messung noch genauer werden, wenn zusätzlich ein Beschleunigungssensor mit einbaut wird.
Jonathan K. schrieb: > Nach euren Antworten ist denk ich mal die erste Variante besser, weil > der kleinste Intervall zwischen zwei Interrupts größer als 40ms ist -> Sowas bestimmt man, indem man sich überlegt bzw. ausrechnet, wie sich das errechnete Ergebnis verändert, wenn man einen 'Messfehler' von 1 Einheit am Input hat. d.h. rein rechnerisch hast du zb in 1 Sekunde 90 Impulse. Jetzt beginnt aber das Messintervall nicht damit, dass da genau der erste Impuls kommt, bzw. es endet auch nicht damit. d.h. du kannst in 1 Sekunde auch schon mal 89 Impulse feststellen bzw. 91. Wie gross ist daher die Abweichung der daraus errechneten Geschwindigkeit von der tatsächlichen. Bzw. genau anders rum: wenn du die Zeit zwischen 2 Pulsen misst, dann hast du auch dann einen Fehler in der Zeitermittlung (durch den Timer). Denn der Timer startet ja nicht exakt bei 0, wenn der erste Impuls kommt und er macht auch nicht exakt 1 Timertick, wenn der zweite IMpuls kommt. Wieder hast du einen Messfehler von +-1, diesmal aber in der Zeitermittlung durch den Timer. Welche Abweichung hast du dann von der theoretischen Geschwindigkeit? Und ja: die beiden Methoden sind komplementär. Bei der einen Methode (welcher?) wird der Fehler bei steigender Geschwindigkeit größer, bei der anderen wird er kleiner. Dafür hat die eine Methode ein besseres Verhalten bei kleinen Geschwindigkeiten als die andere. Man kann sich das graphisch in einem Diagramm aufmalen (auf der einen Achse die Geschwindigkeit, auf der anderen Achse der 'Fehler') und stellt fest, dass die beiden Geraden einen Schnittpunkt haben. Auf der linken Seite des SChnittpunktes (bei kleinen Geschwindigkeiten) ist die eine Methode besser, auf der anderen Seite (bei höheren Geschwindigkeiten) ist die andere besser. Wo genau dieser Schnittpunkt liegt, hängt von den Messparametern ab. Aber: man kriegt daraus eine Grenzgeschwindigkeit raus, ab der man die Methode wechseln sollte. Ob für dich dieser 'Umschaltpunkt' in der Geschwindigkeit überhaupt relevant ist, oder nicht, kann man erst sagen, wenn man die zu diesem Punkt gehörende Geschwindigkeit kennt und dann mal damit vergleicht, was dein Roller überhaupt fahren kann.
lutz h. schrieb: > Beim Bremsen, von 30 auf 0 in 1 Sekunde ist sicher möglich. Deshalb > könnte die Messung noch genauer werden, wenn zusätzlich ein > Beschleunigungssensor mit einbaut wird. Das könnte man natürlich noch mit einbauen. Werde den DZB einfach mal testen, wenn es zu ungenau ist, bau ich auch noch einen Beschleunigungssensor ein. Karl Heinz Buchegger schrieb: > Sowas bestimmt man, indem man sich überlegt bzw. ausrechnet, wie sich > das errechnete Ergebnis verändert, wenn man einen 'Messfehler' von 1 > Einheit am Input hat. Ok .. V=45km/h (12.5m/s) U=80cm (Reifenumfang) Somit habe ich pro Sekunde 12.5/0.8=15.625 Umdrehungen. Wenn jetzt z.B. 14 gemessen wird, kommt 14*0.8=11.2 m/s bzw. 40.32 km/h. Selbst wenn korrekt 15 gezählt wird, kommt 43.2 km/h raus. Das ist mir zu ungenau. Wenn ich die Zeit zwischen zwei Impulsen messe und einen Fehler von nur 1ms habe (und ich messe in us): t=1/f =1/15.625 =0.064 f=1/t =1/0.065 =15.3846 (ungefähr) Das macht dann ca. 44.3 km/h. Da ich meistens um die 45km/h fahre ist (für mich) die Methode die Zeit zw. zwei Impulsen zu messen, die bessere/genauere.
Wenn die Messung eines Reed-Impulses bei höheren Geschwindigkeiten zu ungenau wird, also die vergangene Zeit seit der letzten Messung zu klein ist, kannst du auch die Zeit zwischen mehreren Impulsen messen. LG, Sebastian
Man könnte auch beide Methoden verwenden und je nach Geschwindigkeit den Mittelwert gewichten: - bei geringen Geschwindigkeiten zählt man z.B. mit einer Lichtschranke die Löcher in der Bremsscheibe - bei höheren Geschwindigkeiten die Dauer einer Radumdrehung Ein ATMegea sollte genügend Rechenpower für Beides gleichzeitig haben ...
Jonathan K. schrieb: > Somit habe ich pro Sekunde 12.5/0.8=15.625 Umdrehungen Willst Du das Ergebnis erst nach einer Sekunde haben? Du könntest z.B. die Anzahl der Reed-Kontakte erhöhen (3-4). Btw, was ist ein DZB?
:
Bearbeitet durch User
Habe bei einem Testgerät (Zweirad) eine gute Lösung gesehen: Hallsensor auf die Bremsscheibe. War sehr einfach umgesetzt und hat super funktioniert. Durch die Speichenzahl relativ hohe Auflösung. Lichtschranke funktioniert sicher auch, halte ich aber für problematischer. Entweder getrennter Aufbau (Sender / Empfänger) oder Reflex, anfällig für Schmutz, Streulicht... Unabhängig vom verwendeten Sensor auch mit 2 phasenversetzten Sensoren aufbaubar: Quadraturencoder.
Die Ideen beide Varianten gleichzeitig zu benutzen finde ich gut, werde dies demnächst mal ausprobieren. Mit einem Hallsensor könnte ich's auch mal versuchen.. Pete K. schrieb: > Btw, was ist ein DZB? Ein DZB ist ein Drehzahlbegrenzer. Er kann zum Drosseln von Rollern/Mofas verwendet werden (falls es dich irritiert, ja normalerweise wird ab einer bestimmten Drehzahl gedrosselt, ich mache das ab einer bestimmten Geschwindigkeit).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.