Hallo Freunde
ich habe eine Frage. Und zwar habe ich einen Servomotor, welcher
Anschlüsse für einen Resolver hat. Nur aus Spass möchte ich meine
zwangsweisen Coronavirus-Ferien nutzen um eine Ansteuerung für den
Servomotor zu bauen, da sowas schon lange auf meiner Todo-Liste steht.
Allerdings wollte ich nicht einen Resolver nutzen, da ich weiss dass
dessen Auswertung sehr komplex ist. Mit einem normalen Drehgeber wäre es
viel einfacher! jetzt frage ich mich, wäre es wohl möglich, die Signale
des Resolvers irgendwie so umzuformen, dass ich daraus die "normalen" A
und B Signale gewinnen kann, wie bei einem normalen Geber?
der STM32, den ich dazu nutzen möchte, kann die SVPWM Signale
generieren, um den Motor anzusteuern, und normale Drehgeber-Signale kann
er auch auswerten, aber leider keinen Resolver.
Geber schrieb:> (...) die Signale> des Resolvers irgendwie so umzuformen, dass ich daraus die "normalen" A> und B Signale gewinnen kann, wie bei einem normalen Geber?
Der PGA411 von TI kann einen Resolver auswerten und einen
Inkrementalgeber (A, B, Idx) emulieren. Da er auch das Erregersignal des
Resolvers erzeugt, werden prinzipiell keine weiteren Komponenten
benötigt, außer einer MCU, die ihn parametriert. Die Parametrierung des
ICs ist aber nicht so ganz trivial.
Grüßle
Volker
Geber schrieb:> dass ich daraus die "normalen" A> und B Signale gewinnen kann, wie bei einem normalen Geber?
Im Gegensatz zu einem Resolver gibt ein Drehgeber inkrementale Impulse
aus, m.a.W. man muss den Zähler "nullen", bevor man damit was anfangen
kann, z.B. an einem Endschalter.
Georg
Nimm den Resolver. So schwer ist das auch nicht.
1) Erzeug den Träger mit einem Timer/PWM des uC (50/50). Rechteck mit
Endstufe reicht. Du musst Mal schauen was der Resolver haben möchte. Oft
sind es so 7-8kHz mit 5-10V.
2) Dann noch die Abtastung mittig zur PWM und du bist so ziemlich
fertig. Funktioniert für deine Anforderungen komplett in der HW eines
uC. Wenn du die G-Serie des STM hast sogar bis zum Winkel dank Cordic.
Wenn dann noch dein Resolver und der Motor die gleiche Polpaarzahl hat
kannst du sogar nur mechanisch Kommutieren und du brauchst nicht
zwingend bei jedem Powercycle neu einmessen.
Hallo Freunde
vielen Dank für euer Feedback.
Ich habe noch einen anderen Motor auftreiben können, der einen
inkrementellen Geber drin hat. Aber dieser hat anscheinend auch ein
spezielles Interface, anstatt A und B hat er TX/RX und TX*/RX*. Also
offenbar eine art digitales bidirektionales Interface.
Kann man damit was anfangen? Datenblatt ist leider keines vorhanden,
aber es ist ein Pnanasonic MSMDC.
Offenbar kann der Geber optional auch als Absolutgeber verwendet werden.
Es wird immer komplizierter :-(( ;-)
Geber schrieb:> aber es ist ein Pnanasonic MSMDC
Der Schlüssel was für ein Encoder es ist ist anscheinend weiter hinten
im Schlüssel
Geber schrieb:> anstatt A und B hat er TX/RX und TX*/RX*
Sicher dass es "anstatt" ist? Bei den anderen Schlüsseln von oben sind
es A/B UND Rx/Tx.
Das hätte ich jetzt Hiperface vermutet für die Absolutposition. Wobei du
die dann nicht zwingend auswerten musst. Wobei es dann nur UART (Rs485)
wäre. Relativ einfaches Protokoll.
SSI mit Analogspuren gibt es auch. Ist in meinen Augen aber nicht so
weit verbreitet.
Also genauen typschlüssel Posten oder selbst das richtige Datenblatt
raussuchen.
Edit: Aussage zurück gezogen.
Geber schrieb:> Allerdings wollte ich nicht einen Resolver nutzen, da ich weiss dass> dessen Auswertung sehr komplex ist.
Eigentlich ist dessen Auswertung sehr einfach, einfacher als bei einem
Inkrementalgeber sogar finde ich.
Beim Resolver kommt einem immer erst mal die amplitudenmodulierte
Signalauswertung in den Sinn bei dem in die Primärspule ein Sinus-Signal
eingespeist wird und sich dann durch die Signale in den Sekundärspulen
der Drehwinkel bestimmen lässt. Das, finde ich auhc, ist in der Tat
etwas komplexer als einen Inkrementalgeber auszuwerten.
Die Alternative ist die phasenmodulierte Signalauswertung. Dazu wird in
die Sekundärspulen ein Quadratursignal eingespeist. Dadurch bildet sich
dann in der Primärspule ein, bzgl. der Amplitude, konstantes Signal bei
dem ausschließlich die Phasenlage vom Drehwinkel abhängt.
Ich hab das mal so gelöst, dass ich zwei, um 90° verschobene,
Sinussignale generiert habe mittels PWM und das in die Sekundärspulen
eingespeist habe. Das Signal der Primärspule habe ich auf einen
Komparator gegeben und dessen Vergleichsspannung auf VCC/2 gelegt, sein
Ausgangssignal ging dann auf einen Interruptpin des uCs. Immer wenn ein
Interrupt auftrat für den Pin musste ich nur schauen wie lange es her
war, dass mein erzeugtes Signal eben dem Referenzsignal (hier ein
DC-Signal in Höhe von VCC/2) entsprach. Ich hab damit aus der Hüfte
geschossen (hatte keine große Anstrengungen in PWM-Filter und Co
investiert, sprich man konnte die PWM noch recht deutlich auf den
Sinussignalen sehen) eine Winkelauflösung von 0.01° erreicht (gefordert
waren bei dem Projekt besser als 0.1° zu sein).
Eine eigene Frage?
Dieser Thread ist über 6 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.