CNC Achse Regelung einstellen (Kollmorgen S300)

Jannikos

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

Ich baue schon länger an einer Fräsmaschine für mich.
Nachdem nun endlich die Motore für die X und Y Achse angeschlossen sind, bin ich nun bei der Einstellung der Regelparameter angekommen.
Kurz vorab zum allgemein Aufbau:
Ich habe eine Takt-Richtungssteuerung (LinuxCNC), welche die Position an die S300 Servoverstärker vorgibt. Es erfolgt keine Regelung über die Steuerung (LinuxCNC). Die gesamte Regelung ist im S300 Servo-Treiber. Grundsätzlich geht alles und ich kann die Achsen Steuern. Die Regelung ist noch Suboptimal und ich weiß nicht recht, wie ich hier vorgehen soll.

Zum "Problem":
Starten wir mit der Y-Achse.
- Masse ca. 350 Kg
- Kugelgewindetrieb: 32x5mm (Steigung ist 5mm), Vorgespannt (spielfrei).
- Angetrieben über einen HTD Riemen mit 1:2 Untersetzung.
- Die Führungen sind 45er Rollenführungen, ebenfalls vorgespannt
- Motor ist DBL3N00300 (3000 U/min, 3,0 Nm Haltemoment, 2,5 Nm Nenndrehmoment, Feedback ist SinCos Encoder Multiturn, https://www.kollmorgen.com/sites/de...K Synchron-Servomotoren Betriebsanleitung.pdf)
-
Die Stromregler-Werte habe ich auf default (aus der Kollmorgen Motordatenbank ausgewählt) belassen:
Kp_i: 75
Tn_i: 0,725 ms

Drehzahlregler habe ich mit dem Autotuner einstellen lassen auf:
Kp_v: 0,224
Tn_v 1,713ms
Mit den Beschl. Rampen bin ich von anfangs 1500 mm/s² auf 500 mm/s² runter, da man ich das bei der bewegten Masse schon gut gemerkt habe auf meinem Estrich, wo die Maschine steht. Enddrehzahl ist bei 9000 mm/min.

Im Drehzahlmodus verfährt die Achse an sich einwandfrei und ohne Ruckeln / Geräusche mit diesen Parametern bei Geschwindigkeiten bis 9000 mm / min (was für mich völlig ausreichend ist).

Lass ich die Maschine über den Takt-Richtungseingang steuern habe ich Probleme, dass es schwingt.
Ich fahre z.B. mit 2500 mm/min die Achse über den Lageregler. Dann schwingt z.B. die Positionierung über und / oder der Motor schwingt gar hin und her während einer Bewegung. Im Drehzahlmodus mit 2500 mm/min läuft es einwandfrei. Somit liegt meine Tendenz bei der Fehlersuche im Lageregler, den ich bislang noch nicht weiter betrachtet hatte.

Ich bekomme hier keine vernünftigte Einstellung hin, dass die Achse nicht so weit überschwingt und Stabil ist. Stabil bekomme ich sie, wenn KP zwischen 0,1 bis maximal 0,15 ist. Aber sie schwingt immer etwa bis zu 150 µm über bei Geschwindigkeiten um 2500 mm/min. Das finde ich sehr viel und möchte ich unbedingt unterbinden. Das System soll auf keinen Fall überschwingen bei der Positionierung.

Kann mir jemand helfen, wie man an die Sache geht? Zur Analyse habe ich eine Oszilloskopfunktion für Strom, Drehzahl, Lage Soll- und Istwert.
Ggf. braucht man hier "Spezielle" Vorsteuerungen, was ich nicht verstehe?! Bislang war ich nur mit P und I im Drehzahl- und Lageregler unterwegs.
Muss ich nochmal zurück zum Drehzahlregler (wäre auch eine Überlegung)? Der Stromregler ist auf jeden Fall noch nicht voll ausgesteuert und hat noch Reserve.

Anbei ein paar Bilder.

Ich danke euch vielmals für jeglichen Input.
Jannik
 

Anhänge

  • IMG_20231203_155408.jpg
    IMG_20231203_155408.jpg
    3,8 MB · Aufrufe: 35
  • Drehzahlregler.PNG
    Drehzahlregler.PNG
    47,2 KB · Aufrufe: 30
  • Lageregler.PNG
    Lageregler.PNG
    43,6 KB · Aufrufe: 36
  • IMG_20231201_095442.jpg
    IMG_20231201_095442.jpg
    3 MB · Aufrufe: 41
  • IMG_20231201_095458.jpg
    IMG_20231201_095458.jpg
    2,9 MB · Aufrufe: 40
  • IMG_20231201_095518.jpg
    IMG_20231201_095518.jpg
    2,8 MB · Aufrufe: 33
Moin,
ich hab an meiner CNC auch seeeehr lange an den Parametern der UHU-Servos gespielt. Kannst du den Motor auch im Positioniermodus betreiben? Also das du immer von Y0 auf Y100 und dann wieder Y0 über einen Digitaleingang gehst anstatt über LinuxCNC mit Puls/Dir? Nur um da den Fehler auszuschließen. Zum Beispiel Rampen Unstimmigkeiten... LinuxCNC <-> Regler. Oder verfährst du eh über die Software?

Ich denke die Hilfe und Autotuning hast du alles schon durch?

Schönen brocken hast du da gebaut. Bau eine anständige Umhausung, Späneschutz und Kühlung. Das saut einen sonst die ganze Bude zu :D.

Auf dem Bild sieht es so aus, also ob (grün) die Ist_Geschwindigkeit schwingt. (rot) die Soll_Geschwindigkeit schwingt auch kurz über... Du hast da ja mit den Riemen, Welle und Mutter ein kleines Feder-Masse system. Man glaubt es nicht aber da ist manchmal mehr Elastizität drin, als gewünscht.

Mach mal ne Messuhr an die Achse und schau wieviel es zum "Losbrechen" braucht, wenn du den Motor "Steppst".
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

besten Dank erstmal für deine Antwort. Dachte schon keiner baut hier CNC-Maschinen :)
Ja, der Motor lässt sich im Positionsmodus betreiben - es gibt sogar schnelle Hin und Rückfahrten im Oszi-Modus (habe ich aber erst die Tage entdeckt. Kenne die S300 Servoverstärker an sich auch nicht. Waren halt günstig und machten einen guten Eindruck - Doku ist aber so lala).

Ich hatte zuvor im Post über LinuxCNC verfahren, da ich die Funktion noch nicht kannte bzw. gehört da auch immer etwas Mut zu, die unbekannten / schlecht dokumentierten Funktionen einfach mal zu drücken..

Die AKD Anleitung hab ich tatsächlich übesprungen. Ich hatte eine alte Powerpoint zum S300 gefunden und andere "Tuningguides". Der AKD ist aber gut geschrieben und passt auch größtenteils zu meinem S300. Danke dir!

Zum Losbrechen brauche ich lediglich 1µm, welcher scheinbar ins Leere geht.
So das war die Antwort auf deine Fragen. Jetzt kommen die neuen Erkenntnisse!

Ich hatte heut endlich einmal ausreichend Zeit um mich nochmal genau mit den Scope-Funktionen auszuprobieren. Wie du sagst hab ich mal die Positionsfahrten vom Servotreiber (und nicht LinuxCNC) gestartet. Beim Verfahren hab ich ewig gesucht, wie ich die Beschleunigung und Endgeschwindigkeit einstellen kann. Das Ganze ist dann unter Fahraufträge zu finden als "Globale Felder". Jetzt ist die Funktion Gold wert und man kann ganz easy mittels Scope und "Service-Fahrten" arbeiten. Auch die Regler sind direkt im Scope einstellbar zum anpassen.

Weiter hab ich den Schleppfehler-Kanal beim Scope gefunden. Sehr praktisch.

Zunächst ähnliches Verhalten und kein Weg den Lageregler in den Griff zu bekommen.

Nach ca. 5 Stunden machte es dann klick im Kopf. Im Drehzahlregler habe ich auf max. 500mm/s² limitiert. Im Fahrtenregler ebenfalls mit dem gleichen Wert. Bis dahin war während der Beschleunig der Drehzahl immer ein hoher Schleppfehler. Als ich den Fahrtenregler herabgesetzt habe (deutlich kleiner als das Limit im Drehzahlregler) ging der Schleppfehler rapide runter und die Einstellung im Lageregler war bei weitem nicht mehr so empfindlich (sofort Resonanz / Brummen usw.).

Anbei mal zwei Bilder von der Fahrt über den Servodrive mit 5000 mm/min und 8000 mm/min.
Anschließender Versuch über LinuxCNC mit ~ 5000 mm/min bringt leider ein schlechteres Ergebnis. Wieder in der Beschleunigungsrampe. Hier muss ich nochmal prüfen, ggf. beeinflussen sich hier wieder die Limits, wie zuvor geschrieben. Werde denen noch ein bisschen Luft geben und dann schauen was passiert :)
Für heute ist aber erstmal schluss. 8 Stunden an der Kiste gesessen...

Danke soweit.
 

Anhänge

  • Stabil_5000 mm_min.PNG
    Stabil_5000 mm_min.PNG
    183,4 KB · Aufrufe: 9
  • Stabil_8000 mm_min.PNG
    Stabil_8000 mm_min.PNG
    188,2 KB · Aufrufe: 9
  • VelCMD LinusCNC_5200mm_min.PNG
    VelCMD LinusCNC_5200mm_min.PNG
    140,3 KB · Aufrufe: 9
Ja top, ich erinnere mich noch das man etwas mit der Auflösung in LinuxCNC aufpassen musste. Das ist bei mir aber alles schon über 10jahre her... Und kommt ja auch drauf an worüber du die Servo Treiber ansteuerst. Ich mache das über den LPT Port. Aber jetzt macht man das wohl alles über ein Interface mit Bus?

Mit dem losbrechen meinte ich, verfahrweg auf Y zu Winkelposition am Servo. Meine Servos hört man manchmal Schnurren, dann arbeiten sie kontinuierlich gegen das losbrechmoment und die "Feder" im Übertragungsstrang.

Ich hab damals den Mineralguss selber gemixt mit Material aus dem Aquarium bedarf. Ich habe auch noch eine BT20 Spindel liegen mit Werkzeugwechsler, aktuell SK40 Manuell. Man kommt aber zu nix 😁.
 
Ich hab von dem Problem keinen Plan, aber ich werf trotzdem mal was rein.
Eventuell ist die Auflösung pro Takt bei der Takt/Richtungssteuerung ungünstig und führt zu dem Problem.
Das ist irgendwie ein Bauchgefühl beim Lesen der Problembeschreibung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Genau das meinte ich... damals waren meine Impulse zu Anfang schon sehr sportlich. Obwohl ich auf den Servos nur 4096er encoder hatte.

Bei den China Servos musste ich auch im Servo Treiber die "Gear Ratio" gut hoch setzen... Aber genaueres müsste ich nachschauen.
 
Ist die Beschleunigungsrampe auch in LinucCNC eingestellt? Nicht dass du da volle Möhre eine Solllage raushaust, die garnicht erreichbar ist aufgrund von Limits im Servoverstärker.
Aber zuerst denkich, ist die Taktrate zu niedrig, also die Lageänderung pro Impuls.
 
Zurück
Oben