A maior rede de estudos do Brasil

Algorítimo para calculo de aceleração

Tendo como base o movimento de queda livre modelado na tarefa 1 da disciplina
de Física (parte 1), faça um algoritmo que permita o cálculo da aceleração da
gravidade local. Como é um movimento de queda livre, a resistência do ar deverá
ser desprezada.
(a) Dados de entrada: altura máxima e tempo total de queda livre.
Observação: A velocidade inicial do corpo deve ser igual a zero!
(b) Dados de saída: aceleração da gravidade e velocidade com que o corpo
chega ao chão.
Observação: Para o cálculo da velocidade final, deverá ser utilizado o valor
calculado da aceleração da gravidade (parte a)!

Algoritmos

UNOPAR


2 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

Conceitualmente, você anexa o ponto ao ponto de destino com uma mola ou pedaço de elástico. A mola é umedecida para que você não fique quicando. Você pode controlar a rapidez com que o sistema reage alterando uma constante chamada "SpringConstant". Isto é essencialmente o quão forte é o pedaço de elástico.

Basicamente, você aplica duas forças à posição e a integra ao longo do tempo. A primeira força é a aplicada pela gravidade, *Fs = GravityConstant DistanceToTarget.

Nós adicionamos isso à posição real do ponto. No código C ++ temos:

xtarget: target position

vtarget: target velocity*

x: object position

v: object velocity

dt: timestep

F = Ki (xtarget-x) + Kp (vtarget-v);

F = clipMagnitude(F, Fmax);

v = v + F * dt;

v = clipMagnitude(v, vmax);

x = x + v * dt;

clipMagnitude(y, ymax):

r = magnitude(y) / ymax

if (r <= 1)

return y;

else

return y (1/r);*

Nos sistemas em que eu trabalhava com um valor em torno de 5, era um bom ponto para começar a experimentar o valor da constante da mola. Ajustá-lo muito alto resultará em uma reação muito rápida, e muito baixo o ponto reagirá muito lentamente.

Observe que talvez seja melhor criar uma classe que mantenha o estado da velocidade, em vez de precisar transmiti-lo para a função repetidamente.

Conceitualmente, você anexa o ponto ao ponto de destino com uma mola ou pedaço de elástico. A mola é umedecida para que você não fique quicando. Você pode controlar a rapidez com que o sistema reage alterando uma constante chamada "SpringConstant". Isto é essencialmente o quão forte é o pedaço de elástico.

Basicamente, você aplica duas forças à posição e a integra ao longo do tempo. A primeira força é a aplicada pela gravidade, *Fs = GravityConstant DistanceToTarget.

Nós adicionamos isso à posição real do ponto. No código C ++ temos:

xtarget: target position

vtarget: target velocity*

x: object position

v: object velocity

dt: timestep

F = Ki (xtarget-x) + Kp (vtarget-v);

F = clipMagnitude(F, Fmax);

v = v + F * dt;

v = clipMagnitude(v, vmax);

x = x + v * dt;

clipMagnitude(y, ymax):

r = magnitude(y) / ymax

if (r <= 1)

return y;

else

return y (1/r);*

Nos sistemas em que eu trabalhava com um valor em torno de 5, era um bom ponto para começar a experimentar o valor da constante da mola. Ajustá-lo muito alto resultará em uma reação muito rápida, e muito baixo o ponto reagirá muito lentamente.

Observe que talvez seja melhor criar uma classe que mantenha o estado da velocidade, em vez de precisar transmiti-lo para a função repetidamente.

User badge image

Rainer Teixeira

Há mais de um mês

nao sei de nada nunca saberei sou burro e prescsio de acesso ao site

 

Essa pergunta já foi respondida por um dos nossos especialistas