Ich möchte die Winkelposition eines relativ langsamen motorisierten Dreharms (Direktantrieb; siehe Abbildung unten) verfolgen - benötige jedoch eine Winkelgenauigkeit von unter 0,05 ° und eine ähnliche Auflösung.
Wie @gbulmer in den Kommentaren feststellte, entspricht dies einer Verfolgung der Armspitze entlang des Umfangs mit einer Genauigkeit von (2 × π × 10 cm) / (360˚ / 0,05) = 0,08 mm.
Gibt es einen derzeit realisierbaren Sensor oder eine elektronische Methode, mit der diese Genauigkeit bei der Rotationserfassung erreicht werden kann, ohne ein Vermögen auszugeben?
Dies ist, was ich bisher ausprobiert habe, von einfach bis kompliziert:
Digitaler Kompass / Magnetometer: Ich habe damit angefangen; aber offensichtlich nicht annähernd die Leistung, die ich suche.
Drehkodierung: Potentiometer-basierte / Hall-Effekt-Sensor-basierte Kodierung: Es konnte keine ausreichende Auflösung erzielt werden und es liegt ein signifikanter Linearitätsfehler vor.
Bildverarbeitung: Es wurde versucht, einen optischen Marker an der Spitze des Arms zu platzieren (da die Spitze den längsten Bogen abzeichnet) und die Position des Markers mit einer Kamera (OpenCV) zu verfolgen: Aufgrund der Rotationsspannen des Arms konnten sehr kleine Rotationen nicht so gut aufgelöst werden eine 10x10 cm Fläche.
Magnetischer Encoder: Ich untersuche derzeit die Verwendung von AS5048, einem magnetischen Drehgeber von AMS, der mit der Mitte des Sensors an der Wellenposition des Motors positioniert ist. Etwas wie das:
Antworten:
Was Sie tun, ist möglich, aber ich verstehe nicht, wie Sie es billig machen werden.
0,05 Grad (3 Bogenminuten) implizieren eine Auflösung von 7200 Zählungen / Umdrehung oder das Äquivalent von 13 Bit (8192). Schlimmer noch, da Sie versuchen, eine Positionsschleife zu erstellen, benötigen Sie mindestens ein zusätzliches Auflösungsbit oder ein 14-Bit-System. Das Problem liegt in der Tatsache, dass Ihre Positionsschleife keinen Fehler von weniger als einem Bit erkennen kann. Wenn der Arm also zu driften beginnt, erkennt der Winkelsensor ihn erst, wenn der Ausgang ein Bit abweicht. Die Positionsschleife fährt den Arm in die andere Richtung zurück und stoppt den Antrieb, wenn der Fehler auf Null abfällt. Dies lässt den Arm jedoch in die andere Richtung schwingen, bis er in die entgegengesetzte Richtung gezählt wird. Wenn Sie beispielsweise möchten, dass der Arm eine Sensoranzahl von 100 beibehält, kann das System durchaus 100, 101, 100 produzieren , 99, 100 usw.
Ich schlage vor, dass ein optischer Encoder die beste Wahl ist, aber ein 14-Bit-Encoder (16.384 ppr) ist nicht billig. Eine andere Möglichkeit ist ein Resolver oder Synchro mit einem RDC oder SDC (Resolver / Digital-Wandler oder Synchro / Digital-Wandler) als zweite Möglichkeit, aber dies wird noch mehr kosten. Synchros / Resolver haben zwei Nachteile. Erstens wurden sie im Allgemeinen von optischen Encodern abgelöst, sodass es sich bei den auf dem Markt angebotenen Produkten hauptsächlich um Überbestände handelt. Zweitens ist die Genauigkeit normalerweise nicht ausreichend. Resolver der Größe 23 haben normalerweise eine Lichtbogenlänge von ca. 5-10 Minuten. Sie benötigen daher ein hochpräzises Gerät und viel Glück beim Auffinden eines solchen.
Inductosyns bieten eine außergewöhnliche Auflösung und Genauigkeit, kosten jedoch noch mehr als ein optischer Encoder. Grundsätzlich benötigen Sie eine schnelle RDC, um die Ausgabe zu lesen.
Ihre Besorgnis über die Genauigkeit optischer Encoder basiert auf dem Papier eines bestimmten Herstellers, aber das ist im Wesentlichen ein Schrecken. Die Fehlermöglichkeiten sind für jeden Hersteller gleich, und der verknüpfte Hersteller ist irgendwie nicht besser als andere Hersteller. Bei Präzisionscodierern entspricht die Genauigkeit im Allgemeinen der Auflösung.
Während es möglich ist, optische Encoder mit parallelen Ausgängen zu erhalten, ist es wahrscheinlich besser, einen Inkremental-Encoder zu verwenden und einen eigenen Aufwärts- / Abwärtszähler zu verwenden. Wenn Sie diese Route einschlagen, setzen Sie den Positionszähler bei jedem Einschalten des Systems mit dem "Home" -Signal zurück.
quelle
Ich denke, was OP vorschlägt, ist überhaupt keine schlechte Idee. Was er verwenden möchte, ist ein fertiger Ring: http://ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128 , er hat 128 Pole = 64 Polpaare. Die Auflösung beträgt 16 Bit = 65536, maximal 305 U / min.
Wenn Sie einen hochauflösenden optischen Encoder auseinandernehmen, werden Sie feststellen, dass es fast unmöglich ist, den Detektor ohne Spezialwerkzeug auszurichten. Mit dieser neuen Methode ist dies in der Tat sehr einfach.
Sie benötigen eine Drehmaschine, um den richtigen Sitz für den Ring zu erzielen und dann den Sensor in geringem Abstand zu platzieren. Es ist keine spezielle Ausrichtung erforderlich. Der Sensor selbst wird in Bausatzversionen geliefert, die bereits auf die Breakout-Platine gelötet sind. Was Sie benötigen, ist ein zusätzlicher Referenzsensor - eine Lücke mit Fotodetektor. Dann können Sie den Encoder innerhalb eines Polpaars mit einer Kombination aus Indexausgang und ext. Ref. Sensor referenzieren.
quelle
Da es sich um eine Brainstorming-Frage handelt und WhatRoughBeast bereits alles erwähnt hat, was ich in Betracht ziehen würde, sollten Sie die harmonischen Laufwerke der Liste hinzufügen. In der Theorie (ich habe nicht mit empirischen Schätzungen oder ersten Berechnungen nachgeprüft) können Sie das Übersetzungsverhältnis von 20: 1 leicht und spielfrei erhalten (100: 1 ist üblich), wodurch die Anzahl der erforderlichen Schritte auf 720 / U gesenkt wird . Es könnte sich lohnen, einen Blick darauf zu werfen. Oberschwingungsantriebe sind nicht billig, aber in der Regel viel billiger als hochauflösende Sensoren, insbesondere für dieses Übersetzungsverhältnis.
quelle
Wenn Sie eine Auflösung an der Abtriebswelle benötigen, die 13 Bit entspricht, benötigen Sie mehr zusätzliche Bits, mindestens 1 Bit für die Regelung ist das Muss. Das nächste Problem ist, dass die Hersteller für die Auflösung werben , aber nicht für die Genauigkeit . Sie müssen beharrlich nach Genauigkeit fragen. Wenn der Fehler reproduzierbar ist, können Sie ihn mithilfe der Softwarekorrektur verbessern.
Ein weiteres Problem, wenn Sie eine leistungsstarke Lösung für den Außenbereich benötigen. Wenn ja, ist ein magnetischer Encoder möglich. Der magnetische Encoder kann jedoch einen signifikanten, wiederholbaren, periodischen Fehler aufweisen, den Sie bei der Kalibrierung mithilfe eines anderen optischen, umfangreichen Encoders beseitigen müssen. Aber Sie brauchen eine Vorrichtung, die noch breiter und präziser ist.
Sin / Cos-Interpolation (optisch oder magnetisch) erhöht die Auflösung, fügt jedoch auch einen zufälligen Fehler hinzu.
Sie müssen in der Lage sein, mit der gewünschten Genauigkeit und insbesondere Konzentrizität zu fertigen. Sie müssen auch die Bandbreite berücksichtigen, da eine schnellere Bewegung die zulässige Bandbreite (z. B. Frequenz der Quadraturausgabe) überschreiten kann, wenn Sie die Auflösung erhöhen. Im Gegensatz dazu ist Ultra Slow Motion Control eine andere Disziplin, in der man interessante unveröffentlichte Themen finden kann.
Wenn Sie die Drehung des Querlenkers benötigen (nicht nur die Spurposition), ist die Auflösung von Direktantrieb und Drehmoment ein Problem. Doppelschleife hilft bei der Steuerung, erfordert jedoch einen Motor (Encoder im Falle eines Getriebes oder Zählschritte im Falle eines Schrittschalters) und die Erfassung der Wellenposition.
Der Inkremental- oder Absolutwertgeber ist ebenfalls eine grundlegende Entscheidung.
Allgemeiner Hinweis: Wenn Sie das Projekt abschließen möchten, verwenden Sie professionelle Komponenten, die teuer sind (z. B. optische Encoder von Renishaw ATOM). Wenn Sie zum Vergnügen spielen und Zeit nicht wichtig ist, können Sie es genießen, Probleme neu zu erfinden (Sackgasse), unauffindbare Probleme zu entdecken usw. Prüfen Sie noch einmal, ob Sie Geräte mit der erforderlichen Präzision herstellen können.
quelle
Scheint perfekt für einen digitalen Messschieber geeignet, der normalerweise zum Messen präziser Abstände verwendet wird, siehe:
Wie funktioniert ein elektronischer Bremssattel?
Sie ähneln kapazitiven Encodern (die Sie bereits gesehen haben) http://www.digikey.com/de/articles/techzone/2012/apr/a-designers-guide-to-encoders gesehen haben ).
Der elektronische Teil eines linearen digitalen Messschiebers kann wahrscheinlich wiederverwendet werden, sodass Sie nur eine Viertelscheibe mit dem richtigen Muster erstellen müssen.
PS: Die Präzision würde es Ihnen sogar ermöglichen, mit einem linearen Modell von der Stange zu arbeiten.
quelle
Hier ist meine neue Idee, noch eine Schrittmotorgeschichte :-)
Klicken Sie auf das animierte Bild, um die volle Auflösung zu sehen. Hier verwenden Sie den Schrittmotor als fahrbares Lineal. An der Spitze der Haupthand befindet sich ein Magnet. Die roten Linien zeigen die erwartete Richtung des Magnetflusses. Angenommen, der Schrittmotor ist wie in der Wikipedia. Es hat 3,6 Grad von einem vollen Schritt. Für einen vermutlich linearen Teil des Feldes benötigen Sie 3,6 / 0,05 = 72 Kombinationen von 7 Bits. Dies bedeutet, dass ein 10-Bit-ADC einer normalen MCU die Arbeit für einen größeren nichtlinearen Bereich sehr gut erledigt. Nachdem Sie den Mechanismus ausgeführt haben, analysieren Sie das Approximitätsmuster und wählen Sie den linearsten Teil aus. Mit einigen Software-Mapping-Optionen können Sie es linearisieren und die Linealränder für das jeweilige Setup auswählen.
Die Schrittmotoren sind nicht perfekt. Laut Wikipedia kann die Varianz zwischen den Zähnen bis zu 5% betragen. Um den Fehler zu messen, können Sie die primären Ränder des Lineals mit sekundären Rändern erweitern, die nur dem Verlaufsmuster der vorherigen Analyse der Nachbargrenze folgen müssen.
Außerdem sollten Sie den Schrittmotor besser mit Mikroschritten antreiben, um die +/- Beschleunigungen zu vermeiden, die sich auf die Einrichtungsskalen auswirken können. Ich denke, Sie müssen zumindest halb schrittweise vorgehen.
quelle
Der Umgang mit der Mechanik beginnt zuerst mit der Mechanik.
Drehen des großen Zahnrads (R2) um einen Winkel, dreht sich das kleine Zahnrad (R1) um einen Winkel, der R2 / R1-mal größer ist.
Wenn Sie also mit einer extremen Winkelgenauigkeit bei einem gegebenen Radius (R) arbeiten, können Sie mit einer n-fach gröberen Winkelgenauigkeit bei einem n-fach kleineren Radius (dh R / n) arbeiten.
In Ihrem Fall können Sie ein großes Zahnrad an der Achse des Arms anbringen, ein kleineres Zahnrad daran anbringen und dann einen gröberen Sensor an den kleinen anschließen.
Viele andere Getriebemethoden sind bekannt und nützlich. Beginnen Sie im Wiki .
quelle
Sie sollten einen zweiten Mechanismus an der Kante der Hand anbringen, um die Schritte der Mitte durch einen linearen Mechanismus zu teilen, wie er im optischen System des CD-ROM-Treibers zu finden ist. Auf diese Weise könnte es einfacher und ausreichend sein, das gesamte System als offene Schleife zu implementieren, indem auch ein Schrittmotor in der Mitte verwendet wird und dieser durch Mikroschritt angesteuert wird, um sehr hohe Beschleunigungsgrößen zu vermeiden.
quelle
Physikalische Einschränkungen im Bereich des beweglichen Arms schließen diese Lösung möglicherweise aus, aber hier sind Sie - ein weiterer billiger Ansatz für die maschinelle Bildverarbeitung. Die Genauigkeit kann durch Ändern der Objektivvergrößerung eingestellt werden.
quelle
Ich weiß nicht, was Sie für ein Vermögen halten, aber Sie sollten http://www.inductosyn.com/ in Betracht ziehen.
quelle
Eine weitere sehr interessante Option, wenn Ihr Arm regelmäßig in eine Ausgangsposition (Ruheposition) fährt, ist die Verwendung einer optischen Maus (Gaming-Maus) oder insbesondere ihres Sensorsystems.
Befestigen Sie den Sensor an der Spitze Ihres Arms und sorgen Sie für einen guten (feinkörnigen, nicht reflektierenden) Hintergrund, über den Sie gleiten können. Lesen Sie die Daten über eine Standard-USB-Mausschnittstelle aus.
Sie benötigen einen einfachen Sensor, um die Ausgangsposition zu kalibrieren. Sie müssen experimentieren, um zu sehen, ob dies gut genug funktioniert. Es sollte größtenteils unabhängig von Staub funktionieren und ist einfach zu warten.
quelle
Vielleicht können Sie einen linearen optischen Encoder am Ende Ihres Schwenkarms verwenden und einen flexiblen Codestreifen wie diesen mit bis zu 2000 Zeilen pro Zoll verwenden. Wenn Sie supergünstig fahren möchten, könnten Sie einen Linearencoder wie diesen verwenden , der jedoch nur bis zu 150 Zeilen pro Zoll reicht, was einer Auflösung von 40 Mikrometern entspricht (da es sich um einen Quadraturcoder handelt). Wenn Sie nicht empfindlich auf Jitter im Antriebssystem reagieren, können Sie dies direkt nutzen. Andernfalls könnten Sie den Arm unter Ihrer Anwendung ausfahren und den Code srip weiter herausziehen. Sie können möglicherweise sogar Ihren eigenen Codestreifen drucken, wenn Sie einen Drucker mit einer DPI von 1000 oder mehr haben.
Viel Glück!
quelle