Forum: Mikrocontroller und Digitale Elektronik Drehzahlmessung für Leistungsprüfstand


von Michael Schmidt (Gast)


Lesenswert?

Hallo

Ich muss für meinen Leistungsprüfstand eine schnelle (sowohl häufige als 
auch latenzarme) Drehzahlmessung durchführen und an einen PC übertragen.
Hierzu hatte ich bereits einen Handdrehzahlmesser RS232 getestet und für 
ungeeignet befunden da die Messung etwa 2sec dauert und dann noch eine 
Latenz zum PC von etwa 1sec besteht.
Nun habe ich mir:
-Arduino Uno R3
-Impusgeber SM Modellbau
 http://www.sm-modellbau.de/shop/product_info.php?products_id=33&cPath=11

Der impulsgeber hat Masse 3,3V Versorgungsspannung Masse und die 
Impulsleitung (bei magnetkontakt 3,3V)

Nun zu meinem Problem ich bin absoluter Neuling im Bereich Arduino und 
benötige Unterstützung um zu einer Lösung zu kommen.

Welcher Lösungsansatz scheint euch der beste
-Zeitmessung zwischen den Impulsen und Hochrechnung
-Impulszählung mit Zeitspanne
-ODER NOCH ETWAS VIEL BESSERES?

vielen Dank im Vorraus

Michael Schmidt
www.rcmk-tuning.de

von alex (Gast)


Lesenswert?

Hallo,

da kein Budget genannte würde, schlage ich mal einen Inkrementalgeber 
(zB mit 512 oder 1024 Impulsen pro Umdrehung vor). Den muss man dann nur 
mit nem µC auswerten, den Winkel ableiten und die Werte an den PC 
schicken.

MfG

von Clemens S. (zoggl)


Lesenswert?

wenn es um verbrennungsmotoren geht und du nur einen impuls pro 
umdrehung hast würde ich deisen mit einem timer stoppen.
den gleitenden mittelwert der letzten 16 messungen dann über rs 232 an 
den PC senden.

das sollte alles ohne werkliche verzögerung gehen

von Udo S. (urschmitt)


Lesenswert?

Schnelle Messung hast du wenn du die Zeit für eine oder gar nur für den 
Bruchteil einer Umdrehung misst.
Impulse erhälst du induktiv oder über Lochscheibe und Lichtschranke, bzw 
Reflexlichtschranke und Farbmarkierung auf Scheibe/Welle.
Was günstig ist hängt von der maximalen Drehzahl ab.
Wenn die sich im Bereich von max. 1000 U/sekunde bewegt, dann nimmt man 
den Timer und lässt den die Zeit zwischen 2 Impulsen messen.

Man benötigt dann natürlich die Dauer von einer Umdrehung für die 
Messung, also bei langsamer Drehzahl dauert die Messung länger.
Ggf muss man dann einen Timerüberlauf berücksichtigen oder mittels 
Incrementalgeber nur einen Bruchteil einer Umdrehung berücksichtigen.

von m.n. (Gast)


Lesenswert?

für einen Kanal:
Beitrag "einfache Drehzahlmessung mit ATmega88"
für 4 Kanäle:
Beitrag "4-Kanal Drehzahlmessung mit ATmega88"
oder etwas fertiges mit ATtiny4313, was per RS232 die Daten ausgibt:
http://www.mino-elektronik.de/fmeter/neue_versionen.htm#aa

Mit einem Impulsgeber, der einen Impuls/Umdrehung liefert, ist mit jeder 
Umdrehung ein neuer Meßwert verfügbar. Für langsame Umdrehungen, kann 
man einen Geber verwenden, der auch 10 oder 1000 Impulse/Umdrehung 
liefert. Die gezeigten Schaltungen machen das alles noch mit.
Allerdings wirkt die serielle Datenausgabe bei hohen Frequenzen etwas 
als Bremse.
Nehmen wir mal einen Ergebnisstring mit 8 Zeichen, der braucht bei 
19200Bd rund 4ms, bis er vollständig übertragen ist. Ich denke, mit 
dieser Latenzzeit kann man leben.

Auf dem Arduinoboard könnte das laufen, wenn Du anstatt des ATmega328 
den pinkompatiblen ATmega88 verwendest.

von Michael Schmidt (Gast)


Lesenswert?

Ok also die Hardware habe ich ja bereits bestellt :
-arduino uno mit atmega 328
- induktiver Drehzahlsensor 3,3v liefert pro Umdrehung einen 3,3v Impuls

Was bedeutet pinkompatibler atmega88 ?
Wird das mit dem arduino uno also nicht funktionieren?


Die Drehzahl soll gemessen werden von 6000U/min bis 22000U/min.

Habt ihr möglicherweise simple Codeschnipsel parat wie ich die Zeit 
zwischen
zwei Impulsen seriell sende?
Oder auch in einer Zeitspanne von 250ms die Impulse zähle und das rohe 
oder errechnete
Ergebnis sende.


