Forum: Mikrocontroller und Digitale Elektronik Schrittmotor Strom messen


von Daniel S. (ds1982)


Lesenswert?

Hallo Forum,

in aller Kürze:
Ich bin dabei mich in etwas erweiterte Themen bei Schrittmotoren 
einzuarbeiten, hierzu möchte ich eine Steuerung aufbauen, die mir als 
Entwicklungsplattform dient und mit der ich experimentieren und die 
Motoren weiter verstehen kann.
Ein erstes Problem dem ich mich widmen möchte ist eine lastabhängige 
Stromregelung. Grundsätzlich verstanden habe ich, dass die 
Motorwicklungen sinusförmig angesteuert werden. Innerhalb des Sinus gibt 
es weiterhin eine PWM, über deren DutyCycle der Strom eingestellt werden 
kann.
Um nun die Last des Motors zu detektieren kann man den Strom messen, der 
durch Motorwicklungen fließt. Dieser hat grundsätzlich die gleiche Form 
wie die oben erwähnte sinusförmige Spannung, ist aber phasenverschoben. 
Über die Phasenverschiebung kann auf die Last geschlossen werden, warum 
das so ist brauchen wir hier nicht zu diskutieren.

Nun zur eigentlichen Frage:
Wie kann ich sinnvoll den Strom der Motorwicklungen bzw. dessen 
Nulldurchgänge (?) messen? Grundsätzlich bin ich hier etwas hilflos, was 
das ausfiltern der PWM und evtl. Störungen angeht, da mich ja zunächst 
nur der Verlauf des Sinus interessiert. Gibt es hierzu fertige Bauteile 
(bzw. Stromsensoren), die eine solche Strommessung inkl. evtl. 
einstellbarer Filterung realisieren? Muss ich die Messung diskret 
aufbauen (Shuntwiderstand, Filter etc.)? Wie sieht hierzu eine 
Grundschaltung aus?

Weiterhin möchte ich möglichst einfach den Gesamtstromverbrauch des 
Motors messen. Wie kann ich dies mit möglichst wenig Aufwand 
realisieren?

von Possetitjel (Gast)


Lesenswert?

Daniel S. schrieb:

> Über die Phasenverschiebung kann auf die Last geschlossen
> werden, warum das so ist brauchen wir hier nicht zu
> diskutieren.

Eine falsche Voraussetzung in Form einer Behauptung einbauen
und den Gesprächspartnern verbieten, darüber zu diskutieren.

Nette Idee.


Daniel S. schrieb:
> Wie kann ich sinnvoll den Strom der Motorwicklungen bzw.
> dessen Nulldurchgänge (?) messen?

Die Spannung an den Shunts der Stromregelung abgreifen
und weiterverarbeiten?

Daniel S. schrieb:
> Weiterhin möchte ich möglichst einfach den Gesamtstromverbrauch
> des Motors messen.

Die ohnehin gemessenen Phasenströme mit einem µC weiter-
verarbeiten?

von eagle user (Gast)


Lesenswert?

Daniel S. schrieb:

> Wie kann ich sinnvoll den Strom der Motorwicklungen bzw. dessen
> Nulldurchgänge (?) messen? Grundsätzlich bin ich hier etwas hilflos, was
> das ausfiltern der PWM und evtl. Störungen angeht, da mich ja zunächst
> nur der Verlauf des Sinus interessiert. Gibt es hierzu fertige Bauteile
> (bzw. Stromsensoren), die eine solche Strommessung inkl. evtl.
> einstellbarer Filterung realisieren?

Für kleine Motoren gibt's ICs die kaum noch externe Bauteile brauchen 
(die Typen mit "coolStep" können das):

http://www.trinamic.com/products/integrated-circuits/stepper-power-driver

> Weiterhin möchte ich möglichst einfach den Gesamtstromverbrauch des
> Motors messen. Wie kann ich dies mit möglichst wenig Aufwand
> realisieren?

Direkt am Netzteil reicht ein dicker Widerstand und ein 
Operationsverstärker mit einer Hand voll Rs und Cs. Man misst zwar den 
Strom für die Ansteuerung mit, aber den kann man raus rechnen oder sogar 
ignorieren.

von aSma>> (Gast)


Lesenswert?

Servus,
Google mal nach: Vektorregelung Schrittmotor.

