Jeg ser etter en ligning for å finne tiden det tar for en posisjonsforskyvning skal skje, gitt kjent $ V_ {max} $, en (kjent) konstant akselerasjon, retardasjon, rykk og forskyvning … og en innledende hastighet på 0.
Jeg prøver å estimere / beregne tiden det tar for en servomotorakse å bevege seg en viss avstand. Når jeg vet beregnet tid for det trekket, kan jeg løse for rykk for den andre aksen. På den måten velger jeg en optimal «langsom» hastighet for hvilken aksen har kortere bevegelsesavstand for å utnytte tiden min maksimalt.
FYI, dette er en XY robotportal.
Kommentarer
- Forutsatt at $ \ Delta x = (a / 2) * t ^ 2 + (j / 6) * t ^ 3 $, er det å finne t det samme som å løse en kubisk ligning
- Takk, jeg ' Jeg begynner med det og ser hva jeg kommer opp med th.
- Hvis du er enig i ligningen jeg gir ovenfor, og hvis du har problemer, vil jeg prøve å gi deg et fullstendig svar.
- Kult. Takk. Så … jeg gjør et trekk med parametere:
- Ups. Repost: Jeg gjør et trekk med parametere: Vmax = 1000 mm / s, accel = 1000mm / s ^ 2, decel = 1000mm / s ^ 2, Jerk = 1000 mm / s ^ 3, og forskyvningen er 2000mm. Jeg har tidsbestemt dette trekket på rundt 4,0 sekunder, så det burde være svaret, men jeg må få ligningen som resulterer i dette for forskjellige inngangsvariabler. (merk accel og decel er ikke nødvendigvis det samme). Takk for at du så på det, jeg er litt utenfor ligaen min på matematikken.
Svar
Jeg gi deg resultatet av beregningen min uten detaljene:
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 totale tiden.
$ \ Delta x $ er den totale forskyvningen.
$ a $ er maksimal akselerasjon.
$ d $ er maksimal dekelerasjon.
$ j $ er rykk.
$ V_ {max} $ er maksimal hastighet.
Som en test, med verdiene dine:
$ \ Delta x = 2 m, a = 1m / s ^ 2, d = 1m / s ^ 2, j = 1 m / s ^ 3, V_ {max} = 1m / s $, finner 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 $$
som er riktig resultat.
Så jeg er ganske trygg på formelen.
[EDIT] Formelen for å få rykk 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 brukte modellen er:
Fase 1: konstant ( positiv) rykk $ j $
Fase 2: konstant akselerasjon $ a $
Fase 3: konstant (negativ) rykk ($ – j $)
Fase 4: konstant hastighet $ V_ {Maks} $
Fase 5: konstant (negativ) rykk ($ – j $)
Fase 6: konstant decelerasjon ($ d $)
Fase 7: konstant (positiv) rykk ($ j $)
I formlene ovenfor er det begrensninger, nærmere bestemt varigheten av fasene 2, 4, 6 må 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 av disse begrensningene ikke er oppfylt, betyr dette at hypotesen som er tatt for modellen ikke er i nt, så vi trenger en annen modell.
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) );
fJerkCalc := (fAccel_M + fDecel_M) / ( ( 2 * (fMoveTime_S - (fDeltaPos_M / fVMax_M))) - (fVMax_M * ((1/fAccel_M)+(1/fDecel_M)) ) );