Danke schonmal für eure Antworten
Michael Schmidt
http://www.rcmk-tuning.de

von Stumpf (Gast)


Lesenswert?

Welche Drehzahl willst du messen?

Das Hinterrad bzw. die beschleunigte Masse? Oder doch die Motor Drehzahl 
wie man aus den 6000rpm - 22000rpm sehen kann?

Für welche Geschwindigkeit willst du das auslegen? 100km/h oder auch 
über 300km/h?

Das ändert die Anforderungen zu den Sensoren!

Gruß

von aGast (Gast)


Lesenswert?

Stumpf schrieb:
> Für welche Geschwindigkeit willst du das auslegen? 100km/h oder auch
> über 300km/h?

Für 0 Km/h siehe ersten Post des TO -> Leistungsprüfstand.

von m.n. (Gast)


Lesenswert?

Michael Schmidt schrieb:
> Was bedeutet pinkompatibler atmega88 ?
> Wird das mit dem arduino uno also nicht funktionieren?

Das bedeutet, dass der ATmega88 in die Fassung des ATmega328 paßt und 
sich intern nur durch kleinere Speicher, etwas geänderten 'fuses' und 
Vektortabelle unterscheidet.
Das betreffende Datenblatt gilt für ATmega48/88/168/328.
Einen Link mit ser. Ausgabe hatte ich ganz vergessen:
http://www.mino-elektronik.de/7-Segment-Variationen/LCD.htm#led2

Von der Schaltung brauchst Du nur den ATmega328. Dein 3,3V Sensorsignal 
kommt an PD6(AIN1) und der Eingang PC1(ADC1) braucht einen Widerstand 
10k-47k gegen 0V (GND), damit die Saklierung auf 'Drehzahl' gestellt 
wird.
Der Rest der gezeigten Schaltung nebst Display kann total entfallen.


Im Programm muß die F_CPU auf 16MHz und die MESSZEIT sollte vorerst auf 
30 eingestellt werden. Die MESSZEIT legt die höchste Meßrate in 'ms' 
fest und könnte auch auf 10 gestellt werden, um 100 Messungen/s 
durchzuführen. Allerdings wirkt dann die ser. Ausgabe als Bremse. Da 
wären dann 38400 oder 57600Bd besser.

Die ser. Ausgabe kann über die USB-Schnittstelle erfolgen; wie das geht 
ist mir bei dem Arduino aber nicht bekannt.
Ich fahre heute in die Große Stadt und werde mir mal einen UNO R3 
besorgen; vielleicht mache ich dafür noch eine gesonderte Version. Mich 
interessiert, wie gut der erzeugte Code aussieht und ich muß mal wieder 
etwas spielen :-)

von Michael Schmidt (Gast)


Lesenswert?

Stumpf schrieb:
> Welche Drehzahl willst du messen?
>
> Das Hinterrad bzw. die beschleunigte Masse? Oder doch die Motor Drehzahl
> wie man aus den 6000rpm - 22000rpm sehen kann?
>
> Für welche Geschwindigkeit willst du das auslegen? 100km/h oder auch
> über 300km/h?
>
> Das ändert die Anforderungen zu den Sensoren!
>
> Gruß

Also dann mal komplett

Für die Leistungs und Drehmomentenmessung von RC Motoren baue ich einen 
Prüfstand.
Zur Erstellung eines Leistungsdiagramms muss von dem Motor eine 
Schwungmasse beschleunigt werden, währenddessen werden Drehzahl und das 
anliegende Drehmoment aufgezeichnet und die Leistung errechnet.

Eine Waage zur Drehmomentaufzeichnung habe ich bereits sie Sendet per 
RS232 Werte an den PC.
Ein Handdrehzahlmesser mit RS232 hat sich als VIEL VIEL zu langsam in 
der Drehzahlermittlung und Übertragung erwiesen weshalb ich nun einen 
bauen muss.

Also gemessen wird die Drehzahl direkt am Motor bis maximal 22000rpm

von Udo S. (urschmitt)


Lesenswert?

Michael Schmidt schrieb:
> Eine Waage zur Drehmomentaufzeichnung habe ich bereits sie Sendet per
> RS232 Werte an den PC.

Warum misst du noch das Drehmoment, wenn du eine Schwungmasse 
beschleunigst?
Über die Beschleunigung kannst du das Drehmoment berechnen.

Wie willst du die Messwerte synchronisieren, wenn du Drehmoment und 
Drehzahl beide an den PC schickst? Der PC ist nicht echtzeitfähig.

Normalerweise erfasst man bei so einem dynamischen Motorprüfstand die 
Zeit für jede Umdrehung und schickt die an den PC.
Daraus errechnet sich dann die Drehzahl über die Zeit und die 
Beschleunigung und bei bekanntem Trägheitsmoment der Schwungmasse das 
Drehmoment.

von Michael Schmidt (Gast)


