Estoy buscando una ecuación para encontrar el tiempo que tomará una que suceda el desplazamiento de posición, dado $ V_ {max} $ conocido, una aceleración, desaceleración, sacudida y desplazamiento constantes (conocidos) … y una velocidad inicial de 0.

Estoy tratando de estimar / calcular el tiempo que tardará un eje de servomotor en recorrer una cierta distancia. Una vez que sepa el tiempo estimado de ese movimiento, puedo resolver el tirón del otro eje. De esa manera, elijo una velocidad óptima «lenta» para lo que sea El eje tiene una distancia de movimiento más corta para aprovechar al máximo mi tiempo.

FYI, este es un pórtico de robot XY para elegir y colocar.

Comentarios

  • Suponiendo que $ \ Delta x = (a / 2) * t ^ 2 + (j / 6) * t ^ 3 $, encontrar t es lo mismo que resolver un ecuación cúbica
  • Gracias, ' comenzaré con eso y veré qué se me ocurre th.
  • Si está de acuerdo con la ecuación que le di arriba, y si tiene problemas, trataré de darle una respuesta completa.
  • Genial. Gracias. Entonces … estoy haciendo un movimiento con parámetros:
  • Vaya. Repost: Estoy haciendo un movimiento con parámetros: Vmax = 1000 mm / s, accel = 1000mm / s ^ 2, decel = 1000mm / s ^ 2, Jerk = 1000 mm / s ^ 3, y el Desplazamiento es 2000mm. He cronometrado este movimiento en alrededor de 4.0 segundos, así que esa debería ser la respuesta, pero necesito obtener la ecuación que da como resultado esto para diferentes variables de entrada. (tenga en cuenta que la aceleración y la desaceleración no son necesariamente lo mismo). Gracias por mirarlo, estoy un poco fuera de mi liga en matemáticas.

Responder

Yo darle el resultado de mi cálculo sin los detalles:

El resultado es:

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

donde:

$ \ Delta t $ es el tiempo total.

$ \ Delta x $ es el desplazamiento total.

$ a $ es la aceleración máxima.

$ d $ es la desaceleración máxima.

$ j $ es el tirón.

$ V_ {max} $ es la velocidad máxima.

Como prueba, con sus valores:

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

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

que es el resultado correcto.

Así que tengo bastante confianza en la fórmula.

[EDIT] La fórmula para obtener jerk es:

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

El modelo utilizado es:

Fase 1: constante ( positivo) tirón $ j $

Fase 2: aceleración constante $ a $

Fase 3: tirón constante (negativo) ($ – j $)

Fase 4: velocidad constante $ V_ {Max} $

Fase 5: tirón constante (negativo) ($ – j $)

Fase 6: desaceleración constante ($ d $)

Fase 7: tirón constante (positivo) ($ j $)


En las fórmulas anteriores, hay restricciones, más precisamente la duración de las fases 2, 4, 6 debe Sea positivo:

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

Si una de estas restricciones no se cumple, esto significa que las hipótesis tomadas para el modelo son incoherentes nt, entonces necesitamos otro modelo.

Comentarios

  • ¡GRACIAS! Aprecio el tiempo que dedicaste a ayudarme. Lo ' lo moveré al PLC y veré cómo funciona. Todavía necesito encontrar la solución para j cuando se conoce delta T, pero probablemente pueda manejar eso. Sigan con el buen trabajo.
  • Aquí está el cálculo del tiempo de PLC como mencionó anteriormente: 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) );
  • NO, su primera fórmula para tirón no es correcto. Hice una edición en la respuesta para la fórmula correcta. Su última fórmula (por tiempo) parece correcta. Por cierto, ¿qué es PLC?
  • Sí, tienes razón. Eliminé ese comentario. El código de PLC correcto para encontrar Jerk debe ser: fJerkCalc := (fAccel_M + fDecel_M) / ( ( 2 * (fMoveTime_S - (fDeltaPos_M / fVMax_M))) - (fVMax_M * ((1/fAccel_M)+(1/fDecel_M)) ) );
  • El PLC es un ' controlador lógico programable ', básicamente un microcontrolador o computadora en tiempo real para uso industrial. Yo ' m utilizándolo para coordinar y controlar un robot de selección y colocación de 4 ejes. Estoy ' muy cerca de hacerlo bien, pero algo todavía está un poco mal en alguna parte. Sin embargo, las fórmulas parecen buenas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *