Jeg leder efter en ligning for at finde den tid det tager for en position forskydning skal ske, givet kendt $ V_ {max} $, en (kendt) konstant acceleration, deceleration, ryk og forskydning … og en indledende hastighed på 0.

Jeg prøver at estimere / beregne den tid, det tager for en servomotorakse at køre en bestemt afstand. Når jeg kender den anslåede tid for dette træk, kan jeg løse for ryk for den anden akse. På den måde vælger jeg en optimalt “langsom” hastighed, uanset hvilken aksen har en kortere bevægelsesafstand for at maksimere udnyttelsen af min tid.

FYI, dette er et valg og sted XY robotportal.

Kommentarer

  • Under forudsætning af $ \ Delta x = (a / 2) * t ^ 2 + (j / 6) * t ^ 3 $, er det at finde t det samme som at løse en kubisk ligning
  • Tak, jeg ' Jeg starter med det og ser hvad jeg kommer op med th.
  • Hvis du er enig i ligningen, jeg giver ovenfor, og hvis du har problemer, vil jeg forsøge at give dig et komplet svar.
  • Cool. Tak. Så … jeg laver et træk med parametre:
  • Ups. Repost: Jeg laver et træk med parametre: Vmax = 1000 mm / s, accel = 1000 mm / s ^ 2, decel = 1000 mm / s ^ 2, Jerk = 1000 mm / s ^ 3, og forskydningen er 2000 mm. Jeg har tidsindstillet dette træk på omkring 4,0 sekunder, så det skal være svaret, men jeg har brug for at få den ligning, der resulterer i dette for forskellige inputvariabler. (bemærk accel og decel er ikke nødvendigvis det samme). Tak for at se på det, jeg er lidt ude af min liga inden for matematik.

Svar

I give dig resultatet af min beregning uden detaljerne:

Resultatet er:

$$ \ Delta t = \ frac {\ Delta x} {V_ {Max}} + \ frac {1} {2} (\ frac {V_ {Max}} {a} + \ frac {a} {j}) + + \ frac {1} {2} (\ frac {V_ {Max}} {d } + \ frac {d} {j}) $$

hvor:

$ \ Delta t $ er den samlede tid.

$ \ Delta x $ er den samlede forskydning.

$ a $ er den maksimale acceleration.

$ d $ er den maksimale deceleration.

$ j $ er rykket.

$ V_ {max} $ er den maksimale hastighed.

Som en test med dine værdier:

$ \ Delta x = 2 m, a = 1m / s ^ 2, d = 1m / s ^ 2, j = 1 m / s ^ 3, V_ {max} = 1m / s $, finder jeg:

$$ \ Delta t = \ frac {2} {1} + \ frac {1} {2} (\ frac {1} {1} + \ frac {1} {1}) + + \ frac {1} {2} (\ frac {1 } {1} + \ frac {1} {1}) = 2 + 1 + 1 = 4 $$

hvilket er det rigtige resultat.

Så jeg er ret sikker på formlen.

[EDIT] Formlen for at få ryk er:

$$ j = \ frac {a + d} {2 (\ Delta t – \ large \ frac {\ Delta x} {\ large V_ {max}}) – V_ {max} (\ large \ frac {1} {a} + \ large \ frac {1} {d})} $$

[EDIT 2]

Den anvendte model er:

Fase 1: konstant ( positiv) ryk $ j $

Fase 2: konstant acceleration $ a $

Fase 3: konstant (negativ) ryk ($ – j $)

Fase 4: konstant hastighed $ V_ {Maks} $

Fase 5: konstant (negativ) ryk ($ – j $)

Fase 6: konstant decceleration ($ d $)

Fase 7: konstant (positiv) ryk ($ j $)


I ovenstående formler er der begrænsninger, mere præcist skal varigheden af faserne 2, 4, 6 vær positiv:

$$ \ Delta t_2 = \ frac {V_ {Max}} {a} – \ frac {a} {j} \ ge 0 $$
$$ \ Delta t_4 = \ frac {\ Delta x} {V_ {Max}} – \ frac {1} {2} (\ frac {V_ {Max}} {a} + \ frac {a} {j}) – \ frac {1} {2} (\ frac {V_ {Max}} {d} + \ frac {d} {j}) \ ge 0 $$
$$ \ Delta t_6 = \ frac {V_ {Max}} {d} – \ frac {d} {j} \ ge 0 $$

Hvis en af disse begrænsninger ikke er opfyldt, betyder det, at hypotesen, der er taget for modellen, ikke er inde nt, så vi har brug for en anden model.

Kommentarer

  • TAK! Jeg sætter pris på den tid, du brugte på at hjælpe mig. Jeg ' flytter det til PLCen og ser, hvordan det går. Jeg har stadig brug for at finde ud af at løse j, når delta T er kendt, men det kan jeg nok klare. Fortsæt det gode arbejde.
  • Her er PLC-beregningen for tiden som du nævnte ovenfor: fMoveTime_s := (fDeltaPos_M / fVMax_M) + (0.5)*( (fVMax_M / fAccel_M) + (fAccel_M / fJerk_M) )+ (0.5)*( (fVMax_M / fDecel_M) + (fDecel_M / fJerk_M) );
  • NEJ, din første formel for ryk er ikke korrekt. Jeg lavede en redigering i svaret for den korrekte formel. Din sidste formel (for tiden) virker korrekt. Forresten, hvad er PLC?
  • Ja, du har ret. Jeg fjernede den kommentar. Den korrekte PLC-kode til at finde Jerk skal være: fJerkCalc := (fAccel_M + fDecel_M) / ( ( 2 * (fMoveTime_S - (fDeltaPos_M / fVMax_M))) - (fVMax_M * ((1/fAccel_M)+(1/fDecel_M)) ) );
  • PLC er en ' programmerbar logisk controller ', dybest set en mikrocontroller eller realtidscomputer til industriel brug. Jeg bruger ' til at koordinere og styre en 4-akset pick and place-robot. Jeg ' er meget tæt på at have det rigtigt, men noget er stadig slukket bare et eller andet sted .. Formlerne synes dog godt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *