Estou procurando uma equação para encontrar o tempo que levará para um deslocamento de posição a acontecer, dados $ V_ {max} $ conhecidos, uma aceleração, desaceleração, solavanco e deslocamento constantes (conhecidos) e uma velocidade inicial de 0.

Estou tentando estimar / calcular o tempo que um eixo do servomotor levará para percorrer uma certa distância. Depois de saber o tempo estimado desse movimento, posso resolver o empurrão do outro eixo. Assim, escolho uma velocidade “lenta” ideal para qualquer eixo tem uma distância de movimento menor para fazer o máximo uso de meu tempo.

Para sua informação, este é um pórtico de robô XY para escolher e colocar.

Comentários

  • Supondo $ \ Delta x = (a / 2) * t ^ 2 + (j / 6) * t ^ 3 $, encontrar t é a mesma coisa que resolver um equação cúbica
  • Obrigado, ' começarei com isso e verei o que descobri th.
  • Se você concorda com a equação que dei acima, e se você tiver problemas, tentarei dar-lhe uma resposta completa.
  • Legal. Obrigado. Então … estou fazendo uma mudança com parâmetros:
  • Oops. Repost: Estou fazendo um movimento com os parâmetros: Vmáx = 1000 mm / s, aceleração = 1000 mm / s ^ 2, desaceleração = 1000 mm / s ^ 2, arrancada = 1000 mm / s ^ 3 e o deslocamento é 2.000 mm. Eu cronometrei esse movimento em cerca de 4,0 segundos, então essa deve ser a resposta, mas preciso obter a equação que resulta nisso para diferentes variáveis de entrada. (observe que a aceleração e a desaceleração não são necessariamente iguais). Obrigado por olhar para ele, estou um pouco fora do meu alcance em matemática.

Resposta

I dar-lhe o resultado do meu cálculo sem os detalhes:

O resultado é:

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

onde:

$ \ Delta t $ é o tempo total.

$ \ Delta x $ é o deslocamento total.

$ a $ é a aceleração máxima.

$ d $ é a desaceleração máxima.

$ j $ é o idiota.

$ V_ {max} $ é a velocidade máxima.

Como um teste, com seus valores:

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

$$ \ 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 é o resultado correto.

Portanto, estou bastante confiante em a fórmula.

[EDITAR] A fórmula para obter o empurrão é:

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

[EDITAR 2]

O modelo usado é:

Fase 1: constante ( positivo) jerk $ j $

Fase 2: aceleração constante $ a $

Fase 3: constante (negativo) jerk ($ – j $)

Fase 4: velocidade constante $ V_ {Max} $

Fase 5: jerk constante (negativo) ($ – j $)

Fase 6: desaceleração constante ($ d $)

Fase 7: jerk constante (positivo) ($ j $)


Nas fórmulas acima, existem restrições, mais precisamente a duração das fases 2, 4, 6 deve seja 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 $$

Se uma dessas restrições não for satisfeita, isso significa que as hipóteses tomadas para o modelo são incoerentes nt, então precisamos de outro modelo.

Comentários

  • OBRIGADO! Agradeço o tempo que você gastou para me ajudar. Eu ' moverei isso para o PLC e verei como funciona. Ainda preciso descobrir a solução para j quando delta T é conhecido, mas provavelmente consigo fazer isso. Continue o bom trabalho.
  • Aqui está o cálculo do PLC para o tempo, como você mencionou acima: 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) );
  • NÃO, sua primeira fórmula para empurrão não é correto. Eu fiz uma edição na resposta para a fórmula correta. Sua última fórmula (para o tempo) parece correta. Já agora, o que é PLC?
  • Sim, tem razão. Eu removi esse comentário. O código correto de PLC para encontrar Jerk deve ser: fJerkCalc := (fAccel_M + fDecel_M) / ( ( 2 * (fMoveTime_S - (fDeltaPos_M / fVMax_M))) - (fVMax_M * ((1/fAccel_M)+(1/fDecel_M)) ) );
  • PLC é um ' controlador lógico programável ', basicamente um microcontrolador ou computador de tempo real para uso industrial. Eu ' estou usando-o para coordenar e controlar um robô de seleção e posicionamento de 4 eixos. Eu ' estou muito perto de acertar, mas algo ainda está um pouco errado em algum lugar .. As fórmulas parecem boas.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *