Forum: Analoge Elektronik und Schaltungstechnik Frage zu Resolver


von heinz (Gast)


Lesenswert?

Hallo,

kann mir jemand erklären warum der Spannungsverlauf des Erregersignals 
bei einem Resolver sinusförmig ist. Könnte das nicht ein rechteck Signal 
sein?

Danke
Heinz

von Achim M. (minifloat)


Lesenswert?

heinz schrieb:
> sinusförmig

Ein Sinus und ein Kosinus, aus dem man dann den Winkel innerhalb dieses 
Encoder-Vollschrittes mit atan2 oder geeignetem Tracking Observer 
berechnen kann.

Man kann einen Encoder aber auch als Rechteck bestellen, dann hat man 
halt nur 90°-Schritte innerhalb des aktuellen Encoder-Vollschrittes.
mfg mf

von Rudolph (Gast)


Lesenswert?

heinz schrieb:
> kann mir jemand erklären warum der Spannungsverlauf des Erregersignals
> bei einem Resolver sinusförmig ist.

Aus dem Grund, warum die Netzspannung sinusförmig ist. Früher hat man 
einen Generatorausgang dafür benutzt. Oder die Verfügbar Netzspannung.

> Könnte das nicht ein rechteck Signal sein?

Das würde grundsätzlich gehen, es bliebe die Frage, ob die 
Auswerteschaltung damit zurechtkommt. Vgl. auch hier: 
https://www.youtube.com/watch?v=kbFRWaNAWDg, da wird gegen Ende 
offensichtlich auch mit einem Rechteck erregt.

Wenn Du Dir eine Auswertung selbst stricken willst, auf geht's! Sonst 
vielleicht doch nach einer Sinusquelle umsehen.

von heinz (Gast)


Lesenswert?

@Achim M
Mir geht es um das Erregersignal

>Wenn Du Dir eine Auswertung selbst stricken willst, auf geht's! Sonst
vielleicht doch nach einer Sinusquelle umsehen.

Hier hat das jemand für Sinus gemacht.
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?ResolverToQuadratureConverter

Das Problem das er hat ist - nur 1 AD Wandler. Also muss er die beiden 
Kanäle um 1 Welle des Erregersignals einlesen. Macht es nicht genauer. 
Bei einem Rechtecksignal spielt ein Zeitversatz keine Rolle?

Hintergrund: Ich habe eine Fräsmaschine mit Resolver für das Lagesignal. 
Dafür finde ich keine CNC (ich würde gern LinuxCnc mit Mesa karten 
verwenden) alternative wäre Inkrementalgeber oder Glaslineal anbauen.

von Rudolph (Gast)


Lesenswert?

heinz schrieb:
> Bei einem Rechtecksignal spielt ein Zeitversatz keine Rolle?

Naja, wie im oben verlinkten Video zu sehen ist, kommen bei einem 
Rechteck nur kurze Spikes aus dem Resolver. Die muss man dann schon sehr 
genau treffen, wenn man die Spitzenwerte messen möchte. Eine 
Resolverauswertung basiert auf dem Amplitudenvergleich von SIN und COS, 
wenn man da bei den Spikes leicht daneben liegt, geht schnell schief. 
Bei einem Sinus ist das nicht sooo schlimm wenn man leicht daneben 
liegt.

Danke auch dran, den Messpunkt auf das Maximum der Erregung zu legen, um 
eine möglichst hohen Hub zu bekommen, das ist nochmal interessant, falls 
die Erregung leicht wandern sollte.

Einen Sinus kann man auch per PWM machen.

von heinz (Gast)


Lesenswert?

Ich hätte sagen sollen daß ich von E-Technik wenig Wissen hab.

Ich dachte Rechtecksignal +12/-12 rein -> Rechteck Sin(x * 12V) bzw. 
Cos(x * 12V) raus?

Danke
Heinz

von Rudolph (Gast)


Lesenswert?

So einfach funktioniert das dann doch nicht ;-)

Ein Resolver ist nicht weiter als ein sich drehender Trafo. Und ein 
Trafo überträgt keine Gleichspannung, ein Rechteck ist aber die meiste 
Zeit eine solche. Nur Spannungsänderungen werden übertragen, was bei 
einem Sinus immer der Fall ist, bei einem Rechteck auf nur an den 
Flanken.