Lesenswert?

Udo Schmitt schrieb:
> Warum misst du noch das Drehmoment, wenn du eine Schwungmasse
> beschleunigst?
> Über die Beschleunigung kannst du das Drehmoment berechnen.

Naja erstens kann ich diese Berechnung nicht vornehmen und ich wüsste 
auch nicht wer, und obendrein gibt's noch ne Getriebeuntersetzung zur 
Schwungmasse 6:1.

Ich denke das eine echte Messung das genauere ist und da das Drehmoment 
nur langsam und gleichmäßig sinkt und steigt kommt es auf einen kleinen 
Versatz zwischen den beiden Messgrößen nicht an.

Michael Schmidt
http://www.rcmk-tuning.de

von Stumpf (Gast)


Lesenswert?

Okay gut,

ich habe sowas für einen Motorrad Prüfstand gebaut.
Als Abnehmer haben wir eine Impulsscheibe gefräßt mit 20 Zähnen pro 
Umdrehungen mit einem Tastverhältnis von 50%. Diese werden dann mit 
einem Impulsgeber abgetastet.
Allerdings liegt hier die maximale Frequenz bei ca. 300Hz. Denke das ist 
für dich zu niegdrig.

Gibt aber auch schnellere mit 5khz sind aber auch teurer.

Gruß

von Michael Schmidt (Gast)


Lesenswert?

m.n. schrieb:
> Von der Schaltung brauchst Du nur den ATmega328. Dein 3,3V Sensorsignal
> kommt an PD6(AIN1) und der Eingang PC1(ADC1) braucht einen Widerstand
> 10k-47k gegen 0V (GND), damit die Saklierung auf 'Drehzahl' gestellt
> wird.
> Der Rest der gezeigten Schaltung nebst Display kann total entfallen.

Ok AIN1 3,3V und GND ist klar aber wo ist auf dem Board ADC1?

Habe hier mal ein Bild mit den vermutlich zu verwendenen Pins.
http://www.rcmk-tuning.de/files/arduino.jpg
Wo jedoch ist besagter PC1(ADC1)?

Michael Schmidt
http://www.rcmk-tuning.de

von amateur (Gast)


Lesenswert?

Das ist ein Job, bei dem sich auch der Leistungsschwächste Arduino fast 
zu Tode langweilt.
Reich Dir überhaupt die Messzeit und damit verbunden auch die 
Messgenauigkeit mit einem Tick pro Runde?
Bei so etwas misst man am Einfachsten die Zeit zwischen zwei Runden.
Das Programm hierfür kannst Du Dir wahrscheinlich aus den mitgelieferten 
Beispielen zusammenkleben.
Am aufwändigsten wird wohl sein festzustellen, ob das Teil eine stabile 
Drehzahl erreicht hat oder noch beschleunigt bzw. bereits abbremst.
Alternativ schickst Du auf Teufel-Komm-Raus Messwerte und überlässt es 
dem Empfänger, die ihm genehmen herauszuklauben.

von m.n. (Gast)


Lesenswert?

Michael Schmidt schrieb:
> Ok AIN1 3,3V und GND ist klar aber wo ist auf dem Board ADC1?

Dein mit A1 bezeichneter Pulseingang ist ADC1; hier muß der Widerstand 
angeklemmt werden.
Bei der oberen Reihe ist Pin7 der Pulseingang PD7/AIN1.

von m.n. (Gast)


Lesenswert?

amateur schrieb:
> Reich Dir überhaupt die Messzeit und damit verbunden auch die
> Messgenauigkeit mit einem Tick pro Runde?

Bei 6000 U/min beträgt die minimale Messdauer 10ms und das Ergebnis kann 
mit dem 16MHz Takt 5-stellig ausgewertet werden. Das sollte doch 
reichen!

von Lachsschokolade (Gast)


Lesenswert?

Die Sache ist relativ einfach. Habe mal vor ca. 18 Jahren die Hardware - 
Software dazu für Jemand gemacht. Frag mich aber bitte nicht mehr nach 
den Details, dazu ist es zu lange her.

Es ist einfacher und günstiger einen dynamischen Leistungsprüfstand mit 
Schwungmasse zu bauen als einen statischen mit Bremse und 
Drehmomentmessung.

Das Massenträgheitsmoment der Welle und der Schwungscheibe kann man 
relativ einfach berechen. Die Drehzahl kann man entweder über eine 
Taktscheibe aus Alu und einer Lichtschranke oder über ein ZAHNRAD 
messen. Wie schon erwähnt wurde ist so was für einen Arduino keine 
Herausforderung.


Man braucht dazu 2 Timer. Der 1. Timer leitet z.B. alle 10ms eine 
Drehzahlmessung ein. Der 2. Timer misst die Drehzahl. Und jedes mal wird 
dann der Wert über USB oder RS232 an de PC geschickt.Der PC rechnet 
danach aufgrund der Winkelbschleunigung und Massenträgheitsmoment das 
Drehmoment und über die Drehzahl dann die Leistung bei der anliegenden 
Drehzahl aus.

