Optimizer am Beispiel einer Schubkurbel |
Wie auf der Seite Polynome erklärt:
Und wie auf der Seite Splines erklärt:
Das sind sehr viele Parameter, welche für unsere Bewegungsaufgabe einzustellen sind. Und selbst wenn wir nicht mit Polynomen und Splines herangehen, dann müssen wir die Parameter für die Bewegung einstellen, einschließlich Zeiten, Wege und Rampenparameter wie Geschwindigkeiten, Beschleunigungen und Rücke.
Doch oft sind wir gar nicht an den tatsächlichen Werten dieser Parameter interessiert, solange sie nur einen bestimmten Bereich nicht überschreiten.
Z.B. wenn wir den Antriebsstrang verschlanken möchten, warum lassen wir nicht SERVOsoft unsere Bewegungssequenz anpassen, um sagen wir das maximale Motordrehmoment zu minimieren? Und genau das kann der Optimizer für uns erledigen.
Der Optimizer sucht automatisch Eingabewerte, um einen spezifischen Wert zu minimieren/maximieren. Dabei berücksichtigt er Randbedingungen für die Eingabewerte und optional Randbedingungen für zusätzliche Ausgabewerte.
Fangen wir einfach an mit einem Schubkurbelbeispiel, bei welchem sich der Motor mit konstant 3000 U/min dreht, und welcher mittels Getriebe den Kurbelarm mit konstanter Drehzahl von 1 U/s bewegt. Wie unten gezeigt bewegt sich dabei der Schieber kontinuierlich vor und zurück. Für diese Aufgabe benötigen wir einen Motor mit mindestens 4,07 Nm maximalem Drehmoment.
Damit der Optimizer das benötigte maximalen Motordrehmoment flexibel minimieren kann, spalten wir die Bewegung zunächst in vier Segmente, jedes mit 90° Drehwinkel in 0,25 Sekunden, auf. Natürlich hätten wir die Bewegung auch in weniger oder mehr Segmente aufteilen können, aber vier ist hier erfahrungsgemäß eine gute Wahl. Mehr Segmente bedeuten für den Optimizer größere Flexibilität, benötigen aber auch längere Rechenzeiten beim Optimieren.
Wie man sieht bleibt die Gesamtbewegung gleich wie vorher.
Nach Drücken des “Optimizer Pro”-Buttons können wir unser Optimierungsziel und die Randbedingungen unserer Parameter einstellen. Wir wählen “Mot: Max Drehmoment” aus, verwenden einen quintischen Spline durch Anklicken von “Polynom 12345 (Segmente)” und stellen die zusätzlichen Randbedingungen wie hier gezeigt ein:
Nach Drücken auf “Start” läuft der Optimizer ungefähr 1 Minute und sucht nach passenden Segmentdauern, die ganze Zeit nach kleineren maximalen Motordrehmomenten Ausschau haltend.
Als Ergebnis wird eine quintische Splinebewegung gefunden, welche am Kurbelarm gefahren zu einem benötigten maximalen Motordrehmoment von nur 1,5 Nm führt. Das ist über 60% reduziert gegenüber einem mit konstanter Geschwindigkeit fahrenden Kurbelarm. Wirft man einen genaueren Blick auf das Geschwindigkeitsprofil des Kurbelarms, stellt man fest, dass jedesmal, wenn der Schieber seine innere und äußere Grenzlage erreicht, die Geschwindigkeit reduziert wird (diese Stellen verursachten vorher das hohe Drehmoment).
Der Schieber bewegt sich natürlich weiterhin kontinuierlich vor und zurück. Schaut man auf die Antriebs- und Motorauslastung, dann wurden diese auch von 61% auf 4% und von 38% auf 14% reduziert, was eine Verschlankung des Drives und des Motors ermöglicht.
Um die Frage zu beantworten, ob ein Motion Controller so ein Splinekurve überhaupt fahren kann, haben wir in SERVOsoft explizit auf Polynome fürs Bewegungsdesign zurückgegriffen. Denn jedes moderne Motion Control System mit Kurvenscheiben-Funktionalität kann das, indem dort eine virtuelle Leitachse mit konstanter Drehzahl von 1 U/s und der Kurbelarm als Kurvenscheiben-Folgeachse mit Polynomsegmenten des automatisch optimierten Splines betrieben wird.