Es gibt sonst auch Eval-Boards für Auswerteschaltungen, die die 
Erregungserzeugung gleich an Bord haben, z.B. 
https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-ad2s1210.html. 
Müsste man dann einmal programmieren, wird auch mit einem Arduino gehen.

Wenn's um eine CNC geht, ist das Preisschild evtl. ja nicht ganz so 
schlimm...

von Achim S. (Gast)


Lesenswert?

Rudolph schrieb:
> Naja, wie im oben verlinkten Video zu sehen ist, kommen bei einem
> Rechteck nur kurze Spikes aus dem Resolver.

wenn man ganz genau hinsieht ist es eine kleine Rechteckspannung (und 
die würde man eigentlich im Idealfall erwarten) überlagert mit den 
kurzen, viel höheren Peaks. ich kann dir nicht sagen, woher die peaks 
kommen. vielleicht wirklich eine parasitäre Eigenschaft des resolvers 
(irgendwas mit dessen Wicklungskapazität). vielleicht aber auch einfach 
ein Messfehler mit völlig überkompensierten Tastköpfen. im einfachsten 
Fall (ohne parasitäre Effekte und ohne übertriebene Belastung des 
Resolvers) würde man jedenfalls ein Rechtecksignal an den Ausgängen 
erwarten.

heinz schrieb:
> Das Problem das er hat ist - nur 1 AD Wandler. Also muss er die beiden
> Kanäle um 1 Welle des Erregersignals einlesen. Macht es nicht genauer.

wenn man es genauer haben will nimmt man im Normalfall ein dediziertes 
IC zur resolverauswertung. (das kostet zugegebenermaßen etwas). die 
erwarten allerdings imho immer ein Sinussignal und durften über eine 
Rechteckansteuerung nicht glücklich sein.

von Wolfgang (Gast)


Lesenswert?

heinz schrieb:
> Könnte das nicht ein rechteck Signal sein?

Das kommt drauf an, welche Auflösung du aus einer Periode des Signals 
ziehen möchtest.
Wenn du dich nicht ausgereichnet auf konstante Drehzahl beschränken 
möchtest, bietet ein Sinus/Cosinus einfach mehr Information.

von Achim S. (Gast)


Lesenswert?

Rudolph schrieb:
> o einfach funktioniert das dann doch nicht ;-)
>
> Ein Resolver ist nicht weiter als ein sich drehender Trafo.

doch, ein Trafo kann tatsächlich auch (annähernd) Rechteckspannungen 
übertragen. Nur steigt dann halt der Magnetisierungsstrom während der 
Phase, in der die Spannung konstant ist, immer weiter an. Und in realen 
Aufbauten begrenzt dann irgendwann die Quelle den Stromanstieg, so dass 
der induktive Spannungsabfall auf der Primärseite und die induzierte 
Spannung auf der Sekundärseite eben kein Rechteckt mehr bilden. Insofern 
kommt es schon stark auf die Frequenz der Anregung und die 
Zeitkonstanten des Aufbaus an.

Wenn eine konstante Spannung an der Primärseite dazu führen würde, dass 
die Sekundärspannung Null wird, dann müsste auch beim primären 
Spannungsmaximum des Sinus die Sekändurspannung Null werden (weil da 
primär du/dt=0) gilt. Das ist aber nicht der Fall: die Sekundärspannung 
hat da auch ihr Maximum. Nur der Magnetisierungsstrom hat beim 
Spannungsmaximum seinen Nulldurchgang.

Dass Trafos keine "echten Gleichanteile" übertragen können (also 
Spannungen, die länger konstant sind als die Zeitkonstanten des Aufbaus) 
ist natürlich richtig.

von heinz (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab das jetzt mal simuliert.

LTspice sagt Rechteck rein -> Rechteck raus. Ist die Simulation korrekt?

von Achim S. (Gast)


Lesenswert?

heinz schrieb:
> LTspice sagt Rechteck rein -> Rechteck raus. Ist die Simulation korrekt?

In erster Näherung (ohne jegliche parsitären Effekte): ja.

Aber:
1) deine Ansteuerung mit einem Rechteck, das zwischen 0V und 12V 
schaltet, ginge tatsächlich nicht. Denn das hätte einen Gleichanteil von 
6V, der den Strom im eingeschwungenen Zustand auf riesige Werte 
hochtreibt (in dener Simu fließen 112kA!) Du bräuchtest ein Rechteck 
zwischen -12V und +12V.
2) Schon in deiner Simu siehst du, dass die Spannung auf der 
Sekundärseite nicht exakt Recheckförmig ist: die beim Rechteck konstante 
Phase fällt jeweils ganz schwach ab. Wenn du als Frequenz nicht 1,6kHz 
gewählt hättest sondern 1,6Hz, da würdest du sehen, dass es eben kein 
ideales Rechteck ist. Die Quelle,der du in der Simu 100µOhm 
Innenwiderstand gegeben hast, begrenzt den Strom, so dass der induktive 
Spannungsabfall auf Primär- und auf Sekundärseite eben kein ideales 
Rechteck ist. Bei 1,6kHz ist die Näherung als Rechteck aber gut genug. 
Hättest du der Quelle nicht 100µOhm sondern 100mOhm als Innenwiderstand 
gegeben, dann würdest du den Effekt auch schon bei 1,6kHz wahrnehmen.

von heinz (Gast)


Lesenswert?

Wer lesen kann ...

Strom geht in den Kilo Ampere Bereich. Liegt das am Eingangssignal 
0->12V und wäre das weg bei -12V -> 12V?

von heinz (Gast)


Lesenswert?

Da hat sich meine Anwort zeitlich überschnitten.

Danke für die Erklärungen.

von Achim S. (Gast)


Lesenswert?

heinz schrieb:
> Das Problem das er hat ist - nur 1 AD Wandler. Also muss er die beiden
> Kanäle um 1 Welle des Erregersignals einlesen. Macht es nicht genauer.
> Bei einem Rechtecksignal spielt ein Zeitversatz keine Rolle?

du experimentierst ja deswegen mit dem Rechteck, weil du erreichen 
willst, dass der Zeitversatz der beiden ADC-Abtastungen kein Rolle 
spielt.

Wie stark der Zeitversatz sich auswirkt hängt aber stärker davon ab, wie 
du das digitalisierte Signal auswertest. Wenn du nur den Spitzenwert 
jeder Periode der Erregerschwingung auswertest, dann macht sich der 
Zeitversatz stark bemerkbar. Wenn du stattdessen den RMS-Wert (oder auch 
den Gleichrichtmittelwert) bestimmst, dann spielt die kleine 
Zeitdifferenz beim Abtasten kaum eine Rolle.

Wolfgang schrieb:
> Das kommt drauf an, welche Auflösung du aus einer Periode des Signals
> ziehen möchtest.
> Wenn du dich nicht ausgereichnet auf konstante Drehzahl beschränken
> möchtest, bietet ein Sinus/Cosinus einfach mehr Information.

ich glaube hier ist das selbe Missverständnis, das auch Achim M. hatte. 
Du betrachtest das sinus/cosinusförmige Signal am Ausgang des 
Demodulators. Die Signalform bekommt man beispielsweise auch, wenn man 
einen Permanentmagneten über zwei gekreuzt angeordneten Hallsensoren 
dreht. Hier ist die sinus/cosinusform natürlich wichtig, um 
"Zwischenwinkel" erkennen zu können (nicht nur 90° Schritte).

Dem TO geht es aber um einen Resolver, bei dem die Primärspule mit einem 
AC Signal getrieben wird. Selbst wenn der Resolver in einer bestimmten 
Winkelstellung feststeht, hat man am Ausgang (vor dem Demodulator) noch 
sinusförmige Signale. Würde man den Resolver stattdessen mit einer 
Rechteckspannung betreiben, dann erwartete man am Ausgang wieder eine 
annähernd rechteckförmige Spannung. Und deren Effektivwert hängt eben 
wieder sinus- bzw. cosinusförmig vom Drehwinkel des Resolvers ab.

von Achim S. (Gast)


Lesenswert?

heinz schrieb:
> wäre das weg bei -12V -> 12V?

in der Simu wäre es zu Beginn wahrscheinlich immer noch im 100kA 
Bereich. Das ist aber ein Simulationsartefakt, weil der Simulator einen 
Startwert berechnet und dafür einfach 12V/100µOhm einstellt. In der 
Realität würde der Strom mit einem Gleichanteilfreien Signal natürlich 
nie so weit ansteigen.

Du kannst den Simulationsartefakt reduzierten, indem du den Startwert 
("initial condition") des Stroms auf 0 festlegst:

.ic I(L1)=0

Dann wirst du aber immer noch große Ströme sehen, weil deine Quelle 
immer noch einen großen Gleichanteil aufweist. Der ergibt sich daraus, 
dass LTSpice bei

PULSE(-12 12 0 0 0 300u 600u)

die Anstiegs- und Abfallzeit nicht auf 0 setzt sondern auf 10% der 
Gesamtperiode. Und diese Anstiegs- und Abfallzeiten sorgen dafür, dass 
die positive Halbwelle 10% breiter ist als die negative ( du hast also 
immer noch einen ordentlichen Gleichanteil, der den simuierten Strom 
stark anwachsen lässt). Mit

PULSE(-12 12 0 1n 1n 300u 600u)

sind die Anstiegs- und Abfallzeiten dagegen viel kleiner als die 
Pulsbreite (1ns statt 30µs), so dass dein Primärsignal halbwegs 
gleichanteilsfrei wird.  Wenn du die Hälfte von Anstiegs- und Abfallzeit 
von der On-Zeit abziehst, müsste es auch voll symmetrisch werden, so 
dass die Simu nicht auf Monsterströme hochläuft.

von heinz (Gast)


Lesenswert?

Im oben genannten Projekt gibt es (so wie ich es verstehe) eine Spitzen 
Auswertung und damit das Problem daß er beide Spulen gleichzeitig lesen 
muss. Zur Lösung gibt es ja mehrere Wege. Externe AD Wandler, Cpu mit 
mehreren Wandlern, andere Geber ...

Mal überlegen was ich mach.

Ich bedanke mich für die ausführlichen Erklärungen.

Gruß
Heinz

von Yalu X. (yalu) (Moderator)


Lesenswert?

Gönne der Erregerspule in deiner Simulation doch mal einen realistischen
Wicklungswiderstand (miss nach oder nimm bspw. 50Ω). Spätestens dann
wirst du erkennen, warum das mit dem Rechtecksignal keine so gute Idee
ist.

heinz schrieb:
> Im oben genannten Projekt gibt es (so wie ich es verstehe) eine Spitzen
> Auswertung und damit das Problem daß er beide Spulen gleichzeitig lesen
> muss. Zur Lösung gibt es ja mehrere Wege. Externe AD Wandler, Cpu mit
> mehreren Wandlern, andere Geber ...

Im Link werden die beiden Ausgangssignale des Resolvers im Abstand von
einer Periode des Erregersignals gemessen. Dadurch hat der Zeitversatz
bei stehendem Resolver keinen Einfluss auf das Messergebnis. Sobald sich
der Resolver aber etwas schneller dreht, finden die beiden Messungen an
verschiedenen Winkelpositionen statt, so dass doch wieder ein Fehler
entsteht.

Generell ist es nicht so geschickt, die Resolversignale nur einmal je
Erregerperiode abzutasten, weil sich dann jede Störung auf den Signalen
voll im Ergebnis niederschlägt. Falls es dich interessiert, ist hier
beschrieben, wie die Auswertung üblicherweise (insbesondere auch in den
integerierten RDCs) gemacht wird:

  https://www.analog.com/en/analog-dialogue/articles/precision-rtdc-measures-angular-position-and-velocity.html

Mit dem beschriebenen Verfahren werden Störungen wirksam unterdrückt,
trotzdem liefert es – anders als etwa mit einem Tiefpassfilter zur
Störunterdrückung – bei konstanter Geschwindigkeit die Winkelpositionen
praktisch ohne Zeitverzug, was gerade bei CNC-Maschinen wichtig ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.