Das ist keine Hexerei. Einfach Schritt für Schritt vorwärts gehen.
_Zuerst mal Drehzahl sprich Zeit zwischen 2 Impulsen mit einem Timer 
messen.
_Dann mit dem 2. Timer diese Messung alle 10ms einleiten und Resultat an 
den PC schicken. Auch für PC sind dies wenige Daten die hier verarbetet 
werden müssen.

Bei der Schwungmasse besser im Durchmesser sparen dafür die Länge 
grösser machen. Damit wird die Umfangsgeschwindigkeit nicht zu hoch.


Hier noch ähliche Projekte:

Nitro RC Car Engine X-DYNO with Velocity RC Magazine
http://www.youtube.com/watch?v=N7tqEIDgz3w

Saw Dyno.AVI
http://www.youtube.com/watch?v=K7lITK8a6vs

Small Engine Dyno In Action
http://www.youtube.com/watch?v=HSFJ2hUnMLw

RC inertia engine dyno
http://www.youtube.com/watch?v=uxsN70uAdqA

dyno
http://www.youtube.com/watch?v=Zat1Sd54HjM

von amateur (Gast)


Lesenswert?

@m.n.

Es ist doch immer wieder schön zu sehen, wie sich jemand aus einem 
Bündel von Fragen und Problemen was Einfaches heraussucht und natürlich 
dann auch beantworten kann.

von Patrick W. (paddy)


Lesenswert?

Lachsschokolade schrieb:
> Bei der Schwungmasse besser im Durchmesser sparen dafür die Länge
> grösser machen. Damit wird die Umfangsgeschwindigkeit nicht zu hoch.

Dass man etwas acht geben sollte auf die Umfangsgeschwindigkeit ist 
richtig. Aber man sollte auch beachten, dass der Radius der bewegten 
Masse einen größeren Einfluss hat wie die Länge.
Die Länge geht einfach ein in das Trägheitsmoment. Der Radius bei einem 
Zylinder mit hoch 4!

macht dann

von Patrick W. (paddy)


Lesenswert?

PS: Da Drehmomentmesswellen nicht ganz günstig sind, würde ich an deiner 
Stelle mal probieren, ob es nicht reicht die Drehzahl aufzuzeichnen und 
mit bekanntem Trägheitsmoment in Drehmoment und Leistung umzurechnen.

von Michael Schmidt (Gast)


Lesenswert?

m.n. schrieb:
> Dein mit A1 bezeichneter Pulseingang ist ADC1; hier muß der Widerstand
> angeklemmt werden.
> Bei der oberen Reihe ist Pin7 der Pulseingang PD7/AIN1.

Super danke :)
also folgenden Wiederstand drauf und los kanns gehen !?
http://www.conrad.de/ce/de/product/405370/12-W-Kohleschicht-Widerstand-10-k-axial-bedrahtet-Bauform-0411-05-W-5-/?ref=search&rt=search&rb=1

Nochmal zurück zur Praxis der Drehzahlmessung

Also ich könnte mir vorstellen da die Impulse pro Sec mit 100 - 420 doch 
recht hoch sind und könnte mir vorstellen ein art "Plausibilität 
Mitzuprüfen" der Messwert wird am Rechner MAXIMAL alle 250ms benötigt.
Schneller kann muss aber nicht die Schnittstelle hat ja sicher auch eine 
Leistungsgrenze.

ist es denkbar 10 mal den abstand zwischen den Impulsen zu messen
auf Plausibilität zu prüfen also z.B. Impulse mit mehr als 15% 
Abweichung zum Mittelwert fliegen raus und aus den restlichen wird der 
Durchschnitt an den PC gesendet?


Michael Schmidt
http://www.rcmk-tuning.de

von Lachsschokolade (Gast)


Lesenswert?

>Also ich könnte mir vorstellen da die Impulse pro Sec mit 100 - 420 doch
>recht hoch sind und könnte mir vorstellen ein art "Plausibilität
>Mitzuprüfen" der Messwert wird am Rechner MAXIMAL alle 250ms benötigt.
>Schneller kann muss aber nicht die Schnittstelle hat ja sicher auch eine
>Leistungsgrenze.

Wie gesagt, weder für die Schnittstelle noch für den Arduino ist so eine 
Herausforderung. Der Arduino schläft dabei schon fast ein und dem USB 
geht es ählich. Mein Projekt ging noch mit RS232 und auch dies ging 
problemlos.

Wenn du alle 250ms messen willst, dann brauchst du aber eine grössere 
Schwungmasse damit der Motor nicht so schnell hochbeschleunigt und du 
eine entsprechende Auflösung kriegtst.

Du kannst ganz locker 20,50 oder 100/Sek. messen. Du musst auch nicht 
die Anzahle Impulse zählen sondern kannst bei einer Taktscheibe z.B. mit 
4Loch die Zeit dazwischen messen. So was kann man auf verschieden Arten 
umsetzten.

