Hallo, ich habe ein mathematischen Problem, bei dem ich nicht weiterkomme. Ich habe eine parametrische Bahnkurve [x(t), y(t)] in diskreter Form als Punkte mit Delta t = konstant vorliegen. Diese möchte ich mit konstanter Geschwindigkeit durchfahren. Mein Problem ist nun das an steilen stellen die Punkte weiter auseinanderliegen als an flachen und somit der Betrag der Ableitung nicht konstant ist. Meine Frage ist, wie ich mir so eine Kurve erstellen kann. Wie läuft das z.B. bei CNC Maschienen ab? Die müssen ja auch mit konstanter Geschwindigkeit eine beliebige Bahn fahren. Grüße, Alex
> Wie läuft das z.B. bei CNC Maschienen ab?
Die müssen dann eben v= √(vx² + vy²) ausrechnen und konstant halten ?
Das ist in meinem Fall nicht ganz so leicht. Ich habe eine Simulation in Matlab und erzeuge mir Eingangswerte für mein Modell. Erst einen t-Verktor und dann abhängig davon x und y Vektoren. Nun möchte ich die x-y-Bahn durchfahren und brauche in meinem Modell die Geschwindigkeit als Bahnableitung und damit die im Betrag konstant ist, müssen die Bahnpunkte äquidistant sein. Mit anderen Worten: Da wo die Funtion steil ist, brauche ich mehr Zeitwerte und somit eine Bildungsvorschrift für die Zeitabstände abhängig von der Bahnfunktion. Und an dem Punkt komme ich nicht weiter. Wenn ich t als abhängige Variable nehme und in deine Formel für v einsetze läuft das auf eine nichtlineare DGL raus, die ich nicht lösen kann. Wie genau läuft denn eine Bahnplnung für die Fräsmaschine ab? Grüße, Alex
> Wie genau läuft denn eine Bahnplanung für die > Fräsmaschine ab? Denkbar wäre, eine Tabelle mit (z.B.) x als unabhängiger Variable anzulegen: In dieser könnten als Sollvorgaben vx und vy abgelegt sein. Oder, unter zusätzlicher Berücksichtigung der ggf. nicht konstanten Trägheitsmomente, Stromvorgaben für die beiden Achsen. ?
Ich hab's für meine Fall gelöst und möchte abschließend kurz verraten, wie. Ich nehme die Ableitung der Funktion und berechnen ausgehend vom Startpunkt den nächsten Punkt mit konstanter Enfernung a und entprechender Richtung. x_neu = x_alt + a * cos(atan(f'(x_alt))) y_neu = y_alt + a * sin(atan(f'(x_alt))) x_alt = x_neu y_alt = y_neu Grüße und danke für die Tipps, Alex
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.