PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rad Encoder (Schlitzscheibe die 2te)



smay
20.04.2004, 12:58
Hallo Forum,

Um nochmal die Diskussion etwas detailierter zu gestalten, werde ich mal schreiben, was ich mit dem Radencoder realisiert habe:

Ich habe mir eine Schlitzscheibe mit dem Postscript von http://massmind.org/techref/io/sensor/pos/enc/enc_ps.htm ausgedruckt. Einfach das Postscript bearbeitet und dann mit Ghostscript (Ghostview) ausgedruckt. Die Scheibe hat einen Durchmesser von 30mm und 50 Slots (d.h. 50 schwarze Striche und 50 weiße Striche). Gedruckt habe ich auf einer Laserfolie mit einem HP LaserJet 4050. Die Auflösung war ok, aber der Grad der Schwärzung war nicht ausreichend. Dazu später mehr.

Als Lichtschranke verwende ich den SFH9340 (Conrad 153833). Vorteil dieser Lichtschranke ist, daß die Auswerteschaltung schon integriert ist und ein TTL-Signal zur Verfügung steht.

Nach dem Zusammenbau habe ich leider festgestellt, daß die schwarzen Bereiche meiner Encoder-Scheibe nicht schwarz genug sind. Es kam immer noch so viel Licht durch, daß die Lichschranke kein Signal rauswarf. Nach langen Experimenten mit den Einstellungen meines Laserdurckers habe ich einfach 2 Scheiben zusammengeklebt, das brachte dann den gewünschten Erfolg. Daß die schwarzen Bereiche nicht dunkel genug sind, liegt wahrscheinlich an der Eigenschaft der Folie elektrostatische Felder zu verfälschen. Ob das mit einem Tintenstrahldrucker anders ist, habe ich noch nicht ausprobiert. Ich bin da eher skeptisch wegen der Auflösung.


Nachdem das Signal in Ordnung ist, nun zu meinem Hauptproblem: Die Anzahl der Slots ist viel zu gering für meine Anwendung. Ich wollte damit eigentlich die Geschwindigkeit und den Geradeauslauf meines Roboters regeln. Mein PID-Regler habe ich in C implementiert, er wird alle 100ms aufgerufen. In dieser Zeit bekomme ich jedoch nur maximal 13 Impulse und das ist viel zu wenig. Ich könnte die Zeitspanne jetzt auf 200ms vergrößern, dann bekomme ich aber noch größere Probleme mit Schwingungen in meinem Regelkreis. Eigentlich müßte ich die Zeit sogar noch veringern!


Und nun zur eigentlichen Frage: Wie kann man die oben genannten Probleme lösen? Anzahl der Slots auf der Scheibe vergrößern? Das macht meine Lichtschranke leider nicht mit. Oder den Motor (RB35-0100) umbauen? Wozu benutzt Ihr überhaupt die Radencoder?

ciao, Stefan.

Manf
20.04.2004, 13:18
Man kann, und tut es häufig, die Auflösung der Schaltung bis fast zur Auflösung des Druckers erhöhen, wenn man außer der bewegten Strichscheibe noch eine feste Strichscheibe oder den nötigen Ausschnitt davon in die Lichtschranke steckt (entsprechend fein justiert). Dieser Lamelleneffekt funktioniert dann bei beliebig breiten Lichtstahlen. Die maximale Intensität wird durch die Lamellen nur halbiert.
Manfred

Kjion
20.04.2004, 13:21
Hi,

ich hab mich auch schon mit dem Thema Motorreglung bzw. PID-Regler beschäftigt und mir auch ein Simulator dafür geschrieben. Damit konnte man schön mit den einzelnen Parametern spielen.
Dabei hat sich auch das von dir beschriebene Problem gezeigt -> Die Regelung wird ungenau bis unbrauchbar wenn man zu wenige Impulse pro Zeiteinheit bekommt. Das ganze lässt sich zwar du größere Zeiteinheiten kompensieren, allerdings hat das wiederum den Nachteil, das die Regelung dadurch sehr langsam wird...

Ich hab mir daher folgendes überlegt : Ich werde für meine PID-Regelung nicht die Anzahl der Impulse zu messen, sondern die Länge der einzelnen Impulse.
Das hat den Vorteil, dass man nicht erst eine bestimmte Anzahl von Impulsen abwarten muss, sondern im Prinzip jeden Impuls auswerten kann...
Die Länge des Impulses bildet dann den Eingangswert für die Regelung.

Hoffe das hilft dir weiter...

MfG Kjion

PS: Gibts eigentlich auch ein Hamburg in Island ? ;-)

smay
20.04.2004, 13:30
@Manf:

Die Lichtschranke hat schon einen sehr schmalen Schlitz vor den Empfänger. Ich weiß nicht, ob das viel bringen würde. Mit einem Phototransistor könnte man aber die Schaltschwelle beeinflussen. Vielleicht sollte ich doch mal eine andere Lichtschranke ausprobieren.

@Kijon:

Wie hast Du denn in Deiner Simulation den Motor modelliert?

Die Zeitdauer zwischen den Impulsen habe ich auch schon überlegt. Aber widerspricht das nicht dem Prinzip der konstanten Abtastzeit?