von Michael Schmidt (Gast)


Lesenswert?

Patrick W. schrieb:
> PS: Da Drehmomentmesswellen nicht ganz günstig sind, würde ich an deiner
> Stelle mal probieren, ob es nicht reicht die Drehzahl aufzuzeichnen und
> mit bekanntem Trägheitsmoment in Drehmoment und Leistung umzurechnen.

Ja ich würde gerne diese Information zusätzlich auswerten falls ich 
jemanden finde der mir bei der Berechnung hilft.

Das tatsächliche Drehmoment wird jedoch in jedem Fall ausgewertet da 
eine Waage bereits vorhanden ist.
Es wird an einem festen Messpunkt 200mm entfernt von der 
Kurbelwellenmitte und auch auf einer horizontalen Achse zur Kurbelwelle 
gemessen und der ermittelte wert in Newtonmeter umgerechnet.

Falls du die Massenträgheit berechnen kannst würde ich gerne die
"Errechnete Leistung" zusätzlich in der Prüfstandssoftware verwenden.

Michael Schmidt
http://www.rcmk-tuning.de

von Michael Schmidt (Gast)


Lesenswert?

Lachsschokolade schrieb:
> Wenn du alle 250ms messen willst, dann brauchst du aber eine grössere
> Schwungmasse damit der Motor nicht so schnell hochbeschleunigt und du
> eine entsprechende Auflösung kriegtst.

Ja das ist noch eine Unbekannte die ich gern beseitigt wüsste.

Zum Motor:
-ca 8 PS
-ca 5Nm Drehmoment
- Messdrehzahl 6000-22000

zum Prüfstand
- Übersetzung Motor zu Schwungmasse 6:1

Schwungmasse mit 50,1 Kg und 41cm Durchmesser
ca80% der Messe des Schwungrades befinden sich auf den
äußeren 5cm des Radius.

hast du ne Schätzung oder Berechnung parat wie lange der Meßvorgang 
dauern könnte?
ich denke ok wäre alles von 20-60sec.

Michael Schmidt
http://www.rcmk-tuning.de

von Lachsschokolade (Gast)


Lesenswert?

>> PS: Da Drehmomentmesswellen nicht ganz günstig sind, würde ich an deiner
>> Stelle mal probieren, ob es nicht reicht die Drehzahl aufzuzeichnen und
>> mit bekanntem Trägheitsmoment in Drehmoment und Leistung umzurechnen.

In 99.9% aller statischen Leistungsprüfstande wird das Drehmoment über 
eine Bremse gemessen. Dazu braucht es keine Drehmomentmesswellen.

>Das tatsächliche Drehmoment wird jedoch in jedem Fall ausgewertet da
>eine Waage bereits vorhanden ist.

Dies ist aber ein statischer Prüfstand. Dies ist was ganz anderes. Dazu 
braucht es eine Bremse, wie z.B. Wirbelstrom, Wasserwirbel oder rein 
mechanisch.  Dafür braucht man kein Schwungrad. Die Leistung die die 
Bremst musst du übringes in Form von Wärme noch abführen. Bei einem 
dynamischen Prüfstand wie ich ihn beschrieben habe braucht man nur ein 
Schwungrad und damit wird über die Winkelbschleunigung das Drehmoment 
errechent.


>Falls du die Massenträgheit berechnen kannst würde ich gerne die
>Errechnete Leistung" zusätzlich in der Prüfstandssoftware verwenden.

Für was brauchst du dies wenn du das Drehmoment direkt messen willst?

von Udo S. (urschmitt)


Lesenswert?

Lachsschokolade schrieb:
> Dies ist aber ein statischer Prüfstand.

So wie ich das sehe baut er durch die große Schwungmasse einen 
quasistatischen Prüfstand auf.
Die Drehzahl läuft langsam auf die max. Drehzahl hoch und dann wird wohl 
der Versuch enden.
Dadurch braucht er keine Bremse und keine Regelung dafür.

von Michael Schmidt (Gast)


Lesenswert?

Lachsschokolade schrieb:
> Dies ist aber ein statischer Prüfstand. Dies ist was ganz anderes. Dazu
> braucht es eine Bremse, wie z.B. Wirbelstrom, Wasserwirbel oder rein
> mechanisch.  Dafür braucht man kein Schwungrad. Die Leistung die die
> Bremst musst du übringes in Form von Wärme noch abführen. Bei einem
> dynamischen Prüfstand wie ich ihn beschrieben habe braucht man nur ein
> Schwungrad und damit wird über die Winkelbschleunigung das Drehmoment
> errechent.


Warum sollte das nicht mit einer Schwungmasse funktionieren?
Bei Prüfständen mit Wirbelstrombremsen kannst du halt eine festen 
Drehzahl belasten.

