Forum: Mikrocontroller und Digitale Elektronik Geschw.-Messung: Was ist genauer?


von Jonathan K. (burgerohnealles)


Lesenswert?

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

von Hoppla ! (Gast)


Lesenswert?

Ist das nicht einfach berechenbar ? Mach mal.

von Peter II (Gast)


Lesenswert?

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.

von Jonathan K. (burgerohnealles)


Lesenswert?

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?

von Peter II (Gast)


Lesenswert?

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 Lutz H. (luhe)


Lesenswert?

Von 0 auf 100 in 3,6 Sekunden.

Bei einer Sekunde Messzeit wird eine Durchschnittsgeschwindigkeit 
berechnet,
wie genau soll es werden?

von Jonathan K. (burgerohnealles)


Lesenswert?

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).

von Lutz H. (luhe)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Jonathan K. (burgerohnealles)


Lesenswert?

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.

von Sebastian W. (wangnick)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

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 
...

von Pete K. (pete77)


Lesenswert?

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
von Noti (Gast)


Lesenswert?

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.

von Jonathan K. (burgerohnealles)


Lesenswert?

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
Noch kein Account? Hier anmelden.