- 12V Akku mit 280 Ah bauen         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: Elektronische Lastmessung bei Schrittmotoren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von H.A.R.R.Y.
    Registriert seit
    15.09.2005
    Beiträge
    306

    Elektronische Lastmessung bei Schrittmotoren

    Hi,

    ich bin gerade dabei eine neue Schrittmotorsteuerung für meinen Roboter zu entwickeln. Ziel ist es, die aktuelle Drehmomentbelastung des SM (=Schrittmotor) zu erkennen. Drehmomentsensoren kommen dafür nicht in Frage (Baugröße, Preis, Gewicht, Energieaufnahme). Stattdessen möchte eine Möglichkeit vorsehen, den aktuellen Lastzustand direkt aus den Ansteuersignalen des SM herauszumessen. Bei Überlast droht nämlich Schrittverlust und genau das möchte ich vermeiden. Prinzipiell geht das so:

    Ein SM ist eine Wechselstrom-Synchron-Maschine. Entsprechend des geforderten Drehmomentes bleibt der Rotor um einen bestimmten Phasenwinkel hinter dem Erregerfeld zurück. Bei 90° Phasenwinkel ist das maximale Drehmoment erreicht und der Motor an seiner Drehmomentgrenze. Ein SM mit permanentmagnetischem Rotor induziert bei Drehung ein sinusförmiges (oder zumindest sehr ähnliches) Spannungssignal. Die Amplitude ist proportional der Rotordrehzahl, die Frequenz gibt noch präziser Auskunft darüber. Der Augenblickswert der Gegen-EMK ist ein Maß für die aktuelle Rotorposition.

    Den Phasenwinkel bekomme ich also heraus, indem ich die Gegen-EMK einer gerade unbestromten Wicklung messe und deren Phasenlage mit meinen Ansteuersignalen korreliere. Also setze ich voraus, daß der SM synchron zur elektrischen Erregung läuft. Schmutzeffekte durch die Sperrerholzeiten der Freilaufdioden und die Schaltzeiten der MOSFETs bleiben hier erst mal aussen vor. Ebenso die Wicklungsinduktivität mit ihren Nebenwirkungen. Die spielen erst bei höheren Schrittraten eine Rolle und können durch entsprechende Bauteileauswahl reduziert werden.

    Aus diversen Gründen verwende ich KEINEN Choppertreiber (L297 o.ä.) und steuere die Halbbrücken direkt per µController an - das spart den Sequenzer samt Stromaufnahme und gestattet Messungen auf die Abläufe zu synchronisieren. Außerdem weiß ich, daß bei einem SM die Stromaufnahme allein kein zuverlässiges Maß für das abgegebene Drehmoment ist (im Gegensatz zum DC-Motor).

    Nochmal die Zielsetzung: Ich möchte aus den elektrischen Signalen der SM-Ansteuerung erkennen, wie groß die Belastung des SM ist, und ob Überlastung droht (Rotorwinkel >=90° zum Erregerfeld). So ist es für jeden SM tauglich. Das ganze muß unbedingt µC-tauglich sein.

    Hat jemand schon einmal solche Versuche gemacht oder sonstwie Erfahrungen auf diesem Gebiet? Dies ist keine Bitte mir meine "Hausaufgaben" zu erledigen, ich benötige ein wenig Erfahrungsaustausch um eventuelle "Fallen" zu vermeiden. Ach so: Verwenden möchte ich später 2-Strang-bipolar-SM, aber die Grundlagen gelten genauso für alle anderen Varianten auch.

    Gruß René
    a) Es gibt keine dummen Fragen, nur dumme Antworten
    b) Fehler macht man um aus ihnen zu lernen
    c) Jeder IO-Port kennt drei mögliche Zustände: Input, Output, Kaputt

  2. #2
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.075
    Die häufigste Ansteuerungsart ist die mit 2 bestromten Phasen.
    Möchtest Du bipolar mit Einzelphasenansteuerung nehmen?
    Hast Du schon eine TreiberSchaltung an der Du auch messen kannst?

    Ich beschäftige mich in einem andern Zusammenhang mit dem Thema und schlage vor, zur Lösung auch über den Weg Stromaufnahme kombiniert mit Drehzahl nachzudenken.

    Die Stromaufnahme ist kein universelles Maß für die Last, zumindest nicht im Stand und auch nicht ohne Berücksichtigung der Drehzahl. Sie hängt aber bei gleicher Ansteuerung und gleicher Drehzahl von dem Lastwinkel des Ankers ab.
    Manfred

  3. #3
    Erfahrener Benutzer Begeisterter Techniker Avatar von H.A.R.R.Y.
    Registriert seit
    15.09.2005
    Beiträge
    306
    Also: Eine Treiberschaltung habe ich - ich nehme einfach mal eine "alte" Platine mit L293E und einem ATmega16. Die ist zwar nicht für SM ausgelegt worden (war für DC-Motoren), aber die tut es schon mal. Der ATmega16 ist immerhin im Design umzuprogrammieren. Später werde ich dann eine maßgeschneiderte MOSFET-Brücke verwenden um auch noch die Verlustleistung und den Spannungsverlust der L293 einzusparen. Da sehe ich kein Problem. Aber dafür ist halt erst mal die "Grundlagenforschung" nötig.

    Verwendet werden 2-Phasen-bipolar-SM, ca. 3ms/Step, 31Ohm, 18mH.

    2 bestromte Phasen (auch als FullStep FullDrive bezeichnet) kann ich nicht nehmen. Da ist die Spannungsmessung nicht machbar, da dann beide Phasen niederohmig bestromt sind. Einen Konstantstromtreiber (= hoher Innenwiderstand) verwende ich auch nicht -> Verlustleistung.

    Damit ist für erste Tests die Betriebsart FullStep WaveDrive (eine Phase unter Strom die andere hochohmig) am naheliegensten. Immer nur eine Phase bestromt, die andere liefert dann die Gegen-EMK. Das liefert immerhin mindestens 70% des Drehmomentes mit 2 bestromten Phasen. Gestern abend habe ich schon mal einen Versuchsaufbau zusammengestellt und erste Tests gemacht, ob der Motor dreht und ich am Scope was sinnvolles sehe. Jetzt muß ich die genaueren Testbedingungen ausarbeiten, Scopefotos machen und auswerten. Bei HalfStep ist in jedem zweiten (Halb-)Schritt auch eine Phase stromlos und damit die Gegen-EMK meßbar. Das ist aber noch Zukunftsmusik. Könnte aber gehen und wegen der HalfStep-Steuerung läuft der SM dann auch noch leiser.

    Drehzahl mit Stromaufnahme könnte klappen, aber dafür müßte der Motor auf einem Prüfstand eingemessen werden um die Zusammenhänge Drehzahl-Laststrom zu bekommen. Dabei kenne ich aber immer noch nicht den Lastwinkel des Rotors. Der dürfte das verlässlichste Maß für die Last (und den drohenden Synchronitätsverlust) darstellen. Natürlich hängt die Stromaufnahme des SM bei KONSTANTER Drehzahl nur vom Lastwinkel und damit vom Drehmoment ab. Das ist das gleiche wie bei Drehstrommaschinen in der Industrie. Aber wie kann ich drohende Überlast rechtzeitig vor dem Verlust der Synchronität erkennen? Oder noch eine Stufe weitergedacht: Wie kann ich die Hochlauframpen (evtl. auch die Bremsrampen) vom nötigen Lastmoment abhängig machen? Selbst die Synchronmaschinen in industriellem Einsatz laufen ASYNCHRON hoch und rasten dann erst synchron ins drehende Magnetfeld ein. Um die SM voll synchron anzufahren brauche ich zwingend die Info wie weit sich der Rotor TATSÄCHLICH gedreht hat, bevor ich den nächsten Schritt korrekt kommutieren kann. Der Phasenstrom ist dabei nicht brauchbar, da ich die tatsächlich erreichte Rotor-Drehzahl bzw. -position (relativ) nicht kenne; ohne Auswertung der Gegen-EMK kann ich die Rotor-Position nur raten.

    (Vielleicht?) noch ein Argument gegen die Variante mit der Stromaufnahme: Die Zeitkonstante der Wicklungsinduktivität mit dem Wicklungs- und Treiberinnenwiderstand verbietet sofortige Stromänderungen. Der Phasenstrom ist phasenverschoben zur Erregerspannung. Die Gegen-EMK dagegen ist nicht phasenverschoben und hat keine Zeitkonstante.

    Was passiert wenn ich den Motor mit hoher Schrittrate ansteuere, der Rotor aber steht? Der induktive Blindwiderstand ist recht hoch und der Phasenstrom erreicht vielleicht nicht mal die Werte, die ein synchronlaufender Rotor unter Last erreicht. Also eine Überschneidung der Bereiche und damit kein Kriterium für eine Lasterkennung. Aus der Schrittrate kenne ich ja nur das Drehzahl-Soll. Das Drehzahl-Ist kann ich immer nur raten. Daher die Idee die Gegen-EMK in der unbestromten Wicklung zu messen.

    Bei niedrigen Schrittraten ist vielleicht die Gegen-EMK nicht hoch genug um die Phasenlage sauber zu detektieren. Das hängt ja auch vom Quantisierungsrauschen des ADC und anderen Störungen ab. Zumindest kann ich einen konstanten Zusammenhang zwischen Motor(soll)drehzahl und erwarteter Gegen-EMK aufstellen. Außerdem erwarte ich in jedem Fall, daß eine bestimmte Mindestdrehzahl der Maschine nicht unterschritten wird. Damit gibt es immerhin eine Untergrenze für die Gegen-EMK.

    Der Einsatz des SM ist im Fahrantrieb des Roboters. Dadurch habe ich kein konstantes Lastmoment und kann es auch nicht voraussetzen. Die Vorteile des SM zum Positionieren ohne zusätzliche Sensoren will ich aber trotzdem nutzen. Natürlich könnte ich den SM so ansteuern, daß er unter den schlechtestmöglich erwarteten Bedingungen sicher arbeitet, aber dann verliere ich drastisch an Geschwindigkeit. Und ab und zu vielleicht doch die exakte Position.

    So viele Gedanken und irgendwie noch keinen rechten Plan.

    @Manf: Was hast Du denn für einen Einsatz im Auge?
    a) Es gibt keine dummen Fragen, nur dumme Antworten
    b) Fehler macht man um aus ihnen zu lernen
    c) Jeder IO-Port kennt drei mögliche Zustände: Input, Output, Kaputt

  4. #4
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.075
    Aus der Schrittrate kenne ich ja nur das Drehzahl-Soll. Das Drehzahl-Ist kann ich immer nur raten. Daher die Idee die Gegen-EMK in der unbestromten Wicklung zu messen.
    Zunächst einmal freue ich mich so viele nachvollziehbare Gedanken zu lesen.
    Ein paar Anmerkungen habe ich in jedem Fall:
    Einige Ansätze gehen von asynchronen Zuständen aus. Die sollten in Frage gestellt werden. Der asysnchrone Hochlauf einer Synchronmschine erfolgt ohne nenenswerte* Last (*weit weg von Nennlast).
    Auch die Überlegung, dass die Schrittrate das Drehzahl-Soll angibt, und nicht das -Ist, überschreitet die Grenze des zu betrachtenden Bereichs.

    Sonst bin ich dabei, die unbestromte Phase zur Spannungsmessug zu nutzen ist in Ordnung. Wie wäre es sie so zu nutzen, dass man eine Spannung anlegt und feststellt, welcher Strom fließt, dann kann man auf die induzierte Spannung schließen (natürlich nur in der kurzen Zeit bis eine Stromregelung einsetzt, eine Zeit, die aber zur Schrittperiode relativ länger und bedeutender wird, wenn die Drehzahl über den Bereich hinsausgeht der als statisch angesehen werden kann).

    Zugegeben das ist keine klassische Betrachtung, aber das ist dann auch mein Ansatz, den ich in den nächsten Tagen einmal einbringen wollte. Weniger ein Meßverfahren mehr eine Berechnung, oder eine Betrachtung?
    Manfred

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von H.A.R.R.Y.
    Registriert seit
    15.09.2005
    Beiträge
    306
    Zitat Zitat von Manf
    [...]Der asysnchrone Hochlauf einer Synchronmschine erfolgt ohne nenenswerte* Last (*weit weg von Nennlast).
    Das mag vielleicht bei den industriellen Synchronmaschinen so sein. Bei meinem Fahrantrieb habe ich aber keine Kupplung und daher muß der SM aus dem Stand heraus unter Voll-Last beschleunigt werden (die Masse des Roboters ist ja immer gleich und Kraft=Masse*Beschleunigung - über den Raddurchmesser und die Getriebeuntersetzung komme ich dann aufs nötige Motormoment). Das gilt Geschwindigkeitsunabhängig.

    Alle SM-Literatur, die ich bisher lesen konnte, geht immer von genau definierten Lastbedingungen aus, die bei einem Fahrantrieb in "natürlicher" Umgebung (Wohnung) natürlich nie zutreffen. Also sind die dort vorgestellten Treibervarianten und Auslegungen nur sehr bedingt einzusetzen.

    Zitat Zitat von Manf
    Auch die Überlegung, dass die Schrittrate das Drehzahl-Soll angibt, und nicht das -Ist, überschreitet die Grenze des zu betrachtenden Bereichs.
    Also mit der Bemerkung kann ich jetzt auf Anhieb nichts anfangen. Du meinst wahrscheinlich, daß der SM typischerweise synchron zum Erregerfeld dreht und daher Drehzahl-Soll und Drehzahl-Ist identisch sind. Habe ich das richtig verstanden? Dann hast Du ganz klar Recht.

    Nur möchte ich halt auch erkennen können wenn der SM nicht synchron dreht. Dann ist es zwar für die Positionierung zu spät, aber das ist immerhin eine Fehlerinfo die ich der Robotersteuerung nicht vorenthalten möchte - zumindest wenn sie ohne großen Aufwand aus den Messungen mit herauspurzelt.

    Zitat Zitat von Manf
    Sonst bin ich dabei, die unbestromte Phase zur Spannungsmessug zu nutzen ist in Ordnung. Wie wäre es sie so zu nutzen, dass man eine Spannung anlegt und feststellt, welcher Strom fließt, dann kann man auf die induzierte Spannung schließen[...]
    Warum so kompliziert? Der drehende (permanentmagnetische) Rotor induziert doch schon direkt eine Spannung. Aus der Akkuspannung minus Gegen-EMK kann ich allerdings auf den maximal möglichen Stromfluß (gemäß Herrn Ohm) rechnen und damit auf's höchstmögliche Drehmoment bei dieser Drehzahl. Zusätzlichen Meßstrom durch die eigentlich unbestromte Wicklung zu schicken könnte unerwünschten Einfluß auf den Motorlauf haben. Davon möchte ich lieber die Finger lassen.

    Zitat Zitat von Manf
    Zugegeben das ist keine klassische Betrachtung, aber das ist dann auch mein Ansatz, den ich in den nächsten Tagen einmal einbringen wollte. Weniger ein Meßverfahren mehr eine Berechnung, oder eine Betrachtung?
    Na auf alle Fälle, bitte berichte mal über Deine Erfahrungen. Ist immer gut andere Sichtweisen und Verfahren kennenzulernen. Ich werde meine Ergebnisse hier auch einstellen und kommentieren - sofern das gewünscht ist. Werden dann einige JPGs dabei sein.

    So, jetzt muß ich in die Küche. Ich schaue später oder morgen wieder rein...
    a) Es gibt keine dummen Fragen, nur dumme Antworten
    b) Fehler macht man um aus ihnen zu lernen
    c) Jeder IO-Port kennt drei mögliche Zustände: Input, Output, Kaputt

  6. #6
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.075
    Elektronische Lastmessung bei Schrittmotoren
    daß der SM typischerweise synchron zum Erregerfeld dreht und daher Drehzahl-Soll und Drehzahl-Ist identisch sind
    Darauf sollte es auch es auch abzielen, dass der Motor sich dreht und die Phase zwischen Ansteuerung und Drehwinkel gemessen wird. Diese Phase ändert sich ja mit der Last und die sinunsförmige induzierte Spannung erreicht je nach Phase bezüglich der Ansteuerung unterschiedliche Werte.

    Wie wäre es sie so zu nutzen ... Warum so kompliziert?... Zusätzlichen Messstrom
    Es ist kein zusätzlicher Messstrom gemeint. Wenn man einmal annimmt, dass man den Schrittmotor mit Stromquellen treiben könnte, dann brauchte man keine unbestromte Phase sondern könnte durch Messung der Spannung und Eliminieren des Spannungsabfalls an der Wicklungsimpedanz die induzierte Spannung messen.

    Man hat nun keine Stromquellen zur Verfügung, stattdessen hat man üblicherweise Spannungsquellen die im Chopperbetrieb die Spulen pro Schritt mit konstantem Strom versorgen. Sieht man von den Verlusten des Choppers ab, dann hat man Spannungsquellen die über das Tastverhältnis des Choppers einen Strom abgeben, der nach Eliminieren des Spannungsabfalls an der Wicklungsimpedanz der induzierten Spannung proportional ist. (Das gilt für der Versorgungsstrom aus der Spannungsquelle nicht für den Spulenstrom, der ja mit dem Chopper auf einen konstanten Wert geregelt wird)

    Das klingt nur kompliziert, läuft aber auf eine einfache Strommessung hinaus. Die Schrittmotor-Versorgungsspannung hat damit pro Drehzahl einen Leerlaufstrom und einen Laststrom aufzubringen der vom Lastmoment abhängt, im Stillstand nicht so sehr wie bei höheren Drehzahlen bei denen es kritisch wird. Es kann eine gute Näherung sein, diesen drehzahlabhängigen Strom zu messen.

    Ich will Dich aber nicht von den Untersuchungen mit der unbestromten Phase abbringen. Ich wollte die Strommessung zur Abschätzung des Last-Phasenwinkels nur einmal ansprechen.
    Manfred

  7. #7
    Erfahrener Benutzer Begeisterter Techniker Avatar von H.A.R.R.Y.
    Registriert seit
    15.09.2005
    Beiträge
    306
    Zitat Zitat von Manf
    Das gilt für der Versorgungsstrom aus der Spannungsquelle nicht für den Spulenstrom, der ja mit dem Chopper auf einen konstanten Wert geregelt wird
    Hm, der Spulenstrom wird vom Chopper konstant gehalten. Dadurch wirkt der wie eine Konstantstromquelle mit hohem Innenwiderstand und die Gegen-EMK kann abgeleitet werden. Nur: liegt da jetzt der Effekt der Leistungswandlung durch den Chopper (ist ja auch eine Art Schaltregler) zu Grunde? Ich stelle mir dabei folgendes vor (ohne Chopperverluste):
    a) Rotor blockiert, keine Gegen-EMK, Motorleistung_A=Wicklungsstrom^2*Wicklungswidersta nd, Aufnahmestrom_A=Motorleistung_A/Betriebsspannung
    b) Rotor dreht, Gegen-EMK, Motorleistung_B=Wicklungsstrom^2*Wicklungswidersta nd+Wicklungsstrom*Gegen-EMK, Aufnahmestrom_B=Motorleistung_B/Betriebsspannung
    Wegen des Choppers ist beide Male der Motorstrom gleich, außerdem ist auch die Betriebsspannung beide mal gleich. Auch der Wicklungswiderstand ist gleich. Daraus ergibt sich: der Aufnahmestrom_A ist kleiner als der Aufnahmestrom_B und das ist eigentlich unsinnig...

    Da ich über keinen Choppertreiber verfüge, kann ich in absehbarer Zeit auch keine Experimente damit anstellen.

    Mittlerweile habe ich einige Messungen angestellt, die zeigen, wie die Phasenlage der Gegen-EMK vom Drehmoment abhängt. Sobald ich ein Tool habe um das Dokument als .pdf zu generieren, poste ich das mal.
    Vorab schon mal folgendes: Im Gegensatz zur Strommessung, ist die Variante mit der Gegen-EMK unabhängig vom Motor sofort im Stande Auskunft über die (relative) Belastung abzugeben.
    René
    a) Es gibt keine dummen Fragen, nur dumme Antworten
    b) Fehler macht man um aus ihnen zu lernen
    c) Jeder IO-Port kennt drei mögliche Zustände: Input, Output, Kaputt

  8. #8
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.075
    a) Rotor blockiert, keine Gegen-EMK
    Ja, klar, auf eine Lastmessung bei Blockierung würde ich mich auch nicht einlassen.

    Gut wenn Du den Vorgang mit der direkten Messung der induzierten Spannung untersuchst. Sie wird von der Motorkonstanten, der Drehzahl und von der Phasenlage abhängen.

    Es wird sich dann sicher auch noch einmal eine Verbindung zur Messung des von einem Chopper aufgenommenen Stroms herstellen lassen, bei der nicht die eine Phase zur Messung freigehalten wird.

    Ich bin auf alle Fälle weiterhin sehr interessiert.
    Manfred

  9. #9
    Erfahrener Benutzer Begeisterter Techniker Avatar von H.A.R.R.Y.
    Registriert seit
    15.09.2005
    Beiträge
    306
    Amplitude wird beeinflußt durch Motorkonstante und Drehzahl. Ganz klar nach Induktionsgesetz.

    Die Phasenlage (zum Erregerfeld) hängt vom Drehmoment (und nur davon) ab. Ohne das ich das tatsächliche Drehmoment in Nm kenne, kann ich aus dem Phasenwinkel auf die Last schließen und das relative Drehmoment (0..100%) ermitteln. Für meine Anwendung wird das reichen. Außerdem ist der Gag, daß ich jeden Schrittmotor auf die Art ansteuern kann ohne das tasächliche Drehmoment zu kennen.

    Leider muß ich erstmal zusehen, wo ich ein einfaches Tool für das Erzeugen von pdf-Dateien herbekomme. Free-PDF ist ja ganz spaßig, benötigt aber noch irgendein Ghostview mit 10MByte. Das ist mir einfach zu viel per MODEM. Und das Word-Doc möchte ich hier nicht posten.
    a) Es gibt keine dummen Fragen, nur dumme Antworten
    b) Fehler macht man um aus ihnen zu lernen
    c) Jeder IO-Port kennt drei mögliche Zustände: Input, Output, Kaputt

  10. #10
    Erfahrener Benutzer Begeisterter Techniker Avatar von H.A.R.R.Y.
    Registriert seit
    15.09.2005
    Beiträge
    306
    So, hier jetzt die angesagten Meßergebnisse. Ich habe versucht das Ganze einfach und verständlich zu halten. Mein Equipment ist auch nicht das Neueste aber es langt immer noch.

    Grundsätzlich scheint die Lastmessung also zu funktionieren, jetzt muß ich erst mal ein Testboard für diesen Zweck (deutlich bessere Brücke als L293 mit 1N4004) entwerfen. Dann schaffe ich hoffentlich auch noch die Korrelation mit dem Phasenstrom.

    Gruß René
    Angehängte Dateien Angehängte Dateien
    a) Es gibt keine dummen Fragen, nur dumme Antworten
    b) Fehler macht man um aus ihnen zu lernen
    c) Jeder IO-Port kennt drei mögliche Zustände: Input, Output, Kaputt

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test