Nach meinem Verständnis versucht der Motor immer mit aller Kraft die 
Schwungmasse zu beschleunigen und daher lässt sich die daraus 
resultierende gleich große Gegenkraft mit einer Waage messen.

Wenn ich da einen Denkfehler habe bin ich für Aufklärung dankbar

Michael Schmidt
http://www.rcmk-tuning.de

von Udo S. (urschmitt)


Lesenswert?

Interessant wäre hier die Auswertung des Drehmoments. Da ein Einzylinder 
Verbrenner alles andere als ein lineares Drehmoment erzeugt und die 
Messung wohl zwischen Motor und Schwungmasse erfolgt, dürfte das wohl 
die anspruchvollste Auswertung werden.
Das Drehmoment über die Rotationsbeschleunigung und das Trägheitsmoment 
ermitteln hat den netten Vorteil, daß man direkt das mittlere Drehmoment 
erhält.

von Lachsschokolade (Gast)


Lesenswert?

>Interessant wäre hier die Auswertung des Drehmoments. Da ein Einzylinder
>Verbrenner alles andere als ein lineares Drehmoment erzeugt und die
>Messung wohl zwischen Motor und Schwungmasse erfolgt, dürfte das wohl
>die anspruchvollste Auswertung werden.

Wie gesagt dazu braucht es nur ein genügend grossen Schwundgrad. Dies 
bügelt die Drehomentspitzen ziemlich. Das gleiche Problem hast du auch 
mit der statischen Messung auch. Im Gegenteil dort sind die Spitzen 
sogar noch grösser. Bei einem statischen Prüstand habe ich ebenfalls 
mitgewirkt. Die Schwankungen sind da viel viel grösser. Die muss man 
dort mechanisch und mathematisch ausbügeln.  Dazu kommt dass statische 
Prüfständmessungen für den Motor besonders wenn die Messung zu langsam 
erfolgt eher schädlich sind als dynamische Messungen.

Ich bin über 30 Jahre im Modellbau und habe mich viele Jahre sehr 
intensiv mit Tuning von Modellmotoren mit Glühzündung und Funkenzündung 
beschäftigt.
Und zum Thema Genaugigkeit wird meistens mit Kanonen auf Spatzen 
geschossen. Die meisten Modellmotoren unterliegen grossen Schwankungen 
alleine schon bei Wetter-und Temperaurwechsel oder Lageänderung.

von Udo S. (urschmitt)


Lesenswert?

Lachsschokolade schrieb:
> Wie gesagt dazu braucht es nur ein genügend grossen Schwundgrad. Dies
> bügelt die Drehomentspitzen ziemlich. Das gleiche Problem hast du auch
> mit der statischen Messung auch. Im Gegenteil dort sind die Spitzen
> sogar noch grösser.

Das ist es doch gerade, er misst so wie ich das verstanden habe zwischen 
Motor und Schwungmasse!

Lachsschokolade schrieb:
> Und zum Thema Genaugigkeit wird meistens mit Kanonen auf Spatzen
> geschossen.

Völlig richtig, darum genügt auch die ungefähre Ermittlung des 
Trägheitsmoments des Prufstands und die Zeit pro Umdrehung um damit die 
Rotationsbeschleunigung zu ermittlen.

von Michael Schmidt (Gast)


Lesenswert?

Also da mir eine Berechnung der Massenträgheit nicht möglich ist
(nichtmal ungefähr) ist die Auslegung auf genannte Schwungmasse auch 
optional es kommt auch ein Generator in frage wo sich die erzeugte 
Leistung sogar messen ließe (bekannter Wirkungsgrad des Gesamtsystems 
vorrausgesetzt).

Aber bisher habe ich noch nicht die Drehzahl des Motors.
Habt ihr eine beispielhafte Arduino Programmierung oder eine
detaillierte Liste der zu verwendenden Codeschnipsel durch die ich mich 
durcharbeiten kann oder wie müsste ich da nun rangehen?

Michael Schmidt
http://www.rcmk-tuning.de

von Lachsschokolade (Gast)


Lesenswert?

>Generator in frage wo sich die erzeugte
>Leistung sogar messen ließe (bekannter Wirkungsgrad des Gesamtsystems
>vorrausgesetzt).

Vom Generator rate ich dir ab. Dies ist dann wirklich ungenau. 
Generatoren für solche Leistungen mit einem Wirkungsgraddiagramm wirst 
du wohl kaum kriegen. Dann kommmt noch hinzu, dass sich die Wicklung 
erwärmt und nochmals alles verfälscht.

von Michael Schmidt (Gast)


Lesenswert?

Lachsschokolade schrieb:
> Dann kommmt noch hinzu, dass sich die Wicklung
> erwärmt und nochmals alles verfälscht.

Ok danke das hatte ich tatsächlich nicht bedacht.

Aber Wichtig ist nun das ich zu einem Funktionierenden Arduino 
Drehzahlmesser komme.

