Jag letar efter en ekvation för att hitta den tid det tar för en positionsförskjutning ska ske, givet känd $ V_ {max} $, en (känd) konstant acceleration, retardation, ryck och förskjutning … och en initial hastighet på 0.

Jag försöker uppskatta / beräkna den tid det tar för en servomotoraxel att färdas ett visst avstånd. När jag väl vet den beräknade tiden för det rörelsen kan jag lösa ryck för den andra axeln. På det sättet väljer jag en optimalt ”långsam” hastighet för vilken som helst axeln har ett kortare rörelseavstånd för att maximalt utnyttja min tid.

FYI, det här är en XY-robotportal.

Kommentarer

  • Förutsatt att $ \ Delta x = (a / 2) * t ^ 2 + (j / 6) * t ^ 3 $, är att hitta t samma sak som att lösa en kubisk ekvation
  • Tack, jag ' Jag börjar med det och ser vad jag kommer upp med th.
  • Om du håller med ekvationen jag ger ovan och om du har problem kommer jag att försöka ge dig ett fullständigt svar.
  • Cool. Tack. Så … jag gör ett drag med parametrar:
  • Oj. Repost: Jag gör ett drag med parametrar: Vmax = 1000 mm / s, accel = 1000mm / s ^ 2, decel = 1000mm / s ^ 2, Jerk = 1000 mm / s ^ 3, och förskjutningen är 2000mm. Jag har bestämt det här steget på cirka 4,0 sekunder, så det borde vara svaret, men jag måste få ekvationen som resulterar i detta för olika ingångsvariabler. (notera accel och decel är inte nödvändigtvis desamma). Tack för att du tittade på det, jag är lite borta från min liga i matematik.

Svar

I ge dig resultatet av min kalkyl utan detaljerna:

Resultatet är:

$$ \ 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}) $$

där:

$ \ Delta t $ är den totala tiden.

$ \ Delta x $ är den totala förskjutningen.

$ a $ är den maximala accelerationen.

$ d $ är den maximala decelerationen.

$ j $ är ryck.

$ V_ {max} $ är den maximala hastigheten.

Som ett test, med dina värden:

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

$$ \ 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 $$

vilket är rätt resultat.

Så jag är ganska säker på formeln.

[EDIT] Formeln för att få ryck är:

$$ 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 använda modellen är:

Fas 1: konstant ( positivt) ryck $ j $

Fas 2: konstant acceleration $ a $

Fas 3: konstant (negativ) ryck ($ – j $)

Fas 4: konstant hastighet $ V_ {Max} $

Fas 5: konstant (negativ) ryck ($ – j $)

Fas 6: konstant decceleration ($ d $)

Fas 7: konstant (positiv) ryck ($ j $)


I formlerna ovan finns begränsningar, mer exakt varaktigheten av faserna 2, 4, 6 måste var 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 $$

Om någon av dessa begränsningar inte är uppfylld betyder detta att hypotesen för modellen inte är nt, så vi behöver en annan modell.

Kommentarer

  • TACK! Jag uppskattar tiden du tillbringade för att hjälpa mig. Jag ' flyttar det till PLC och ser hur det går. Jag måste fortfarande räkna ut lösning för j när delta T är känt, men jag kan nog hantera det. Fortsätt det goda arbetet.
  • Här är PLC-beräkningen för tiden som du nämnde ovan: 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örsta formel för ryck är inte korrekt. Jag gjorde en redigering i svaret för rätt formel. Din sista formel (för tiden) verkar korrekt. Förresten, vad är PLC?
  • Ja, du har rätt. Jag tog bort den kommentaren. Rätt PLC-kod för att hitta Jerk bör vara: fJerkCalc := (fAccel_M + fDecel_M) / ( ( 2 * (fMoveTime_S - (fDeltaPos_M / fVMax_M))) - (fVMax_M * ((1/fAccel_M)+(1/fDecel_M)) ) );
  • PLC är en ' programmerbar logisk styrenhet ', i grunden en mikrokontroller eller realtidsdator för industriellt bruk. Jag ' använder den för att samordna och styra en 4-axlig plock- och placeringsrobot. Jag ' är mycket nära att ha det rätt, men något är fortfarande avstängd bara någonstans .. Formlerna verkar dock bra.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *