Forum: Mikrocontroller und Digitale Elektronik Fehlerberechnung Drehzalmessung


von Ingo L. (corrtexx)


Lesenswert?

Hallo,

ich steh grad etwas aufm Schlauch. Ich habe ein Tachosignal, welches mir 
256 Impulse / Umdrehung ausgibt. Diese Impulse zähle ich, in einem 
Fenster von 204,8ms. Welchen maximalen Messfehler habe ich damit? Ich 
komm einfach nicht drauf wie man es berechnen kann. Drehzahlauswertung 
und sowas funktioniert bereits, geht jetzt nur um dem Messfehler.

Der Drehzahlbereich ist von 1-1500 Umdrehungen pro Minute.


Danke,
Ingo

von Karl H. (kbuchegg)


Lesenswert?

Ingo L. schrieb:
> Hallo,
>
> ich steh grad etwas aufm Schlauch. Ich habe ein Tachosignal, welches mir
> 256 Impulse / Umdrehung ausgibt. Diese Impulse zähle ich, in einem
> Fenster von 204,8ms. Welchen maximalen Messfehler habe ich damit? Ich
> komm einfach nicht drauf wie man es berechnen kann. Drehzahlauswertung
> und sowas funktioniert bereits, geht jetzt nur um dem Messfehler.


Angenommen du beginnst dein Zeitfenster exakt mit der steigenden Flanke 
des ersten Pulses.
Dann ist es recht unwahrscheinlich, dass dein letzter Puls im 
Zeitfenster auch exakt mit dem Zeitfenster endet.

D.h. dein Problem ist, dass in das Zeitintervall sehr wahrscheinlich 
keine ganze Zahl an Pulsen fällt.

Jetzt kannst du dir ja mal überlegen, wie sich die Situationen am Anfang 
bzw. Ende des Zeitintervalls ergeben. Je nachdem wie sich die Zeiten 
ausgehen, müsstest du zb 183.4 Pulse pro Zeitintervall zählen. Das geht 
natürlich nicht, denn du kannst ja nur ganze Pulse zählen. Du wirst 
vielleicht einmal 183 Pulse zählen, einmal 184 oder auch nur 182, je 
nachdem wie gerade der Puls liegt, wenn sich das Zeitfenster öffnet, 
bzw. wenn sich das Zeitfenster schliesst. Je nach tatsächlich gezählten 
Pulsen im Zeitfenster kriegst du aber rechnerisch eine andere Drehzahl.

Die andere Fehlerquelle ist natürlich das Zeitfenster selbst. Wie genau 
kannst du denn die 204.8ms erzeugen? Wie kommst du auf diese 208.4ms? 
Ich schätze mal, dass du die von einem Quarz abgeleitet hast. Auch wenn 
auf einem Quarz 8Mhz draufsteht, so hat der nicht exakt 8000000.00000 
Schwingungen in der Sekunde. Dementsprechend hast du auch nicht exakt 
204.8ms. Allerdings wird dieser Fehler recht klein sein, denn Quarze 
haben keine sehr große Abweichung von der Sollfrequenz. Der Fehler, den 
du durch die nicht ganzzahligen Verhältnisse der Pulsanzahl zur Länge 
des Zeitfensters hast, wird wesentlich größer sein und überwiegen.

von Udo S. (urschmitt)


Lesenswert?

Karl Heinz hat die die beiden Fehler schon genannt.
Interessant in dem Zusammenhang ist wie du deine Frequenz überhaupt 
misst.
Wenn man wie du eine Torzeit definiert und da die Impulse zählt, dann 
wird deine Auflösung und auch die Genauigkeit umso höher, je mehr Impuls 
pro Torzeit vorhanden sind.
Um also die Genauigkeit und die Auflösung zu erhöhen muss entweder deine 
Pulsfrequenz höher sein oder deine Torzeit länger.