Bräuchte da jetzt dringend Unterstützung beim Programmieren des 
Arduino!!

von Lachsschokolade (Gast)


Lesenswert?

>Bräuchte da jetzt dringend Unterstützung beim Programmieren des
>Arduino!!

Wie gesagt ein Schritt nach dem anderen. Dann wirds auch was. Wenn alles 
schon in 1 Woche fertig sein muss, wird es wohl nix.

von Patrick W. (paddy)


Lesenswert?

Michael Schmidt schrieb:
> Also da mir eine Berechnung der Massenträgheit nicht möglich ist
> (nichtmal ungefähr) ist die Auslegung auf genannte Schwungmasse auch
> optional...

Ich hoffe es ist dir möglich einfache Recherchen im Internet anzustellen 
und Berechnungen mit dem Taschenrechner auszuführen.

Hier ein paar Tipps und Stichwörter:

Massenträgheitsmoment. Das kannst du näherungsweise für dein Schwungrad 
gerechnen. Eventuell musst du es aus mehreren Teilen zusammensetzten 
(rechnerisch, also nicht auseinander sägen ;-)). Z.B. Welle als 
Zylinder, Speichen als Hohlzylinder, Außenfläche auch als Hohlzylinder
http://de.wikipedia.org/wiki/Trägheitsmoment#Haupttr.C3.A4gheitsmomente_einfacher_geometrischer_K.C3.B6rper

Dann solltest du dir die Formeln der Rotation raus suchen. Das 
funktioniert ähnlich wie die geradlinige Bewegung.
Stichworte: Winkelgeschwindigkeit, Winkelbeschleunigung, Drehmoment, 
Leistung

Beachten musst du auch dein Getriebe.

Das solltest du mit etwas Recherche im Netz berechnen können. Ansonsten 
brauchst du dir gar nicht die Mühe machen und programmieren zu wollen.
Wenn du Fragen zu einzelnen Formeln oder Berechnungen hast dann her 
damit, aber sieh mir bitte nach, dass ich hier nicht ein Script von 
Physik I schreibe. ;-)

Edit:
http://m.schuelerlexikon.de/phy_abi2011/Groessen_zur_Beschreibung_der_Rotation.htm

von Michael Schmidt (Gast)


Lesenswert?

Ok habe mir mal die Funktion zur Pulszählung angeschaut:

> pulseIn()
>
> Beschreibung
>
> Liest einen Puls( HIGH oder LOW) auf einem Pin aus. Zum Beispiel, wenn  > value 
gleich HIGH ist, wartet pulseIn() bis der Pin auf HIGH geht,
> startet die Zeit, dann wird gewartet bis der Pin auf LOW ist und
> die Zeit wird gestoppt. Zurückgegeben wird die Länge des Puls in
> Mikrosekunden. Nach einer bestimmten Zeit wird 0 zurückgegeben,
> wenn kein Pulse kommt.


> Die Zeitzählung dieser Funktion wurde erfahrungsgemäß bestimmt und wird > bei 
längeren Pulsen Fehler anzeigen. Funktioniert mit Pulsen zwischen 10 > 
Mikrosekunden und 3 Minuten

Jedoch steht in der Funktionsbeschreibung 10ms bis 3min !?
bei 20000U/min sind es jedoch eher 3-4ms

-Meintet Ihr eine andere Funktion für die Zeitmessung oder geht das 
Trotzdem?

Michael Schmidt
http://www.rcmk-tuning.de

von m.n. (Gast)


Lesenswert?

Nachdem ich hier einen UNO R3 auf dem Tisch habe, stellt sich die 
Drehzahlmessung als super simpel dar.

Der Quelltext von 
http://www.mino-elektronik.de/progs/avr/FMETER_LED328/FMETER_LED328.c 
wird in das Editorfenster geladen. Zunächst reicht es aus, F_CPU auf 
16000000 einzustellen, das Programm zu übersetzen und einen 'Upload' zu 
starten.
Das Meßsignal muß, wie oben schon geschrieben, an AIN1 gelegt werden. 
Bei jeder Ausgabe blinkt die TXD-LED und ein Terminalprogramm, welches 
auf den von Arduino gewählten COM-Port mit 19200Bd eingestellt wird (bei 
mir ist es COM10), zeigt die ausgegebenen Meßwerte.

Abgesehen von der geänderten Taktfrequenz kann der Quellcode 1:1 
verwendet werden, kein setup() oder loop() sind notwendig. Die 
vorhandene main() wird anstandslos akzeptiert:
super simpel!

von Michael Schmidt (Gast)


Angehängte Dateien:

Lesenswert?

So ich bin schon mal ein Stück weiter.
Ich verwende nun den angehangenen Code um die Drehzahl zu ermitteln.
Das funktioniert ach recht gut jedoch würde ich gern 200ms lang
die ermittelten werte in einen Array laufen lassen und diesen dann 
Berechnen(Durchschnittswert der in den 200ms aufgelaufenen Messungen) 
und seriell das Ergebnis ausgeben.