> Nun zur eigentlichen Frage:
> Wie kann ich sinnvoll den Strom der Motorwicklungen bzw. dessen
> Nulldurchgänge (?) messen? Grundsätzlich bin ich hier etwas hilflos, was
> das ausfiltern der PWM und evtl. Störungen angeht, da mich ja zunächst
> nur der Verlauf des Sinus interessiert. Gibt es hierzu fertige Bauteile
> (bzw. Stromsensoren), die eine solche Strommessung inkl. evtl.
> einstellbarer Filterung realisieren? Muss ich die Messung diskret
> aufbauen (Shuntwiderstand, Filter etc.)? Wie sieht hierzu eine
> Grundschaltung aus?

z.B. ACS712 kannst du als Sensor nehmen. Einen Encoder auf den Motor 
brauchst du auch. Sonst brauchst du 2 H-Brücken, 2 DAC Ausgänge, 2 
Spulen und 2 Filterkondensatoren als Tiefpass.

Trinamic und Nanotec haben diese Technologie im Angebot.

von Daniel S. (ds1982)


Lesenswert?

Possetitjel schrieb:
>> Über die Phasenverschiebung kann auf die Last geschlossen
>> werden, warum das so ist brauchen wir hier nicht zu
>> diskutieren.
>
> Eine falsche Voraussetzung in Form einer Behauptung einbauen
> und den Gesprächspartnern verbieten, darüber zu diskutieren.
>
> Nette Idee.

Ich habe niemandem verboten darüber zu diskutieren.
Was ist an dieser Voraussetzung falsch?

von Daniel S. (ds1982)


Lesenswert?

aSma>> schrieb:
> Einen Encoder auf den Motor
> brauchst du auch.

Okay, der ist vorhanden. Mir ist aber noch nicht genaz klar warum ich 
diesen zur lastabhängigen Stromregelung brauche!?

von Possetitjel (Gast)


Lesenswert?

Daniel S. schrieb:

> Possetitjel schrieb:
>>> Über die Phasenverschiebung kann auf die Last geschlossen
>>> werden, warum das so ist brauchen wir hier nicht zu
>>> diskutieren.
>>
>> Eine falsche Voraussetzung in Form einer Behauptung einbauen
>> und den Gesprächspartnern verbieten, darüber zu diskutieren.
>>
>> Nette Idee.
>
> Ich habe niemandem verboten darüber zu diskutieren.

Ich habe Deine Floskel "...brauchen wir hier nicht zu
diskutieren..." so aufgefasst. "Das ist so. Ende. Aus.
Wer widerspricht, ist ein Blödmann", so in der Art.

> Was ist an dieser Voraussetzung falsch?

Die Phasenverschiebung zwischen Strom und Spannung ist im
Prinzip der cos_phi.

Mag sein, dass ich einen Fehler mache, aber ich sehe keinen
Mechanismus, wie der cos_phi beim Schrittmotor wesentlich
von der Last abhängen sollte.
Das müsste man diskutieren - aber das hast Du ja oben
vorsorglich abgelehnt.

Etwas anderes ist natürlich der Polradwinkel; der muss
selbstverständlich von der Last abhängen - aber den müsste
man halt separat messen.

von aSma>> (Gast)


Lesenswert?

Daniel S. schrieb:
> Okay, der ist vorhanden. Mir ist aber noch nicht genaz klar warum ich
> diesen zur lastabhängigen Stromregelung brauche!?

Du brauchst ein wenig Theoriewissen. Der Schrittmotor (Hybrid Motor) hat 
auch die Eigenschaft eines Synchronmotors. Mit den Encoder misst du den 
Polradwinkel und erhöhst ggf. den Strom!?

Bevor du eine lastabhängige Regelung machst, rate ich dir eine 
lastunabhängige Regelung durchzuführen. Also volle Lotte geben.

Außerdem wenn du eine Frage mit Nachdruck stellst, dann währe die 
Variante besser "?!". Andersherum denke ich du wärst ein Rhethoriker.

von Possetitjel (Gast)


Lesenswert?

aSma>> schrieb:

> Der Schrittmotor (Hybrid Motor) hat auch die Eigenschaft
> eines Synchronmotors. Mit den Encoder misst du den
> Polradwinkel und erhöhst ggf. den Strom!?

Ja - aber das ist technisch nicht dasselbe wie die
Vektorregelung beim Asynchron-Motor, die ja tatsächlich
mit Motorströmen und -spannungen auskommt, also keinen
zusätzlichen Sensor braucht.

Sensorlose feldorientierte Regelung beim Synchronmotor
geht auch, aber da kenne ich die Einzelheiten nicht.

von Daniel S. (ds1982)


Lesenswert?

Possetitjel schrieb:
> Ich habe Deine Floskel "...brauchen wir hier nicht zu
> diskutieren..." so aufgefasst. "Das ist so. Ende. Aus.
> Wer widerspricht, ist ein Blödmann", so in der Art.
>
>> Was ist an dieser Voraussetzung falsch?
>
> Die Phasenverschiebung zwischen Strom und Spannung ist im
> Prinzip der cos_phi.
>
> Mag sein, dass ich einen Fehler mache, aber ich sehe keinen
> Mechanismus, wie der cos_phi beim Schrittmotor wesentlich
> von der Last abhängen sollte.
> Das müsste man diskutieren - aber das hast Du ja oben
> vorsorglich abgelehnt.

Habe ich wie gesagt nicht abgelehnt. Damit, dass wir das nicht 
diskutieren brauchen meinte ich, dass ich davon ausgehe, dass dies eine 
allgemein bekannte Tatsache ist, bei der ich davon ausgehe, dass sie 
stimmt. Falls das nicht so ist belehre mich bitte eines besseren!
Mein Wissen stammt von hier (so ungefähr ab dem zum Bild 3 passenden 
Text):
http://www.elektroniknet.de/automation/sonstiges/artikel/56/

> Etwas anderes ist natürlich der Polradwinkel; der muss
> selbstverständlich von der Last abhängen - aber den müsste
> man halt separat messen.

Alles möglich und das mache ich auch bereits. Bevor ich aber hier etwas 
sinnvoll messe und reagieren kann hat der Motor bereits Schritte 
übersprungen, erst dann kann ich die Geschwindigkeit durch erhöhen der 
PWM (Drehmoment) nachregeln (Tue ich bereits, läuft auch).
Mit der obigen Methode möchte ich schon eine erhöhte Last feststellen 
bevor Schritte übersprungen werden.

aSma>> schrieb:
> Du brauchst ein wenig Theoriewissen. Der Schrittmotor (Hybrid Motor) hat
> auch die Eigenschaft eines Synchronmotors. Mit den Encoder misst du den
> Polradwinkel und erhöhst ggf. den Strom!?

Bereits implementiert und funktioniert! s.o.

>
> Bevor du eine lastabhängige Regelung machst, rate ich dir eine
> lastunabhängige Regelung durchzuführen. Also volle Lotte geben.

Wo ist bei "volle Lotte" (meint das PWM auf 100%?) noch eine Regelung?

Possetitjel schrieb:
> Ja - aber das ist technisch nicht dasselbe wie die
> Vektorregelung beim Asynchron-Motor, die ja tatsächlich
> mit Motorströmen und -spannungen auskommt, also keinen
> zusätzlichen Sensor braucht.

Jetzt sind wir auf einer "Wellenlänge" :-)
Wie, wenn nicht durch ausmessen der Phasenverschiebung funktioniert die 
Vektorregelung denn nun?

> Sensorlose feldorientierte Regelung beim Synchronmotor
> geht auch, aber da kenne ich die Einzelheiten nicht.

Habe ich mich bereits ein wenig mit der Theorie beschäftigt, das ist für 
mich aber der übernächste Schritt.

von Possetitjel (Gast)


Lesenswert?

Daniel S. schrieb:

>> Das müsste man diskutieren - aber das hast Du ja oben
>> vorsorglich abgelehnt.
>
> Habe ich wie gesagt nicht abgelehnt. Damit, dass wir das
> nicht diskutieren brauchen meinte ich, dass ich davon
> ausgehe, dass dies eine allgemein bekannte Tatsache ist,

Okay, dann habe ich Dich missverstanden. Entschuldigung.

> bei der ich davon ausgehe, dass sie stimmt.

Jein ... siehe unten.

> Falls das nicht so ist belehre mich bitte eines besseren!
> Mein Wissen stammt von hier (so ungefähr ab dem zum Bild 3
> passenden
> Text):
> http://www.elektroniknet.de/automation/sonstiges/artikel/56/

Danke für die Quelle. -- Ich habe den Artikel nur überflogen
und bin der Meinung, dass dieser Artikel sachliche Fehler
enthält. Ich möchte mich jetzt aber nicht ohne Vorbereitung
aus dem Fenster lehnen und schlage vor, dass wir dieses
Seitenthema bei Bedarf getrennt diskutieren.

>> Etwas anderes ist natürlich der Polradwinkel; der muss
>> selbstverständlich von der Last abhängen - aber den müsste
>> man halt separat messen.
>
> Alles möglich und das mache ich auch bereits. Bevor ich aber
> hier etwas sinnvoll messe und reagieren kann hat der Motor
> bereits Schritte übersprungen, erst dann kann ich die
> Geschwindigkeit durch erhöhen der PWM (Drehmoment) nachregeln
> (Tue ich bereits, läuft auch).

Nur dass ich Dich richtig verstehe: Du hast bereis einen Encoder,
mit dem Du (erfolgreich) die Ist-Position bestimmen und somit
Schrittverlust feststellen kannst?

> Mit der obigen Methode möchte ich schon eine erhöhte Last
> feststellen bevor Schritte übersprungen werden.

Das heißt, Du möchtest einen zu großen Polradwinkel bereits
feststellen, bevor der Motor "übergeschnappt" ist.

> Possetitjel schrieb:
>> Ja - aber das ist technisch nicht dasselbe wie die
>> Vektorregelung beim Asynchron-Motor, die ja tatsächlich
>> mit Motorströmen und -spannungen auskommt, also keinen
>> zusätzlichen Sensor braucht.
>
> Jetzt sind wir auf einer "Wellenlänge" :-)
> Wie, wenn nicht durch ausmessen der Phasenverschiebung
> funktioniert die Vektorregelung denn nun?

Gegenfrage: Von welchem Typ rotierender elektrischer Maschinen
sprechen wir?

Die Vektorregelung beim Asynchronmotor kommt ohne zusätzlichen
Sensor aus und funktioniert tatsächlich durch Ausmessen der
Phasenverschiebung (=cos_phi).
Wenn wir mal von sinusförmigem Strom- und Spannungsverlauf
ausgehen, dann kann der Umrichter anhand der Amplitude und
der Phasenlage des Stromes (relativ zur Spannung) Blind-
und Wirkleistungsaufnahme des Motors unterscheiden und so
auf den Betriebszustand des Motors (d.h. seine Belastung)
rückschließen.

Was Dich aber (soweit ich verstanden habe) im Moment inter-
essiert, ist die "Vektorregelung" von speziellen Synchron-
maschinen, nämlich von stark genuteten Synchronmotoren mit
hoher Polpaarzahl (=Schrittmotoren).

Warum man das Prinzip der Vektorregelung, wie sie beim
Asynchronmotor arbeitet, nicht einfach auf die Synchron-
maschine übertragen kann, das weiss ich nicht; das müsste
ich mir mal anlesen.

Der oben zitierte Artikel beschreib jedenfalls einen
anderen Effekt: Durch die starke Nutung ist der magnetische
Widerstand des Schrittmotors im Verlaufe eines Vollschrittes
(=360° elektrisch) nicht konstant. Anders formuliert: Die
Induktivität der Motorwicklungen hängt von der genauen
Stellung des Läufers ab.
Wenn man also - das ist die Schlüsselidee - den Schrittmotor
mit genau sinusförmigen Spannungen beaufschlagt, dann sind
die Wicklungsströme NICHT genau sinusförmig! Es entsteht
aufgrund der schwankenden Induktivität eine Art Verzerrungs-
blindleistung, und DIESE kann man messen. Mit einer einfachen
Messung der Phasenverschiebung ist es nicht getan.

>> Sensorlose feldorientierte Regelung beim Synchronmotor
>> geht auch, aber da kenne ich die Einzelheiten nicht.
>
> Habe ich mich bereits ein wenig mit der Theorie beschäftigt,
> das ist für mich aber der übernächste Schritt.

Ist vielleicht eine ungünstige Reihenfolge.

Als Kernpunkt sehe ich die Frage: Warum funktioniert die
einfache Vektorregelung über den cos_phi, wie man sie beim
Asynchronmotor verwendet, beim Synchronmotor nicht? Ganz
offensichtlich ist das ja so, denn sowohl die sensorlose
feldorientierte Regelung beim BLDC als auch StallGuard
beim Schrittmotor funktionieren nach meinem Verständnis
anders.

von Daniel S. (ds1982)


Lesenswert?

Possetitjel schrieb:

> Danke für die Quelle. -- Ich habe den Artikel nur überflogen
> und bin der Meinung, dass dieser Artikel sachliche Fehler
> enthält. Ich möchte mich jetzt aber nicht ohne Vorbereitung
> aus dem Fenster lehnen und schlage vor, dass wir dieses
> Seitenthema bei Bedarf getrennt diskutieren.

Gut, ich komme evtl. darauf zurück.
Ich hatte aufgrund der Referenzen des Autors des Artikels einfach ein 
großes Vertrauen in die sachliche Richtigkeit. Wir werden sehen...


> Nur dass ich Dich richtig verstehe: Du hast bereis einen Encoder,
> mit dem Du (erfolgreich) die Ist-Position bestimmen und somit
> Schrittverlust feststellen kannst?

korrekt. Ausserdem habe ich bereits einen Regler implementiert, der dden 
PWM-Dutycycle (und damit das Drehmoment) in diesem Fall erhöht um die 
Drehzahl wieder auszugleichen bzw. das "Überschnappen" zu vermeiden. 
Funktioniert soweit.

>> Mit der obigen Methode möchte ich schon eine erhöhte Last
>> feststellen bevor Schritte übersprungen werden.
>
> Das heißt, Du möchtest einen zu großen Polradwinkel bereits
> feststellen, bevor der Motor "übergeschnappt" ist.

Wenn du mit Polradwinkel die Abweichung der Rotorposition (aufgrund der 
Belastung) von der Position im unbelasteten Zustand (evtl. Sollzustand) 
meinst: korrekt!
Letzteren Sollzustand möchte ich ja dann mit mehr Strom (aus 
PWM-Dutycycle) und somit mehr Kraft bzw. Drehmoment wiederherstellen.

>> Possetitjel schrieb:
>>> Ja - aber das ist technisch nicht dasselbe wie die
>>> Vektorregelung beim Asynchron-Motor, die ja tatsächlich
>>> mit Motorströmen und -spannungen auskommt, also keinen
>>> zusätzlichen Sensor braucht.
>>
>> Jetzt sind wir auf einer "Wellenlänge" :-)
>> Wie, wenn nicht durch ausmessen der Phasenverschiebung
>> funktioniert die Vektorregelung denn nun?
>
> Gegenfrage: Von welchem Typ rotierender elektrischer Maschinen
> sprechen wir?

bipolarer (2 Phasen) Hybrid-Schrittmotor

> Die Vektorregelung beim Asynchronmotor kommt ohne zusätzlichen
> Sensor aus und funktioniert tatsächlich durch Ausmessen der
> Phasenverschiebung (=cos_phi).

...

> Wenn man also - das ist die Schlüsselidee - den Schrittmotor
> mit genau sinusförmigen Spannungen beaufschlagt, dann sind
> die Wicklungsströme NICHT genau sinusförmig! Es entsteht
> aufgrund der schwankenden Induktivität eine Art Verzerrungs-
> blindleistung, und DIESE kann man messen. Mit einer einfachen
> Messung der Phasenverschiebung ist es nicht getan.

Gut, das würde ich mich gerne anschauen, dazu muss ich irgendwie 
sinnvoll den Strom messen und dazu mindestens die PWM rausfiltern um 
einen halbwegs "sauberen" Sinus (oder eben das von dir beschriebene 
verformte Sinussignal) zu bekommen und diesen abzutasten.

Das ist genau nun meine Eingangsfrage: Wie messe ich sinnvoll diesen 
Strom? Gibt es bereits Bauteile die das -out of the box- können? Ist es 
mit einem einfachen Tiefpass getan?


> Als Kernpunkt sehe ich die Frage: Warum funktioniert die
> einfache Vektorregelung über den cos_phi, wie man sie beim
> Asynchronmotor verwendet, beim Synchronmotor nicht? Ganz
> offensichtlich ist das ja so, denn sowohl die sensorlose
> feldorientierte Regelung beim BLDC als auch StallGuard
> beim Schrittmotor funktionieren nach meinem Verständnis
> anders.

... dazu suche ich jetzt mal nach Literatur.

: Bearbeitet durch User
von aSma>> (Gast)


Lesenswert?

Daniel S. schrieb:
> Wie, wenn nicht durch ausmessen der Phasenverschiebung funktioniert die
> Vektorregelung denn nun?

Du misst einfach die Polradspannung. Wenn du das geschaft hast, dann sag 
bescheid.


Daniel S. schrieb:
>> Bevor du eine lastabhängige Regelung machst, rate ich dir eine
>> lastunabhängige Regelung durchzuführen. Also volle Lotte geben.
>
> Wo ist bei "volle Lotte" (meint das PWM auf 100%?) noch eine Regelung?

Ja, ein lastunabhängige Positionsregelung.

So jetzt kommen wir endlich deinen Problem über was man jetzt 
diskutieren kann: Wann bekommst du die Schrittverluste?
-Bei der Beschleunigung? Bau eine Beschleunigungs Rampe rein.
-Ist eventuell deine Regelung zu langsam? Wie schnell tastest du ab?

Was du machen willst ist, einen Schrittmotor die Eigenschaft eines 
Gleichstrommotors zu verpassen ohne dessen Nachteil: kaum Drehmoment bei 
niedrigen Drezahl. Dann müssest du auch deinen Schrittmotor eine 
Drehzahlkonstante...

Possetitjel schrieb:
> Gegenfrage: Von welchem Typ rotierender elektrischer Maschinen
> sprechen wir?

Steht in der Überschrift: Schrittmotor!

von Possetitjel (Gast)


Lesenswert?

Daniel S. schrieb:

>> Wenn man also - das ist die Schlüsselidee - den Schrittmotor
>> mit genau sinusförmigen Spannungen beaufschlagt, dann sind
>> die Wicklungsströme NICHT genau sinusförmig! Es entsteht
>> aufgrund der schwankenden Induktivität eine Art Verzerrungs-
>> blindleistung, und DIESE kann man messen. Mit einer einfachen
>> Messung der Phasenverschiebung ist es nicht getan.
>
> Gut, das würde ich mich gerne anschauen, dazu muss ich
> irgendwie sinnvoll den Strom messen

Hmm. Ich glaube, ich bin Dir in die Falle gegangen:
Falls Du eine Stromchopper-Enstufe verwendest, kannst Du
diesen Strom natürlich NICHT messen! Der Strom wird ja
konstantgehalten!

Du müsstest die Spannungen an den Wicklungen messen
und das umrechnen.

> und dazu mindestens die PWM rausfiltern um einen halbwegs
> "sauberen" Sinus (oder eben das von dir beschriebene
> verformte Sinussignal) zu bekommen und diesen abzutasten.

Ja.

> Das ist genau nun meine Eingangsfrage: Wie messe ich sinnvoll
> diesen Strom?

Spannung.
Der Strom wird ja i.d.R. geregelt, ist also nahezu konstant.
Die Spannung ist es, die schwankt.

> Gibt es bereits Bauteile die das -out of the box- können?

Nein.
Du wirst Instrumentation Amplifier und AD-Wandler brauchen.
Wahrscheinlich auch Schutzbeschaltung gegen Überspannung.

> Ist es mit einem einfachen Tiefpass getan?

Nein, sicher nicht.
Ich denke, es wird notwendig sein, die Spannungsmessung mit
dem PWM/Stromchoppertakt zu synchronisieren, um immer an
derselben Stelle im Zyklus zu messen.

Das ist ja der übliche Trick sowohl bei Gleichspannungsmotoren
also auch bei BLDC; da würde ich mich mal belesen, wie das dort
gemacht wird.
Vielleicht finden sich auch Hinweise, wie das StallGuard-Zeug
funktioniert. Die kochen ja auch nur mit Wasser...

  *

Übrigens noch eine Ergänzung bzw. Korrktur: Ich bin inzwischen
unsicher geworden, denn es könnte sein, dass sich die positions-
abhängige Induktivität der Motorwicklungen im Endeffekt doch
einfach in einer Phasenverschiebung zwischen Strom und Spannung
niederschlägt.
Dann wäre zwar die Ursache ganz anders als beim DSAM, aber die
Wirkung ähnlich. - Da muss ich aber nochmal drüber schlafen.

von Possetitjel (Gast)


Lesenswert?

aSma>> schrieb:

> Possetitjel schrieb:
>> Gegenfrage: Von welchem Typ rotierender elektrischer
>> Maschinen sprechen wir?
>
> Steht in der Überschrift: Schrittmotor!

Nein.

Den Begriff "Vektorregelung", der hier gebraucht wurde, kenne
ich AUSSCHLIESZLICH von Drehstrom-Asynchronmotoren.

Die sensorlose Bestimmung des Polradwinkels beim Schrittmotor
ist dann doch eine etwas andere Baustelle.

Es hat seinen Grund, warum ich begriffliche Klarheit haben
möchte.

von Daniel S. (ds1982)


Lesenswert?

aSma>> schrieb:
> Daniel S. schrieb:
>> Wie, wenn nicht durch ausmessen der Phasenverschiebung funktioniert die
>> Vektorregelung denn nun?
>
> Du misst einfach die Polradspannung. Wenn du das geschaft hast, dann sag
> bescheid.
>
> Daniel S. schrieb:
>>> Bevor du eine lastabhängige Regelung machst, rate ich dir eine
>>> lastunabhängige Regelung durchzuführen. Also volle Lotte geben.
>>
>> Wo ist bei "volle Lotte" (meint das PWM auf 100%?) noch eine Regelung?
>
> Ja, ein lastunabhängige Positionsregelung.

Das ist dann irgendwann der letzte Schritt, der auf allen anderen 
aufbaut. Um diesen zu realisieren muss ich zunächst den Strom regeln und 
danach die Drehzahl. Damit kann ich dann eine Position anfahren, die 
dann von mir aus auch noch geregelt wird.

Positionsregelung mit vollem Drehmoment ist kein Thema, habe ich bereits 
implementiert, läuft, ist nur nicht mein Ziel.

> So jetzt kommen wir endlich deinen Problem über was man jetzt
> diskutieren kann: Wann bekommst du die Schrittverluste?
> -Bei der Beschleunigung? Bau eine Beschleunigungs Rampe rein.
> -Ist eventuell deine Regelung zu langsam? Wie schnell tastest du ab?

Die Schrittverluste provoziere ich gezielt um meine Regelung zu testen, 
die evtl. bei zu hoher Last auch den Motor abschalten soll und einen 
Fehler anzeigt.
Nochmal: Ich baue hier eine Entwicklungsplattform, mit der ich zunächst 
die Eigenschaften verschiedener Motortypen (aktuell den genannten 
Schrittmotor) verstehen und Demonstrieren möchte. Ich habe NICHT das 
Problem, dass mein Motor "nicht richtig" läuft und ich nur eine simple 
Motoransteuerung "ans laufen" bringen möchte.

> Was du machen willst ist, einen Schrittmotor die Eigenschaft eines
> Gleichstrommotors zu verpassen ohne dessen Nachteil: kaum Drehmoment bei
> niedrigen Drezahl. Dann müssest du auch deinen Schrittmotor eine
> Drehzahlkonstante...

fast richtig. Ich möchte meinen Schrittmotor wie einen Servomotor 
betreiben. Durchaus üblich, siehe o.g. Hersteller diverser 
Motortreiber-IC's

von Daniel S. (ds1982)


Lesenswert?

Possetitjel schrieb:
> Daniel S. schrieb:
>
>>> Wenn man also - das ist die Schlüsselidee - den Schrittmotor
>>> mit genau sinusförmigen Spannungen beaufschlagt, dann sind
>>> die Wicklungsströme NICHT genau sinusförmig! Es entsteht
>>> aufgrund der schwankenden Induktivität eine Art Verzerrungs-
>>> blindleistung, und DIESE kann man messen. Mit einer einfachen
>>> Messung der Phasenverschiebung ist es nicht getan.
>>
>> Gut, das würde ich mich gerne anschauen, dazu muss ich
>> irgendwie sinnvoll den Strom messen
>
> Hmm. Ich glaube, ich bin Dir in die Falle gegangen:
> Falls Du eine Stromchopper-Enstufe verwendest, kannst Du
> diesen Strom natürlich NICHT messen! Der Strom wird ja
> konstantgehalten!