Für langsame Impulse gibt es aber noch eine andere Möglichkeit zu 
messen. Du misst die Dauer eines Impulses, indem du anfängst eine feste 
und bekannte Frequenz zu zählen sobald du z.B. die positive Flanke des 
Impulses erkennst und stoppst den Zählvorgang bei der nächsten positiven 
Flanke.
Bei einer Frequenz von 1MHz und einer Impulsdauer von 1ms hast du hier 
schon eine Auflösung von 1000, und (ohne die Ungenauigkeit deiner 
Messfrequenz zu berücksichtigen) eine Genauigkeit von +- 1/1000 = 
+-0,1%.
Hier ist es genau umgekehrt, je kürzer die Impulse werden desto 
ungenauer wird die Messmethode.

von m.n. (Gast)


Lesenswert?

Ingo L. schrieb:
> Der Drehzahlbereich ist von 1-1500 Umdrehungen pro Minute.

Wie Udo gerade schon geschrieben hat, verwendet man dafür eine reziproke 
Messung. Diese ist ganz einfach.
Beitrag "einfache Drehzahlmessung mit ATmega88"
Beitrag "Frequenz, Drehzahl, 4x7-Segment LED, Multiplex-Betrieb"
Beitrag "Frequenz / Drehzahl, 4-stell. 7-Segm.-LCD, ATtiny45"
Beitrag "4-Kanal Drehzahlmessung mit ATmega88"

Um nur ein paar Beispiele zu zeigen ;-)

von Udo S. (urschmitt)


Lesenswert?

Das ist ein schönes Beispiel um den Timer besser kennenzulernen und 
programmieren zu üben. Man kann einen Frequenzzähler programmieren, der 
beide Methoden kann.
Im einfachen Fall schaltet man die per Schalter um.
Im nächsten Schritt kann das Programm so erweitern, daß es anhand einer 
ersten Messung entscheidet, welche die bessere Methode ist und dynamisch 
die bessere Methode wählt, indem man eine Schwelle definiert bei der 
beide Methoden die gleiche (Un)genauigkeit haben.
Dann kann man von Messung zu Messung immer die bessere Methode für die 
nächste Messung entscheiden.
Stichwort für die 2. Methode wäre "Input Capture Mode".

von Norbert (Gast)


Lesenswert?

Ingo L. schrieb:
> Hallo,
>
> ich steh grad etwas aufm Schlauch. Ich habe ein Tachosignal, welches mir
> 256 Impulse / Umdrehung ausgibt. Diese Impulse zähle ich, in einem
> Fenster von 204,8ms. Welchen maximalen Messfehler habe ich damit? Ich
> komm einfach nicht drauf wie man es berechnen kann. Drehzahlauswertung
> und sowas funktioniert bereits, geht jetzt nur um dem Messfehler.
>
> Der Drehzahlbereich ist von 1-1500 Umdrehungen pro Minute.
>
>
> Danke,
> Ingo

Nehmen wir mal die Mindestdrehzahl:

Eine Umdrehung pro Minute
  == Eine Umdrehung pro 60s
  == Eine Umdrehung pro 60000ms
256 Impulse == 60000ms
1 Impuls == 234,375ms

Dein Zeitfenster: 204,8ms

Ich würde das nicht als Meßfehler, sondern als komplett ungeeignet 
bezeichnen.

von Ingo L. (corrtexx)


Lesenswert?

Erstmal danke für die Infos. Bis jetzt habe ich auch immer den 
Impu-Capture für sowas genommen, ich wollte hier aber explizit die 
Puls-Zähl-Methode nehmen.

Norbert schrieb:
> Ich würde das nicht als Meßfehler, sondern als komplett ungeeignet
> bezeichnen.
Für diesen Fall zähle ich die Torzeiten indem sich nichts tut, bis sich 
wieder etwas am Zählerstand getan hat. Wenn sich nach n Torzeiten nichts 
getan hat, definiere ich die Drehzahl zu null.

Karl Heinz schrieb:
> Wie genau
> kannst du denn die 204.8ms erzeugen? Wie kommst du auf diese 208.4ms?
Die leite ich aus einem Quarz ab, der natürlich auch seine Fehler hat, 
die ich aber vernachlässige. Die 204,8ms leite ich aus meinen Systemtakt 
x 2048 ab, mein Systemtakt beträgt demnach 10kHz...

Udo Schmitt schrieb:
> Im einfachen Fall schaltet man die per Schalter um.
Ja, ich denke das wäre die Methode der Wahl. Kommt für mich aber nicht 
in Frage, da ich die Maschinendrehzahl sowieso nur in ganzen 
Umdrehungen/min anzeige und ein Autorange nicht benötigt wird.