ciao, Stefan.

P.S. Nein, Hamburg ist leider Sehr Sehr weit entfernt. Aber man darf ja wohl noch träumen. :-)

Kjion
20.04.2004, 13:49
Naja, die Simulation war eher einfach als genau ;-) Sollte auch einfach nur zum Ausprobieren sein. Das heißt ich hab einfach eine vorgegene Funktion für den Zusammenhang zwischen Ausgabewert und Drehzahl angenommen ( keine Lineare, sonst wärs ja zu langweilig ;-) ). Man konnte aber auch so ganz gut die ganzen Sachen testen...


Aber widerspricht das nicht dem Prinzip der konstanten Abtastzeit?
Jein, man müsste halt die Regelung immer zu konstanten Zeiten aufrufen und in der Zwischenzeit im Hintergrund die Länge der Impulse messen ( vielleicht auch noch ne gleitende Mittelwertbildung drüber laufen lassen ) und diesen Wert dann in der Regelung benutzen...

MfG Kjion

Manf
20.04.2004, 14:18
Ich kann von der festen Lamellenscheibe noch einmal ein Bild machen, sie sieht aus wie das Strichgitter der Scheibe. Wenn man die Scheibe dann um einen feinen Strich verschiebt, dann wird es einmal vollständig dunkel und wieder hell, 5 mal pro millimeter. Das Licht fällt dabei durch eine große Zahl von Schlitzen gleichzeitig, die alle gleichzeitig zu und wieder aufgehen.
(Das geht wirklich). In der industriellen Meßtechnik ist das der erste Schritt, im zweiten Schritt mißt man die Amplitudenwerte des Lichtes und kommt damit auf eine weitere Steigerung um den Faktor 100, also auf 1-2um Mikrometer, davon wollte ich hier nicht anfangen.
Manfred

smay
20.04.2004, 14:40
Das klingt plausibel. Im Prinzip misst man dann sowas wie ein Moire-Muster.

Nur wie stellt man so eine Scheibe her? Ich habe ja schon geschrieben, daß die Laserdrucker-auf-Folie-Technik nicht so dolle Ergebnisse brachte. Kann man sowas Belichten lassen? Wie macht die industrielle Meßtechnik sowas?

@Kijon: Die Bilder sind cool. Sind aber noch heftige Überschwinger drin. :-)

ciao, Stefan.

Manf
20.04.2004, 17:03
Gif Bilder kann man den Drogerie Markt schicken gleich aus dem Computer heraus für 1-9 cent pro Abzug 9x13(plus Entwickeln). Vielleicht gibts da auch Dias oder Negative. Die gibts in jedem Fall im Prozess, aber zum Kaufen meine ich.
Manfred

23.09.2004, 20:53
Wie funktioniert eine Lichschranke?

23.09.2004, 21:00
Hallo Forum,
wie funktioniert eine Lichtschranke?Und kann man eigentlich damit die Geschwindigkeit messen?

23.09.2004, 21:18
zu a.)
siehe Google bzw. Verstand

zu b.)
Ja.

24.09.2004, 09:04
wie funktioniert eine Lichtschranke?Und kann man eigentlich damit die Geschwindigkeit messen?
Eine Lichtschranke funktioniert wie jede andere Schranke nur eben mit Licht. Die Geschwindigkeit misst man indem man feststellt in welche Strecke sie in welcher Zeit zurückgelegt hat.

Albanac
24.09.2004, 12:21
Mit einer gröseren Scheibe kann man höhere Genauigkeit (mehr slots) erzielen

herrma
27.09.2004, 19:29
Hi,
habe ein vergleichbares Problem per Impulslängenmessung gelöst.
Dabei ging es zwar um die Geschwindigkeit einer Wasserskiseilbahn, also etwas größer als Dein Robi, aber das Prinzip ist gleich. ;-)

Ich hatte nur 6 Striche (Speichen der Antriebsrolle), die ich mit einem Lichttaster detektiert habe. (Maximalgeschwindigkeit der Anlage 61 km/h)

Die Schaltung ist relativ einfach:
- Lichtaster liefert wahlweise (active ON/OFF) einen H- oder L-Pegel
- Mikrocontroller mißt die Impulslänge(µS), berechnet die aktuelle Geschwindigkeit und zeigt sie auf einem LCD-Display an. Zusätzlich hatte ich noch eine RS232 integriert, um die Schwankungen, die durch die Wasserskiläufer durch den Zug entstehen, zu dokumentieren und auswerten zu können.

Abgleich:
Wenn Du die tatsächliche Geschwindigkeit in km/h brauchst, läßt sich eine solche Schaltung recht einfach kalibrieren:

1.) Der Rob durchfährt eine vorher exakt vermessene Meßstrecke mit konstanter Geschwindigkeit.

2.) Mittels Handstoppung, oder falls genauer erforderlich, mittels Lichschranken, die Zeit ermitteln, die der Rob für die Strecke benötigt.

Km/h = (Strecke in Metern * 3,6) / s

Den MC entsprechend Programmieren und schon hast Du nach jedem Impuls die aktuelle Geschwindigkeit.