Qual è la differenza tra un impulso e una forza relativa a un motore fisico?


25

Qual è la differenza tra un'applicazione di un impulso e un'applicazione di una forza in relazione a un motore fisico?

Risposte:


25

Un impulso viene applicato all'istante, quindi non dipende dalla fase temporale. Utilizzeresti un impulso quando vuoi dare una spinta fissa della velocità a qualcosa, o l'azione fisica avviene troppo rapidamente (es. Proiettili / pistola rimbalzo, collisioni, salti, accelerazioni istantanee).

Nel frattempo una forza modifica la velocità direttamente proporzionale alla fase temporale. Lo usi per cose che hanno un effetto nel tempo (es. Gravità, molle lunghe, resistenza dell'aria).

Matematicamente impulse = force * time; E per riferimento impulse = mass * velocity_change, force = mass * acceleration.

Se espandi il primo, puoi controllare questo:

  • impulse = force * time ->
  • impulse = mass * acceleration * timee poiché acceleration * time = velocity_change->
  • impulse = mass * velocity_change.

1
Da allora impulse = force * time, anche l'impulso dipende dal tempo (almeno se si usano le forze per ottenere la grandezza dell'impulso). In effetti, il momento o l'impulso sono utili per applicare cambiamenti drammatici istantanei. L'esempio più popolare viene dalle leggi di conservazione della quantità di moto e dell'energia: physics.ohio-state.edu/~gan/teaching/spring99/C10.pdf .
teodron,

Così è l'attuazione, da Jeff Lakevia Game Coding Complete 3rd Ed. Chapter 15: Collision and Simple Physicsnon corretta: (parafrasando)Start with a Vector3d (or 2d depending) of forces F, Accumulate all Forces applied in a list, Accumulate All Impulses in a list add both totals to Forces, empty Impulses list, Accel = F / mass, Vel += Accel * deltaTime, Pos = Vel * time.
Casey

@ Casey: ecco come lo faccio. Nel mio simulatore non posso usare la custodia rigida in cui due corpi si scontrano e tutto funziona direttamente. Seguendo il modo newtoniano di integrare l'accelerazione per trovare la velocità e quindi la posizione. I miei impulsi sono derivati da una forza di repulsione (forza di risposta / reazione è sinonimo nella mia comprensione): i = F_response * DTime. Puoi procedere in entrambi i modi: usa l' iimpulso per correggere le velocità dopo la collisione o usa direttamente la forza di risposta. Se ricevi l'impulso da qualche altra parte, lo annulli in un F_responsee funziona bene.
teodron,

@teodron Grazie, questo solleva una domanda separata che farò ... separatamente. : P
Casey,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.