Für mich geht es allein um den zu erwartenden Messfehler bei einer 
beliebigen Drehzahl z.B. 1500 U/min.

So wie ich das sehe liegt er bei 1 Timerincrement. Was sich dann 
tatsächlich als eine U/min manifestiert.

Die Torzeit zu erhöhen bringt natürlich Besserung, macht aber das ganze 
langsamer, besonders wenn man noch über z.B. 8 Werte gleitend mittelt, 
dann wird es recht träge.


Ingo

von Mike A. (Gast)


Lesenswert?

Ingo L. schrieb:
> Diese Impulse zähle ich, in einem Fenster von 204,8ms. Welchen
> maximalen Messfehler habe ich damit?
> ...
> Der Drehzahlbereich ist von 1-1500 Umdrehungen pro Minute.

Dein Messfehler hängt von der Drehzahl ab und kann, bezogen auf die 
tatsächliche Drehzahl, 100% betragen. Bezogen auf den Anzeigewert kann 
dein Fehler unendlich groß werden.

Probiers mal mit einem reziproken Zähler, wie er z.B. im Artikel 
Frequenzzählermodul beschrieben ist.

von Ingo L. (corrtexx)


Lesenswert?

Mike A. schrieb:
> Probiers mal mit einem reziproken Zähler, wie er z.B. im Artikel
> Frequenzzählermodul beschrieben ist.
Es funktioniert alles, es geht nur um den Messfehler bei 1500 U/min.
Es ist mehr oder weniger nur eine theoretische Problemstellung, nämlich 
die, wie berechne ich den Messfehler bei Drehzahl n.


Danke,
Ingo

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Ingo L. schrieb:
> Die leite ich aus einem Quarz ab, der natürlich auch seine Fehler hat,
> die ich aber vernachlässige. Die 204,8ms leite ich aus meinen Systemtakt
> x 2048 ab, mein Systemtakt beträgt demnach 10kHz...

 ???

von Mike A. (Gast)


Lesenswert?

Ingo L. schrieb:
> Es funktioniert alles, es geht nur um den Messfehler bei 1500 U/min.
> Es ist mehr oder weniger nur eine theoretische Problemstellung, nämlich
> die, wie berechne ich den Messfehler bei Drehzahl n.

Dann rechne einfach aus, wie viele Pulse minimal bzw. maximal in dein 
Torzeit fallen (je nach Phasenlage). Statistisch musst du dir dann 
überlegen, wie deine Fehlerangabe genau normiert sein soll. Da du dabei 
keine Normalverteilung hast, greifen dir dort üblichen Maße wie 1-Sigma, 
2-Sigma ... (je nach Signifikanz) natürlich nur bedingt.

von m.n. (Gast)


Lesenswert?

Ingo L. schrieb:
> Es ist mehr oder weniger nur eine theoretische Problemstellung, nämlich
> die, wie berechne ich den Messfehler bei Drehzahl n.

In grober Näherung: n + unendlich
Sag Deinem Lehrer, er soll sinnvolle Fragen stellen.

von Mike A. (Gast)


Lesenswert?

Ingo L. schrieb:
> es geht nur um den Messfehler bei 1500 U/min

m.n. schrieb:
> In grober Näherung: n + unendlich

Schwarzmaler ...

von Ingo L. (corrtexx)


Lesenswert?

Mike A. schrieb:
>> In grober Näherung: n + unendlich
>
> Schwarzmaler ...
Nein, er hat nur die Hälfte gelesen. Sonst wüsste er das es bei 1500 
U/min nicht n + unendlich sondern n = 1 ist. Inzwischen konnte ich mir 
die Frage selber beantworten.


Danke

von Ingo L. (corrtexx)


Lesenswert?

Hier nochmal eine allgemeine Berechnungsgrundlage:

Np = 1/Ttor * 60
A = Np / Nist


Np = nötige Impulszahl pro Umdrehung für U/min Auflösung
Nist = tatsächliche Impulszahl pro Umdrehung
A = tatsächliche Auflösung

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.