Ich versuche mich gerade von A-Z durchzulesen wie man so Hobby Roboter
baut und es gibt ja einige Fertigbausätze für sowas.
Bei allem was ich mir durchlese finde ich etwas sehr interessant und
wollte fragen, ob folgendes tatsächlich so ist.
Überall wo ein Motor ist von dem man wissen will, in welcher Stellung er
gerade ist, braucht man Sensoren die diese Stellung messen.
HALL Sensoren, Endschalter, Lichtschranke, etc.
Ich habe nun einiges gesucht, aber es scheint es gibt keine Möglichkeit
dies zu ermessen, errechnen oder dergleichen, ohne einen Sensor.
Wenn ein Motor wirklich genau arbeitet und man den Strom misst, könnte
man ja errechnen bei 2 Sekunden 0,2A Strom mit bekanntem
Rotordurchmesser, rpm, etc. etc., dass sich der Motor jetzt genau 5 mal
gedreht hat und nun in dieser Stellung steht.
Aber ich denke kein Messgerät und keine Toleranz in unserer derzeitigen
Technik erlaubt eine so genaue Messung, dass man aus gemessenen Daten
die Position des Rotors errechnen kann.
Ist das richtig? Oder gibt es High-End Technik die sowas schafft?
Bernd schrieb:> Wenn ein Motor wirklich genau arbeitet
Das ist schon mal die erste völlig falsche Annahme.
> und man den Strom misst
Der Strom sagt nichts über die Drehzahl, sindern nur etwas über das
Drehmoment.
> könnte> man ja errechnen bei 2 Sekunden 0,2A Strom mit bekanntem> Rotordurchmesser, rpm,
Bei bekannten rom ist es leicht, die Anzahl der Umdrehungen nach Zeit zu
errechnen.
> etc. etc., dass sich der Motor jetzt genau 5 mal> gedreht hat und nun in dieser Stellung steht.
Bei sehr sehr geringen Anforderungen an die Positioniergenauigkeit macht
man das tatsächlich so: Motor gegen einen Anschlag fahren lassen in dem
man ihn lange genug in eine Richtung drehen lässt, dann eine definierte
Zeit den Motor an eine feste Spannung legen, und aus Erfahrung weiss man
dann ungefähr, wie weit er bzw. das an sein Getriebe angeflanschte Teil
gedreht hat. Sehr ungefähr aber nur.
Nein, das ist so nicht richtig. Der Strom sagt nichts darüber aus, wie
schnell der Motor dreht. Der Strom sagt aus, wie viel Drehmoment der
Motor abgibt.
Die Drehzahl hängt von der Spannung ab. Aber das ist alles irgendwie
lastabhängig.
Bernd schrieb:> Wenn ein Motor wirklich genau arbeitet und man den Strom misst, könnte> man ja errechnen bei 2 Sekunden 0,2A Strom mit bekanntem> Rotordurchmesser, rpm, etc. etc., dass sich der Motor jetzt genau 5 mal> gedreht hat und nun in dieser Stellung steht.
Das wird sich aber in Abhängigkeit der Belastung, der Lager-Reibung usw.
so stark ändern, dass man keine Aussage über die Position des Rotors
treffen kann. Die einzige Möglichkeit die ich sehe, ist die Erfassung
der Back-EMF. Diese beginnt aber nicht bei Drehzahl Null, sondern
erfordert eine Mindest-Drehzahl, damit die Back-EMF gross genug ist um
sie erfassen zu können.
Eine Bestimmung der Rotorposition unabhängig von der Drehzahl (also auch
bei Stillstand) funktioniert nur mit Sensoren.
Bernd schrieb:> Ist das richtig? Oder gibt es High-End Technik die sowas schafft?
Das ist nicht wirklich HiEnd, man kann einen Schrittmotor nehmen, der
dreht sich für jeden Impuls einen bestimmten Winkel weiter. Genau ist
das schon, aber es fehlt die Erfolgskontrolle, verliert der Motor z.B.
wegen Überlastung Schritte, so stimmt die Position von da an nicht mehr.
Für einen Roboter ist das meiner Meinung nach nicht tragbar, für eine
Rollladensteuerung kann man Fehler akzeptieren.
Dein Konzept klappt sowieso nicht. Es stimmt ja nicht nur die aktuelle
Position nicht, der Fehler setzt sich fort und addiert sich immer weiter
auf. Ich nehme mal an, der Roboter macht nicht nur eine einzige
Bewegung.
Nebenbei bemerkt, man braucht sowieso einen Sensor für eine
Startposition, von der aus gerechnet werden kann.
Georg
Bernd schrieb:> Überall wo ein Motor ist von dem man wissen will, in welcher Stellung er> gerade ist, braucht man Sensoren die diese Stellung messen.
Nein, braucht man nicht. Es kommt auf den Motor drauf an.
Guck beispielsweise mal nach "sensorless" + "BLDC". Du musst ab einer
bekannten Position (Endanschlag) nur die Kommutierungen mitzählen. Bei
einem Schrittmotor gibst du sie sogar extern vor.
Für Roboter ist dann, entweder ein Servo (für Kleinlasten) oder ein
Stepper (wie oben schon andere vorschlugen) zu wählen.
Ooder für richtig Kräftige wie Fanuc oder Kuka sind es dann Servomotoren
mit Pulscoder.
Gleichstrommotoren sind nicht geeignet um positionsgenau zu fahren, ohne
eine Kontrolle.
Synchromotoren würden da schon eher gehen. die sind den Steppermotoren
eher ähnlich und lassen eine genauere Positionierung zu,
als DC oder Drehfeld Motoren.
Denoch wenn ich Roboterarme baue (kleine mit Stepper) oder (große mit
Synchro) ist in jeden Fall ein Positionssensor oder Pulscoder mit dabei.
Den gerade so ein Roboter kann durch Einflüsse von außen seine aktuelle
Position verlieren oder ändern dann sollte die Elektronik schon darüber
Informiert werden.
Es gibt sehr gute Magnetsensoren die Berührungsfrei eine genaue
Gradangabe der Position haben. Die sind sehr Langzeitstabiel im
gegensatz zu analog Servo mit Poti als Winkelgeber. ;-)