Hallo,
ich möchte mir in absehbarer Zukunft einen Schrittmotorcontroller bauen
für einen 5 Phasen Schrittmotor mit einem Spulenwiderstand von 0.57 Ohm
und Spuleninduktivität von 2.7 mH. Max. Spulenstrom ist dabei 2.1 A.
Sprich dafür brauche ich 5 H-Brücken die bei 80V Versorgungsspannung
wohl eher aus MOSFET's statt IGBT's bestehen werden.
Die Strommeßung würde ich über einen Shunt (max 1 Ohm) zwischen Masse
auf der einen Seite und D2/D4 auf der anderen Seite, realisieren, oder
mittels Hall-Sensor um weniger Stromverschwendung zu haben.
Egal wie ich messe, kriege ich als Resultat aber nur den Strom der sich
aus der Spannung die ich anlege ergibt, nicht aber abhängig von dem
Lastmoment. Das einzige an was ich denken kann, ist dass der Winkel dem
die Achse dem Stromfeld in Abhängigkeit des Lastmomentes nacheilt.
Allein den zu messen ist schon schwierig, da bei einem Vollschritt von
0.72° der Resolver/Encoder viel genauer sein müsste als üblich und die
Auswertung bei hohen Drehzahlen wird dann auch zur Herausforderung.
Daher die Frage: Habe ich vielleicht irgendwas vergessen. Gibt es
Wechselwirkungen aus denen man das Drehmoment raus rechnen kann?
Danke
mfg
Lenz
Lenz schrieb:> Die Strommeßung würde ich über einen Shunt (max 1 Ohm) zwischen Masse> auf der einen Seite und D2/D4 auf der anderen Seite, realisieren, oder> mittels Hall-Sensor um weniger Stromverschwendung zu haben.
Wo siehst du da Stromverschwendung? Allenfalls Spannungsverschwendung
und bei 80 V solltest du davon genug haben, insbesondere da du die hohe
Spannung nur brauchst, wenn der Spulenstrom noch nicht fließt ;-)
Matthias schrieb:> Wo siehst du da Stromverschwendung? Allenfalls Spannungsverschwendung
Ja das war vielleicht zu hausgebräulich ausgedrückt. Ich meinte Strom im
Sinne elektrischer Leistung. Wenn die rund 2A fließen sind das bei fünf
1 Ohm Shunts (Sind ja 5 Spulen, also 5 H-Brücken) 2A 2V 5 = 20 Watt.
Nur für Strommessung schon viel finde ich.
Was die Wechselwirkungen angeht: Durch den Lastabhängigen Nacheil-Winkel
müsste sich doch auch die Zeit in der der Strom in der jeweils
angesteuerten Spule ansteigt ändern. Die Flussänderung die durch die
Bewegung des Ankers entsteht, induziert doch eine entgegengesetzte
Spannung in der gerade angesteuerten Spule, was den Stromanstieg
verlangsamen müsste. Sprich je weiter der Anker noch weg ist (=höheres
Lastmoment), desto schneller kann der Strom ansteigen. Somit müsste man
über den Zeitabstand des "Choppens" das Lastmoment berechnen können.
Kann das so stimmen?
> Egal wie ich messe, kriege ich als Resultat aber nur den Strom der sich> aus der Spannung die ich anlege ergibt, nicht aber abhängig von dem> Lastmoment.
Das haben Schrittmotore so an sich,
du hast also was Grundlegendes bei Schrittmotoren nicht verstanden.
Trinamic versucht, aus dem Stromverlauf zu ermitteln ob er sich dreht
oder bereits blockiert, den Lastmoment können die aber auch nicht
ermitteln.
http://www.trinamic.com/tmc/media/Downloads/webinars/2009-03_stallGuard.pdf
Du solltest es mit Gleichstrommmotoren probieren, da passen deine
Vorstellungen wenigstens zum Motor.
Nein ich brauch schon einen Schrittmotor zwecks Winkelgenauer Anfahrt
und hohen Beschleunigungen.
Wenn das mit der Drehmomentmessung nicht geht ist das auch kein
Beinbruch.
Aber eine andere Frage zur Strommessung zwecks Choppern:
Da die Spule bereits nach ca 100µs den maximalen Strom bei 80V
Versorgungsspannung durchlässt, müsste ich ca alle 10µs die Spannung am
Shunt messen und eine vernünftige Regelung hinzukriegen. Bei 5 Phasen
ist das ein ADC Wert alle 2µs. Nicht unmöglich aber schon ziemlich
anspruchsvoll.
Würde es nicht reichen auf die Strommessung komplett zu verzichten und
einfach eine Steuerung aus Theorie bzw. Erfahrungswerten zu bauen?
Sprich so und soviel µs Dauerbestromung bis der Strom den gewünschten
Wert erreicht hat und danach mit einem Tastverhältnis weiter bestromen
damit dieser Wert gehalten wird.
Oder spielt hier der Einfluss der Rotorbewegung so groß rein, dass das
für jede Drehzahl und Lastmoment anders wäre?
Hallo Lenz!
Bei 2A würde ich 0,5R Widerstände nehmen. Nach deiner Rechnung wären
dass dann 10W statt 20W. In der Praxis ist das noch sehr viel weniger,
weil nur während der Zeit, in der die Brücke an ist, auch Strom über den
Shunt fließt.
Es gibt eine Menge (theoretischer) Literatur zum Thema sensorlose
Winkelrekonstruktion bei Schrittmotoren. Leider läßt sich das nicht "mal
eben" in die Praxis übersetzten, vor allem dann, wenn es halbwegs
universell funktionieren soll. Trinamic scheint da mit der neuen
Treibergeneration ("Stall-Guard 2") schon relativ weit zu sein.
Deine Annahme, dass sich die Stromanstiegszeit lastabhängig ändern
müsste, ist sicherlich richtig. Immerhin ändert sich auch die
Induktivität. Der Effekt dürfte aber so klein sein, dass es schwer sein
wird, ihn vernünftig zu messen. Was einfacher ist (aber nur
drehzahlabhängig funktioniert), ist die Messung des Stroms vom Netzteil
zur Brücke hin. Da gibt es eine deutlich messbare Lastabhängigkeit. Man
muss dann allerdings für den verwendeten Motor eine Tabelle anlegen, in
der man für verschiedene Drehzahlen bei Leerlauf und voller Last die
Ströme ablegt. Dann kann man grob auf die Last zurückrechnen.
Zur Stromregelung sollten 20kHz (50µs) prinzipiell ausreichen. Ich würde
allerdings davon absehen, dass komplett im µC zu machen. Zumindest
sollte man sich reichlich Gedanken dazu machen, wie man das fail-safe
bekommt. Sonst geht bei jedem Hänger des Controllers die ganze Endstufe
drauf...
Mit freundlichen Grüßen
Thorsten Ostermann
> ich brauch schon einen Schrittmotor zwecks Winkelgenauer Anfahrt> und hohen Beschleunigungen.
Wofür Schrittmororee nicht besonders geeignet sind,
schau mal bei Glockenankermotoren.
> Da die Spule bereits nach ca 100µs den maximalen Strom bei 80V> Versorgungsspannung durchlässt, müsste ich ca alle 10µs die Spannung am> Shunt messen und eine vernünftige Regelung hinzukriegen. Bei 5 Phasen> ist das ein ADC Wert alle 2µs. Nicht unmöglich aber schon ziemlich> anspruchsvoll.> Würde es nicht reichen auf die Strommessung komplett zu verzichten und> einfach eine Steuerung aus Theorie bzw. Erfahrungswerten zu bauen?
Ich kann mich nur wiederholen,
du hast was Grundlegendes bei Schrittmotoren nicht verstanden.
Wie kommst du darauf, daß du die Stromregelung in Software machen musst
?
Das machen andere Leute doch auch nicht.
Normale Schrittmotorcontroller wie TB6560 machen das intern, man kann
nur von aussen die Rahmenbedingungen vorgeben.
Der ist halt nur für nortmale Schrittmotoren.
Aber du willst ja einen 5 Phasen Schrittmotor Exoten.
Wenn ich mir vorstelle, was du bisher für Bildungslücken
bei Schrittmotren zum Besten gegeben hast, frage ich mich,
ob der Motor überhaupt irgendeine sinnvolle Begründung hat
oder nur mal wieder auf Halbwissen basiert.
Thorsten Ostermann schrieb:> Zur Stromregelung sollten 20kHz (50µs) prinzipiell ausreichen.
Wenn es von der Theorie zur Praxis geht werde ich erstmal mit niedrigen
Spannungen und Strömen und niedrigen Drehzahlen anfangen, letzten endes
sollen aber 3000 U/min erreicht werden. Bei der Drehzahl schießt der
Motor mit 25kHz an jedem "Schritt" vorbei. Mit einer 20kHz Stromregelung
kann das dann ja nicht mehr ordentlich funktionieren.
> Ich würde> allerdings davon absehen, dass komplett im µC zu machen.
Da der µC neben einigen Berechnungen auch eine Bus Kommunikation
implementiert bekommen soll, habe ich da auch meine Bedenken zwecks
(10)µs-genaue Verlässlichkeit. Aber was würdest du vorschlagen?
"Einfach" zusätzliche Überwachungshardware die die Brücke bei
Fehlverhalten deaktivieren kann? Wäre vermutlich schon sinnvoll bis sich
der Controller als zuverlässig beweist.
Eine andere Frage zu dem Thema: Bei einer Vollbremsung würde ich ja bei
allen 5 Brücken T2 und T4 öffnen (im Bild vom ersten Beitrag). Was ich
bisher gelesen habe wird immer von gepulstem öffnen gesprochen. Muss man
davon ausgehen, dass bei dauerhaftem Öffnen der induktiv-Strom so groß
wird dass der Motor beschädigt wird? Wenn ja müsste man auch den noch
messen um eine maximale Verzögerung regeln zu können.
Bei Verwendung eines Widerstandes nach D2,D4 wirst Du den
Zuleitungsstrom messen.
Du müsstest aber den Motorstrom messen. Dieser ist deutlich höher als
der Zuleitungsstrom. Nämlich genau um den PWM Wert.
Eigentlich müsste man also 5 Strommesspfade in jede Halbbrücke einbauen.
Oder über das aktuell eingestelle Tastverhältnis zurückrechnen.
Jørg
Hallo Lenz!
> Wenn es von der Theorie zur Praxis geht werde ich erstmal mit niedrigen> Spannungen und Strömen und niedrigen Drehzahlen anfangen, letzten endes> sollen aber 3000 U/min erreicht werden. Bei der Drehzahl schießt der> Motor mit 25kHz an jedem "Schritt" vorbei. Mit einer 20kHz Stromregelung> kann das dann ja nicht mehr ordentlich funktionieren.
Bei 3000 U/min bist Du schon längst im Konstantspannungebetrieb, d.h.
der Strom erreicht nicht mehr seinen Sollwert und es findet keine PWM
mehr statt. Mit Kleinspannung wirst du aber garnicht soweit kommen.
Unter 100V dürfte bei rund 1500 U/min Schluss sein.
>> Ich würde>> allerdings davon absehen, dass komplett im µC zu machen.>> Da der µC neben einigen Berechnungen auch eine Bus Kommunikation> implementiert bekommen soll, habe ich da auch meine Bedenken zwecks> (10)µs-genaue Verlässlichkeit. Aber was würdest du vorschlagen?> "Einfach" zusätzliche Überwachungshardware die die Brücke bei> Fehlverhalten deaktivieren kann? Wäre vermutlich schon sinnvoll bis sich> der Controller als zuverlässig beweist.
Wie MaWin schon schrieb: Andere machen das in Hardware, und das nicht
ohne Grund.
> Eine andere Frage zu dem Thema: Bei einer Vollbremsung würde ich ja bei> allen 5 Brücken T2 und T4 öffnen (im Bild vom ersten Beitrag).
Ich kann das Bild leider nicht öffnen. Was ist *.p für ein Dateiformat?
> Was ich> bisher gelesen habe wird immer von gepulstem öffnen gesprochen. Muss man> davon ausgehen, dass bei dauerhaftem Öffnen der induktiv-Strom so groß> wird dass der Motor beschädigt wird?
Von gepulstem Öffnen habe ich noch nie gehört, und ich beschäftige mich
schon seit 15 Jahren mit Schrittmotoren. Der Strom wird mit Sicherheit
auch nicht den Motor beschädigen, da er ja nur kurzzeitig fließt
(<<1ms). Die thermische Kapazität des Motors liegt deutlich höher.
Mit freundlichen Grüßen
Thorsten Ostermann
Hallo "Lenz"
Nachdem ich die Datei in *PNG umbenannt habe, kann ich das Bild auch
sehen...
> Eine andere Frage zu dem Thema: Bei einer Vollbremsung würde ich ja bei> allen 5 Brücken T2 und T4 öffnen (im Bild vom ersten Beitrag).
Das wäre slow-decay. Wenn du 3000 U/min erreichen willst, musst du schon
mit fast- bzw. mixed-decay arbeiten, speziell beim Bremsen. Dann wird
die Wicklung über T1/T4 oder T2/T3 kurzgeschlossen. Dabei wird
allerdings in die Versorgung zurückgespeist, was zu einem entsprechenden
Spannungsanstieg führen kann. Mehr zum Thema Slow-, Fast- und Mixeddecay
gibts in meinem Blog:
http://www.schrittmotor-blog.de/?tag=slow-decay
Ich würde für den Einstieg vielleicht etwas einfacheres empfehlen als
eine High-End Endstufe für 5-Phasen Motoren, z.B. einen fertigen Treiber
oder einen Bausatz für einen 2-Phasen Motor. Treiber für 5-Phasen
Motoren kann man "notfalls" auch fertig kaufen.
Mit freundlichen Grüßen
Thorsten Ostermann
interessanter Blog, zugegebenmaßen ein Punkt an den ich noch gar nicht
gedacht habe.
Der Grund warum ich keinen fertigen Controller nehmen wollte, ist der
gleiche warum ich mich auf einen 5 Phasen Motor fixiert habe: Um noch
bis 2000 U/min volles Drehmoment und bis 3000U/min mind ca. 2/3
Drehmoment zu haben. Mit den Schrittmotorcontroller die ich gesehn habe
war das jenseits vom machbaren. Da der Hauptgrund für das abnehmende
Drehmoment bei hohen Drehzahlen sein dürfte, dass die Wicklungen keine
Zeit mehr haben sich aufzuladen, wollte ich die Wicklungen schon im
voraus bestromen (nur bei hohen Drehzahlen). Sprich Anker ist bei Phase
1, Phase 2 ist bereits voll bestromt und der Controller fängt jetzt
bereits an Phase 3 zu bestromen. Eventuell ist sogar ein noch weiter
"vorgeeiltes" Bestromen von Vorteil. Deswegen auch ein 5 Phasen motor,
da hier mehr Spielraum ist. Wenn es solche Controller bereits gibt würde
ich mich natürlich über info freuen.
Aus welchem vernünftigen Grund brauchst du 3000 upm ?
Es ist offensichtlich kein Getriebe nachgeschaltet,
sonst wäre die Drehzahl egal weil anpassbar.
Aber Schrittmotore ohne irgendeine Art von Getriebe,
ob nun untersetzend oder übersetzend, haben letzlich
immer zu wenig Drehmoment, können also vielleicht
einen Propeller bewegen, aber nichts sinnvolles.
Und das alles willst du positionsgenau bremsen können.
Da fällt mir nur Lasershow ein, und da heissen die
Dinger nicht ohen Grund Lasergalvanometer weil man es
eben abers baut.
Ich gehe nach wie vor davon aus, daß bereits deine
Grundentscheidung falsch war, aber natürlich erzählst
du nichts zum Grundproblem.
Hallo MaWin!
Ich weiss ja, dass Schrittmotore nicht dein Ding sind, aber es gibt
durchaus Anwendungen, wo sie ihre Berechtigung haben. Allerings nicht
bei 3000 U/min, sondern Aufgrund der hohen Polpaarzahl im unteren
Drehzahlbereich, ähnlich wie Torquemotoren. Und da braucht man im
Gegensatz zu schnell drehenden Servos eben kein Getriebe, um genügend
Moment zu erhalten.
Mit freundlichen Grüßen
Thorsten Ostermann
Wenn diese Vorgaben komplett unrealistisch sind, wäre denn 1500 Upm mit
vollem und 2000 Upm mit ca 2/3 Drehmoment machbar?
Falls nicht wäre der BLDC vielleicht der richtige. Vielleicht findet
sich da auch eher ein geeigneter Controller(-chip).
Hallo Lenz!
Vielleicht definierst Du erstmal die Eckdaten:
- Wie hoch soll das Drehmoment sein
- Wie genau muss Positioniert/gebremst werden
- Welche Geschwindigkeiten und Beschleunigungen sind gefordert
- Welche Massenträgheit muss bewegt werden
- Wie hoch darf die Versorgungsspannung sein
- ...
Anonsten wäre das nur stochern im Nebel. Für eine industrielle Anwendung
würde ich schlicht einen Servomotor mit Encoder und entsprechendem
Servoregler empfehlen. Bei hohen Genauigkeitsanforderungen mit
zusätzlichem direkten Messsystem.
Servomotor ist sicherlich die beste Lösung. Aber auch die teuerste, zu
teuer, denn das habe ich bisher verbaut und suche nun eben eine
günstigere Variante. (Für Verschraubungen die bei einem gewissen
Drehmoment abbrechen. Beim Schrittmotor würde ich den respektiven Strom
für das Drehmoment einstellen und bei Schritteverlust (durch Encoder
detektiert) stoppen.
Zu den Eckdaten, vieles ist nicht in Stein gemeisselt, aber hier eine
ungefähre Angabe:
Drehmoment: 2 bis 2.4 Nm (kann auch mehr sein)
Positionsgenauigkeit bei maximaler Verzögerung: keine
Positionsgenauigkeit im normalen Betrieb: ca. 5°
Drehzahl_Max: absolutes Minimum 1500, besser über 2000, (3000 fürs
Datenblatt)
Drehzahl_Min: Einigermaßen weicher Lauf bei 200 Upm, weniger besser.
Beschleunigung: Keine spezielle Vorgabe schneller besser, aber nicht
wirklich entscheidend.
Verzögerung: Möglichst schnell um Werkstück-Bruch zu vermeiden. Mich
jetzt auf einen genauen Wert fest zu legen ist schwierig. Größer als
200'000°/s², 500'000°/s² wären schön, mehr noch besser, aber mit dem
Servomotor reichen die 500'000°/s² schon ganz gut.
Die 123456te Erfindung des Akkuschraubers ?
Dort sind die billigsten Gleichstrommotoren drin,
und das Drehmoment wird über eine Kupplung eingestellt.
Das ist die perfekte Lösung, bewegte Masse dank Kupplung
minimal, Motorleistung maximal, Ansteuerung simpel.
Was geht bei dir über den Akkuschrauber hinaus, abgesehen
davon daß du keinen Akku brauchst ?
Du willst die Schraube greifen und musst dazu auf den
6-kant-Kopf positionieren ? Liesse sich einfachst mit
dem Gleichstrommotor machen weil der in diesem Moment
ja nicht rasend schnell laufen muss, wenn man einen
Sensor zur Position der Welle dazubaut, den willst du
eh dranbauen.
Deine Lösung erscheint unvernünftig beim aktuellen von
dir verbreiteten Sachverhalt.