PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Drehzahlerfassung



AndyTrendy
24.10.2008, 21:00
Hallo
Ich möchte die Drehzahl von 2 RB-35 Motoren von Conrad messen.
Um genau zu sein jede Drehzahl einzeln , um dan später per Regelung die Motoren möglichst genau synchron laufen lassen zu können.
Damit der Regler funktioniert brauche ich eine möglichst genau Drehzahlerfassung.

Aus diesem Grund wollte ich mal fragen mit welchen Sensoren ihr am liebsten arbeitet bzw die besten Erfahrungen gemacht habt.
zBsp Hallsensor oder Gabelichtschranke

mfg

Andy

RP6conrad
24.10.2008, 22:18
Welche sensor ist eigenlich nicht so wichtig. Die Auflösung ist sehr wichtig !! Das bedeutet wie kleiner, wie genauer du regelen kan. Wen moglich, soll das Drehzahl an der motorwelle erfasst werden. Dan hasst du die grosste Auflosung. Eine gute Regelung braucht 0.01 bis max 1 mm abgelegte Weg von robot pro Encoderflanke. Diese Flanke sollen dan durch ein Interrupt gezahlt werden.

oberallgeier
25.10.2008, 08:52
Hi AndyTrendy,

der Meinung bin ich auch, dass die Art des Sensors nicht so wichtig ist wie die Auflösung. 0,01 mm Wegauflösung ist wohl äusserst anspruchsvoll. Ich messe mit einer Gabellichtschranke an der Motorwelle, (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=344432#344432) habe eine Untersetzung 768:1 und 24mm-Rädchen. Das gibt bei mir rund 0,1 mm Wegauflösung für das Antriebsrad. Damit erreiche ich zusammen mit meiner (Integer-!!)-Regelung einen Geradeauslauf bei meinem kleinen Roboter (https://www.roboternetz.de/phpBB2/viewtopic.php?p=390196#390196) von deutlich unter +/- 1 mm auf 1 m Fahrstrecke bei Geradeausfahrt. Ich glaube, dass ich damit ganz gut liege.

AndyTrendy
25.10.2008, 14:03
Welche Auflsösung bzw wieviel Impulse liefert deine GLS pro Umdrehung ?
Und welche GBL benutzt du ?

oberallgeier
25.10.2008, 14:35
Welche Auflsösung bzw wieviel Impulse ... Umdrehung ? ... welche GBL ... ?Ich habe einen zweiflügeligen Unterbrecher an der Motorwelle, das ist im oben genannten Link (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=344432#344432) auch dargestellt. Das heißt, dass ich zwei Impulse pro Motorumdrehung bekomme. Die Lichtschranke, eine Sharp GP1S093HCZ, wurde so beschaltet, dass sie mir saubere Impulse liefert, (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=344795#344795) die ich mit den externen Interrupts abfrage (auf steigende Flanke). Ich messe also - genau genommen - rund 1500 Impulse je Radumdrehung bei maximalen Raddrehzahlen von derzeit noch etwas über 60/min.

RP6conrad
01.11.2008, 21:06
Meine RP6 robby hat 0.25mm/encoderflanke. Noch eine hinweis : bei nur 1 encoder kannst du nicht sehen in welche Richtung das Rad dreht. Du muss immer davon aus gehen das die Drehung in die Richtung ist wie der Motor angesteurt werd. Ist auch meistens so. Nur in Ausnahmefalle kann das anders sein : ein Steigung hoch fahren, dan darf das Rad sich zuruckdrehen nach Stillstand. Dafur gibts eine Lösung : zwei encoder pro rad die um 90° versetzt sein. Google mal auf quadratuur encoder. Wird naturlich fiel komplizierter. Jedes rad braucht dan 2 encoder, das sind schon 4 interrupts. Aber du weisst genau oder das Rad vor oder ruck dreht. Das wird gebraucht in jeden professionelle servosteurung. Diese encoder haben drei Ausgange : A,B und C-puls. A und B sind um 90° versetzt und haben eine Auflosung von ..tig Pulsen/Umdrehung. Der C-puls gibt auf eine bestimmte position ein (kurze) Puls/Umdrehung.

oberallgeier
01.11.2008, 21:39
Hallo RP6conrad,


... Lösung : zwei encoder pro rad die um 90° versetzt sein ...Jein. Es genügt, wenn man einen Ecoder hat und zwei "Lesestationen" - die gibts fix und fertig auch schon in einer Gabellichtschranke. (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=71&products_id=135) In dieser Lesestation sind einfach zwei Lichtschranken um n+0,5 Strichabstände versetzt eingebaut.

X-917
03.11.2008, 17:50
hallo,
Ich habe das gleiche problem wie du.
Könnte man vielleicht einen hallsensor am motorgehäuse anbringen und das wechselnde magnetfeld des elektromagneten messen? Das wäre bei einem getriebemotor präziser.
Grüsse

hacker
03.11.2008, 22:11
-> Ripplecount. Guck dir die Stromripple an und zähl. Grad bei Getriebmotoren ziemlich gut. Knifflig wird nur Start, Stop und Block. Aber das ist auch nur eine Sache des Algos.

X-917
03.11.2008, 22:46
@hacker:
Und wie geht das mit pwm?
Würden diese impulse nicht auch mitgezählt? :-k
Wenns funktioniert natürlich die beste lösung.
Lg

oberallgeier
03.11.2008, 22:55
... Und wie geht das mit pwm? ...Tja, das würde mich auch interessieren. Das hatte ich nämlich nie hinbekommen - oder vielmehr: ich konnte am Oskar nichts erkennen , auf das getriggert werden könnte. Aber ich hatte ja nur gaaaaanz kleine Motoren (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=344432#344432) *ggggg*.

X-917
03.11.2008, 23:12
Man könnte die PWM-Impulse mithilfe einer NAND-Logik aus dem Signal filtern. Allerdings würde man dann auch alle "richtigen" Impulse herausfiltern, die in dieser PWM-Phase eintreffen. (Verlust von Präzision)

hacker
04.11.2008, 14:40
Man kann die PWM Impulse wunderbar ausfiltern. Da geht wenn mans geschickt macht, nichts verloren.

X-917
04.11.2008, 15:51
Und wie macht mans geschickt? Denkst du an was konkretes? Bandpass z. B. ? Oder doch eher etwas digitales?

hacker
04.11.2008, 18:08
PWM ist im guten kHz Bereich. Deine Ripple liegen gut drunter. Aktiver Tiefpass 2. Ordnung mit steilem Abfall bei der fg geht wunderbar.

jeffrey
04.11.2008, 18:10
hoi,
hast du d<afür auch nen konktreten vorschlag, wie man die ripple erkennung elektroisch umsetzen könnte?
mfg jeffrey

hacker
04.11.2008, 18:17
Wenn man saubere Ripple rausfiltern kann, dann auf nen Komperator und zwar als Threshold das eigene Signal verschliffen. Also einfach ein passiven Filter davor. Dann hinkt das eine Signal immer schön nach und man hat "Schnittpunkte" -> astreine TTL Timpulse.

Wenn nicht (kommt auf den Motor an), dann abtasten und ein gescheiten Algo mit Erwartungsmodellen und Wahrscheinlichkeiten. Diesen wird man für Anlauf, Stop und Block der Motoren sowieso brauchen, weil du da keine Ripple sehen wirst.

Zu kämpfen hast du auch mit dem Bürstenfeuer. Aber auch das sollte sich mit nem Snubbernetwork und guter Masse elemenieren lassen.

jeffrey
05.11.2008, 14:00
Wenn man saubere Ripple rausfiltern kann, dann auf nen Komperator und zwar als Threshold das eigene Signal verschliffen. Also einfach ein passiven Filter davor. Dann hinkt das eine Signal immer schön nach und man hat "Schnittpunkte" -> astreine TTL Timpulse.

Wenn nicht (kommt auf den Motor an), dann abtasten und ein gescheiten Algo mit Erwartungsmodellen und Wahrscheinlichkeiten. Diesen wird man für Anlauf, Stop und Block der Motoren sowieso brauchen, weil du da keine Ripple sehen wirst.

Zu kämpfen hast du auch mit dem Bürstenfeuer. Aber auch das sollte sich mit nem Snubbernetwork und guter Masse elemenieren lassen.
hallo,
ich hatte das vor längerer zeit mal testweise versucht aufzubauen. mit dem oszi sah das ganze ja ganz gut aus, aber im prkatischen aufbau kam bei mir ziemlicher schrott raus. hab das dann aber auch nicht weiteruntersucht oder optimiert. theoretisch ist das ganze ja recht toll. deswegen meine frage, ob du das ganze schon mal prktisch angewendet hattes und es mit normalen hobbymitteln auf funktioniert hat.
mfg jeffrey

hacker
05.11.2008, 14:53
Hallo,

ein aktiver Tiefpass zweiter Ordnung mit Butterworth Charakteristik mit einer Grenzfrequenz bei ca. 1,4kHz lieferte sehr gute Werte.

Danach noch bisschen verstärken und gut war. Der größere Teil ist eigentlich die Softwarelösung. Diese erwarten eben eine bestimme Frequenz der Ripple, aufgrund der Motorspannung und sampled eben die Ripplekurve. Hier zeigt sich wieder das Abtasttheorem, da schon bei einer Abstastrate von nur 3fach höheren erwarteten Frequenz gut Ergebnisse liefert.

Und ob Ripple fehlt oder nicht, ist nicht ganz so tragisch. Die Software kann fehlende oder zu häufige Ripple reininterpretieren oder rausrechnen.
Zudem kommt, dass man ja pro Motorumdrehnung mehr Impulse hat (kommt auf den Motor an wieviele). für die eigentliche Umdrehnung der Achse hinter dem Getriebe stehen dann ausreichend Ripple zur Verfügung.

Leider bin ich momentan sehr beschäftigt. Vielleicht werde ich am WE bisschen Zeit finden und mal die ganzen Daten zusammen zu suchen.

Grüße,
hacker

jeffrey
05.11.2008, 23:49
hallo,
ja ok, so klingt das schon anders. wenn man mal

Hallo,

ein aktiver Tiefpass zweiter Ordnung mit Butterworth Charakteristik mit einer Grenzfrequenz bei ca. 1,4kHz lieferte sehr gute Werte.

Danach noch bisschen verstärken und gut war. Der größere Teil ist eigentlich die Softwarelösung. Diese erwarten eben eine bestimme Frequenz der Ripple, aufgrund der Motorspannung und sampled eben die Ripplekurve. Hier zeigt sich wieder das Abtasttheorem, da schon bei einer Abstastrate von nur 3fach höheren erwarteten Frequenz gut Ergebnisse liefert.

Und ob Ripple fehlt oder nicht, ist nicht ganz so tragisch. Die Software kann fehlende oder zu häufige Ripple reininterpretieren oder rausrechnen.
Zudem kommt, dass man ja pro Motorumdrehnung mehr Impulse hat (kommt auf den Motor an wieviele). für die eigentliche Umdrehnung der Achse hinter dem Getriebe stehen dann ausreichend Ripple zur Verfügung.

Leider bin ich momentan sehr beschäftigt. Vielleicht werde ich am WE bisschen Zeit finden und mal die ganzen Daten zusammen zu suchen.

Grüße,
hacker
mit dem hier vergleicht

Wenn man saubere Ripple rausfiltern kann, dann auf nen Komperator und zwar als Threshold das eigene Signal verschliffen. Also einfach ein passiven Filter davor. Dann hinkt das eine Signal immer schön nach und man hat "Schnittpunkte" -> astreine TTL Timpulse.
dann ist da doch scho ein großer unterschied.
meintest aufbau, war eher wie das 2. also das signal mit nem rc filter gefilter, sodass pwm einigermaßen rausdgefiltert wird. das ganze auf nen op als komperatror mit hyssteres und als refernzsignal das signal durch nen rc filter mit niedrigerer grenzfreauenz, damit auch die rippel weg sind. das ganze hat aber eher mäßig funktioniert.
mfg und gn8 jeffrey

X-917
06.11.2008, 16:54
Um nochmals auf meine Frage mit den Hallsensoren zurückzukommen, hat denn jemand hier im Forum einmal getestet, ob man das Magnetfeld eines Motors zur Drehzahlmessung benutzen kann?
Lg