Habt ihr einen guten Ansatz wie das zu realisieren ist?

Michael Schmidt
http://www.rcmk-tuning.de

von m.n. (Gast)


Lesenswert?

Michael Schmidt schrieb:
> Habt ihr einen guten Ansatz wie das zu realisieren ist?

Ich hatte Dir ja eine fixundfertige Lösung gegeben.
War sie Dir zu einfach oder zu schwer?

von Michael Schmidt (Gast)


Lesenswert?

Nun ja es war etwas viel drum rum z.B. LCD daher konnte ich mit meinen 
bescheidenen Arduino Programierkenntnissen den sketch nicht wirklich 
"verstehen".

Habe diese sehr kurze variante gewählt uns angepasst da sie wirklich 
nichts anderes macht als die ermittelte Drehzahl zu senden.
Jetzt fehlt mir zu meinem Glück nur noch oben genannte Funktion :)

Michael Schmidt
http://www.rcmk-tuning.de

von Mr. X (Gast)


Lesenswert?

Patrick W. schrieb:
> ..., dass der Radius der bewegten Masse
> einen größeren Einfluss hat wie die Länge.
http://www.wie-als.de/

von Matthias (Gast)


Lesenswert?

Michael Schmidt schrieb:
> Das funktioniert ach recht gut jedoch würde ich gern 200ms lang
> die ermittelten werte in einen Array laufen lassen und diesen dann
> Berechnen(Durchschnittswert der in den 200ms aufgelaufenen Messungen)
> und seriell das Ergebnis ausgeben.
>
> Habt ihr einen guten Ansatz wie das zu realisieren ist?

Statt über 200ms dauernd Drehzahlwerte zu bestimmen und dann zu mitteln, 
kannst du besser die Zeit für die Gesamtzahl der Umdrehungen innerhalb 
der 200ms verwenden, um daraus gleich die mittlere Drehzahl zu 
berechnen.

von m.n. (Gast)


Lesenswert?

Matthias schrieb:
> kannst du besser die Zeit für die Gesamtzahl der Umdrehungen innerhalb
> der 200ms verwenden,

#define MESSZEIT 200

siehe oben :-)

von Matthias (Gast)


Lesenswert?

m.n. schrieb:
> #define MESSZEIT 200
> siehe oben :-)

Nicht Torzeit=200ms, sondern Anzahl und Dauer der vollständigen 
Umdrehungen innerhalb des Zeitfensters. Sonst bekommt man Jitter rein, 
u.a. durch Wechsellastmomente.

von Michael Schmidt (Gast)


Lesenswert?

Ja das Problem ist das das deutlich ungenauer ist!
Denn bei 200ms Messzeit muss das Ergebnis für die Umrechnung in U/min 
mit 300 multipliziert werden was wiederum bedeutet das die angezeigte 
Drehzahl immer ein Vielfaches von 300 ist. Das ist unnötig ungenau da es 
ja besser geht!

Na kein Experte da der mir sagen kann ob das mit nem Array passt ?

Michael Schmidt
http://www.rcmk-tuning.de

von Matthias (Gast)


Lesenswert?

Michael Schmidt schrieb:
> Das ist unnötig ungenau da es ja besser geht!
Eben, s.o.
Wenn du nicht den vorgeschlagenen reziproken Zähler verwenden möchtest, 
könnte man einfach folgende Lösung umsetzen:

Nimm einen Timer, der alle 300ms Bescheid sagt und einen, der einen 
schnellen Takt zur Verfügung stellt.
1) Beim ersten Nulldurchgang der Welle merkt man sich die "Zeitanzeige" 
des schnellen Timers und beginnt Umdrehungen zu zählen.
2) Nach dem nächsten 300ms-Takt, wartet man auf den Nulldurchgang der 
Welle, liest wieder den schnellen Timer ab, bildet die Zeitdifferenz und 
berechnet anhand der Zahl der Umdrehungen die Drehzahl (passend skaliert 
über Fixkommarechnung) - fertig ist der genaue Mittelwert.
3) Den Zeitpunkt des Nulldurchganges merkt man sich wieder, setzt den 
Umdrehungszähler zurück und weiter geht's bei 2)

Keine 300er-Schritte, keine Rundereien, kein Array ...

von m.n. (Gast)


Lesenswert?

Matthias schrieb:
> Nicht Torzeit=200ms,

Wer redet denn von Torzeit?

> sondern Anzahl und Dauer der vollständigen
> Umdrehungen innerhalb des Zeitfensters.

Das passiert doch schon alles.
Ich geb's auf!

von m.n. (Gast)


Lesenswert?

Als Nachtrag und damit nicht jeder das Rad neu erfinden muß, eine 
angepaßte und abgemagerte Version für den Arduino UNO.

http://www.mino-elektronik.de/fmeter/fm_software.htm#bsp7

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.