Nein! Ich verwende KEINEN fertigen Motortreiber-IC, sondern eine PWM, 
mit der ich zwei H-Brücken ansteuere, welche wiederum im richtigen 
"Takt" die Motorwicklungen "durchschalten" oder "ansteuern" (mir fehlt 
das richtige Wort).

Im Prinzip baue ich mehr oder weniger einen solchen Motortreiber-IC 
diskret auf.

Und genau die o.g. Regelung des Stromes möchte ich realisieren. Diese 
ist später die Stellgröße für meinen Drehzahlregler.

> Du müsstest die Spannungen an den Wicklungen messen
> und das umrechnen.

Wie man Ströme misst ist mir klar, wie gesagt geht es mehr um die 
Filterung, so dass ich den "Sinus" ohne PWM messen kann, da dieser ggf. 
die Informationen enthält die für meine Regelung wichtig sind.


>> Das ist genau nun meine Eingangsfrage: Wie messe ich sinnvoll
>> diesen Strom?
>
> Spannung.
> Der Strom wird ja i.d.R. geregelt, ist also nahezu konstant.
> Die Spannung ist es, die schwankt.

s.o.

>
>> Gibt es bereits Bauteile die das -out of the box- können?
>
> Nein.
> Du wirst Instrumentation Amplifier und AD-Wandler brauchen.
> Wahrscheinlich auch Schutzbeschaltung gegen Überspannung.

Klar.

>> Ist es mit einem einfachen Tiefpass getan?
>
> Nein, sicher nicht.
> Ich denke, es wird notwendig sein, die Spannungsmessung mit
> dem PWM/Stromchoppertakt zu synchronisieren, um immer an
> derselben Stelle im Zyklus zu messen.

Das ist evtl. ein guter Ansatz. Da ich die PWM selbst generiere könnte 
ich immer dann messen, wenn diese gerade "angeschaltet" ist. Selbiges 
wollte ich mit dem Tiefpass umgehen.

>
> Das ist ja der übliche Trick sowohl bei Gleichspannungsmotoren
> also auch bei BLDC; da würde ich mich mal belesen, wie das dort
> gemacht wird.
> Vielleicht finden sich auch Hinweise, wie das StallGuard-Zeug
> funktioniert. Die kochen ja auch nur mit Wasser...
>

Gut, ich suche mal in diese Richtung.

> Übrigens noch eine Ergänzung bzw. Korrktur: Ich bin inzwischen
> unsicher geworden, denn es könnte sein, dass sich die positions-
> abhängige Induktivität der Motorwicklungen im Endeffekt doch
> einfach in einer Phasenverschiebung zwischen Strom und Spannung
> niederschlägt.
> Dann wäre zwar die Ursache ganz anders als beim DSAM, aber die
> Wirkung ähnlich. - Da muss ich aber nochmal drüber schlafen.

Gut, ich habe mir inzwischen mal einen Hallsensor zum Messen des Stromes 
bestellt und werde mir die Phasenverschiebung von Strom und Spannung 
morgen einmal bei unterschiedlichen Lastfällen anschauen. Mit 
Oszilloskop ist die PWM ja auch erstmal egal, diese wird dann wieder 
wichtig, wenn ich diese sinnvoll mit einem µC verarbeiten möchte.

von Daniel S. (ds1982)


Lesenswert?

Possetitjel schrieb:
> aSma>> schrieb:
>
>> Possetitjel schrieb:
>>> Gegenfrage: Von welchem Typ rotierender elektrischer
>>> Maschinen sprechen wir?
>>
>> Steht in der Überschrift: Schrittmotor!
>
> Nein.
>
> Den Begriff "Vektorregelung", der hier gebraucht wurde, kenne
> ich AUSSCHLIESZLICH von Drehstrom-Asynchronmotoren.

... wird aber in der Literatur häufig mit der sog. "Feldorientierten 
Regelung" der genannten Schrittmotoren gleichgesetzt.


> Die sensorlose Bestimmung des Polradwinkels beim Schrittmotor
> ist dann doch eine etwas andere Baustelle.

Genau. Das wird später mal ein Thema. Solange: Mit Sensor (in meinem 
Fall der Stromsensor mit evtl. Filterung, wonach ich eingangs fragte).

: Bearbeitet durch User
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.