Ansteuerung eines StepIm Schrittmotors

caprez95

Level-1
Beiträge
15
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich habe in CodeSys ein Projekt erstellt, welches einen Schrittmotor ansteuert und dessen Strom überwacht.
Der Motor läuft im Velocity Mode. Das heisst, er soll eine bestimmte Geschwindigkeit halten und ab einem definierten Strom (Last) stoppen.

Das Problem ist, dass der Strom, den der Schrittmotor ausgibt, sehr stark schwankt.
Im Leerlauf schwankt der Strom zwischen 0 und 300mA. Geht teilweise sogar ins negative! :confused:

Kann man dies durch eine Einstellung im Regelkreis beheben?
Oder kennt jemand eine gute Möglichkeit, den Stromwert zu glätten?

Danke für eure Hilfe!

Gruss caprez95
 
Was meinst Du jetzt mit Leerlauf, ohne Last oder das er steh (Zielgeschwindigkeit = 0)? Bei letzterem ist das ganz normal, Geschwindigkeit 0 heißt ja nicht Motor aus, sondern das er an seiner derzeitigen Position bleiben soll und um das zu erreichen muss der Motor weiterhin bestromt werden, nämlich mit dem sogenannten Haltestrom.
 
Ein ähnliches Verhalten hatte ich auch schon mit Schrittmotoren. Komplett ohne Last lief der ziemlich unrund. Versuch das mal mit etwas Belastung des Motors.
 
Das Problem ist, dass der Strom, den der Schrittmotor ausgibt, sehr stark schwankt.

Der Motor gibt keinen Strom aus ;)
Im Leerlauf schwankt der Strom zwischen 0 und 300mA. Geht teilweise sogar ins negative! :confused:

Das würde ich sogar erwarten, wenn Du den Strom als Momentanwert erfasst. Sofern keine anderen Probleme vorliegen würde ich erstmal einen gleitenden Mittelwert vesruchen. Dabei aber durchaus den erfassungszyklus kurz (aber zeitlich äquidistant!) halten. Den Mittelwert aber über eine lange Periode bilden.

Hst Du außerdem Drehzahlschwankungen könnte die P-Verstärkung etwas hoch sein.
Negativer Strom heißt, der Motor wird von der Schrittmotorkarte gebremst (und liefert Energie zurück). Die niedrige Massenträgheit ivm einem zu strammen Regler verursacht dann ein Pendeln um die Sollgeschwindigkeit, also einen steten Wechsel zwischen Beschleunigen und Bremsen.
Der Ansatz von tigerente zielt also auf die Massenträgheit.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, das mit dem Mittelwert habe ich auch schon ausprobiert.
Das Problem ist, dass wenn nach einer Minute Laufzeit eine grosse Stromänderung kommt (der Motor plötzlich stark belastet wird) und eine gewisse Schwelle überschritten wird, dass der Motor sofort stoppen soll. Wenn man allerdings den Mittelwert bildet dann wird eine kurzzeitige Stromerhöhung von ca. 1 Ampere gar nicht registriert.
 
Die Lösung gibst doh selbst quasi vor:
Machst Du halt zwei Filter: Einer passend für eine Anzeige und einer passend für Spitzenwerte.
Keiner hat gesagt, das Du nur einen Filter verwenden darfst.

Im Zweifel kann die Spitzenwerterfassung auch ungefiltert arbeiten.
 
Zuletzt bearbeitet:
Das geht leider nicht, da der Stromverlauf in einem Trace aufgezeichnet wird.
Diese Aufzeichnung ist dann quasi das Ergebnis des Tests und darauf muss ersichtlich sein, wann die Belastung auftritt und wie hoch der Strom dabei ist.
Und dieser Stromverlauf muss identisch sein mit dem Strom auf der Anzeige.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So ein gleitender mittelwertfilter mit passender Abtastzeit und Filtertiefe macht erstmal nur:
- den Meßwert etwas glatter
- eine verzögerung des Meßwerts um die Filtertiefe

Wenn Du allerdings so große Filtertiefen anwenden musst könnte es tatsächlich der Weg sein, den regler nochmal anzuschauen.
Kannst Du denn mal ein paar Traces liefern? So Strom und Drehzahl / Istposition.
 
Hier ein Trace, dass den Strom im Leerlauf anzeigt.

Trace_Leerlauf.JPG

Wie man sehen kann, schwankt der Strom zwischen 10 und 410 mA.
Die Stromschwelle für das Testende ist noch nicht definiert. Dürfte aber so um die 2A liegen.
Die Drehzahl bei 600 U/min.

Hier noch die Bilder vom Velocizy- und Positionloop:

Velocity_Loop.JPG

Position_Loop.JPG

Danke weißnix_ für deine Hilfe!
 
Hallo zusammen

Ich habe in CodeSys ein Projekt erstellt, welches einen Schrittmotor ansteuert und dessen Strom überwacht.
Der Motor läuft im Velocity Mode. Das heisst, er soll eine bestimmte Geschwindigkeit halten und ab einem definierten Strom (Last) stoppen.

Das Problem ist, dass der Strom, den der Schrittmotor ausgibt, sehr stark schwankt.
Im Leerlauf schwankt der Strom zwischen 0 und 300mA. Geht teilweise sogar ins negative! :confused:

Kann man dies durch eine Einstellung im Regelkreis beheben?
Oder kennt jemand eine gute Möglichkeit, den Stromwert zu glätten?

Danke für eure Hilfe!

Gruss caprez95

Was soll hier erreicht werden?
Wie erfolgt die Ansteuerung vom Schrittmotor?
Wird der Strom gemessen, um die Belastung vom Motor zu überwachen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Testablauf:

- Start drücken => Motor startet und dreht mit 600 U/min.
- Die Last am Motor steigt kontinuierlich. Der Strom steigt entsprechend an.
- Sobald die Last nicht mehr grösser wird und somit der Strom (in einer gewissen Zeit) nicht weiter steigt (ca. bei 5A), schaltet sich der Motor aus und der Test ist beendet.
- Der Stromwert sowie die Dauer des Tests wird 1:1 angezeigt und in einem Trace aufgezeichnet.
- Beim erneuten drücken der Starttaste werden alle Werte gelöscht, der Trace zurückgesetzt und ein neuer Test gestartet.

Die Ansteuerung des Motors erfolgt mittels CAN.
Der Strom wird über die CAN-Schnittstelle aus dem Motor ausgelesen.

Gruss caprez95
 
Dafür ist ein Schrittmotor prinzipiell überhaupt nicht geeignet.
Funktionieren könnte es eventuell, wenn der Motor einen Positions-Geber und entsprechende Regelung hat. Einfache Regler ohne Geber funktionieren eher wie eine Konstant-Stromquelle. Somit hast du belastet wie unbelastet nahezu denselben Strom. Bei Drehmoment-Überschreitung kommt der Schrittmotor zudem ins Rutschen und hat auch kein Drehmoment mehr.
 
Der Motor hat sehr wohl ein Positions-Geber! Ich kann ihn wie ein Servomotor auf bestimmte Positionen fahren. Aber das brauche ich in meinem Projekt nicht.
Und der Strom ist auch überhaupt nicht der selbe mit und ohne Last. Sobald der Motor belastet wird steigt der Strom stark an.

Mein einziges Problem ist dass starke schwanken des Stroms. Ich vermute, dass dies nur an einer Einstellung im Regelkreis liegt.
 
Zurück
Oben